Add configuration files
authorma <ma@beaudet.xyz>
Mon, 29 Mar 2021 17:14:48 +0000 (19:14 +0200)
committerma <ma@beaudet.xyz>
Mon, 29 Mar 2021 17:14:48 +0000 (19:14 +0200)
33 files changed:
.config/alacritty/alacritty.yml [new file with mode: 0644]
.config/git/config [new file with mode: 0644]
.config/git/ignore [new file with mode: 0644]
.config/git/template/hooks/ctags [new file with mode: 0755]
.config/git/template/hooks/post-checkout [new file with mode: 0755]
.config/git/template/hooks/post-commit [new file with mode: 0755]
.config/git/template/hooks/post-merge [new file with mode: 0755]
.config/git/template/hooks/post-rewrite [new file with mode: 0755]
.config/mimeapps.list [new file with mode: 0644]
.config/mpd/mpd.conf [new file with mode: 0644]
.config/newsboat/config [new file with mode: 0644]
.config/qutebrowser/config.py [new file with mode: 0644]
.config/shell/aliasrc [new file with mode: 0644]
.config/shell/bm-dirs [new file with mode: 0644]
.config/shell/bm-files [new file with mode: 0644]
.config/shell/env [new file with mode: 0644]
.config/shell/inputrc [new file with mode: 0644]
.config/shell/profile [new file with mode: 0644]
.config/shell/shortcutrc [new file with mode: 0644]
.config/shell/zshnameddirrc [new file with mode: 0644]
.config/user-dirs.dirs [new file with mode: 0644]
.config/wal/colorschemes/dark/dracula.json [new file with mode: 0644]
.config/wal/postrun [new file with mode: 0755]
.config/wal/templates/dunstrc [new file with mode: 0644]
.config/wal/templates/zathurarc [new file with mode: 0644]
.config/wget/wgetrc [new file with mode: 0644]
.config/x11/xinitrc [new file with mode: 0755]
.config/x11/xprofile [new file with mode: 0755]
.config/x11/xresources [new file with mode: 0644]
.config/zathura/zathurarc [new symlink]
.xinitrc [new symlink]
.xprofile [new symlink]
.zshenv [new file with mode: 0644]

diff --git a/.config/alacritty/alacritty.yml b/.config/alacritty/alacritty.yml
new file mode 100644 (file)
index 0000000..d5f31c8
--- /dev/null
@@ -0,0 +1,86 @@
+env:
+  TERM: xterm-256color
+    
+window:
+  padding:
+    x: 10
+    y: 4
+
+font:
+  normal:
+    family: Fira Code Nerd Font
+    style: Regular
+  bold:
+    family: Fira Code Nerd Font
+    style: Bold
+  italic:
+    family: Fira Code Nerd Font
+    style: Italic
+  size: 6
+
+# shell: 
+#   program: /usr/bin/tmux
+#   args:
+#     - -u
+# import:
+#    - ~/.config/alacritty/dracula.yml
+
+colors:
+  primary:
+    background: '0x282a36'
+    foreground: '0xf8f8f2'
+  cursor:
+    text: CellBackground
+    cursor: CellForeground
+  vi_mode_cursor:
+    text: CellBackground
+    cursor: CellForeground
+  search:
+    matches:
+      foreground: '0x44475a'
+      background: '0x50fa7b'
+    focused_match:
+      foreground: '0x44475a'
+      background: '0xffb86c'
+    bar:
+      background: '0x282a36'
+      foreground: '0xf8f8f2'
+  line_indicator:
+    foreground: None
+    background: None
+  selection:
+    text: CellForeground
+    background: '0x44475a'
+  normal:
+    black:   '0x000000'
+    red:     '0xff5555'
+    green:   '0x50fa7b'
+    yellow:  '0xf1fa8c'
+    blue:    '0xbd93f9'
+    magenta: '0xff79c6'
+    cyan:    '0x8be9fd'
+    white:   '0xbfbfbf'
+  bright:
+    black:   '0x4d4d4d'
+    red:     '0xff6e67'
+    green:   '0x5af78e'
+    yellow:  '0xf4f99d'
+    blue:    '0xcaa9fa'
+    magenta: '0xff92d0'
+    cyan:    '0x9aedfe'
+    white:   '0xe6e6e6'
+  dim:
+    black:   '0x14151b'
+    red:     '0xff2222'
+    green:   '0x1ef956'
+    yellow:  '0xebf85b'
+    blue:    '0x4d5b86'
+    magenta: '0xff46b0'
+    cyan:    '0x59dffc'
+    white:   '0xe6e6d1'
+
+background_opacity: 0.9
+
+key_bindings:
+  - { key: Minus, mods: Control, action: DecreaseFontSize }
+  - { key: Equals, mods: Control, action: IncreaseFontSize }
diff --git a/.config/git/config b/.config/git/config
new file mode 100644 (file)
index 0000000..081ce5b
--- /dev/null
@@ -0,0 +1,27 @@
+[user]
+    email = ma@beaudet.xyz
+    name = ma
+    signingkey = ma@beaudet.xyz
+[pull]
+    rebase = false
+[core]
+    editor = vim
+    autocrlf = input
+    excludesdir = ~/.config/git/ignore
+[init]
+    templatedir = ~/.config/git/template
+    defaultBranch = main
+[alias]
+    ctags = !.git/hooks/ctags
+    last = log -1 HEAD
+[color]
+    diff = auto
+    status = auto
+    branch = auto
+    interactive = auto
+[merge]
+    summary = true
+[diff]
+    submodule = log
+[includeIf "gitdir:~/dev/work"]
+    path = ~/.config/git/config-work
diff --git a/.config/git/ignore b/.config/git/ignore
new file mode 100644 (file)
index 0000000..60cbbbe
--- /dev/null
@@ -0,0 +1,2 @@
+.DS_Store
+^tags$
diff --git a/.config/git/template/hooks/ctags b/.config/git/template/hooks/ctags
new file mode 100755 (executable)
index 0000000..6a364af
--- /dev/null
@@ -0,0 +1,8 @@
+#!/bin/sh
+set -e
+PATH="/usr/local/bin:$PATH"
+trap 'rm -f "$$.tags"' EXIT
+git ls-files | \
+    ctags --tag-relative -L - -f"$$.tags" --languages=-javascript,sql
+mv "$$.tags" "tags"
+
diff --git a/.config/git/template/hooks/post-checkout b/.config/git/template/hooks/post-checkout
new file mode 100755 (executable)
index 0000000..84f17ed
--- /dev/null
@@ -0,0 +1,2 @@
+#!/bin/sh
+.git/hooks/ctags >/dev/null 2>&1 &
diff --git a/.config/git/template/hooks/post-commit b/.config/git/template/hooks/post-commit
new file mode 100755 (executable)
index 0000000..84f17ed
--- /dev/null
@@ -0,0 +1,2 @@
+#!/bin/sh
+.git/hooks/ctags >/dev/null 2>&1 &
diff --git a/.config/git/template/hooks/post-merge b/.config/git/template/hooks/post-merge
new file mode 100755 (executable)
index 0000000..84f17ed
--- /dev/null
@@ -0,0 +1,2 @@
+#!/bin/sh
+.git/hooks/ctags >/dev/null 2>&1 &
diff --git a/.config/git/template/hooks/post-rewrite b/.config/git/template/hooks/post-rewrite
new file mode 100755 (executable)
index 0000000..ea6e25b
--- /dev/null
@@ -0,0 +1,4 @@
+#!/bin/sh
+case "$1" in 
+    rebase) exec .git/hooks/post-merge ;;
+esac
diff --git a/.config/mimeapps.list b/.config/mimeapps.list
new file mode 100644 (file)
index 0000000..2133f4c
--- /dev/null
@@ -0,0 +1,39 @@
+[Default Applications]
+text/x-shellscript=text.desktop;
+x-scheme-handler/magnet=torrent.desktop;
+application/x-bittorrent=torrent.desktop;
+x-scheme-handler/mailto=mail.desktop;
+text/plain=text.desktop;
+application/postscript=pdf.desktop;
+application/pdf=pdf.desktop;
+image/png=img.desktop;
+image/jpeg=img.desktop;
+image/gif=img.desktop;
+application/rss+xml=rss.desktop
+video/x-matroska=video.desktop
+x-scheme-handler/lbry=lbry.desktop
+inode/directory=file.desktop
+x-scheme-handler/http=firefox.desktop
+x-scheme-handler/https=firefox.desktop
+x-scheme-handler/ftp=firefox.desktop
+x-scheme-handler/chrome=firefox.desktop
+text/html=firefox.desktop
+application/x-extension-htm=firefox.desktop
+application/x-extension-html=firefox.desktop
+application/x-extension-shtml=firefox.desktop
+application/xhtml+xml=firefox.desktop
+application/x-extension-xhtml=firefox.desktop
+application/x-extension-xht=firefox.desktop
+
+[Added Associations]
+x-scheme-handler/http=firefox.desktop;
+x-scheme-handler/https=firefox.desktop;
+x-scheme-handler/ftp=firefox.desktop;
+x-scheme-handler/chrome=firefox.desktop;
+text/html=firefox.desktop;
+application/x-extension-htm=firefox.desktop;
+application/x-extension-html=firefox.desktop;
+application/x-extension-shtml=firefox.desktop;
+application/xhtml+xml=firefox.desktop;
+application/x-extension-xhtml=firefox.desktop;
+application/x-extension-xht=firefox.desktop;
diff --git a/.config/mpd/mpd.conf b/.config/mpd/mpd.conf
new file mode 100644 (file)
index 0000000..bf329d6
--- /dev/null
@@ -0,0 +1,21 @@
+music_directory                "~/Music"
+playlist_directory     "~/.config/mpd/playlists"
+
+auto_update "yes"
+bind_to_address "127.0.0.1"
+restore_paused "yes"
+max_output_buffer_size "16384"
+
+audio_output {
+       type "pulse"
+       name "pulse"
+       #type  "alsa"
+       #name  "ALSA"
+}
+
+audio_output {
+       type    "fifo"
+       name    "Visualizer feed"
+       path    "/tmp/mpd.fifo"
+       format  "44100:16:2"
+}
diff --git a/.config/newsboat/config b/.config/newsboat/config
new file mode 100644 (file)
index 0000000..e917991
--- /dev/null
@@ -0,0 +1,55 @@
+#show-read-feeds no
+auto-reload yes
+
+external-url-viewer "urlscan -dc -r 'linkhandler {}'"
+
+bind-key j down
+bind-key k up
+bind-key j next articlelist
+bind-key k prev articlelist
+bind-key J next-feed articlelist
+bind-key K prev-feed articlelist
+bind-key G end
+bind-key g home
+bind-key d pagedown
+bind-key u pageup
+bind-key l open
+bind-key h quit
+bind-key a toggle-article-read
+bind-key n next-unread
+bind-key N prev-unread
+bind-key D pb-download
+bind-key U show-urls
+bind-key x pb-delete
+
+color listnormal cyan default
+color listfocus black yellow standout bold
+color listnormal_unread blue default
+color listfocus_unread yellow default bold
+color info red black bold
+color article white default bold
+
+browser linkhandler
+macro , open-in-browser
+macro t set browser "qndl" ; open-in-browser ; set browser linkhandler
+macro a set browser "tsp youtube-dl --add-metadata -xic -f bestaudio/best" ; open-in-browser ; set browser linkhandler
+macro v set browser "setsid -f mpv" ; open-in-browser ; set browser linkhandler
+macro w set browser "lynx" ; open-in-browser ; set browser linkhandler
+macro d set browser "dmenuhandler" ; open-in-browser ; set browser linkhandler
+macro c set browser "xsel -b <<<" ; open-in-browser ; set browser linkhandler
+macro C set browser "youtube-viewer --comments=%u" ; open-in-browser ; set browser linkhandler
+macro p set browser "peertubetorrent %u 480" ; open-in-browser ; set browser linkhandler
+macro P set browser "peertubetorrent %u 1080" ; open-in-browser ; set browser linkhandler
+
+highlight all "---.*---" yellow
+highlight feedlist ".*(0/0))" black
+highlight article "(^Feed:.*|^Title:.*|^Author:.*)" cyan default bold
+highlight article "(^Link:.*|^Date:.*)" default default
+highlight article "https?://[^ ]+" green default
+highlight article "^(Title):.*$" blue default
+highlight article "\\[[0-9][0-9]*\\]" magenta default bold
+highlight article "\\[image\\ [0-9]+\\]" green default bold
+highlight article "\\[embedded flash: [0-9][0-9]*\\]" green default bold
+highlight article ":.*\\(link\\)$" cyan default
+highlight article ":.*\\(image\\)$" blue default
+highlight article ":.*\\(embedded flash\\)$" magenta default
diff --git a/.config/qutebrowser/config.py b/.config/qutebrowser/config.py
new file mode 100644 (file)
index 0000000..e7a515d
--- /dev/null
@@ -0,0 +1,451 @@
+# Autogenerated config.py
+#
+# NOTE: config.py is intended for advanced users who are comfortable
+# with manually migrating the config file on qutebrowser upgrades. If
+# you prefer, you can also configure qutebrowser using the
+# :set/:bind/:config-* commands without having to write a config.py
+# file.
+#
+# Documentation:
+#   qute://help/configuring.html
+#   qute://help/settings.html
+
+# Change the argument to True to still load settings configured via autoconfig.yml
+config.load_autoconfig(False)
+
+# Which cookies to accept. With QtWebEngine, this setting also controls
+# other features with tracking capabilities similar to those of cookies;
+# including IndexedDB, DOM storage, filesystem API, service workers, and
+# AppCache. Note that with QtWebKit, only `all` and `never` are
+# supported as per-domain values. Setting `no-3rdparty` or `no-
+# unknown-3rdparty` per-domain on QtWebKit will have the same effect as
+# `all`. If this setting is used with URL patterns, the pattern gets
+# applied to the origin/first party URL of the page making the request,
+# not the request URL.
+# Type: String
+# Valid values:
+#   - all: Accept all cookies.
+#   - no-3rdparty: Accept cookies from the same origin only. This is known to break some sites, such as GMail.
+#   - no-unknown-3rdparty: Accept cookies from the same origin only, unless a cookie is already set for the domain. On QtWebEngine, this is the same as no-3rdparty.
+#   - never: Don't accept cookies at all.
+config.set('content.cookies.accept', 'all', 'chrome-devtools://*')
+
+# Which cookies to accept. With QtWebEngine, this setting also controls
+# other features with tracking capabilities similar to those of cookies;
+# including IndexedDB, DOM storage, filesystem API, service workers, and
+# AppCache. Note that with QtWebKit, only `all` and `never` are
+# supported as per-domain values. Setting `no-3rdparty` or `no-
+# unknown-3rdparty` per-domain on QtWebKit will have the same effect as
+# `all`. If this setting is used with URL patterns, the pattern gets
+# applied to the origin/first party URL of the page making the request,
+# not the request URL.
+# Type: String
+# Valid values:
+#   - all: Accept all cookies.
+#   - no-3rdparty: Accept cookies from the same origin only. This is known to break some sites, such as GMail.
+#   - no-unknown-3rdparty: Accept cookies from the same origin only, unless a cookie is already set for the domain. On QtWebEngine, this is the same as no-3rdparty.
+#   - never: Don't accept cookies at all.
+config.set('content.cookies.accept', 'all', 'devtools://*')
+
+# User agent to send.  The following placeholders are defined:  *
+# `{os_info}`: Something like "X11; Linux x86_64". * `{webkit_version}`:
+# The underlying WebKit version (set to a fixed value   with
+# QtWebEngine). * `{qt_key}`: "Qt" for QtWebKit, "QtWebEngine" for
+# QtWebEngine. * `{qt_version}`: The underlying Qt version. *
+# `{upstream_browser_key}`: "Version" for QtWebKit, "Chrome" for
+# QtWebEngine. * `{upstream_browser_version}`: The corresponding
+# Safari/Chrome version. * `{qutebrowser_version}`: The currently
+# running qutebrowser version.  The default value is equal to the
+# unchanged user agent of QtWebKit/QtWebEngine.  Note that the value
+# read from JavaScript is always the global value. With QtWebEngine
+# between 5.12 and 5.14 (inclusive), changing the value exposed to
+# JavaScript requires a restart.
+# Type: FormatString
+config.set('content.headers.user_agent', 'Mozilla/5.0 ({os_info}) AppleWebKit/{webkit_version} (KHTML, like Gecko) {upstream_browser_key}/{upstream_browser_version} Safari/{webkit_version}', 'https://web.whatsapp.com/')
+
+# User agent to send.  The following placeholders are defined:  *
+# `{os_info}`: Something like "X11; Linux x86_64". * `{webkit_version}`:
+# The underlying WebKit version (set to a fixed value   with
+# QtWebEngine). * `{qt_key}`: "Qt" for QtWebKit, "QtWebEngine" for
+# QtWebEngine. * `{qt_version}`: The underlying Qt version. *
+# `{upstream_browser_key}`: "Version" for QtWebKit, "Chrome" for
+# QtWebEngine. * `{upstream_browser_version}`: The corresponding
+# Safari/Chrome version. * `{qutebrowser_version}`: The currently
+# running qutebrowser version.  The default value is equal to the
+# unchanged user agent of QtWebKit/QtWebEngine.  Note that the value
+# read from JavaScript is always the global value. With QtWebEngine
+# between 5.12 and 5.14 (inclusive), changing the value exposed to
+# JavaScript requires a restart.
+# Type: FormatString
+config.set('content.headers.user_agent', 'Mozilla/5.0 ({os_info}) AppleWebKit/{webkit_version} (KHTML, like Gecko) {upstream_browser_key}/{upstream_browser_version} Safari/{webkit_version} Edg/{upstream_browser_version}', 'https://accounts.google.com/*')
+
+# User agent to send.  The following placeholders are defined:  *
+# `{os_info}`: Something like "X11; Linux x86_64". * `{webkit_version}`:
+# The underlying WebKit version (set to a fixed value   with
+# QtWebEngine). * `{qt_key}`: "Qt" for QtWebKit, "QtWebEngine" for
+# QtWebEngine. * `{qt_version}`: The underlying Qt version. *
+# `{upstream_browser_key}`: "Version" for QtWebKit, "Chrome" for
+# QtWebEngine. * `{upstream_browser_version}`: The corresponding
+# Safari/Chrome version. * `{qutebrowser_version}`: The currently
+# running qutebrowser version.  The default value is equal to the
+# unchanged user agent of QtWebKit/QtWebEngine.  Note that the value
+# read from JavaScript is always the global value. With QtWebEngine
+# between 5.12 and 5.14 (inclusive), changing the value exposed to
+# JavaScript requires a restart.
+# Type: FormatString
+config.set('content.headers.user_agent', 'Mozilla/5.0 ({os_info}) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99 Safari/537.36', 'https://*.slack.com/*')
+
+# Load images automatically in web pages.
+# Type: Bool
+config.set('content.images', True, 'chrome-devtools://*')
+config.set('content.images', True, 'devtools://*')
+
+# Enable JavaScript.
+# Type: Bool
+c.content.javascript.enabled = False
+config.set('content.javascript.enabled', True, 'chrome-devtools://*')
+config.set('content.javascript.enabled', True, 'devtools://*')
+config.set('content.javascript.enabled', True, 'chrome://*/*')
+config.set('content.javascript.enabled', True, 'qute://*/*')
+config.set('content.javascript.enabled', True, '*://duckduckgo.com/*')
+
+
+config.set('url.start_pages', 'https://duckduckgo.com')
+config.bind('<Ctrl-R>', 'config-cycle content.user_stylesheets "css/darculized-all-sites.css" "css/darculized-all-sites-lighter.css" ""')
+
+# config.set('auto_save.session', True)
+c.auto_save.session = True
+
+# Editor (and arguments) to use for the `edit-*` commands. The following
+# placeholders are defined:  * `{file}`: Filename of the file to be
+# edited. * `{line}`: Line in which the caret is found in the text. *
+# `{column}`: Column in which the caret is found in the text. *
+# `{line0}`: Same as `{line}`, but starting from index 0. * `{column0}`:
+# Same as `{column}`, but starting from index 0.
+# Type: ShellCommand
+c.editor.command = ['alacritty', '-e', 'vim', '-f', '{file}', '-c', 'normal {line}G{column0}l']
+
+# Position of the tab bar.
+# Type: Position
+# Valid values:
+#   - top
+#   - bottom
+#   - left
+#   - right
+c.tabs.position = 'top'
+
+# Maximum width (in pixels) of tabs (-1 for no maximum). This setting
+# only applies when tabs are horizontal. This setting does not apply to
+# pinned tabs, unless `tabs.pinned.shrink` is False. This setting may
+# not apply properly if max_width is smaller than the minimum size of
+# tab contents, or smaller than tabs.min_width.
+# Type: Int
+c.tabs.max_width = -1
+
+# Bindings for normal mode
+config.bind(',D', 'hint links spawn dmenuhandler {hint-url}')
+config.bind(',M', 'hint links spawn umpv {hint-url}')
+config.bind(',d', 'spawn dmenuhandler {url}')
+config.bind(',m', 'spawn umpv {url}')
+config.bind(';M', 'hint --rapid links spawn umpv {hint-url}')
+
+
+# Dracula theme
+def blood(c, options = {}):
+    palette = {
+        'background': '#282a36',
+        'background-alt': '#282a36', 
+        'background-attention': '#181920',
+        'border': '#282a36',
+        'current-line': '#44475a',
+        'selection': '#44475a',
+        'foreground': '#f8f8f2',
+        'foreground-alt': '#e0e0e0',
+        'foreground-attention': '#ffffff',
+        'comment': '#6272a4',
+        'cyan': '#8be9fd',
+        'green': '#50fa7b',
+        'orange': '#ffb86c',
+        'pink': '#ff79c6',
+        'purple': '#bd93f9',
+        'red': '#ff5555',
+        'yellow': '#f1fa8c'
+    }   
+
+    spacing = options.get('spacing', {
+        'vertical': 5,
+        'horizontal': 5
+    })
+    
+    padding = options.get('padding', {
+        'top': spacing['vertical'],
+        'right': spacing['horizontal'],
+        'bottom': spacing['vertical'],
+        'left': spacing['horizontal']
+    })
+
+    ## Background color of the completion widget category headers.
+    c.colors.completion.category.bg = palette['background']
+    
+    ## Bottom border color of the completion widget category headers.
+    c.colors.completion.category.border.bottom = palette['border']
+    
+    ## Top border color of the completion widget category headers.
+    c.colors.completion.category.border.top = palette['border']
+    
+    ## Foreground color of completion widget category headers.
+    c.colors.completion.category.fg = palette['foreground']
+    
+    ## Background color of the completion widget for even rows.
+    c.colors.completion.even.bg = palette['background']
+    
+    ## Background color of the completion widget for odd rows.
+    c.colors.completion.odd.bg = palette['background-alt']
+    
+    ## Text color of the completion widget.
+    c.colors.completion.fg = palette['foreground']
+    
+    ## Background color of the selected completion item.
+    c.colors.completion.item.selected.bg = palette['selection']
+    
+    ## Bottom border color of the selected completion item.
+    c.colors.completion.item.selected.border.bottom = palette['selection']
+    
+    ## Top border color of the completion widget category headers.
+    c.colors.completion.item.selected.border.top = palette['selection']
+    
+    ## Foreground color of the selected completion item.
+    c.colors.completion.item.selected.fg = palette['foreground']
+    
+    ## Foreground color of the matched text in the completion.
+    c.colors.completion.match.fg = palette['orange']
+    
+    ## Color of the scrollbar in completion view
+    c.colors.completion.scrollbar.bg = palette['background']
+    
+    ## Color of the scrollbar handle in completion view.
+    c.colors.completion.scrollbar.fg = palette['foreground']
+    
+    ## Background color for the download bar.
+    c.colors.downloads.bar.bg = palette['background']
+    
+    ## Background color for downloads with errors.
+    c.colors.downloads.error.bg = palette['background']
+    
+    ## Foreground color for downloads with errors.
+    c.colors.downloads.error.fg = palette['red']
+    
+    ## Color gradient stop for download backgrounds.
+    c.colors.downloads.stop.bg = palette['background']
+    
+    ## Color gradient interpolation system for download backgrounds.
+    ## Type: ColorSystem
+    ## Valid values:
+    ##   - rgb: Interpolate in the RGB color system.
+    ##   - hsv: Interpolate in the HSV color system.
+    ##   - hsl: Interpolate in the HSL color system.
+    ##   - none: Don't show a gradient.
+    c.colors.downloads.system.bg = 'none'
+    
+    ## Background color for hints. Note that you can use a `rgba(...)` value
+    ## for transparency.
+    c.colors.hints.bg = palette['background']
+    
+    ## Font color for hints.
+    c.colors.hints.fg = palette['purple']
+    
+    ## Hints
+    c.hints.border = '1px solid ' + palette['background-alt']
+    
+    ## Font color for the matched part of hints.
+    c.colors.hints.match.fg = palette['foreground-alt']
+    
+    ## Background color of the keyhint widget.
+    c.colors.keyhint.bg = palette['background']
+    
+    ## Text color for the keyhint widget.
+    c.colors.keyhint.fg = palette['purple']
+    
+    ## Highlight color for keys to complete the current keychain.
+    c.colors.keyhint.suffix.fg = palette['selection']
+    
+    ## Background color of an error message.
+    c.colors.messages.error.bg = palette['background']
+    
+    ## Border color of an error message.
+    c.colors.messages.error.border = palette['background-alt']
+    
+    ## Foreground color of an error message.
+    c.colors.messages.error.fg = palette['red']
+    
+    ## Background color of an info message.
+    c.colors.messages.info.bg = palette['background']
+    
+    ## Border color of an info message.
+    c.colors.messages.info.border = palette['background-alt']
+    
+    ## Foreground color an info message.
+    c.colors.messages.info.fg = palette['comment']
+    
+    ## Background color of a warning message.
+    c.colors.messages.warning.bg = palette['background']
+    
+    ## Border color of a warning message.
+    c.colors.messages.warning.border = palette['background-alt']
+    
+    ## Foreground color a warning message.
+    c.colors.messages.warning.fg = palette['red']
+    
+    ## Background color for prompts.
+    c.colors.prompts.bg = palette['background']
+    
+    # ## Border used around UI elements in prompts.
+    c.colors.prompts.border = '1px solid ' + palette['background-alt']
+    
+    ## Foreground color for prompts.
+    c.colors.prompts.fg = palette['cyan']
+    
+    ## Background color for the selected item in filename prompts.
+    c.colors.prompts.selected.bg = palette['selection']
+    
+    ## Background color of the statusbar in caret mode.
+    c.colors.statusbar.caret.bg = palette['background']
+    
+    ## Foreground color of the statusbar in caret mode.
+    c.colors.statusbar.caret.fg = palette['orange']
+    
+    ## Background color of the statusbar in caret mode with a selection.
+    c.colors.statusbar.caret.selection.bg = palette['background']
+    
+    ## Foreground color of the statusbar in caret mode with a selection.
+    c.colors.statusbar.caret.selection.fg = palette['orange']
+    
+    ## Background color of the statusbar in command mode.
+    c.colors.statusbar.command.bg = palette['background']
+    
+    ## Foreground color of the statusbar in command mode.
+    c.colors.statusbar.command.fg = palette['pink']
+    
+    ## Background color of the statusbar in private browsing + command mode.
+    c.colors.statusbar.command.private.bg = palette['background']
+    
+    ## Foreground color of the statusbar in private browsing + command mode.
+    c.colors.statusbar.command.private.fg = palette['foreground-alt']
+    
+    ## Background color of the statusbar in insert mode.
+    c.colors.statusbar.insert.bg = palette['background-attention']
+    
+    ## Foreground color of the statusbar in insert mode.
+    c.colors.statusbar.insert.fg = palette['foreground-attention']
+    
+    ## Background color of the statusbar.
+    c.colors.statusbar.normal.bg = palette['background']
+    
+    ## Foreground color of the statusbar.
+    c.colors.statusbar.normal.fg = palette['foreground']
+    
+    ## Background color of the statusbar in passthrough mode.
+    c.colors.statusbar.passthrough.bg = palette['background']
+    
+    ## Foreground color of the statusbar in passthrough mode.
+    c.colors.statusbar.passthrough.fg = palette['orange']
+    
+    ## Background color of the statusbar in private browsing mode.
+    c.colors.statusbar.private.bg = palette['background-alt']
+    
+    ## Foreground color of the statusbar in private browsing mode.
+    c.colors.statusbar.private.fg = palette['foreground-alt']
+    
+    ## Background color of the progress bar.
+    c.colors.statusbar.progress.bg = palette['background']
+    
+    ## Foreground color of the URL in the statusbar on error.
+    c.colors.statusbar.url.error.fg = palette['red']
+    
+    ## Default foreground color of the URL in the statusbar.
+    c.colors.statusbar.url.fg = palette['foreground']
+    
+    ## Foreground color of the URL in the statusbar for hovered links.
+    c.colors.statusbar.url.hover.fg = palette['cyan']
+    
+    ## Foreground color of the URL in the statusbar on successful load
+    c.colors.statusbar.url.success.http.fg = palette['green']
+    
+    ## Foreground color of the URL in the statusbar on successful load
+    c.colors.statusbar.url.success.https.fg = palette['green']
+    
+    ## Foreground color of the URL in the statusbar when there's a warning.
+    c.colors.statusbar.url.warn.fg = palette['yellow']
+    
+    ## Status bar padding
+    c.statusbar.padding = padding
+    
+    ## Background color of the tab bar.
+    ## Type: QtColor
+    c.colors.tabs.bar.bg = palette['selection']
+    
+    ## Background color of unselected even tabs.
+    ## Type: QtColor
+    c.colors.tabs.even.bg = palette['selection']
+    
+    ## Foreground color of unselected even tabs.
+    ## Type: QtColor
+    c.colors.tabs.even.fg = palette['foreground']
+    
+    ## Color for the tab indicator on errors.
+    ## Type: QtColor
+    c.colors.tabs.indicator.error = palette['red']
+    
+    ## Color gradient start for the tab indicator.
+    ## Type: QtColor
+    c.colors.tabs.indicator.start = palette['orange']
+    
+    ## Color gradient end for the tab indicator.
+    ## Type: QtColor
+    c.colors.tabs.indicator.stop = palette['green']
+    
+    ## Color gradient interpolation system for the tab indicator.
+    ## Type: ColorSystem
+    ## Valid values:
+    ##   - rgb: Interpolate in the RGB color system.
+    ##   - hsv: Interpolate in the HSV color system.
+    ##   - hsl: Interpolate in the HSL color system.
+    ##   - none: Don't show a gradient.
+    c.colors.tabs.indicator.system = 'none'
+    
+    ## Background color of unselected odd tabs.
+    ## Type: QtColor
+    c.colors.tabs.odd.bg = palette['selection']
+    
+    ## Foreground color of unselected odd tabs.
+    ## Type: QtColor
+    c.colors.tabs.odd.fg = palette['foreground']
+    
+    # ## Background color of selected even tabs.
+    # ## Type: QtColor
+    c.colors.tabs.selected.even.bg = palette['background']
+    
+    # ## Foreground color of selected even tabs.
+    # ## Type: QtColor
+    c.colors.tabs.selected.even.fg = palette['foreground']
+    
+    # ## Background color of selected odd tabs.
+    # ## Type: QtColor
+    c.colors.tabs.selected.odd.bg = palette['background']
+    
+    # ## Foreground color of selected odd tabs.
+    # ## Type: QtColor
+    c.colors.tabs.selected.odd.fg = palette['foreground']
+    
+    ## Tab padding
+    c.tabs.padding = padding
+    c.tabs.indicator.width = 1
+    c.tabs.favicons.scale = 1
+
+    # Dark mode
+    #c.colors.webpage.darkmode.enabled = True
+    #c.colors.webpage.darkmode.algorithm = "lightness-hsl"
+    c.colors.webpage.bg = "#282a36"
+    c.content.user_stylesheets = "css/darculized-all-sites.css"
+
+c = blood(c)
diff --git a/.config/shell/aliasrc b/.config/shell/aliasrc
new file mode 100644 (file)
index 0000000..0bc3d68
--- /dev/null
@@ -0,0 +1,9 @@
+#!/bin/sh
+
+alias \
+       ref="shortcuts >/dev/null; source ${XDG_CONFIG_HOME:-$HOME/.config}/shortcutrc ; source ${XDG_CONFIG_HOME:-$HOME/.config}/zshnameddirrc" \
+       weath="less -S ${XDG_DATA_HOME:-$HOME/.local/share}/weatherreport" \
+       # tmux="tmux -f ${XDG_CONFIG_HOME:-$HOME/.config}/tmux/tmux.conf" \
+        yarn="yarn --use-yarnrc $XDG_CONFIG_HOME/yarn/config" \
+        config="/usr/bin/git --git-dir=$HOME/dev/dot --work-tree=$HOME"
+
diff --git a/.config/shell/bm-dirs b/.config/shell/bm-dirs
new file mode 100644 (file)
index 0000000..b3807cd
--- /dev/null
@@ -0,0 +1,13 @@
+# You can add comments to these files with #
+cac ${XDG_CACHE_HOME:-$HOME/.cache}
+cf  ${XDG_CONFIG_HOME:-$HOME/.config}
+D   ${XDG_DOWNLOAD_DIR:-$HOME/Downloads}
+d   ${XDG_DOCUMENTS_DIR:-$HOME/Documents}
+dt  ${XDG_DATA_HOME:-$HOME/.local/share}
+h   $HOME
+m   ${XDG_MUSIC_DIR:-$HOME/Music}
+mn  /mnt
+pp  ${XDG_PICTURES_DIR:-$HOME/Pictures}
+sc  $HOME/.local/bin
+src $HOME/.local/src
+vv  ${XDG_VIDEOS_DIR:-$HOME/Videos}
diff --git a/.config/shell/bm-files b/.config/shell/bm-files
new file mode 100644 (file)
index 0000000..7acbb66
--- /dev/null
@@ -0,0 +1,23 @@
+# These files automatically update when edited/saved in vim:
+
+# keys filename                                description
+bf     ${XDG_CONFIG_HOME:-$HOME/.config}/shell/bm-files        # This file, a list of bookmarked files
+bd     ${XDG_CONFIG_HOME:-$HOME/.config}/shell/bm-dirs         # A list of bookmarked directories similar to this file
+cfx    ${XDG_CONFIG_HOME:-$HOME/.config}/x11/xresources        # Colors, themes and variables for X11
+cfb    ~/.local/src/dwmblocks/config.h                         # dwmblocks: the status bar for dwm
+
+
+# These do not update automatically, but on the next new instance of a program:
+
+cfv    ${XDG_CONFIG_HOME:-$HOME/.config}/nvim/init.vim         # vim/neovim config
+cfz    $ZDOTDIR/.zshrc                                         # zsh (shell) config
+cfa    ${XDG_CONFIG_HOME:-$HOME/.config}/shell/aliasrc         # aliases used by zsh (and potentially other shells)
+cfp    ${XDG_CONFIG_HOME:-$HOME/.config}/shell/profile         # profile file for login settings for zsh
+cfm    ${XDG_CONFIG_HOME:-$HOME/.config}/mutt/muttrc           # mutt (email client) config
+cfn    ${XDG_CONFIG_HOME:-$HOME/.config}/newsboat/config       # newsboat (RSS reader)
+cfu    ${XDG_CONFIG_HOME:-$HOME/.config}/newsboat/urls         # RSS urls for newsboat
+cfmb   ${XDG_CONFIG_HOME:-$HOME/.config}/ncmpcpp/bindings      # ncmpcpp (music player) keybinds file
+cfmc   ${XDG_CONFIG_HOME:-$HOME/.config}/ncmpcpp/config        # ncmpcpp (music player) config
+cfl    ${XDG_CONFIG_HOME:-$HOME/.config}/lf/lfrc               # lf (file browser) config
+cfL    ${XDG_CONFIG_HOME:-$HOME/.config}/lf/scope              # lf's scope/preview file
+cfX    ${XDG_CONFIG_HOME:-$HOME/.config}/sxiv/exec/key-handler # sxiv (image viewer) key/script handler
diff --git a/.config/shell/env b/.config/shell/env
new file mode 100644 (file)
index 0000000..085eb85
--- /dev/null
@@ -0,0 +1,70 @@
+#!/bin/sh
+
+# Here we set env variables
+export XDG_CONFIG_HOME="$HOME"/.config
+export XDG_DATA_HOME="$HOME"/.local/share
+export XDG_CACHE_HOME="$HOME"/.cache
+
+# Default programs
+export EDITOR="vim"
+export VISUAL="vim"
+export TERMINAL="alacritty"
+export BROWSER="qutebrowser"
+export READER="zathura"
+
+# Zsh related
+ZDOTDIR="$XDG_CONFIG_HOME"/zsh
+HISTFILE="$XDG_CACHE_HOME"/zshhistory
+HISTSIZE=10000
+SAVEHIST=10000
+
+# Go related
+export GOPATH="$XDG_DATA_HOME"/go
+
+# NPM
+export NPM_CONFIG_USERCONFIG="$XDG_CONFIG_HOME"/npm/npmrc
+# export NPM_PATH="$XDG_DATA_HOME/node_modules"
+# export NPM_BIN="$NPM_PATH/bin"
+# export NPM_CONFIG_PREFIX="$XDG_DATA_HOME/node_modules"
+
+# Node related
+export NODE_REPL_HISTORY="XDG_DATA_HOME"/node_repl_history
+
+# Rust related
+export CARGO_HOME="$XDG_DATA_HOME"/cargo
+export RUSTUP_HOME="$XDG_DATA_HOME"/rustup
+
+# PostgreSQL
+export PSQLRC="$XDG_CONFIG_HOME"/pg/psqlrc
+export PSQL_HISTORY="$XDG_CACHE_HOME"/pg/psql_history
+export PGPASSFILE="$XDG_CONFIG_HOME"/pg/pgpass
+export PGSERVICEFILE="XDG_CONFIG_HOME"/pg/pg_service.conf
+
+# Other programs
+export DOCKER_CONFIG="$XDG_CONFIG_HOME"/docker
+export LESSHISTFILE=-
+export PASSWORD_STORE_DIR="$XDG_DATA_HOME"/pass
+export WGETRC="$XDG_CONFIG_HOME"/wgetrc
+
+# PATH
+typeset -U PATH path
+PATH="$PATH:$HOME/.local/bin"
+PATH="$PATH:$CARGO_HOME/bin"
+PATH="$PATH:$XDG_DATA_HOME/npm/bin"
+PATH="$PATH:$(du "$HOME/.local/bin" | cut -f2 | paste -sd ':' -)"
+export PATH
+
+[ ! -f ${XDG_CONFIG_HOME:-$HOME/.config}/shell/shortcutrc ] && shortcuts >/dev/null 2>&1 &
+
+if pacman -Qs libxft-bgra >/dev/null 2>&1; then
+       # Start graphical server on user's current tty if not already running.
+       [ "$(tty)" = "/dev/tty1" ] && ! pidof -s Xorg >/dev/null 2>&1 && exec startx
+else
+       echo "\033[31mIMPORTANT\033[0m: Note that \033[32m\`libxft-bgra\`\033[0m must be installed for this build of dwm.
+Please run:
+       \033[32myay -S libxft-bgra-git\033[0m
+and replace \`libxft\`. Afterwards, you may start the graphical server by running \`startx\`."
+fi
+
+# Switch escape and caps if tty and no passwd required:
+sudo -n loadkeys ${XDG_DATA_HOME:-$HOME/.local/share}/larbs/ttymaps.kmap 2>/dev/null
diff --git a/.config/shell/inputrc b/.config/shell/inputrc
new file mode 100644 (file)
index 0000000..f9b94dd
--- /dev/null
@@ -0,0 +1,19 @@
+$include /etc/inputrc
+set editing-mode vi
+$if mode=vi
+
+set show-mode-in-prompt on
+set vi-ins-mode-string \1\e[6 q\2
+set vi-cmd-mode-string \1\e[2 q\2
+
+set keymap vi-command
+# these are for vi-command mode
+Control-l: clear-screen
+Control-a: beginning-of-line
+
+set keymap vi-insert
+# these are for vi-insert mode
+Control-l: clear-screen
+Control-a: beginning-of-line
+
+$endif
diff --git a/.config/shell/profile b/.config/shell/profile
new file mode 100644 (file)
index 0000000..be47866
--- /dev/null
@@ -0,0 +1,106 @@
+#!/bin/zsh
+
+# Here we set env variables
+export XDG_CONFIG_HOME="$HOME"/.config
+export XDG_DATA_HOME="$HOME"/.local/share
+export XDG_CACHE_HOME="$HOME"/.cache
+
+# Default programs
+export EDITOR="vim"
+export VISUAL="vim"
+export TERMINAL="st"
+export BROWSER="qutebrowser"
+export READER="zathura"
+
+# Zsh related
+ZDOTDIR="$XDG_CONFIG_HOME"/zsh
+HISTFILE="$XDG_CACHE_HOME"/zshhistory
+HISTSIZE=10000
+SAVEHIST=10000
+
+# Go related
+export GOPATH="$XDG_DATA_HOME"/go
+
+# NPM
+export NPM_CONFIG_USERCONFIG="$XDG_CONFIG_HOME"/npm/npmrc
+# export NPM_PATH="$XDG_DATA_HOME/node_modules"
+# export NPM_BIN="$NPM_PATH/bin"
+# export NPM_CONFIG_PREFIX="$XDG_DATA_HOME/node_modules"
+
+# Node related
+export NODE_REPL_HISTORY="XDG_DATA_HOME"/node_repl_history
+
+# Rust related
+export CARGO_HOME="$XDG_DATA_HOME"/cargo
+export RUSTUP_HOME="$XDG_DATA_HOME"/rustup
+
+# PostgreSQL
+export PSQLRC="$XDG_CONFIG_HOME"/pg/psqlrc
+export PSQL_HISTORY="$XDG_CACHE_HOME"/pg/psql_history
+export PGPASSFILE="$XDG_CONFIG_HOME"/pg/pgpass
+export PGSERVICEFILE="XDG_CONFIG_HOME"/pg/pg_service.conf
+
+# Other programs
+export DOCKER_CONFIG="$XDG_CONFIG_HOME"/docker
+export LESSHISTFILE=-
+export PASSWORD_STORE_DIR="$XDG_DATA_HOME"/pass
+export WGETRC="$XDG_CONFIG_HOME"/wgetrc
+export MBSYNCRC="${XDG_CONFIG_HOME:-$HOME/.config}/mbsync/config"
+export ELECTRUMDIR="${XDG_DATA_HOME:-$HOME/.local/share}/electrum"
+export SUDO_ASKPASS="$HOME/.local/bin/dmenupass"
+export GTK2_RC_FILES="${XDG_CONFIG_HOME:-$HOME/.config}/gtk-2.0/gtkrc-2.0"
+export ANDROID_SDK_HOME="${XDG_CONFIG_HOME:-$HOME/.config}/android"
+export WINEPREFIX="${XDG_DATA_HOME:-$HOME/.local/share}/wineprefixes/default"
+export KODI_DATA="${XDG_DATA_HOME:-$HOME/.local/share}/kodi"
+
+# export GNUPGHOME="${XDG_DATA_HOME:-$HOME/.local/share}/gnupg"
+
+# # PATH
+# typeset -U PATH path
+# PATH="$PATH:$HOME/.local/bin"
+# PATH="$PATH:$CARGO_HOME/bin"
+# PATH="$PATH:$XDG_DATA_HOME/npm/bin"
+# PATH="$PATH:$(du "$HOME/.local/bin" | cut -f2 | paste -sd ':' -)"
+
+# Append "$1" to $PATH when not already in.
+# This function API is accessible to scripts in /etc/profile.d
+append_path () {
+    case ":$PATH:" in
+        *:"$1":*)
+            ;;
+        *)
+            PATH="${PATH:+$PATH:}$1"
+    esac
+}
+#
+# Append our paths
+append_path '$CARGO_HOME/bin'
+append_path '$XDG_DATA_HOME/npm/bin'
+append_path '${$(find ~/.local/bin -type d -printf %p:)%%:}'
+
+export PATH
+
+unset -f append_path
+
+# If you don't plan on reverting to bash, you can remove the link in ~/.profile
+# to clean up.
+
+export SSH_AUTH_SOCK=$(gpgconf --list-dirs agent-ssh-socket)
+gpgconf --launch gpg-agent
+
+
+[ ! -f ${XDG_CONFIG_HOME:-$HOME/.config}/shell/shortcutrc ] && shortcuts >/dev/null 2>&1 &
+
+if pacman -Qs libxft-bgra >/dev/null 2>&1; then
+       # Start graphical server on user's current tty if not already running.
+       [ "$(tty)" = "/dev/tty1" ] && ! pidof -s Xorg >/dev/null 2>&1 && exec startx
+else
+       echo "\033[31mIMPORTANT\033[0m: Note that \033[32m\`libxft-bgra\`\033[0m must be installed for this build of dwm.
+Please run:
+       \033[32myay -S libxft-bgra-git\033[0m
+and replace \`libxft\`. Afterwards, you may start the graphical server by running \`startx\`."
+fi
+
+# Switch escape and caps if tty and no passwd required:
+# sudo -n loadkeys ${XDG_DATA_HOME:-$HOME/.local/share}/larbs/ttymaps.kmap 2>/dev/null
+echo "Hello from profile"
diff --git a/.config/shell/shortcutrc b/.config/shell/shortcutrc
new file mode 100644 (file)
index 0000000..397ebf1
--- /dev/null
@@ -0,0 +1,29 @@
+# vim: filetype=sh
+alias cac="cd /home/ma/.cache && ls -a" \
+cf="cd /home/ma/.config && ls -a" \
+D="cd /home/ma/Downloads && ls -a" \
+d="cd /home/ma/Documents && ls -a" \
+dt="cd /home/ma/.local/share && ls -a" \
+h="cd /home/ma && ls -a" \
+m="cd /home/ma/Music && ls -a" \
+mn="cd /mnt && ls -a" \
+pp="cd /home/ma/Pictures && ls -a" \
+sc="cd /home/ma/.local/bin && ls -a" \
+src="cd /home/ma/.local/src && ls -a" \
+vv="cd /home/ma/Videos && ls -a" \
+bf="$EDITOR /home/ma/.config/shell/bm-files" \
+bd="$EDITOR /home/ma/.config/shell/bm-dirs" \
+cfx="$EDITOR /home/ma/.config/x11/xresources" \
+cfb="$EDITOR ~/.local/src/dwmblocks/config.h" \
+cfv="$EDITOR /home/ma/.config/nvim/init.vim" \
+cfz="$EDITOR /.zshrc" \
+cfa="$EDITOR /home/ma/.config/shell/aliasrc" \
+cfp="$EDITOR /home/ma/.config/shell/profile" \
+cfm="$EDITOR /home/ma/.config/mutt/muttrc" \
+cfn="$EDITOR /home/ma/.config/newsboat/config" \
+cfu="$EDITOR /home/ma/.config/newsboat/urls" \
+cfmb="$EDITOR /home/ma/.config/ncmpcpp/bindings" \
+cfmc="$EDITOR /home/ma/.config/ncmpcpp/config" \
+cfl="$EDITOR /home/ma/.config/lf/lfrc" \
+cfL="$EDITOR /home/ma/.config/lf/scope" \
+cfX="$EDITOR /home/ma/.config/sxiv/exec/key-handler" \
diff --git a/.config/shell/zshnameddirrc b/.config/shell/zshnameddirrc
new file mode 100644 (file)
index 0000000..483e4f7
--- /dev/null
@@ -0,0 +1,12 @@
+hash -d cac=/home/ma/.cache 
+hash -d cf=/home/ma/.config 
+hash -d D=/home/ma/Downloads 
+hash -d d=/home/ma/Documents 
+hash -d dt=/home/ma/.local/share 
+hash -d h=/home/ma 
+hash -d m=/home/ma/Music 
+hash -d mn=/mnt 
+hash -d pp=/home/ma/Pictures 
+hash -d sc=/home/ma/.local/bin 
+hash -d src=/home/ma/.local/src 
+hash -d vv=/home/ma/Videos 
diff --git a/.config/user-dirs.dirs b/.config/user-dirs.dirs
new file mode 100644 (file)
index 0000000..5a28707
--- /dev/null
@@ -0,0 +1 @@
+XDG_DESKTOP_DIR="$HOME/"
diff --git a/.config/wal/colorschemes/dark/dracula.json b/.config/wal/colorschemes/dark/dracula.json
new file mode 100644 (file)
index 0000000..4382f47
--- /dev/null
@@ -0,0 +1,25 @@
+{
+  "special": {
+    "background": "#282A36",
+    "foreground": "#F8F8F2",
+    "cursor": "#F8F8F2"
+  },
+  "colors": {
+    "color0": "#21222C",
+    "color1": "#FF5555",
+    "color2": "#50FA7B",
+    "color3": "#F1FA8C",
+    "color4": "#BD93F9",
+    "color5": "#FF79C6",
+    "color6": "#8BE9FD",
+    "color7": "#F8F8F2",
+    "color8": "#6272A4",
+    "color9": "#FF6E6E",
+    "color10": "#69FF94",
+    "color11": "#FFFFA5",
+    "color12": "#D6ACFF",
+    "color13": "#FF92DF",
+    "color14": "#A4FFFF",
+    "color15": "#FFFFFF"
+  }
+}
diff --git a/.config/wal/postrun b/.config/wal/postrun
new file mode 100755 (executable)
index 0000000..bc39604
--- /dev/null
@@ -0,0 +1,28 @@
+#!/bin/bash
+
+source "${HOME}/.cache/wal/colors.sh"
+
+mkdir -p  "${HOME}/.config/dunst"
+mkdir -p  "${HOME}/.config/zathura"
+ln -sf    "${HOME}/.cache/wal/dunstrc"    "${HOME}/.config/dunst/dunstrc"
+ln -sf    "${HOME}/.cache/wal/zathurarc"    "${HOME}/.config/zathura/zathurarc"
+echo "set recolor \"true\"" >> "${HOME}/.config/zathura/zathurarc"
+
+fix_sequences() {
+        e=$'\e'
+        sequences=$(cat)
+        foreground_color="$(echo -e "${sequences}\c" | grep --color=never -Eo "${e}]10[^${e}\\\\]*?${e}\\\\" | grep --color=never -Eo "#[0-9A-Fa-f]{6}")"
+        background_color="$(echo -e "${sequences}\c" | grep --color=never -Eo "${e}]11[^${e}\\\\]*?${e}\\\\" | grep --color=never -Eo "#[0-9A-Fa-f]{6}")"
+        cursor_color="$(echo -e "${sequences}\c" | grep --color=never -Eo "${e}]12[^${e}\\\\]*?${e}\\\\" | grep --color=never -Eo "#[0-9A-Fa-f]{6}")"
+
+for term in /dev/pts/{0..9}*
+do
+echo -e "\e]4;256;${cursor_color}\a\c" > "${term}" 2>/dev/null
+echo -e "\e]4;258;${background_color}\a\c" > "${term}" 2>/dev/null
+echo -e "\e]4;259;${foreground_color}\a\c" > "${term}" 2>/dev/null
+done
+}
+
+fix_sequences <"${HOME}/.cache/wal/sequences"
+
+pkill dunst; dunst &
diff --git a/.config/wal/templates/dunstrc b/.config/wal/templates/dunstrc
new file mode 100644 (file)
index 0000000..9a62500
--- /dev/null
@@ -0,0 +1,152 @@
+[global]
+    monitor = 0
+    follow = keyboard
+    geometry = "350x5-0+24"
+    indicate_hidden = yes
+    shrink = yes
+    transparency = 20
+    notification_height = 0
+    separator_height = 2
+    padding = 0
+    horizontal_padding = 8
+    frame_width = 3
+    frame_color = "{color4}"
+
+    # Define a color for the separator.
+    # possible values are:
+    #  * auto: dunst tries to find a color fitting to the background;
+    #  * foreground: use the same color as the foreground;
+    #  * frame: use the same color as the frame;
+    #  * anything else will be interpreted as a X color.
+    separator_color = frame
+
+    # Sort messages by urgency.
+    sort = yes
+
+    idle_threshold = 120
+    font = Monospace 14
+    line_height = 0
+    markup = full
+
+    # The format of the message.  Possible variables are:
+    #   %a  appname
+    #   %s  summary
+    #   %b  body
+    #   %i  iconname (including its path)
+    #   %I  iconname (without its path)
+    #   %p  progress value if set ([  0%] to [100%]) or nothing
+    #   %n  progress value if set without any extra characters
+    #   %%  Literal %
+    # Markup is allowed
+    format = "<b>%s</b>\n%b"
+
+    alignment = left
+    show_age_threshold = 60
+    word_wrap = yes
+    ellipsize = middle
+    ignore_newline = no
+    stack_duplicates = true
+    hide_duplicate_count = true
+    show_indicators = yes
+    icon_position = left
+    max_icon_size = 40
+    #icon_path = /usr/share/icons/gnome/16x16/status/:/usr/share/icons/gnome/16x16/devices/:/usr/share/icons/Adwaita/256x256/status/
+    sticky_history = yes
+    history_length = 20
+    dmenu = /usr/bin/dmenu -p dunst:
+    browser = /usr/bin/firefox -new-tab
+
+    # Always run rule-defined scripts, even if the notification is suppressed
+    always_run_script = true
+
+    title = Dunst
+    class = Dunst
+    startup_notification = false
+    force_xinerama = false
+[experimental]
+    per_monitor_dpi = false
+
+[shortcuts]
+    close = ctrl+space
+    close_all = ctrl+shift+space
+    history = ctrl+grave
+    context = ctrl+shift+period
+
+[urgency_low]
+    # IMPORTANT: colors have to be defined in quotation marks.
+    # Otherwise the "#" and following would be interpreted as a comment.
+    background = "{background}"
+    foreground = "{foreground}"
+    timeout = 5
+    # Icon for notifications with low urgency, uncomment to enable
+    #icon = /path/to/icon
+
+[urgency_normal]
+    background = "{background}"
+    foreground = "{foreground}"
+    timeout = 5
+
+[urgency_critical]
+    background = "{background}"
+    foreground = "{foreground}"
+    frame_color = "#fabd2f"
+    timeout = 0
+
+# Every section that isn't one of the above is interpreted as a rules to
+# override settings for certain messages.
+# Messages can be matched by "appname", "summary", "body", "icon", "category",
+# "msg_urgency" and you can override the "timeout", "urgency", "foreground",
+# "background", "new_icon" and "format".
+# Shell-like globbing will get expanded.
+#
+# SCRIPTING
+# You can specify a script that gets run when the rule matches by
+# setting the "script" option.
+# The script will be called as follows:
+#   script appname summary body icon urgency
+# where urgency can be "LOW", "NORMAL" or "CRITICAL".
+#
+# NOTE: if you don't want a notification to be displayed, set the format
+# to "".
+# NOTE: It might be helpful to run dunst -print in a terminal in order
+# to find fitting options for rules.
+
+#[espeak]
+#    summary = "*"
+#    script = dunst_espeak.sh
+
+#[script-test]
+#    summary = "*script*"
+#    script = dunst_test.sh
+
+#[ignore]
+#    # This notification will not be displayed
+#    summary = "foobar"
+#    format = ""
+
+#[history-ignore]
+#    # This notification will not be saved in history
+#    summary = "foobar"
+#    history_ignore = yes
+
+#[signed_on]
+#    appname = Pidgin
+#    summary = "*signed on*"
+#    urgency = low
+#
+#[signed_off]
+#    appname = Pidgin
+#    summary = *signed off*
+#    urgency = low
+#
+#[says]
+#    appname = Pidgin
+#    summary = *says*
+#    urgency = critical
+#
+#[twitter]
+#    appname = Pidgin
+#    summary = *twitter.com*
+#    urgency = normal
+#
+# vim: ft=cfg
diff --git a/.config/wal/templates/zathurarc b/.config/wal/templates/zathurarc
new file mode 100644 (file)
index 0000000..242bf9a
--- /dev/null
@@ -0,0 +1,34 @@
+set sandbox none
+set statusbar-h-padding 0
+set statusbar-v-padding 0
+set page-padding 1
+map u scroll half-up
+map d scroll half-down
+map D toggle_page_mode
+map r reload
+map R rotate
+map K zoom in
+map J zoom out
+map i recolor
+map p print
+
+set default-bg                     "{background}"
+set default-fg                     "{foreground}"
+set statusbar-bg                   "{background}"
+set statusbar-fg                   "{foreground}"
+set inputbar-bg                    "{background}"
+set inputbar-fg                    "{foreground}"
+set notification-bg                "{background}"
+set notification-fg                "{foreground}"
+set notification-error-bg          "{background}"
+set notification-error-fg          "{foreground}"
+set notification-warning-bg        "{background}"
+set notification-warning-fg        "{foreground}"
+set highlight-color                "{color3}"
+set highlight-active-color         "{color4}"
+set completion-bg                  "{color3}"
+set completion-fg                  "{color4}"
+set completion-highlight-bg        "{color3}"
+set completion-highlight-fg        "{color4}"
+set recolor-lightcolor             "{background}"
+set recolor-darkcolor              "{foreground}"
diff --git a/.config/wget/wgetrc b/.config/wget/wgetrc
new file mode 100644 (file)
index 0000000..4fd7999
--- /dev/null
@@ -0,0 +1 @@
+hsts-file=~/.cache/wget-hsts
diff --git a/.config/x11/xinitrc b/.config/x11/xinitrc
new file mode 100755 (executable)
index 0000000..2debc01
--- /dev/null
@@ -0,0 +1,17 @@
+#!/bin/sh
+
+# xinitrc runs automatically when you run startx.
+
+# There are some small but important commands that need to be run when we start
+# the graphical environment. There is a link to this file in ~/.xprofile
+# because that file is run automatically if someone uses a display manager
+# (login screen) and so they are needed there. To prevent doubling up commands,
+# I source them here with the line below.
+
+if [ -f "${XDG_CONFIG_HOME:-$HOME/.config}/x11/xprofile" ]; then
+       . "${XDG_CONFIG_HOME:-$HOME/.config}/x11/xprofile"
+else
+       . "$HOME/.xprofile"
+fi
+
+ssh-agent dwm
diff --git a/.config/x11/xprofile b/.config/x11/xprofile
new file mode 100755 (executable)
index 0000000..eb62d72
--- /dev/null
@@ -0,0 +1,21 @@
+#!/bin/sh
+
+# This file runs when a DM logs you into a graphical session.
+# If you use startx/xinit like a Chad, this file will also be sourced.
+
+setbg &         # set the background with the `setbg` script
+#xrdb -load ${XDG_CONFIG_HOME:-$HOME/.config}/x11/xresources &    # Uncomment to use Xresources colors/settings on startup
+mpd &           # music player daemon-you might prefer it as a service though
+remaps &        # run the remaps script, switching caps/esc and more; check it for more info
+xcompmgr &      # xcompmgr for transparency
+dunst &         # dunst for notifications
+xset r rate 300 50 &    # Speed xrate up
+unclutter &     # Remove mouse when idle
+# clight &
+
+# This line autostarts an instance of Pulseaudio that does not exit on idle.
+# This is "necessary" on Artix due to a current bug between PA and
+# Chromium-based browsers where they fail to start PA and use dummy output.
+pidof -s runit &&
+    ! pidof -s pulseaudio >/dev/null 2>&1 &&
+    setsid -f pulseaudio --start --exit-idle-time=-1 >/dev/null 2>&1
diff --git a/.config/x11/xresources b/.config/x11/xresources
new file mode 100644 (file)
index 0000000..611f39a
--- /dev/null
@@ -0,0 +1,156 @@
+!! Transparency (0-1):
+*.alpha: 0.8
+
+!! Set a default font and font size as below:
+*.font: monospace:size=10
+
+/* name                dark    light */
+/* black       0       8 */
+/* red         1       9 */
+/* green       2       10 */
+/* yellow      3       11 */
+/* blue                4       12 */
+/* purple      5       13 */
+/* cyan                6       14 */
+/* white       7       15 */
+
+/* !! gruvbox: */
+/* *.color0: #1d2021 */
+/* *.color1: #cc241d */
+/* *.color2: #98971a */
+/* *.color3: #d79921 */
+/* *.color4: #458588 */
+/* *.color5: #b16286 */
+/* *.color6: #689d6a */
+/* *.color7: #a89984 */
+/* *.color8: #928374 */
+/* *.color9: #fb4934 */
+/* *.color10: #b8bb26 */
+/* *.color11: #fabd2f */
+/* *.color12: #83a598 */
+/* *.color13: #d3869b */
+/* *.color14: #8ec07c */
+/* *.color15: #ebdbb2 */
+/* *.color256: #1d2021 */
+/* *.color257: #ebdbb2 */
+
+/* !! gruvbox light: */
+/* *.color0: #fbf1c7 */
+/* *.color1: #cc241d */
+/* *.color2: #98971a */
+/* *.color3: #d79921 */
+/* *.color4: #458588 */
+/* *.color5: #b16286 */
+/* *.color6: #689d6a */
+/* *.color7: #7c6f64 */
+/* *.color8: #928374 */
+/* *.color9: #9d0006 */
+/* *.color10: #79740e */
+/* *.color11: #b57614 */
+/* *.color12: #076678 */
+/* *.color13: #8f3f71 */
+/* *.color14: #427b58 */
+/* *.color15: #3c3836 */
+/* *.background: #fbf1c7 */
+/* *.foreground: #282828 */
+/* st.alpha: 0.9 */
+
+/* !! brogrammer: */
+/* *.foreground:  #d6dbe5 */
+/* *.background:  #131313 */
+/* *.color0:      #1f1f1f */
+/* *.color8:      #d6dbe5 */
+/* *.color1:      #f81118 */
+/* *.color9:      #de352e */
+/* *.color2:      #2dc55e */
+/* *.color10:     #1dd361 */
+/* *.color3:      #ecba0f */
+/* *.color11:     #f3bd09 */
+/* *.color4:      #2a84d2 */
+/* *.color12:     #1081d6 */
+/* *.color5:      #4e5ab7 */
+/* *.color13:     #5350b9 */
+/* *.color6:      #1081d6 */
+/* *.color14:     #0f7ddb */
+/* *.color7:      #d6dbe5 */
+/* *.color15:     #ffffff */
+/* *.colorBD:     #d6dbe5 */
+
+/* ! base16 */
+/* *.color0:       #181818 */
+/* *.color1:       #ab4642 */
+/* *.color2:       #a1b56c */
+/* *.color3:       #f7ca88 */
+/* *.color4:       #7cafc2 */
+/* *.color5:       #ba8baf */
+/* *.color6:       #86c1b9 */
+/* *.color7:       #d8d8d8 */
+/* *.color8:       #585858 */
+/* *.color9:       #ab4642 */
+/* *.color10:      #a1b56c */
+/* *.color11:      #f7ca88 */
+/* *.color12:      #7cafc2 */
+/* *.color13:      #ba8baf */
+/* *.color14:      #86c1b9 */
+/* *.color15:      #f8f8f8 */
+
+/* !! solarized */
+/* *.color0:   #073642 */
+/* *.color1:   #dc322f */
+/* *.color2:   #859900 */
+/* *.color3:   #b58900 */
+/* *.color4:   #268bd2 */
+/* *.color5:   #d33682 */
+/* *.color6:   #2aa198 */
+/* *.color7:   #eee8d5 */
+/* *.color9:   #cb4b16 */
+/* *.color8:   #fdf6e3 */
+/* *.color10:  #586e75 */
+/* *.color11:  #657b83 */
+/* *.color12:  #839496 */
+/* *.color13:  #6c71c4 */
+/* *.color14:  #93a1a1 */
+/* *.color15:  #fdf6e3 */
+
+/* !! xterm */
+/* *.color0:   #000000 */
+/* *.color1:   #cd0000 */
+/* *.color2:   #00cd00 */
+/* *.color3:   #cdcd00 */
+/* *.color4:   #0000cd */
+/* *.color5:   #cd00cd */
+/* *.color6:   #00cdcd */
+/* *.color7:   #e5e5e5 */
+/* *.color8:   #4d4d4d */
+/* *.color9:   #ff0000 */
+/* *.color10:  #00ff00 */
+/* *.color11:  #ffff00 */
+/* *.color12:  #0000ff */
+/* *.color13:  #ff00ff */
+/* *.color14:  #00ffff */
+/* *.color15:  #aabac8 */
+/* *.background:   #000000 */
+
+/* ! Dracula Xresources palette */
+/* *.foreground: #F8F8F2 */
+/* *.background: #282A36 */
+/* *.color0:     #000000 */
+/* *.color8:     #4D4D4D */
+/* *.color1:     #FF5555 */
+/* *.color9:     #FF6E67 */
+/* *.color2:     #50FA7B */
+/* *.color10:    #5AF78E */
+/* *.color3:     #F1FA8C */
+/* *.color11:    #F4F99D */
+/* *.color4:     #BD93F9 */
+/* *.color12:    #CAA9FA */
+/* *.color5:     #FF79C6 */
+/* *.color13:    #FF92D0 */
+/* *.color6:     #8BE9FD */
+/* *.color14:    #9AEDFE */
+/* *.color7:     #BFBFBF */
+/* *.color15:    #E6E6E6 */
+
+/* *.background: .color0 */
+/* *.color256: 0#1d2021 */
+/* *.color257: 15#ebdbb2 */
diff --git a/.config/zathura/zathurarc b/.config/zathura/zathurarc
new file mode 120000 (symlink)
index 0000000..5f01780
--- /dev/null
@@ -0,0 +1 @@
+/home/ma/.cache/wal/zathurarc
\ No newline at end of file
diff --git a/.xinitrc b/.xinitrc
new file mode 120000 (symlink)
index 0000000..518bb5d
--- /dev/null
+++ b/.xinitrc
@@ -0,0 +1 @@
+.config/x11/xinitrc
\ No newline at end of file
diff --git a/.xprofile b/.xprofile
new file mode 120000 (symlink)
index 0000000..61f87a7
--- /dev/null
+++ b/.xprofile
@@ -0,0 +1 @@
+.config/x11/xprofile
\ No newline at end of file
diff --git a/.zshenv b/.zshenv
new file mode 100644 (file)
index 0000000..b698cbf
--- /dev/null
+++ b/.zshenv
@@ -0,0 +1,4 @@
+#!/bin/sh
+
+ZDOTDIR="${HOME}/.config/zsh"
+. "${ZDOTDIR}/.zshenv"