aboutsummaryrefslogtreecommitdiff
path: root/.config
diff options
context:
space:
mode:
authorawy <awy@awy.one>2025-07-29 03:42:18 +0300
committerawy <awy@awy.one>2025-07-29 03:42:18 +0300
commitef6dff4cce15186a66ba34cdd7bd39958ebf7f58 (patch)
treefcfa61164ca6e79c900b5d11f6afc6b46aaccb84 /.config
downloadhyprdots-ef6dff4cce15186a66ba34cdd7bd39958ebf7f58.tar.gz
first commit
Diffstat (limited to '.config')
-rw-r--r--.config/btop/btop.conf6
-rw-r--r--.config/fontconfig/fonts.conf40
-rw-r--r--.config/foot/foot.ini21
-rw-r--r--.config/hypr/hyprland.conf224
-rw-r--r--.config/lazygit/config.yml11
-rw-r--r--.config/lazygit/themes.gitconfig667
-rw-r--r--.config/mako/config38
-rw-r--r--.config/mimeapps.list20
-rw-r--r--.config/mpd/mpd.conf19
-rw-r--r--.config/mpv/input.conf5
-rw-r--r--.config/mpv/mpv.conf8
-rw-r--r--.config/newsboat/config55
-rw-r--r--.config/nvim/init.lua20
-rw-r--r--.config/nvim/lua/plugins.lua2
-rw-r--r--.config/nvim/lua/plugins/completions.lua42
-rw-r--r--.config/nvim/lua/plugins/gitsigns.lua6
-rw-r--r--.config/nvim/lua/plugins/gruvbox.lua9
-rw-r--r--.config/nvim/lua/plugins/lsp-config.lua67
-rw-r--r--.config/nvim/lua/plugins/lualine.lua8
-rw-r--r--.config/nvim/lua/plugins/neotree.lua15
-rw-r--r--.config/nvim/lua/plugins/telescope.lua25
-rw-r--r--.config/nvim/lua/plugins/treesitter.lua31
-rw-r--r--.config/nvim/lua/plugins/trim.lua6
-rw-r--r--.config/nvim/lua/vim-options.lua10
-rw-r--r--.config/paru/paru.conf2
-rw-r--r--.config/pipewire/pipewire.conf.d/user-session.conf4
-rw-r--r--.config/python/pythonrc2
-rw-r--r--.config/rmpc/config.ron218
-rwxr-xr-x.config/rmpc/scripts/statusbar2
-rw-r--r--.config/rmpc/themes/def.ron238
-rw-r--r--.config/shell/aliasrc75
-rw-r--r--.config/shell/bm-dirs14
-rw-r--r--.config/shell/bm-files16
-rw-r--r--.config/shell/inputrc19
-rw-r--r--.config/shell/profile94
-rw-r--r--.config/swayidle/config3
-rw-r--r--.config/swayimg/config38
-rwxr-xr-x.config/swayimg/key-handler35
-rw-r--r--.config/swaylock/config1
-rw-r--r--.config/user-dirs.dirs1
l---------.config/waybar/config1
-rw-r--r--.config/waybar/config.json223
-rw-r--r--.config/waybar/style.css98
-rw-r--r--.config/wget/wgetrc1
-rw-r--r--.config/yazi/yazi.toml2
-rw-r--r--.config/zathura/zathurarc25
-rw-r--r--.config/zsh/.zshrc87
47 files changed, 2554 insertions, 0 deletions
diff --git a/.config/btop/btop.conf b/.config/btop/btop.conf
new file mode 100644
index 0000000..f54e85d
--- /dev/null
+++ b/.config/btop/btop.conf
@@ -0,0 +1,6 @@
+color_theme = "/usr/share/btop/themes/gruvbox_dark.theme"
+theme_background = False
+vim_keys = True
+rounded_corners = False
+shown_boxes = "cpu net proc mem gpu0"
+proc_sorting = "memory"
diff --git a/.config/fontconfig/fonts.conf b/.config/fontconfig/fonts.conf
new file mode 100644
index 0000000..7eb3159
--- /dev/null
+++ b/.config/fontconfig/fonts.conf
@@ -0,0 +1,40 @@
+<?xml version='1.0'?>
+<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
+<fontconfig>
+ <alias>
+ <family>serif</family>
+ <prefer>
+ <family>LiterationSerif Nerd Font Propo</family>
+ <family>Noto Color Emoji</family>
+ <family>FontAwesome</family>
+ <family>SymbolsNerdFont</family>
+ </prefer>
+ </alias>
+ <alias>
+ <family>sans-serif</family>
+ <prefer>
+ <family>LiterationSans Nerd Font Propo</family>
+ <family>Noto Color Emoji</family>
+ <family>FontAwesome</family>
+ <family>SymbolsNerdFont</family>
+ </prefer>
+ </alias>
+ <alias>
+ <family>sans</family>
+ <prefer>
+ <family>LiterationSans Nerd Font Propo</family>
+ <family>Noto Color Emoji</family>
+ <family>FontAwesome</family>
+ <family>SymbolsNerdFont</family>
+ </prefer>
+ </alias>
+ <alias>
+ <family>monospace</family>
+ <prefer>
+ <family>LiterationMono Nerd Font Propo</family>
+ <family>Noto Color Emoji</family>
+ <family>FontAwesome</family>
+ <family>SymbolsNerdFont</family>
+ </prefer>
+ </alias>
+</fontconfig>
diff --git a/.config/foot/foot.ini b/.config/foot/foot.ini
new file mode 100644
index 0000000..1f17ff0
--- /dev/null
+++ b/.config/foot/foot.ini
@@ -0,0 +1,21 @@
+include=/usr/share/foot/themes/gruvbox-dark
+font=monospace:size=14
+font-size-adjustment=3
+# dpi-aware=true
+
+[cursor]
+# style=beam
+
+[colors]
+alpha = 0.9
+
+[key-bindings]
+clipboard-copy=Mod1+c
+clipboard-paste=Mod1+v
+scrollback-up-line=Mod1+k
+scrollback-down-line=Mod1+j
+font-increase=Mod1+Shift+k
+font-decrease=Mod1+Shift+j
+font-reset=Mod1+0
+show-urls-launch=Mod1+l
+show-urls-copy=Mod1+y
diff --git a/.config/hypr/hyprland.conf b/.config/hypr/hyprland.conf
new file mode 100644
index 0000000..c381f97
--- /dev/null
+++ b/.config/hypr/hyprland.conf
@@ -0,0 +1,224 @@
+monitor = DP-3, 3840x2160@165, 0x0, 1.5, bitdepth, 10
+monitor = DP-2, 2560x1440@165, -2560x0, 1
+
+$terminal = footclient
+$menu = mew-run
+
+exec-once = dbus-update-activation-environment --all
+exec-once = start-pipewire
+exec-once = mpd
+exec-once = waybar
+exec-once = mako
+exec-once = singboxwrap
+exec-once = sleep 0.1 && randombg
+exec-once = gpg-agent --daemon
+exec-once = gnome-keyring-daemon --start --components=secrets
+
+env = XCURSOR_SIZE,24
+env = HYPRCURSOR_SIZE,24
+env = GBM_BACKEND,nvidia-drm
+env = GTK_THEME,Gruvbox-Material-Dark
+
+# ecosystem {
+# enforce_permissions = 1
+# }
+
+# permission = /usr/(bin|local/bin)/grim, screencopy, allow
+# permission = /usr/(lib|libexec|lib64)/xdg-desktop-portal-hyprland, screencopy, allow
+# permission = /usr/(bin|local/bin)/hyprpm, plugin, allow
+
+general {
+ gaps_in = 5, 10, 10, 5
+ gaps_out = 20, 10, 10, 20
+ border_size = 3
+ col.active_border = rgb(005577)
+ col.inactive_border = rgba(595959aa)
+ resize_on_border = false
+ allow_tearing = false
+ layout = dwindle
+}
+
+decoration {
+ rounding = 0
+ rounding_power = 2
+ active_opacity = 1.0
+ inactive_opacity = 1.0
+
+ shadow {
+ enabled = false
+ }
+
+ blur {
+ enabled = false
+ }
+}
+
+animations {
+ enabled = false
+}
+
+dwindle {
+ pseudotile = true
+ preserve_split = true
+}
+
+master {
+ new_status = master
+}
+
+misc {
+ force_default_wallpaper = 0
+ disable_hyprland_logo = true
+ enable_swallow = 1
+ swallow_regex = ^(footclient)$
+}
+
+experimental {
+ xx_color_management_v4 = true
+}
+
+xwayland {
+ enabled = true
+ force_zero_scaling = true
+}
+
+ecosystem {
+ no_update_news = true
+}
+
+cursor {
+ default_monitor = DP-3
+}
+
+input {
+ kb_layout = us,ru
+ kb_variant =
+ kb_model =
+ kb_options = caps:escape #,grp:alt_shift_toggle
+ kb_rules =
+
+ follow_mouse = 1
+
+ sensitivity = 0 # -1.0 - 1.0, 0 means no modification.
+ force_no_accel = 1
+ repeat_rate = 45
+ repeat_delay = 300
+
+ touchpad {
+ natural_scroll = false
+ }
+}
+
+gestures {
+ workspace_swipe = false
+}
+
+$mainMod = SUPER
+bind = $mainMod, Return, exec, $terminal
+bind = $mainMod, Q, killactive,
+bind = $mainMod, W, exec, firefox
+bind = $mainMod, R, exec, $terminal -e yazi
+bind = $mainMod SHIFT, D, exec, tessen
+bind = $mainMod, V, togglefloating,
+bind = $mainMod, D, exec, $menu
+bind = $mainMod, P, exec, mpc toggle
+bind = $mainMod, Grave, exec, bookmarks
+bind = $mainMod SHIFT, J, togglesplit, # dwindle
+bind = $mainMod, F, fullscreen,
+bind = $mainMod SHIFT, Return, swapnext
+bind = , Print, exec, grim pic-full-$(date '+%y%m%d-%H%M-%S').png
+bind = SHIFT, Print, exec, maimpick
+bind = $mainMod, Print, exec, dmenurecord
+bind = $mainMod SHIFT, Print, exec, dmenurecord kill
+bind = $mainMod, E, exec, $terminal neomutt; pkill -RTMIN+12 waybar
+bind = $mainMod SHIFT, N, exec, $terminal newsboat; pkill -RTMIN+6 waybar
+bind = $mainMod SHIFT, R, exec, $terminal -e btop
+bind = $mainMod, M, exec, $terminal -e rmpc
+bind =,XF86AudioPlay, exec, mpc toggle
+bind =,XF86AudioPrev, exec, mpc prev
+bind = $mainMod, comma, exec, mpc prev
+bind = $mainMod, period, exec, mpc next
+bind = $mainMod SHIFT, comma, exec, mpc seek 0%
+bind = $mainMod SHIFT, period, exec, mpc repeat
+bind =,XF86AudioNext, exec, mpc next
+bind = $mainMod, bracketleft, exec, mpc seek -10
+bind = $mainMod SHIFT, bracketleft, exec, mpc seek -60
+bind = $mainMod, bracketright, exec, mpc seek +10
+bind = $mainMod SHIFT, bracketright, exec, mpc seek +60
+bind =,mouse:276, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle && pkill -RTMIN+23 waybar
+bind = $mainMod, minus, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-; pkill -RTMIN+10 waybar
+bind = $mainMod SHIFT, minus, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 15%-; pkill -RTMIN+10 waybar
+bind = $mainMod, equal, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+; pkill -RTMIN+10 waybar
+bind = $mainMod SHIFT, equal, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 15%+; pkill -RTMIN+10 waybar
+bind = $mainMod SHIFT, M, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle; pkill -RTMIN+10 waybar
+
+bind = $mainMod, F1, exec, singboxwrap menu
+bind = $mainMod, F4, exec, $terminal -e pulsemixer; pkill -RTMIN+10 waybar; pkill -RTMIN+23 waybar
+bind = $mainMod, F6, exec, torwrap
+bind = $mainMod, F7, exec, td-toggle
+bind = $mainMod, F8, exec, mailup
+bind = $mainMod, F9, exec, mounter
+bind = $mainMod, F10, exec, unmounter
+
+bind = $mainMod SHIFT, Q, exec, sysact
+
+bind = $mainMod, L, resizeactive, 100 0
+bind = $mainMod, H, resizeactive, -100 0
+
+bind = $mainMod, J, cyclenext, prev
+bind = $mainMod, K, cyclenext
+
+bind = $mainMod, 1, workspace, 1
+bind = $mainMod, 2, workspace, 2
+bind = $mainMod, 3, workspace, 3
+bind = $mainMod, 4, workspace, 4
+bind = $mainMod, 5, workspace, 5
+bind = $mainMod, 6, workspace, 6
+bind = $mainMod, 7, workspace, 7
+bind = $mainMod, 8, workspace, 8
+bind = $mainMod, 9, workspace, 9
+bind = $mainMod, 0, workspace, 10
+
+bind = $mainMod SHIFT, 1, movetoworkspace, 1
+bind = $mainMod SHIFT, 2, movetoworkspace, 2
+bind = $mainMod SHIFT, 3, movetoworkspace, 3
+bind = $mainMod SHIFT, 4, movetoworkspace, 4
+bind = $mainMod SHIFT, 5, movetoworkspace, 5
+bind = $mainMod SHIFT, 6, movetoworkspace, 6
+bind = $mainMod SHIFT, 7, movetoworkspace, 7
+bind = $mainMod SHIFT, 8, movetoworkspace, 8
+bind = $mainMod SHIFT, 9, movetoworkspace, 9
+bind = $mainMod SHIFT, 0, movetoworkspace, 10
+
+bind = $mainMod, mouse_down, workspace, e+1
+bind = $mainMod, mouse_up, workspace, e-1
+
+bindm = $mainMod, mouse:272, movewindow
+bindm = $mainMod, mouse:273, resizewindow
+
+bindel = ,XF86AudioRaiseVolume, exec, wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+
+bindel = ,XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-
+bindel = ,XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
+bindel = ,XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle
+bindel = ,XF86MonBrightnessUp, exec, brightnessctl s 10%+
+bindel = ,XF86MonBrightnessDown, exec, brightnessctl s 10%-
+
+windowrule = suppressevent maximize, class:.*
+windowrule = nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0
+
+workspace = 1, monitor:DP-2
+workspace = 2, monitor:DP-2
+workspace = 3, monitor:DP-3
+workspace = 4, monitor:DP-3
+
+windowrulev2 = float, class:^(steam)$, title:^(Friends List)$
+windowrulev2 = float, class:^(steam)$, title:^(Steam - News)$
+windowrulev2 = float, class:^(steam)$, title:.* - Chat$
+windowrulev2 = float, class:^(steam)$, title:.* Settings$
+windowrulev2 = float, class:^(steam)$, title:.* - event started$
+windowrulev2 = float, class:^(steam)$, title:.* CD key$
+windowrulev2 = float, class:^(steam)$, title:^(Steam - Self Updater)$
+windowrulev2 = float, class:^(steam)$, title:^(Screenshot Uploader)$
+windowrulev2 = float, class:^(steam)$, title:^(Recordings & Screenshots)$
+windowrulev2 = float, class:^(steam)$, title:^(Steam Guard - Computer Authorization Required)$
+windowrulev2 = float, title:^(Steam Keyboard)$
diff --git a/.config/lazygit/config.yml b/.config/lazygit/config.yml
new file mode 100644
index 0000000..380f458
--- /dev/null
+++ b/.config/lazygit/config.yml
@@ -0,0 +1,11 @@
+git:
+ paging:
+ colorArg: always
+ pager: delta --dark --paging=never
+keybinding:
+ universal:
+ nextBlock-alt2: <disabled>
+ nextTab: <tab>
+ prevTab: <disabled>
+gui:
+ border: single
diff --git a/.config/lazygit/themes.gitconfig b/.config/lazygit/themes.gitconfig
new file mode 100644
index 0000000..d1b65e6
--- /dev/null
+++ b/.config/lazygit/themes.gitconfig
@@ -0,0 +1,667 @@
+# To use these themes, first include this file in your own gitconfig file:
+#
+# [include]
+# path = PATH/TO/delta/themes.gitconfig
+#
+# Then, in your own gitconfig file, activate the chosen theme, e.g.
+#
+# [delta]
+# features = kingfisher
+#
+# Please add your own themes to this file, and open a PR.
+#
+# Instructions:
+#
+# 1. The name of the theme must be the name of some sort of wild organism:
+# mammal, bird, plant, mollusk -- whatever. It can be in any language.
+#
+# 2. Use `delta --show-config` to list all the style settings that are active in
+# your current delta environment, but only include settings in your theme
+# that are essential to its appearance.
+#
+# 3. Include either `dark = true` or `light = true` according to whether it is
+# designed for a light or dark terminal background. (This marks a feature as
+# a "theme", causing it to be picked up by `delta --show-themes`).
+#
+# 4. Feel free to include a comment line indicating who is the author of the
+# theme. E.g. a link to your github user page.
+
+[delta "colibri"]
+ # author: https://github.com/pablospe
+ # Based on woolly-mammoth: https://github.com/Kr1ss-XD.
+ commit-decoration-style = 130 box
+ dark = true
+ file-decoration-style = "#606018" overline
+ file-added-label = [●]
+ file-copied-label = [C]
+ file-modified-label = [+]
+ file-removed-label = [⛌]
+ file-renamed-label = [→]
+ file-style = 232 bold 184
+ hunk-header-style = syntax bold italic 237
+ line-numbers = true
+ line-numbers-left-format = "{nm:>1}┊"
+ line-numbers-left-style = red
+ line-numbers-minus-style = red bold
+ line-numbers-plus-style = green bold
+ line-numbers-right-format = " {np:>1}┊"
+ line-numbers-right-style = green
+ line-numbers-zero-style = "#545474" italic
+ minus-emph-style = normal "#80002a"
+ minus-style = normal "#5e0000"
+ plus-emph-style = syntax bold "#007e5e"
+ plus-style = syntax "#003500"
+ syntax-theme = OneHalfDark
+ whitespace-error-style = "#80002a" reverse
+ zero-style = syntax
+ blame-format = "{author:<18} ({commit:>7}) ┊{timestamp:^16}┊ "
+
+[delta "collared-trogon"]
+ # author: https://github.com/clnoll
+ commit-decoration-style = bold box ul
+ dark = true
+ file-decoration-style = none
+ file-style = omit
+ hunk-header-decoration-style = "#022b45" box ul
+ hunk-header-file-style = "#999999"
+ hunk-header-line-number-style = bold "#003300"
+ hunk-header-style = file line-number syntax
+ line-numbers = true
+ line-numbers-left-style = "#022b45"
+ line-numbers-minus-style = "#80002a"
+ line-numbers-plus-style = "#003300"
+ line-numbers-right-style = "#022b45"
+ line-numbers-zero-style = "#999999"
+ minus-emph-style = normal "#80002a"
+ minus-style = normal "#330011"
+ plus-emph-style = syntax "#003300"
+ plus-style = syntax "#001a00"
+ syntax-theme = Nord
+
+[delta "coracias-caudatus"]
+ # author: https://github.com/clnoll
+ commit-decoration-style = ol "#7536ff"
+ commit-style = "#200078"
+ file-decoration-style = none
+ file-style = omit
+ hunk-header-decoration-style = "#cfd6ff" ul
+ hunk-header-file-style = "#858dff"
+ hunk-header-line-number-style = "#7536ff"
+ hunk-header-style = file line-number syntax
+ light = true
+ line-numbers = true
+ line-numbers-left-format = "{nm:>4} ."
+ line-numbers-left-style = "#e3ab02"
+ line-numbers-minus-style = "#ff38b6"
+ line-numbers-plus-style = "#00e0c2"
+ line-numbers-right-format = "{np:>4} "
+ line-numbers-right-style = white
+ line-numbers-zero-style = "#cccccc"
+ minus-emph-style = bold "#ff3838" "#ffe3f7"
+ minus-style = "#ff0080"
+ plus-emph-style = "#008a81" bold "#00ffbf"
+ plus-style = syntax "#cffff3"
+ syntax-theme = GitHub
+
+[delta "hoopoe"]
+ # author: https://github.com/dandavison
+ light = true
+ pink = "#ffe0e0"
+ dark-pink = "#ffc0c0"
+ green = "#d0ffd0"
+ dark-green = "#a0efa0"
+ dark-green-2 = "#067a00"
+ minus-style = normal hoopoe.pink
+ minus-emph-style = normal hoopoe.dark-pink
+ minus-non-emph-style = minus-style
+ plus-style = syntax hoopoe.green
+ plus-emph-style = syntax hoopoe.dark-green
+ plus-non-emph-style = plus-style
+ minus-empty-line-marker-style = minus-style
+ plus-empty-line-marker-style = plus-style
+ commit-decoration-style = blue ol
+ commit-style = raw
+ file-style = omit
+ hunk-header-decoration-style = blue box
+ hunk-header-file-style = red
+ hunk-header-line-number-style = hoopoe.dark-green-2
+ hunk-header-style = file line-number syntax
+ syntax-theme = GitHub
+ zero-style = syntax
+
+[delta "tangara-chilensis"]
+ # author: https://github.com/clnoll
+ commit-decoration-style = bold box ul "#34fd50"
+ dark = true
+ file-decoration-style = none
+ file-style = omit
+ hunk-header-decoration-style = "#00b494" box ul
+ hunk-header-file-style = "#999999"
+ hunk-header-line-number-style = bold "#03a4ff"
+ hunk-header-style = file line-number syntax
+ line-numbers = true
+ line-numbers-left-style = black
+ line-numbers-minus-style = "#B10036"
+ line-numbers-plus-style = "#03a4ff"
+ line-numbers-right-style = black
+ line-numbers-zero-style = "#999999"
+ minus-emph-style = normal "#de004e"
+ minus-style = normal "#990017"
+ plus-emph-style = syntax "#03a4ff"
+ plus-style = syntax "#450eff"
+ side-by-side = true
+ syntax-theme = Vibrant Sunburst
+
+[delta "villsau"]
+ # author: https://github.com/torarnv
+ dark = true
+ file-style = omit
+ hunk-header-decoration-style = omit
+ hunk-header-file-style = magenta
+ hunk-header-line-number-style = dim magenta
+ hunk-header-style = file line-number syntax
+ line-numbers = false
+ minus-emph-style = bold red 52
+ minus-empty-line-marker-style = normal "#3f0001"
+ minus-non-emph-style = dim red
+ minus-style = bold red
+ plus-emph-style = bold green 22
+ plus-empty-line-marker-style = normal "#002800"
+ plus-non-emph-style = dim green
+ plus-style = bold green
+ syntax-theme = OneHalfDark
+ whitespace-error-style = reverse red
+ zero-style = dim syntax
+
+[delta "woolly-mammoth"]
+ # author: https://github.com/Kr1ss-XD
+ commit-decoration-style = 232 130 box
+ commit-style = 232 bold italic 130
+ dark = true
+ file-added-label = [+]
+ file-copied-label = [C]
+ file-decoration-style = "#606018" overline
+ file-modified-label = [M]
+ file-removed-label = [-]
+ file-renamed-label = [R]
+ file-style = 232 bold 184
+ hunk-header-decoration-style = none
+ hunk-header-style = syntax bold italic 237
+ line-numbers = true
+ line-numbers-left-format = "{nm:>1}┊"
+ line-numbers-left-style = red
+ line-numbers-minus-style = red italic black
+ line-numbers-plus-style = green italic black
+ line-numbers-right-format = "{np:>1}┊"
+ line-numbers-right-style = green
+ line-numbers-zero-style = "#545474" italic
+ minus-emph-style = syntax bold "#780000"
+ minus-style = syntax "#400000"
+ plus-emph-style = syntax bold "#007800"
+ plus-style = syntax "#004000"
+ syntax-theme = Vibrant Sunburst
+ whitespace-error-style = "#280050" reverse
+ zero-style = syntax
+ blame-format = "{author:<18} ({commit:>7}) ┊{timestamp:^16}┊ "
+ blame-palette = "#101010 #200020 #002800 #000028 #202000 #280000 #002020 #002800 #202020"
+
+[delta "calochortus-lyallii"]
+ # author: https://github.com/manojkarthick
+ commit-decoration-style = none
+ dark = true
+ file-added-label = [+]
+ file-copied-label = [C]
+ file-decoration-style = none
+ file-modified-label = [M]
+ file-removed-label = [-]
+ file-renamed-label = [R]
+ file-style = 232 bold 184
+ hunk-header-decoration-style = none
+ hunk-header-file-style = "#999999"
+ hunk-header-line-number-style = bold "#03a4ff"
+ hunk-header-style = file line-number syntax
+ line-numbers = true
+ line-numbers-left-style = black
+ line-numbers-minus-style = "#B10036"
+ line-numbers-plus-style = "#03a4ff"
+ line-numbers-right-style = black
+ line-numbers-zero-style = "#999999"
+ minus-emph-style = syntax bold "#780000"
+ minus-style = syntax "#400000"
+ plus-emph-style = syntax bold "#007800"
+ plus-style = syntax "#004000"
+ whitespace-error-style = "#280050" reverse
+ zero-style = syntax
+ syntax-theme = Nord
+
+[delta "mantis-shrimp"]
+ #author: https://github.com/2kabhishek
+ dark = true
+ side-by-side = true
+ keep-plus-minus-markers = true
+ hyperlinks = true
+ file-added-label = [+]
+ file-copied-label = [==]
+ file-modified-label = [*]
+ file-removed-label = [-]
+ file-renamed-label = [->]
+ file-style = omit
+ zero-style = syntax
+ syntax-theme = Monokai Extended
+ commit-decoration-style ="#11ce16" box
+ commit-style = "#ffd21a" bold italic
+ hunk-header-decoration-style = "#1688f0" box ul
+ hunk-header-file-style = "#c63bee" ul bold
+ hunk-header-line-number-style = "#ffd21a" box bold
+ hunk-header-style = file line-number syntax bold italic
+ line-numbers = true
+ line-numbers-left-format = "{nm:>1}|"
+ line-numbers-left-style = "#1688f0"
+ line-numbers-minus-style = "#ff0051" bold
+ line-numbers-plus-style = "#03e57f" bold
+ line-numbers-right-format = "{np:>1}|"
+ line-numbers-right-style = "#1688f0"
+ line-numbers-zero-style = "#aaaaaa" italic
+ minus-emph-style = syntax bold "#b80000"
+ minus-style = syntax "#5d001e"
+ plus-emph-style = syntax bold "#007800"
+ plus-style = syntax "#004433"
+ whitespace-error-style = "#280050"
+
+[delta "mantis-shrimp-lite"]
+ #author: https://github.com/2kabhishek
+ dark = true
+ side-by-side = true
+ keep-plus-minus-markers = true
+ file-added-label = [+]
+ file-copied-label = [==]
+ file-modified-label = [*]
+ file-removed-label = [-]
+ file-renamed-label = [->]
+ file-style = omit
+ zero-style = syntax
+ syntax-theme = Monokai Extended
+ commit-decoration-style = green box
+ commit-style = yellow bold italic
+ hunk-header-decoration-style = blue box ul
+ hunk-header-file-style = purple ul bold
+ hunk-header-line-number-style = yellow box bold
+ hunk-header-style = file line-number syntax bold italic
+ line-numbers = true
+ line-numbers-left-format = "{nm:>1}|"
+ line-numbers-left-style = blue
+ line-numbers-minus-style = red bold
+ line-numbers-plus-style = green bold
+ line-numbers-right-format = "{np:>1}|"
+ line-numbers-right-style = blue
+ line-numbers-zero-style = white italic
+ minus-emph-style = syntax bold red
+ plus-emph-style = syntax bold green
+ whitespace-error-style = purple bold
+
+[delta "zebra-dark"]
+ minus-style = syntax "#330f0f"
+ minus-emph-style = syntax "#4f1917"
+ plus-style = syntax "#0e2f19"
+ plus-emph-style = syntax "#174525"
+ map-styles = \
+ bold purple => syntax "#330f29", \
+ bold blue => syntax "#271344", \
+ bold cyan => syntax "#0d3531", \
+ bold yellow => syntax "#222f14"
+ zero-style = syntax
+ whitespace-error-style = "#aaaaaa"
+
+[delta "zebra-light"]
+ minus-style = syntax "#fbdada"
+ minus-emph-style = syntax "#f6b6b6"
+ plus-style = syntax "#d6ffd6"
+ plus-emph-style = syntax "#adffad"
+ map-styles = \
+ bold purple => syntax "#feecf7", \
+ bold blue => syntax "#e5dff6", \
+ bold cyan => syntax "#d8fdf6", \
+ bold yellow => syntax "#f4ffe0"
+ zero-style = syntax
+ whitespace-error-style = "#aaaaaa"
+
+[delta "chameleon"]
+ #author: https://github.com/AirOnSkin
+ dark = true
+ line-numbers = true
+ side-by-side = true
+ keep-plus-minus-markers = false
+ syntax-theme = Nord
+ file-style = "#434C5E" bold
+ file-decoration-style = "#434C5E" ul
+ file-added-label = [+]
+ file-copied-label = [==]
+ file-modified-label = [*]
+ file-removed-label = [-]
+ file-renamed-label = [->]
+ hunk-header-style = omit
+ line-numbers-left-format = " {nm:>3} │"
+ line-numbers-left-style = red
+ line-numbers-right-format = " {np:>3} │"
+ line-numbers-right-style = green
+ line-numbers-minus-style = red italic black
+ line-numbers-plus-style = green italic black
+ line-numbers-zero-style = "#434C5E" italic
+ minus-style = bold red
+ minus-emph-style = bold "#202020" "#FF5555"
+ minus-non-emph-style = bold
+ plus-style = bold green
+ plus-emph-style = bold "#202020" "#50FA7B"
+ plus-non-emph-style = bold
+ zero-style = syntax
+ blame-code-style = syntax
+ blame-format = "{author:<18} ({commit:>9}) {timestamp:^16}"
+ blame-palette = "#2E3440" "#3B4252" "#434C5E" "#4C566A"
+ merge-conflict-begin-symbol = ~
+ merge-conflict-end-symbol = ~
+ merge-conflict-ours-diff-header-style = "#F1FA8C" bold
+ merge-conflict-ours-diff-header-decoration-style = "#434C5E" box
+ merge-conflict-theirs-diff-header-style = "#F1FA8C" bold
+ merge-conflict-theirs-diff-header-decoration-style = "#434C5E" box
+
+[delta "gruvmax-fang"]
+ # author: https://github.com/maxfangx
+ # General appearance
+ dark = true
+ syntax-theme = gruvbox-dark
+ # File
+ file-style = "#FFFFFF" bold
+ file-added-label = [+]
+ file-copied-label = [==]
+ file-modified-label = [*]
+ file-removed-label = [-]
+ file-renamed-label = [->]
+ file-decoration-style = "#434C5E" ul
+ file-decoration-style = "#84786A" ul
+ # No hunk headers
+ hunk-header-style = omit
+ # Line numbers
+ line-numbers = true
+ line-numbers-left-style = "#84786A"
+ line-numbers-right-style = "#84786A"
+ line-numbers-minus-style = "#A02A11"
+ line-numbers-plus-style = "#479B36"
+ line-numbers-zero-style = "#84786A"
+ line-numbers-left-format = " {nm:>3} │"
+ line-numbers-right-format = " {np:>3} │"
+ # Diff contents
+ inline-hint-style = syntax
+ minus-style = syntax "#330011"
+ minus-emph-style = syntax "#80002a"
+ minus-non-emph-style = syntax auto
+ plus-style = syntax "#001a00"
+ plus-emph-style = syntax "#003300"
+ plus-non-emph-style = syntax auto
+ whitespace-error-style = "#FB4934" reverse
+ # Commit hash
+ commit-decoration-style = normal box
+ commit-style = "#ffffff" bold
+ # Blame
+ blame-code-style = syntax
+ blame-format = "{author:>18} ({commit:>8}) {timestamp:<13} "
+ blame-palette = "#000000" "#1d2021" "#282828" "#3c3836"
+ # Merge conflicts
+ merge-conflict-begin-symbol = ⌃
+ merge-conflict-end-symbol = ⌄
+ merge-conflict-ours-diff-header-style = "#FABD2F" bold
+ merge-conflict-theirs-diff-header-style = "#FABD2F" bold overline
+ merge-conflict-ours-diff-header-decoration-style = ''
+ merge-conflict-theirs-diff-header-decoration-style = ''
+
+[delta "discord"]
+ commit-style = omit
+ file-style = 34 ul
+ file-decoration-style = none
+ hunk-header-style = omit
+ minus-style = 31
+ minus-non-emph-style = 31
+ minus-emph-style = 40
+ minus-empty-line-marker-style = 31
+ zero-style = 30
+ plus-style = 32
+ plus-non-emph-style = 32
+ plus-emph-style = 40
+ grep-file-style = 34
+ grep-line-number-style = 34
+ whitespace-error-style = 41
+ blame-code-style = omit
+ true-color = never
+ file-modified-label = changed:
+ right-arrow = >
+ hyperlinks = false
+ keep-plus-minus-markers = true
+ diff-stat-align-width = 10
+ syntax-theme = none
+ width = variable
+
+[delta "mellow-barbet"]
+ # author: https://github.com/kvrohit
+ # To configure terminal colors see https://github.com/kvrohit/mellow.nvim#terminals
+ dark = true
+ syntax-theme = base16
+ line-numbers = true
+ side-by-side = true
+ file-style = brightwhite
+ file-decoration-style = none
+ file-added-label = [+]
+ file-copied-label = [==]
+ file-modified-label = [*]
+ file-removed-label = [-]
+ file-renamed-label = [->]
+ hunk-header-decoration-style = "#3e3e43" box ul
+ plus-style = brightgreen black
+ plus-emph-style = black green
+ minus-style = brightred black
+ minus-emph-style = black red
+ line-numbers-minus-style = brightred
+ line-numbers-plus-style = brightgreen
+ line-numbers-left-style = "#3e3e43"
+ line-numbers-right-style = "#3e3e43"
+ line-numbers-zero-style = "#57575f"
+ zero-style = syntax
+ whitespace-error-style = black bold
+ blame-code-style = syntax
+ blame-palette = "#161617" "#1b1b1d" "#2a2a2d" "#3e3e43"
+ merge-conflict-begin-symbol = ~
+ merge-conflict-end-symbol = ~
+ merge-conflict-ours-diff-header-style = yellow bold
+ merge-conflict-ours-diff-header-decoration-style = "#3e3e43" box
+ merge-conflict-theirs-diff-header-style = yellow bold
+ merge-conflict-theirs-diff-header-decoration-style = "#3e3e43" box
+
+[delta "arctic-fox"]
+ # author: https://github.com/anthony-halim
+ dark = true
+ syntax-theme = Nord
+ file-added-label = [+]
+ file-copied-label = [==]
+ file-modified-label = [*]
+ file-removed-label = [-]
+ file-renamed-label = [->]
+ file-style = omit
+ hunk-header-decoration-style = "#5E81AC" ul
+ hunk-header-file-style = blue ul bold
+ hunk-header-line-number-style = yellow box bold
+ hunk-header-style = file line-number syntax bold italic
+ plus-style = brightgreen
+ plus-emph-style = black green
+ minus-style = brightred
+ minus-emph-style = black red
+ line-numbers = true
+ line-numbers-minus-style = brightred
+ line-numbers-plus-style = brightgreen
+ line-numbers-left-style = "#5E81AC"
+ line-numbers-right-style = "#5E81AC"
+ line-numbers-zero-style = "#4C566A"
+ zero-style = syntax
+ whitespace-error-style = black bold
+ blame-code-style = syntax
+ blame-format = "{author:<18} {commit:<6} {timestamp:<15}"
+ blame-palette = "#2E3440" "#3B4252" "#434C5E"
+ merge-conflict-begin-symbol = ~
+ merge-conflict-end-symbol = ~
+ merge-conflict-ours-diff-header-style = yellow bold
+ merge-conflict-ours-diff-header-decoration-style = "#5E81AC" box
+ merge-conflict-theirs-diff-header-style = yellow bold
+ merge-conflict-theirs-diff-header-decoration-style = "#5E81AC" box
+
+[delta "corvus"]
+ # author: https://github.com/evilwaveforms
+ dark = true
+ commit-style = "#949494"
+ file-style = omit
+ syntax-theme = none
+ hunk-header-decoration-style = "#949494" ul
+ hunk-header-file-style = "#949494"
+ hunk-header-style = "#949494"
+ line-numbers = true
+ line-numbers-left-style = "#949494"
+ line-numbers-right-style = "#949494"
+ line-numbers-left-format = "{nm:>2}|"
+ line-numbers-right-format = "{np:>3} "
+ line-numbers-plus-style = "#54c047"
+ line-numbers-minus-style = bold "#591102"
+ plus-style = "#54c047"
+ plus-emph-style = bold "#54c047"
+ plus-non-emph-style = dim "#54c047"
+ minus-style = normal "#591102"
+ minus-emph-style = normal "#591102"
+ minus-non-emph-style = bold "#591102"
+ blame-code-style = omit
+ blame-format = "{author:<18} {commit:<6} {timestamp:<15}"
+ blame-palette = "#000000" "#343434"
+ zero-style = dim
+
+[delta "platypus"]
+ # Author: https://github.com/sarpuser
+ dark = true
+ side-by-side = true
+ true-color = always
+ file-added-label = [+]
+ file-copied-label = [==]
+ file-modified-label = [M]
+ file-removed-label = [-]
+ file-renamed-label = [->]
+ file-style = "#ff9b00" ul bold
+ file-decoration-style = "#ea00ff" box ul
+ zero-style = syntax
+ syntax-theme = Solarized (dark)
+ commit-decoration-style ="#ea00ff" ul
+ hunk-header-decoration-style = omit
+ hunk-header-file-style = "#ff9b00" ul bold
+ hunk-header-line-number-style = "#ffd21a" bold
+ hunk-header-style = line-number syntax bold italic
+ line-numbers = true
+ line-numbers-left-format = "{nm:>1}|"
+ line-numbers-left-style = "#ea00ff"
+ line-numbers-minus-style = "#ff0051" bold
+ line-numbers-plus-style = "#1ac71e" bold
+ line-numbers-right-format = "{np:>1}|"
+ line-numbers-right-style = "#ea00ff"
+ line-numbers-zero-style = "#aaaaaa" italic
+ minus-emph-style = syntax bold "#b80000"
+ minus-style = syntax "#5d001e"
+ plus-emph-style = syntax bold "#1a861a"
+ plus-style = syntax "#2a5e37"
+ whitespace-error-style = "#280050"
+ wrap-max-lines = unlimited
+ wrap-right-percent = 1
+
+[delta "weeping-willow"]
+ # See 'mirthful-willow' for light mode version.
+ # Heavily inspired by the themes above. Thank you. <3
+ # author: https://github.com/lvdh
+ # colors: `pastel list`
+ dark = true
+ right-arrow = >
+ syntax-theme = Coldark-Dark
+ # -- git
+ blame-format = " ({commit:>7}) {author:<18} {timestamp:^13} "
+ blame-palette = "normal midnightblue indigo navy darkblue darkslateblue purple rebeccapurple darkviolet"
+ commit-decoration-style = none
+ commit-style = bold black orange
+ # -- grep
+ grep-file-style = olive
+ grep-line-number-style = olive
+ # -- diff
+ keep-plus-minus-markers = true
+ line-numbers = true
+ line-numbers-minus-style = red
+ line-numbers-plus-style = green
+ line-numbers-left-style = gray
+ line-numbers-left-format = "{nm:>1}┊"
+ line-numbers-right-style = gray
+ line-numbers-right-format = "{np:>1}┊"
+ line-numbers-zero-style = gray
+ minus-emph-style = ghostwhite crimson underline
+ minus-empty-line-marker-style = syntax maroon
+ minus-style = syntax darkred
+ plus-emph-style = ghostwhite olivedrab underline
+ plus-empty-line-marker-style = syntax seagreen
+ plus-style = syntax darkgreen
+ whitespace-error-style = black ghostwhite
+ zero-style = syntax
+ # -- decorations
+ file-decoration-style = olive overline
+ file-added-label = [+]
+ file-copied-label = [*]
+ file-modified-label = [~]
+ file-removed-label = [-]
+ file-renamed-label = [>]
+ file-style = orange bold
+ hunk-header-decoration-style = none
+ hunk-header-file-style = olive
+ hunk-header-line-number-style = orange
+ hunk-header-style = file line-number orchid
+
+[delta "mirthful-willow"]
+ # See 'weeping-willow' for dark mode version.
+ # Heavily inspired by the themes above. Thank you. <3
+ # author: https://github.com/lvdh
+ # colors: `pastel list`
+ light = true
+ right-arrow = >
+ syntax-theme = Coldark-Cold
+ # -- git
+ blame-format = " ({commit:>7}) {author:<18} {timestamp:^13} "
+ blame-palette = "powderblue papayawhip thistle skyblue lavender plum paleturquoise lightcyan violet"
+ commit-decoration-style = none
+ commit-style = bold black orange
+ # -- grep
+ grep-file-style = darkgoldenrod
+ grep-line-number-style = darkgoldenrod
+ # -- diff
+ keep-plus-minus-markers = true
+ line-numbers = true
+ line-numbers-minus-style = red
+ line-numbers-plus-style = green
+ line-numbers-left-style = gray
+ line-numbers-left-format = "{nm:>1}┊"
+ line-numbers-right-style = gray
+ line-numbers-right-format = "{np:>1}┊"
+ line-numbers-zero-style = gray
+ minus-emph-style = ghostwhite tomato underline
+ minus-empty-line-marker-style = syntax orangered
+ minus-style = syntax lightpink
+ plus-emph-style = ghostwhite limegreen underline
+ plus-empty-line-marker-style = syntax forestgreen
+ plus-style = syntax lightgreen
+ whitespace-error-style = black ghostwhite
+ zero-style = syntax
+ # -- decorations
+ file-decoration-style = darkgoldenrod overline
+ file-added-label = [+]
+ file-copied-label = [*]
+ file-modified-label = [~]
+ file-removed-label = [-]
+ file-renamed-label = [>]
+ file-style = orange bold
+ hunk-header-decoration-style = none
+ hunk-header-file-style = darkgoldenrod
+ hunk-header-line-number-style = orange
+ hunk-header-style = file line-number darkviolet
diff --git a/.config/mako/config b/.config/mako/config
new file mode 100644
index 0000000..30046c5
--- /dev/null
+++ b/.config/mako/config
@@ -0,0 +1,38 @@
+anchor=top-right
+text-alignment=left
+width=400
+height=400
+max-history=10
+sort=-time
+
+on-button-left=invoke-default-action
+on-button-middle=exec makoctl menu -n $id -- mew -p 'Select action: '
+on-button-right=dismiss
+
+max-visible=10
+font=monospace 14
+max-icon-size=38
+icon-location=left
+margin=6
+padding=3
+format=<b>%s</b>\n%b
+
+background-color=#222222aa
+border-size=3
+border-radius=0
+default-timeout=10000
+
+[urgency=low]
+text-color=#eeeeee
+border-color=#005577
+default-timeout=10000
+
+[urgency=normal]
+text-color=#eeeeee
+border-color=#005577
+default-timeout=10000
+
+[urgency=critical]
+text-color=#eeeeee
+border-color=#005577
+default-timeout=0
diff --git a/.config/mimeapps.list b/.config/mimeapps.list
new file mode 100644
index 0000000..9124fce
--- /dev/null
+++ b/.config/mimeapps.list
@@ -0,0 +1,20 @@
+[Default Applications]
+
+# xdg-open will use these settings to determine how to open filetypes.
+# These .desktop entries can also be seen and changed in ~/.local/share/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
+video/mp4=video.desktop
+x-scheme-handler/lbry=lbry.desktop
+inode/directory=file.desktop
diff --git a/.config/mpd/mpd.conf b/.config/mpd/mpd.conf
new file mode 100644
index 0000000..5067671
--- /dev/null
+++ b/.config/mpd/mpd.conf
@@ -0,0 +1,19 @@
+music_directory "/mnt/ssd/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 "pipewire"
+ name "PipeWire Sound Server"
+}
+
+audio_output {
+ type "fifo"
+ name "Visualizer feed"
+ path "/tmp/mpd.fifo"
+ format "44100:16:2"
+}
diff --git a/.config/mpv/input.conf b/.config/mpv/input.conf
new file mode 100644
index 0000000..d614b15
--- /dev/null
+++ b/.config/mpv/input.conf
@@ -0,0 +1,5 @@
+l seek 5
+h seek -5
+j seek -60
+k seek 60
+S cycle sub
diff --git a/.config/mpv/mpv.conf b/.config/mpv/mpv.conf
new file mode 100644
index 0000000..1ab6305
--- /dev/null
+++ b/.config/mpv/mpv.conf
@@ -0,0 +1,8 @@
+profile=high-quality
+vo=gpu-next
+gpu-api=vulkan
+gpu-context=waylandvk
+hwdec=auto
+target-colorspace-hint=yes
+alang=eng
+slang=eng
diff --git a/.config/newsboat/config b/.config/newsboat/config
new file mode 100644
index 0000000..3017d96
--- /dev/null
+++ b/.config/newsboat/config
@@ -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 yt-dlp --embed-metadata -xic -f bestaudio/best --restrict-filenames" ; 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 "echo %u | wl-copy" ; 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/nvim/init.lua b/.config/nvim/init.lua
new file mode 100644
index 0000000..611659e
--- /dev/null
+++ b/.config/nvim/init.lua
@@ -0,0 +1,20 @@
+-- Bootstrap lazy.nvim
+local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
+if not (vim.uv or vim.loop).fs_stat(lazypath) then
+ local lazyrepo = "https://github.com/folke/lazy.nvim.git"
+ local out = vim.fn.system({ "git", "clone", "--filter=blob:none", "--branch=stable", lazyrepo, lazypath })
+ if vim.v.shell_error ~= 0 then
+ vim.api.nvim_echo({
+ { "Failed to clone lazy.nvim:\n", "ErrorMsg" },
+ { out, "WarningMsg" },
+ { "\nPress any key to exit..." },
+ }, true, {})
+ vim.fn.getchar()
+ os.exit(1)
+ end
+end
+vim.opt.rtp:prepend(lazypath)
+
+-- Setup lazy.nvim
+require("vim-options")
+require("lazy").setup("plugins")
diff --git a/.config/nvim/lua/plugins.lua b/.config/nvim/lua/plugins.lua
new file mode 100644
index 0000000..a2b4f84
--- /dev/null
+++ b/.config/nvim/lua/plugins.lua
@@ -0,0 +1,2 @@
+return {}
+
diff --git a/.config/nvim/lua/plugins/completions.lua b/.config/nvim/lua/plugins/completions.lua
new file mode 100644
index 0000000..ff8fd40
--- /dev/null
+++ b/.config/nvim/lua/plugins/completions.lua
@@ -0,0 +1,42 @@
+return {
+ {
+ "hrsh7th/cmp-nvim-lsp"
+ },
+ {
+ "L3MON4D3/LuaSnip",
+ dependencies = {
+ "saadparwaiz1/cmp_luasnip",
+ "rafamadriz/friendly-snippets"
+ }
+ },
+ {
+ "hrsh7th/nvim-cmp",
+ config = function()
+ local cmp = require'cmp'
+ cmp.setup({
+ snippet = {
+ expand = function(args)
+ require('luasnip').lsp_expand(args.body)
+ end,
+ },
+ window = {
+ -- completion = cmp.config.window.bordered(),
+ -- documentation = cmp.config.window.bordered(),
+ },
+ mapping = cmp.mapping.preset.insert({
+ ['<C-b>'] = cmp.mapping.scroll_docs(-4),
+ ['<C-f>'] = cmp.mapping.scroll_docs(4),
+ ['<C-Space>'] = cmp.mapping.complete(),
+ ['<C-e>'] = cmp.mapping.abort(),
+ ['<CR>'] = cmp.mapping.confirm({ select = true }),
+ }),
+ sources = cmp.config.sources({
+ { name = 'nvim_lsp' },
+ { name = 'luasnip' },
+ }, {
+ { name = 'buffer' },
+ })
+ })
+ end
+ }
+}
diff --git a/.config/nvim/lua/plugins/gitsigns.lua b/.config/nvim/lua/plugins/gitsigns.lua
new file mode 100644
index 0000000..8fcc21f
--- /dev/null
+++ b/.config/nvim/lua/plugins/gitsigns.lua
@@ -0,0 +1,6 @@
+return {
+ "lewis6991/gitsigns.nvim",
+ config = function()
+ require("gitsigns").setup()
+ end,
+}
diff --git a/.config/nvim/lua/plugins/gruvbox.lua b/.config/nvim/lua/plugins/gruvbox.lua
new file mode 100644
index 0000000..ecd9b49
--- /dev/null
+++ b/.config/nvim/lua/plugins/gruvbox.lua
@@ -0,0 +1,9 @@
+return {
+ "ellisonleao/gruvbox.nvim",
+ config = function()
+ require("gruvbox").setup({
+ transparent_mode = true,
+ })
+ vim.cmd.colorscheme "gruvbox"
+ end,
+}
diff --git a/.config/nvim/lua/plugins/lsp-config.lua b/.config/nvim/lua/plugins/lsp-config.lua
new file mode 100644
index 0000000..4a55fc8
--- /dev/null
+++ b/.config/nvim/lua/plugins/lsp-config.lua
@@ -0,0 +1,67 @@
+return {
+ {
+ "neovim/nvim-lspconfig",
+ config = function()
+ local capabilities = require('cmp_nvim_lsp').default_capabilities()
+ local lspconfig = require("lspconfig")
+ lspconfig.clangd.setup({
+ capabilities = capabilities,
+ })
+ lspconfig.rust_analyzer.setup({
+ settings = {
+ ["rust-analyzer"] = {
+ cargo = { allFeatures = true },
+ }
+ }
+ })
+ lspconfig.lua_ls.setup({
+ capabilities = capabilities,
+ })
+ lspconfig.html.setup({
+ capabilities = capabilities,
+ })
+ lspconfig.cssls.setup({
+ capabilities = capabilities,
+ })
+ lspconfig.jsonls.setup({
+ capabilities = capabilities,
+ })
+ lspconfig.yamlls.setup({
+ settings = {
+ yaml = {
+ -- schemas = {
+ -- ["https://raw.githubusercontent.com/instrumenta/kubernetes-json-schema/master/v1.17.0-standalone-strict/all.json"] = "/*.k8s.yaml",
+ -- }
+ schemas = {
+ kubernetes = "*.yaml",
+ ["http://json.schemastore.org/github-workflow"] = ".github/workflows/*",
+ ["http://json.schemastore.org/github-action"] = ".github/action.{yml,yaml}",
+ ["http://json.schemastore.org/ansible-stable-2.9"] = "roles/tasks/*.{yml,yaml}",
+ ["http://json.schemastore.org/kustomization"] = "kustomization.{yml,yaml}",
+ ["http://json.schemastore.org/ansible-playbook"] = "*play*.{yml,yaml}",
+ ["http://json.schemastore.org/chart"] = "Chart.{yml,yaml}",
+ -- ["https://json.schemastore.org/gitlab-ci"] = "*gitlab-ci*.{yml,yaml}",
+ ["https://gitlab.com/gitlab-org/gitlab/-/raw/master/app/assets/javascripts/editor/schema/ci.json"] = "*gitlab-ci*.{yml,yaml}",
+ ["https://raw.githubusercontent.com/compose-spec/compose-spec/master/schema/compose-spec.json"] = "*docker-compose*.{yml,yaml}",
+ ["https://raw.githubusercontent.com/argoproj/argo-workflows/master/api/jsonschema/schema.json"] = "*flow*.{yml,yaml}",
+ },
+ }
+ }
+ })
+ vim.diagnostic.config({
+ virtual_text = {
+ prefix = '',
+ spacing = 4,
+ },
+ signs = true,
+ underline = true,
+ -- update_in_insert = false,
+ severity_sort = true,
+ })
+ vim.keymap.set("n", "K", vim.lsp.buf.hover, {})
+ vim.keymap.set("n", "<leader>gd", vim.lsp.buf.definition, {})
+ vim.keymap.set("n", "<leader>gr", vim.lsp.buf.references, {})
+ vim.keymap.set("n", "<leader>ca", vim.lsp.buf.code_action, {})
+ end
+ }
+}
diff --git a/.config/nvim/lua/plugins/lualine.lua b/.config/nvim/lua/plugins/lualine.lua
new file mode 100644
index 0000000..cebdf54
--- /dev/null
+++ b/.config/nvim/lua/plugins/lualine.lua
@@ -0,0 +1,8 @@
+return {
+ {
+ 'nvim-lualine/lualine.nvim',
+ config = function()
+ require('lualine').setup({})
+ end
+ }
+}
diff --git a/.config/nvim/lua/plugins/neotree.lua b/.config/nvim/lua/plugins/neotree.lua
new file mode 100644
index 0000000..ed60017
--- /dev/null
+++ b/.config/nvim/lua/plugins/neotree.lua
@@ -0,0 +1,15 @@
+return {
+ {
+ "nvim-neo-tree/neo-tree.nvim",
+ branch = "v3.x",
+ dependencies = {
+ "nvim-lua/plenary.nvim",
+ "MunifTanjim/nui.nvim",
+ "nvim-tree/nvim-web-devicons",
+ },
+ lazy = false,
+ config = function()
+ vim.keymap.set('n', '<C-n>', ':Neotree filesystem reveal left<CR>', {})
+ end
+ }
+}
diff --git a/.config/nvim/lua/plugins/telescope.lua b/.config/nvim/lua/plugins/telescope.lua
new file mode 100644
index 0000000..0097f61
--- /dev/null
+++ b/.config/nvim/lua/plugins/telescope.lua
@@ -0,0 +1,25 @@
+return {
+ {
+ 'nvim-telescope/telescope.nvim', tag = '0.1.8',
+ dependencies = { 'nvim-lua/plenary.nvim' },
+ config = function()
+ local builtin = require("telescope.builtin")
+ vim.keymap.set('n', '<C-p>', builtin.find_files, {})
+ vim.keymap.set('n', '<leader>fg', builtin.live_grep, {})
+ end
+ },
+ {
+ 'nvim-telescope/telescope-ui-select.nvim',
+ config = function()
+ require("telescope").setup {
+ extensions = {
+ ["ui-select"] = {
+ require("telescope.themes").get_dropdown {
+ }
+ }
+ }
+ }
+ require("telescope").load_extension("ui-select")
+ end
+ },
+}
diff --git a/.config/nvim/lua/plugins/treesitter.lua b/.config/nvim/lua/plugins/treesitter.lua
new file mode 100644
index 0000000..5b1e85c
--- /dev/null
+++ b/.config/nvim/lua/plugins/treesitter.lua
@@ -0,0 +1,31 @@
+return {
+ {
+ "nvim-treesitter/nvim-treesitter",
+ branch = 'master',
+ lazy = false,
+ build = ":TSUpdate",
+ config = function()
+ local config = require("nvim-treesitter.configs")
+ config.setup({
+ ensure_installed = {
+ "lua",
+ "javascript",
+ "c",
+ "cpp",
+ "go",
+ "markdown",
+ "meson",
+ "make",
+ "cmake",
+ "python",
+ "rust",
+ "yaml",
+ "toml",
+ "ron",
+ },
+ highlight = { enable = true },
+ indent = { enable = true },
+ })
+ end
+ }
+}
diff --git a/.config/nvim/lua/plugins/trim.lua b/.config/nvim/lua/plugins/trim.lua
new file mode 100644
index 0000000..f6fa98f
--- /dev/null
+++ b/.config/nvim/lua/plugins/trim.lua
@@ -0,0 +1,6 @@
+return {
+ "cappyzawa/trim.nvim",
+ config = function()
+ require("trim").setup({})
+ end
+}
diff --git a/.config/nvim/lua/vim-options.lua b/.config/nvim/lua/vim-options.lua
new file mode 100644
index 0000000..3a8b3e1
--- /dev/null
+++ b/.config/nvim/lua/vim-options.lua
@@ -0,0 +1,10 @@
+vim.cmd("set expandtab")
+vim.cmd("set tabstop=2")
+vim.cmd("set softtabstop=2")
+vim.cmd("set shiftwidth=2")
+vim.g.mapleader = " "
+vim.g.maplocalleader = "\\"
+vim.opt.swapfile = false
+vim.wo.number = true
+vim.wo.relativenumber = true
+vim.opt.clipboard = "unnamedplus"
diff --git a/.config/paru/paru.conf b/.config/paru/paru.conf
new file mode 100644
index 0000000..febee6b
--- /dev/null
+++ b/.config/paru/paru.conf
@@ -0,0 +1,2 @@
+[bin]
+Sudo = doas
diff --git a/.config/pipewire/pipewire.conf.d/user-session.conf b/.config/pipewire/pipewire.conf.d/user-session.conf
new file mode 100644
index 0000000..4cbe1d5
--- /dev/null
+++ b/.config/pipewire/pipewire.conf.d/user-session.conf
@@ -0,0 +1,4 @@
+context.exec = [
+ { path = "/usr/bin/wireplumber" args = "" condition = [ { exec.session-manager = null } { exec.session-manager = true } ] }
+ { path = "/usr/bin/pipewire" args = "-c pipewire-pulse.conf" condition = [ { exec.pipewire-pulse = null } { exec.pipewire-pulse = true } ] }
+]
diff --git a/.config/python/pythonrc b/.config/python/pythonrc
new file mode 100644
index 0000000..b32e6b6
--- /dev/null
+++ b/.config/python/pythonrc
@@ -0,0 +1,2 @@
+import readline
+readline.write_history_file = lambda *args: None
diff --git a/.config/rmpc/config.ron b/.config/rmpc/config.ron
new file mode 100644
index 0000000..0818ddb
--- /dev/null
+++ b/.config/rmpc/config.ron
@@ -0,0 +1,218 @@
+#![enable(implicit_some)]
+#![enable(unwrap_newtypes)]
+#![enable(unwrap_variant_newtypes)]
+(
+ address: "127.0.0.1:6600",
+ volume_step: 5,
+ scrolloff: 2,
+ max_fps: 60,
+ wrap_navigation: true,
+ theme: "def",
+ lyrics_dir: "/mnt/ssd/music",
+ on_song_change: ["~/.config/rmpc/scripts/statusbar"],
+ on_resize: None,
+ status_update_interval_ms: 1000,
+ enable_mouse: true,
+ enable_config_hot_reload: true,
+ album_art: (
+ method: Auto,
+ max_size_px: (width: 0, height: 0),
+ vertical_align: Top,
+ horizontal_align: Center,
+ ),
+ keybinds: (
+ global: {
+ ":": CommandMode,
+ ",": VolumeDown,
+ "s": Stop,
+ ".": VolumeUp,
+ "<Tab>": NextTab,
+ "<S-Tab>": PreviousTab,
+ "1": SwitchToTab("Queue"),
+ "2": SwitchToTab("Directories"),
+ "3": SwitchToTab("Artists"),
+ "4": SwitchToTab("Album Artists"),
+ "5": SwitchToTab("Albums"),
+ "6": SwitchToTab("Playlists"),
+ "7": SwitchToTab("Search"),
+ "q": Quit,
+ ">": NextTrack,
+ "p": TogglePause,
+ "<": PreviousTrack,
+ "f": SeekForward,
+ "z": ToggleRepeat,
+ "x": ToggleRandom,
+ "c": ToggleConsume,
+ "v": ToggleSingle,
+ "b": SeekBack,
+ "~": ShowHelp,
+ "I": ShowCurrentSongInfo,
+ "O": ShowOutputs,
+ "P": ShowDecoders,
+ },
+ navigation: {
+ "k": Up,
+ "j": Down,
+ "h": Left,
+ "l": Right,
+ "<Up>": Up,
+ "<Down>": Down,
+ "<Left>": Left,
+ "<Right>": Right,
+ "<C-k>": PaneUp,
+ "<C-j>": PaneDown,
+ "<C-h>": PaneLeft,
+ "<C-l>": PaneRight,
+ "<C-u>": UpHalf,
+ "N": PreviousResult,
+ "a": Add,
+ "A": AddAll,
+ "r": Rename,
+ "n": NextResult,
+ "g": Top,
+ "<Space>": Select,
+ "<C-Space>": InvertSelection,
+ "G": Bottom,
+ "<CR>": Confirm,
+ "i": FocusInput,
+ "J": MoveDown,
+ "<C-d>": DownHalf,
+ "/": EnterSearch,
+ "<C-c>": Close,
+ "<Esc>": Close,
+ "K": MoveUp,
+ "D": Delete,
+ },
+ queue: {
+ "D": DeleteAll,
+ "<CR>": Play,
+ "<C-s>": Save,
+ "a": AddToPlaylist,
+ "d": Delete,
+ "i": ShowInfo,
+ "C": JumpToCurrent,
+ },
+ ),
+ search: (
+ case_sensitive: false,
+ mode: Contains,
+ tags: [
+ (value: "any", label: "Any Tag"),
+ (value: "artist", label: "Artist"),
+ (value: "album", label: "Album"),
+ (value: "albumartist", label: "Album Artist"),
+ (value: "title", label: "Title"),
+ ],
+ ),
+ tabs: [
+ (
+ name: "Queue",
+ border_type: None,
+ pane: Split(
+ direction: Horizontal,
+ panes: [
+ (
+ size: "40%",
+ borders: "RIGHT",
+ pane: Split(
+ direction: Vertical,
+ panes: [
+ (
+ size: "3",
+ pane: Pane(Lyrics),
+ ),
+ (
+ size: "100%",
+ pane: Pane(AlbumArt),
+ )
+ ],
+ ),
+ ),
+ (
+ size: "60%",
+ pane: Pane(Queue),
+ ),
+ ],
+ ),
+ ),
+ (
+ name: "Directories",
+ border_type: None,
+ pane: Pane(Directories),
+ ),
+ (
+ name: "Artists",
+ border_type: None,
+ pane: Pane(Artists),
+ ),
+ (
+ name: "Album Artists",
+ border_type: None,
+ pane: Pane(AlbumArtists),
+ ),
+ (
+ name: "Albums",
+ border_type: None,
+ pane: Pane(Albums),
+ ),
+ (
+ name: "Playlists",
+ border_type: None,
+ pane: Pane(Playlists),
+ ),
+ (
+ name: "Search",
+ border_type: None,
+ pane: Pane(Search),
+ ),
+ (
+ name: "Testing",
+ border_type: Single,
+ pane: Split(
+ direction: Horizontal,
+ panes: [
+ (
+ size: "40%",
+ pane: Pane(Queue),
+ ),
+ (
+ size: "60%",
+ pane: Split(
+ direction: Vertical,
+ panes: [
+ (
+ size: "50%",
+ pane: Pane(Directories),
+ ),
+ (
+ size: "50%",
+ pane: Split(
+ direction: Horizontal,
+ panes: [
+ (
+ size: "60%",
+ pane: Split(
+ direction: Vertical,
+ panes: [
+ (
+ size: "50%",
+ pane: Pane(Albums),
+ ),
+ (
+ size: "50%",
+ pane: Pane(Artists),
+ ),
+ ],
+ ),
+ ),
+ ],
+ ),
+ ),
+ ],
+ ),
+ ),
+ ],
+ ),
+ ),
+ ],
+)
diff --git a/.config/rmpc/scripts/statusbar b/.config/rmpc/scripts/statusbar
new file mode 100755
index 0000000..3508a02
--- /dev/null
+++ b/.config/rmpc/scripts/statusbar
@@ -0,0 +1,2 @@
+#!/bin/sh
+/usr/bin/pkill -RTMIN+11 waybar
diff --git a/.config/rmpc/themes/def.ron b/.config/rmpc/themes/def.ron
new file mode 100644
index 0000000..c4baa27
--- /dev/null
+++ b/.config/rmpc/themes/def.ron
@@ -0,0 +1,238 @@
+#![enable(implicit_some)]
+#![enable(unwrap_newtypes)]
+#![enable(unwrap_variant_newtypes)]
+(
+ draw_borders: false,
+ show_song_table_header: true,
+ background_color: None,
+ default_album_art_path: None,
+ header_background_color: None,
+ modal_background_color: None,
+ modal_backdrop: true,
+ text_color: None,
+ layout: Split(
+ direction: Vertical,
+ panes: [
+ (
+ size: "4",
+ borders: "ALL",
+ pane: Split(
+ direction: Vertical,
+ panes: [
+ (
+ size: "1",
+ direction: Vertical,
+ pane: Split(
+ direction: Horizontal,
+ panes: [
+ (
+ size: "23",
+ pane: Pane(Property(
+ content: [
+ (kind: Text("["), style: (fg: "yellow", modifiers: "Bold")),
+ (kind: Property(Status(StateV2())), style: (fg: "yellow", modifiers: "Bold")),
+ (kind: Text("]"), style: (fg: "yellow", modifiers: "Bold")),
+ ], align: Left,
+ )),
+ ),
+ (
+ size: "100%",
+ borders: "LEFT | RIGHT",
+ pane: Pane(Property(
+ content: [
+ (kind: Property(Song(Filename)), style: (modifiers: "Bold"),
+ default: (kind: Text("No Song"), style: (modifiers: "Bold")))
+ ], align: Center, scroll_speed: 1
+ )),
+ ),
+ (
+ size: "23",
+ pane: Pane(Property(
+ content: [
+ (kind: Property(Widget(Volume)), style: (fg: "blue", modifiers: "Bold"))
+ ], align: Right
+ )),
+ ),
+ ],
+ ),
+ ),
+ (
+ size: "1",
+ direction: Vertical,
+ pane: Split(
+ direction: Horizontal,
+ panes: [
+ (
+ size: "23",
+ pane: Pane(Property(
+ content: [
+ (kind: Property(Status(Elapsed))),
+ (kind: Text(" / ")),
+ (kind: Property(Status(Duration))),
+ (kind: Group([
+ (kind: Text(" (")),
+ (kind: Property(Status(Bitrate))),
+ (kind: Text(" kbps)")),
+ ])),
+ ], align: Left,
+ )),
+ ),
+ (
+ size: "100%",
+ borders: "LEFT | RIGHT",
+ pane: Pane(Property(
+ content: [
+ (kind: Property(Song(Artist)), style: (fg: "yellow", modifiers: "Bold"),
+ default: (kind: Text("Unknown"), style: (fg: "yellow", modifiers: "Bold"))),
+ (kind: Text(" - ")),
+ (kind: Property(Song(Album)), default: (kind: Text("Unknown Album")))
+ ], align: Center, scroll_speed: 2
+ )),
+ ),
+ (
+ size: "23",
+ pane: Pane(Property(content: [
+ (kind: Property(Status(RepeatV2(
+ on_label: " ",
+ off_label: " ",
+ on_style: (fg: "yellow", modifiers: "Bold"),
+ off_style: (fg: "blue", modifiers: "Dim"),
+ )))),
+ (kind: Property(Status(RandomV2(
+ on_label: " ",
+ off_label: " ",
+ on_style: (fg: "yellow", modifiers: "Bold"),
+ off_style: (fg: "blue", modifiers: "Dim"),
+ )))),
+ (kind: Property(Status(SingleV2(
+ on_label: "󰑘 ",
+ off_label: "󰑘 ",
+ oneshot_label: "󰑘 ",
+ on_style: (fg: "yellow", modifiers: "Bold"),
+ off_style: (fg: "blue", modifiers: "Dim"),
+ oneshot_style: (fg: "red", modifiers: "Bold"),
+ )))),
+ (kind: Property(Status(ConsumeV2(
+ on_label: " ",
+ off_label: " ",
+ oneshot_label: "",
+ on_style: (fg: "yellow", modifiers: "Bold"),
+ off_style: (fg: "blue", modifiers: "Dim"),
+ oneshot_style: (fg: "red", modifiers: "Dim"),
+ )))),
+ ], align: Right)),
+ ),
+ ],
+ ),
+ ),
+ ]
+ )
+ ),
+ (
+ size: "3",
+ borders: "ALL",
+ pane: Pane(Tabs),
+ ),
+ (
+ size: "100%",
+ borders: "ALL",
+ background_color: "red",
+ pane: Pane(TabContent),
+ ),
+ (
+ size: "3",
+ borders: "ALL",
+ pane: Split(
+ direction: Horizontal,
+ panes: [
+ (
+ pane: Pane(Property(content: [(kind: Property(Status(StateV2(playing_label: "  ", paused_label: "  ", stopped_label: "  ",
+ playing_style: (fg: "blue"), paused_style: (fg: "green"), stopped_style: (fg: "red")
+ ))))], align: Left)),
+ size: "3",
+ ),
+ (
+ size: "100%",
+ pane: Pane(ProgressBar),
+ ),
+ (
+ size: "13",
+ pane: Pane(Property(
+ content: [
+ (kind: Property(Status(Elapsed))),
+ (kind: Text(" / ")),
+ (kind: Property(Status(Duration))),
+ ], align: Right,
+ )),
+ ),
+ ]
+ ),
+ ),
+ ]
+ ),
+ symbols: (
+ song: "",
+ dir: "",
+ marker: "\u{e0b0}",
+ ellipsis: "…"
+ ),
+ progress_bar: (
+ symbols: ["█", "\u{e0b0}", "█"],
+ track_style: (fg: "#1e2030"),
+ elapsed_style: (fg: "blue"),
+ thumb_style: (fg: "blue", bg: "#1e2030"),
+ ),
+ scrollbar: (
+ symbols: ["│", "█", "▲", "▼"],
+ track_style: (),
+ ends_style: (),
+ thumb_style: (fg: "blue"),
+ ),
+ browser_column_widths: [20, 38, 42],
+ browser_song_format: [
+ (
+ kind: Group([
+ (kind: Property(Track)),
+ (kind: Text(" ")),
+ ])
+ ),
+ (
+ kind: Group([
+ (kind: Property(Artist)),
+ (kind: Text(" - ")),
+ (kind: Property(Title)),
+ ]),
+ default: (kind: Property(Filename))
+ ),
+ ],
+ tab_bar: (
+ active_style: (fg: "black", bg: "blue", modifiers: "Bold"),
+ inactive_style: (),
+ ),
+ highlighted_item_style: (fg: "blue", modifiers: "Bold"),
+ current_item_style: (fg: "black", bg: "blue", modifiers: "Bold"),
+ borders_style: (fg: "blue", modifiers: "Bold"),
+ highlight_border_style: (fg: "red"),
+ song_table_format: [
+ (
+ prop: (kind: Property(Other("albumartist")), default: (kind: Property(Artist), default: (kind: Text("Unknown")))),
+ width: "20%",
+ label: "Artist"
+ ),
+ (
+ prop: (kind: Property(Title), default: (kind: Text("Unknown"))),
+ width: "35%",
+ ),
+ (
+ prop: (kind: Property(Album), default: (kind: Text("Unknown Album"))),
+ width: "45%",
+ ),
+ (
+ prop: (kind: Property(Duration),default: (kind: Text("-"))),
+ width: "5",
+ alignment: Right,
+ label: "Len"
+ ),
+ ],
+ header: (rows: []),
+)
diff --git a/.config/shell/aliasrc b/.config/shell/aliasrc
new file mode 100644
index 0000000..f875a05
--- /dev/null
+++ b/.config/shell/aliasrc
@@ -0,0 +1,75 @@
+#!/bin/sh
+
+# Use neovim for vim if present.
+[ -x "$(command -v nvim)" ] && alias vim="nvim" vimdiff="nvim -d"
+
+[ -f "$MBSYNCRC" ] && alias mbsync="mbsync -c $MBSYNCRC"
+
+# doas not required for some system commands
+for command in mount umount dinitctl pacman updatedb su shutdown poweroff reboot ; do
+ alias $command="doas $command"
+done; unset command
+
+se() {
+ choice="$(fd . --base-directory=$HOME/.local/bin -t f --min-depth=1 | fzf)"
+ [ -f "$HOME/.local/bin/$choice" ] && $EDITOR "$HOME/.local/bin/$choice"
+}
+
+# Verbosity and settings that you pretty much just always are going to want.
+alias \
+ cp="cp -iv" \
+ mv="mv -iv" \
+ rm="rm -vI" \
+ bc="bc -ql" \
+ rsync="rsync -vrPlu" \
+ mkd="mkdir -pv" \
+ yt="yt-dlp --embed-metadata -i" \
+ yta="yt -x -f bestaudio/best" \
+ ytt="yt --skip-download --write-thumbnail" \
+ ffmpeg="ffmpeg -hide_banner"
+
+# Colorize commands when possible.
+alias \
+ ll="eza -lh --group-directories-first --color=auto --color-scale=all --color-scale-mode=fixed --icons --no-quotes --smart-group -s size --total-size --no-user --no-permissions" \
+ ls="eza --group-directories-first --color=auto --icons --no-quotes -s name" \
+ lsf="eza -f --group-directories-first --color=auto --icons --no-quotes -s name" \
+ lsd="eza -D --group-directories-first --color=auto --icons --no-quotes -s name" \
+ lst="eza -lh --group-directories-first --color=auto --color-scale --icons --no-quotes --smart-group -s time --total-size --no-user --no-permissions" \
+ cat="bat -P" \
+ ccat="highlight --out-format=ansi" \
+ ip="ip -color=auto"
+
+# These common commands are just too long! Abbreviate them.
+alias \
+ cl="clear" \
+ ka="killall" \
+ trem="transmission-remote" \
+ YT="youtube-viewer" \
+ sdn="shutdown -h now" \
+ e="$EDITOR" \
+ v="$EDITOR" \
+ p="paru" \
+ z="zathura" \
+ lg="lazygit" \
+ sx="swayimg" \
+ md="monerod --prune-blockchain --fast-block-sync 1 --data-dir /mnt/ssd/monero/bitmonero" \
+ fetch="fastfetch" \
+ de="doasedit"
+
+# Git related
+alias \
+ g="git" \
+ gs="git status --short" \
+ gd="git diff" \
+ ga="git add" \
+ gc="git commit" \
+ gp="git push" \
+ gu="git pull" \
+ gl="git log" \
+ gb="git branch" \
+ gi="git init" \
+ gcl="git clone"
+
+alias \
+ magit="nvim -c MagitOnly" \
+ ref="shortcuts >/dev/null; source ${XDG_CONFIG_HOME:-$HOME/.config}/shell/shortcutrc ; source ${XDG_CONFIG_HOME:-$HOME/.config}/shell/shortcutenvrc ; source ${XDG_CONFIG_HOME:-$HOME/.config}/shell/zshnameddirrc"
diff --git a/.config/shell/bm-dirs b/.config/shell/bm-dirs
new file mode 100644
index 0000000..3ab0b0d
--- /dev/null
+++ b/.config/shell/bm-dirs
@@ -0,0 +1,14 @@
+# 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}
+rr /mnt/ssd/projects
+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
index 0000000..7d7ef0d
--- /dev/null
+++ b/.config/shell/bm-files
@@ -0,0 +1,16 @@
+# 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
+
+# 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
+cfmc ${XDG_CONFIG_HOME:-$HOME/.config}/rmpc/config.ron # rmpc (music player) config
diff --git a/.config/shell/inputrc b/.config/shell/inputrc
new file mode 100644
index 0000000..f9b94dd
--- /dev/null
+++ b/.config/shell/inputrc
@@ -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
index 0000000..6234bba
--- /dev/null
+++ b/.config/shell/profile
@@ -0,0 +1,94 @@
+#!/bin/sh
+# shellcheck disable=SC2155
+
+# Profile file, runs on login. Environmental variables are set here.
+
+# Add all directories in `~/.local/bin` to $PATH
+export PATH="$PATH:$(find ~/.local/bin -type d | paste -sd ':' -)"
+
+unsetopt PROMPT_SP 2>/dev/null
+
+# Default programs:
+export EDITOR="nvim"
+export MANPAGER='nvim +Man!'
+export TERMINAL="footclient"
+export TERMINAL_PROG="footclient"
+export BROWSER="firefox"
+
+unset SSH_AGENT_PID
+if [ "${gnupg_SSH_AUTH_SOCK_by:-0}" -ne $$ ]; then
+ export SSH_AUTH_SOCK="$(gpgconf --list-dirs agent-ssh-socket)"
+fi
+
+# Change the default crypto/weather monitor sites.
+# export CRYPTOURL="rate.sx"
+# export WTTRURL="wttr.in"
+
+# ~/ Clean-up:
+export XDG_CONFIG_HOME="$HOME/.config"
+export XDG_DATA_HOME="$HOME/.local/share"
+export XDG_CACHE_HOME="$HOME/.cache"
+export XDG_STATE_HOME="$HOME/.local/state"
+export XDG_MUSIC_DIR="/mnt/ssd/music"
+export NOTMUCH_CONFIG="$XDG_CONFIG_HOME/notmuch-config"
+export WGETRC="$XDG_CONFIG_HOME/wget/wgetrc"
+export INPUTRC="$XDG_CONFIG_HOME/shell/inputrc"
+export ZDOTDIR="$XDG_CONFIG_HOME/zsh"
+#export GNUPGHOME="$XDG_DATA_HOME/gnupg"
+export WINEPREFIX="$XDG_DATA_HOME/wineprefixes/default"
+export KODI_DATA="$XDG_DATA_HOME/kodi"
+export PASSWORD_STORE_DIR="$XDG_DATA_HOME/password-store"
+export TMUX_TMPDIR="$XDG_RUNTIME_DIR"
+export ANDROID_SDK_HOME="$XDG_CONFIG_HOME/android"
+export CARGO_HOME="$XDG_DATA_HOME/cargo"
+export GOPATH="$XDG_DATA_HOME/go"
+export GOMODCACHE="$XDG_CACHE_HOME/go/mod"
+export ANSIBLE_CONFIG="$XDG_CONFIG_HOME/ansible/ansible.cfg"
+export UNISON="$XDG_DATA_HOME/unison"
+export HISTFILE="$XDG_DATA_HOME/history"
+export MBSYNCRC="$XDG_CONFIG_HOME/mbsync/config"
+export ELECTRUMDIR="$XDG_DATA_HOME/electrum"
+export PYTHONSTARTUP="$XDG_CONFIG_HOME/python/pythonrc"
+export SQLITE_HISTORY="$XDG_DATA_HOME/sqlite_history"
+export NPM_CONFIG_USERCONFIG="$XDG_CONFIG_HOME/npm/npmrc"
+export CUDA_CACHE_PATH="$XDG_CACHE_HOME/nv"
+export KUBECONFIG="$XDG_CONFIG_HOME/kube/config"
+export KUBECACHEDIR="$XDG_CACHE_HOME/kube"
+export DOCKER_CONFIG="$XDG_CONFIG_HOME/docker"
+export PASSWORD_STORE_CLIP_TIME=5
+
+# Other program settings:
+export DICS="/usr/share/stardict/dic/"
+export DOAS_ASKPASS="$HOME/.local/bin/dmenupass"
+export LESS="R"
+export LESS_TERMCAP_mb="$(printf '%b' '')"
+export LESS_TERMCAP_md="$(printf '%b' '')"
+export LESS_TERMCAP_me="$(printf '%b' '')"
+export LESS_TERMCAP_so="$(printf '%b' '')"
+export LESS_TERMCAP_se="$(printf '%b' '')"
+export LESS_TERMCAP_us="$(printf '%b' '')"
+export LESS_TERMCAP_ue="$(printf '%b' '')"
+export LESSOPEN="| /usr/bin/highlight -O ansi %s 2>/dev/null"
+export QT_QPA_PLATFORMTHEME="gtk3" # Have QT use gtk3 theme.
+export MOZ_USE_XINPUT2=1 # Mozilla smooth scrolling/touchpads.
+export AWT_TOOLKIT="MToolkit wmname LG3D" # May have to install wmname
+export _JAVA_AWT_WM_NONREPARENTING=1 # Fix for Java applications in dwm
+export LIBVA_DRIVER_NAME=nvidia
+export __GLX_VENDOR_LIBRARY_NAME=nvidia
+export MOZ_DISABLE_RDD_SANDBOX=1 # For HW in Firefox on nvidia gpu
+export ELECTRON_OZONE_PLATFORM_HINT=auto # Electron fix
+export QT_WAYLAND_DISABLE_WINDOWDECORATION=1 # Disables decorations for QT applications
+export FZF_DEFAULT_OPTS=\
+"--layout=reverse --height 40% \
+--color=fg:#e5e9f0,bg:-1,hl:#81a1c1 \
+--color=fg+:#e5e9f0,bg+:#3b4252,hl+:#81a1c1 \
+--color=info:#eacb8a,prompt:#bf6069,pointer:#b48dac \
+--color=marker:#a3be8b,spinner:#b48dac,header:#a3be8b"
+export YT_X_FZF_OPTS="$FZF_DEFAULT_OPTS"
+export ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE="fg=#767676"
+export BAT_THEME="gruvbox-dark"
+
+[ ! -f "$XDG_CONFIG_HOME/shell/shortcutrc" ] && setsid -f shortcuts >/dev/null 2>&1
+
+# Start graphical server on user's current tty if not already running.
+[ "$(tty)" = "/dev/tty1" ] && ! pidof -s Hyprland >/dev/null 2>&1 && exec dbus-run-session Hyprland
diff --git a/.config/swayidle/config b/.config/swayidle/config
new file mode 100644
index 0000000..3d33378
--- /dev/null
+++ b/.config/swayidle/config
@@ -0,0 +1,3 @@
+timeout 300 'swaylock -f'
+timeout 330 'swaymsg "output * dpms off"' resume 'swaymsg "output * dpms on"'
+before-sleep 'swaylock -f'
diff --git a/.config/swayimg/config b/.config/swayimg/config
new file mode 100644
index 0000000..e2892a3
--- /dev/null
+++ b/.config/swayimg/config
@@ -0,0 +1,38 @@
+[general]
+compositor = no
+[viewer]
+window = #000000
+scale = fit
+[gallery]
+window = #000000
+[list]
+all = yes
+[keys.viewer]
+h = step_left
+j = step_down
+k = step_up
+l = step_right
+n = next_file
+p = prev_file
+w = zoom fit
+g = first_file
+Shift+g = last_file
+Ctrl+x = exec ~/.config/swayimg/key-handler "%"
+r = rotate_right
+Shift+r = rotate_left
+Alt+Shift+k = zoom +20
+Alt+Shift+j = zoom -20
+[keys.gallery]
+h = step_left
+j = step_down
+k = step_up
+l = step_right
+g = first_file
+Shift+g = last_file
+[info]
+info_timeout = 0
+[info.viewer]
+top_left = none
+top_right = none
+bottom_left = +name
+bottom_right = +scale,+frame,+index
diff --git a/.config/swayimg/key-handler b/.config/swayimg/key-handler
new file mode 100755
index 0000000..67943a9
--- /dev/null
+++ b/.config/swayimg/key-handler
@@ -0,0 +1,35 @@
+#!/bin/sh
+file=$1
+ [ -z "$selection" ] && selection=$(printf "w - Set as wallpaper\nc - Copy to dir\nm - Move to dir\nr - Rotate 90°\nR - Rotate -90°\nf - Flip horizontal\ny - Copy filename to clipboard\nY - Copy full path to clipboard\nd - Delete\ng - Open in GIMP\ni - Show media info" |
+ mew -i -l 12 -p "Choose action for selected files:")
+ action=$(printf "%s" "$selection" | cut -d'-' -f1 | tr -d ' ')
+ case "$action" in
+ "w") setbg "$file" & ;;
+ "c")
+ [ -z "$destdir" ] && destdir="$(sed "s/#.*$//;/^\s*$/d" ${XDG_CONFIG_HOME:-$HOME/.config}/shell/bm-dirs | awk '{print $2}' | mew -l 20 -i -p "Copy file(s) to where?" | sed "s|~|$HOME|g")"
+ [ ! -d "$destdir" ] && notify-send "$destdir is not a directory, cancelled." && exit
+ cp "$file" "$destdir" && notify-send -i "$(readlink -f "$file")" "$file copied to $destdir." &
+ ;;
+ "m")
+ [ -z "$destdir" ] && destdir="$(sed "s/#.*$//;/^\s*$/d" ${XDG_CONFIG_HOME:-$HOME/.config}/shell/bm-dirs | awk '{print $2}' | mew -l 20 -i -p "Move file(s) to where?" | sed "s|~|$HOME|g")"
+ [ ! -d "$destdir" ] && notify-send "$destdir is not a directory, cancelled." && exit
+ mv "$file" "$destdir" && notify-send -i "$(readlink -f "$file")" "$file moved to $destdir." &
+ ;;
+ "r")
+ magick "$file" -rotate 90 "$file" ;;
+ "R")
+ magick "$file" -rotate -90 "$file" ;;
+ "f")
+ magick "$file" -flop "$file" ;;
+ "y")
+ printf "%s" "$file" | tr -d '\n' | wl-copy &&
+ notify-send "$file copied to clipboard" & ;;
+ "Y")
+ readlink -f "$file" | tr -d '\n' | wl-copy &&
+ notify-send "$(readlink -f "$file") copied to clipboard" & ;;
+ "d")
+ [ "$(printf "No\\nYes" | mew -i -p "Really delete $file?")" = "Yes" ] && rm "$file" && notify-send "$file deleted." ;;
+ "g") ifinstalled gimp && setsid -f gimp "$file" ;;
+ "i") notify-send "File information" "$(mediainfo "$file" | sed "s/[ ]\+:/:/g;s/: /: <b>/;s/$/<\/b>/" | rg "<b>")" ;;
+ *) notify-send "No keybind for that key" ;;
+ esac
diff --git a/.config/swaylock/config b/.config/swaylock/config
new file mode 100644
index 0000000..501b8d6
--- /dev/null
+++ b/.config/swaylock/config
@@ -0,0 +1 @@
+image=$(fd . /mnt/ssd/papes -t f | shuf -n1)
diff --git a/.config/user-dirs.dirs b/.config/user-dirs.dirs
new file mode 100644
index 0000000..5a28707
--- /dev/null
+++ b/.config/user-dirs.dirs
@@ -0,0 +1 @@
+XDG_DESKTOP_DIR="$HOME/"
diff --git a/.config/waybar/config b/.config/waybar/config
new file mode 120000
index 0000000..0cffcb3
--- /dev/null
+++ b/.config/waybar/config
@@ -0,0 +1 @@
+config.json \ No newline at end of file
diff --git a/.config/waybar/config.json b/.config/waybar/config.json
new file mode 100644
index 0000000..581d763
--- /dev/null
+++ b/.config/waybar/config.json
@@ -0,0 +1,223 @@
+{
+ "layer": "top",
+ "position": "top",
+ "output": "DP-2",
+ "reload_style_on_change": true,
+ "modules-left": [
+ "hyprland/workspaces",
+ "custom/vanity",
+ "hyprland/window"
+ ],
+ "modules-right": [
+ "custom/recording",
+ "custom/tasks",
+ "custom/music",
+ "custom/packages",
+ "custom/news",
+ "custom/torrent",
+ "custom/memory",
+ "custom/forecast",
+ "custom/mailbox",
+ "custom/nettraf",
+ "custom/microphone",
+ "custom/volume",
+ "custom/clock",
+ "custom/internet",
+ "tray"
+ ],
+
+ "hyprland/workspaces": {
+ "disable-scroll": true,
+ "all-outputs": true,
+ "on-click": "activate",
+ "format": "{icon}"
+ },
+
+ "custom/vanity" : {
+ "tooltip": false,
+ "format": "[]="
+ },
+
+ "custom/recording" : {
+ "tooltip": false,
+ "format": "{}",
+ "signal": 9,
+ "exec" : "cat /tmp/recordingicon 2> /dev/null"
+ },
+
+ "custom/tasks" : {
+ "tooltip": false,
+ "format": "{}",
+ "signal": 26,
+ "interval": 10,
+ "exec" : "sb-tasks",
+ "on-click": "BLOCK_BUTTON=1 sb-tasks",
+ "on-click-right": "BLOCK_BUTTON=3 sb-tasks",
+ "on-click-middle": "BLOCK_BUTTON=3 sb-tasks",
+ "on-click-backward": "BLOCK_BUTTON=3 sb-tasks"
+ },
+
+ "custom/music" : {
+ "tooltip": false,
+ "escape": true,
+ "format": "{}",
+ "signal": 11,
+ "exec" : "sb-music",
+ "on-click": "BLOCK_BUTTON=1 sb-music",
+ "on-click-right": "BLOCK_BUTTON=3 sb-music",
+ "on-click-middle": "BLOCK_BUTTON=2 sb-music",
+ "on-scroll-up": "BLOCK_BUTTON=4 sb-music",
+ "on-scroll-down": "BLOCK_BUTTON=5 sb-music",
+ "on-click-backward": "BLOCK_BUTTON=8 sb-music"
+ },
+
+ "custom/packages" : {
+ "tooltip": false,
+ "format": "{}",
+ "signal": 8,
+ "exec" : "sb-pacpackages",
+ "on-click": "BLOCK_BUTTON=1 sb-pacpackages",
+ "on-click-right": "BLOCK_BUTTON=3 sb-pacpackages",
+ "on-click-middle": "BLOCK_BUTTON=2 sb-pacpackages",
+ "on-click-backward": "BLOCK_BUTTON=8 sb-pacpackages"
+ },
+
+ "custom/news" : {
+ "tooltip": false,
+ "format": "{}",
+ "signal": 6,
+ "exec" : "sb-news",
+ "on-click": "BLOCK_BUTTON=1 sb-news; pkill -RTMIN+6 waybar",
+ "on-click-right": "BLOCK_BUTTON=3 sb-news 3",
+ "on-click-middle": "BLOCK_BUTTON=2 sb-news 2",
+ "on-click-backward": "BLOCK_BUTTON=8 sb-news 8"
+ },
+
+ "custom/torrent" : {
+ "tooltip": false,
+ "format": "{}",
+ "signal": 7,
+ "interval": 20,
+ "exec" : "sb-torrent",
+ "on-click": "BLOCK_BUTTON=1 sb-torrent",
+ "on-click-right": "BLOCK_BUTTON=3 sb-torrent",
+ "on-click-middle": "BLOCK_BUTTON=2 sb-torrent",
+ "on-click-backward": "BLOCK_BUTTON=8 sb-torrent"
+ },
+
+ "custom/memory" : {
+ "tooltip": false,
+ "format": "{}",
+ "signal": 14,
+ "exec" : "sb-memory",
+ "interval": 10,
+ "on-click": "BLOCK_BUTTON=1 sb-memory",
+ "on-click-right": "BLOCK_BUTTON=3 sb-memory",
+ "on-click-middle": "BLOCK_BUTTON=2 sb-memory",
+ "on-click-backward": "BLOCK_BUTTON=8 sb-memory"
+ },
+
+ "custom/doppler" : {
+ "tooltip": false,
+ "format": "{}",
+ "signal": 13,
+ "interval": 650,
+ "exec" : "sb-doppler",
+ "on-click": "BLOCK_BUTTON=1 sb-doppler",
+ "on-click-right": "BLOCK_BUTTON=3 sb-doppler",
+ "on-click-middle": "BLOCK_BUTTON=2 sb-doppler",
+ "on-click-backward": "BLOCK_BUTTON=8 sb-doppler"
+ },
+
+ "custom/forecast" : {
+ "tooltip": false,
+ "format": "{}",
+ "signal": 5,
+ "exec" : "sb-forecast",
+ "interval" : 18000,
+ "on-click": "BLOCK_BUTTON=1 sb-forecast",
+ "on-click-right": "BLOCK_BUTTON=3 sb-forecast",
+ "on-click-middle": "BLOCK_BUTTON=2 sb-forecast",
+ "on-click-backward": "BLOCK_BUTTON=8 sb-forecast"
+ },
+
+ "custom/mailbox" : {
+ "tooltip": false,
+ "format": "{}",
+ "signal": 12,
+ "exec" : "sb-mailbox",
+ "interval" : 180,
+ "on-click": "BLOCK_BUTTON=1 sb-mailbox",
+ "on-click-right": "BLOCK_BUTTON=3 sb-mailbox",
+ "on-click-middle": "BLOCK_BUTTON=2 sb-mailbox",
+ "on-click-backward": "BLOCK_BUTTON=8 sb-mailbox"
+ },
+
+ "custom/nettraf" : {
+ "tooltip": false,
+ "format": "{}",
+ "signal": 16,
+ "exec" : "sb-nettraf",
+ "interval" : 1,
+ "on-click": "BLOCK_BUTTON=1 sb-nettraf",
+ "on-click-right": "BLOCK_BUTTON=3 sb-nettraf",
+ "on-click-backward": "BLOCK_BUTTON=8 sb-nettraf"
+ },
+
+ "custom/microphone" : {
+ "tooltip": false,
+ "format": "{}",
+ "signal": 23,
+ "exec" : "sb-microphone",
+ "interval": 10,
+ "on-click": "BLOCK_BUTTON=1 sb-microphone",
+ "on-click-middle": "BLOCK_BUTTON=2 sb-microphone",
+ "on-scroll-up": "BLOCK_BUTTON=4 sb-microphone",
+ "on-scroll-down": "BLOCK_BUTTON=5 sb-microphone",
+ "on-click-right": "BLOCK_BUTTON=3 sb-microphone",
+ "on-click-backward": "BLOCK_BUTTON=8 sb-microphone"
+ },
+
+ "custom/volume" : {
+ "tooltip": false,
+ "format": "{}",
+ "signal": 10,
+ "exec" : "sb-volume",
+ "interval": 10,
+ "on-click": "BLOCK_BUTTON=1 sb-volume",
+ "on-click-middle": "BLOCK_BUTTON=2 sb-volume",
+ "on-scroll-up": "BLOCK_BUTTON=4 sb-volume",
+ "on-scroll-down": "BLOCK_BUTTON=5 sb-volume",
+ "on-click-right": "BLOCK_BUTTON=3 sb-volume",
+ "on-click-backward": "BLOCK_BUTTON=8 sb-volume"
+ },
+
+ "custom/clock" : {
+ "tooltip": false,
+ "format": "{}",
+ "signal": 1,
+ "exec" : "sb-clock",
+ "interval" : 1,
+ "on-click": "BLOCK_BUTTON=1 sb-clock",
+ "on-click-middle": "BLOCK_BUTTON=2 sb-clock",
+ "on-click-right": "BLOCK_BUTTON=3 sb-clock",
+ "on-click-backward": "BLOCK_BUTTON=8 sb-clock"
+ },
+
+ "custom/internet" : {
+ "tooltip": false,
+ "format": "{}",
+ "signal": 4,
+ "exec" : "sb-internet",
+ "interval": 10,
+ "on-click": "BLOCK_BUTTON=1 sb-internet; pkill -RTMIN+4 waybar",
+ "on-click-right": "BLOCK_BUTTON=3 sb-internet; pkill -RTMIN+4 waybar",
+ "on-click-middle": "pkill -RTMIN+4 waybar",
+ "on-click-backward": "BLOCK_BUTTON=8 sb-internet"
+ },
+
+ "tray" : {
+ "icon-size": 18,
+ "spacing": 10
+ }
+}
diff --git a/.config/waybar/style.css b/.config/waybar/style.css
new file mode 100644
index 0000000..ff119b0
--- /dev/null
+++ b/.config/waybar/style.css
@@ -0,0 +1,98 @@
+* {
+ font-family: "monospace";
+ min-height: 0;
+ font-size: 100%;
+}
+
+window#waybar {
+ background-color: #005577;
+}
+
+#window {
+ background-color: #005577;
+ padding-left: 10px;
+}
+
+#custom-vanity {
+ padding-left: 5px;
+ padding-right: 10px;
+}
+
+#taskbar button,
+#workspaces button {
+ color: #bbb;
+ background-color: #222;
+ border-radius: 0px;
+}
+
+#taskbar button.active,
+#workspaces button.active {
+ color: #eee;
+ background-color: #005577;
+}
+
+#workspaces button.urgent {
+ color: #fb4934;
+}
+
+.modules-left, .modules-right {
+ background: #222;
+ color: #bbb;
+}
+
+.modules-right {
+ padding-left: 10px;
+}
+
+#window {
+ color: #fff;
+}
+
+#custom-music {
+ padding-right: 10px;
+}
+
+#custom-packages {
+ padding-right: 10px;
+}
+
+#custom-news {
+ padding-right: 10px;
+}
+
+#custom-memory {
+ padding-right: 10px;
+}
+
+#custom-forecast {
+ padding-right: 10px;
+}
+
+#custom-mailbox {
+ padding-right: 10px;
+}
+
+#custom-nettraf {
+ min-width: 120px;
+ padding-right: 10px;
+}
+
+#custom-microphone {
+ padding-right: 10px;
+}
+
+#custom-volume {
+ padding-right: 10px;
+}
+
+#custom-clock {
+ padding-right: 10px;
+}
+
+#custom-internet {
+ padding-right: 10px;
+}
+
+#tray {
+ padding-right: 10px;
+}
diff --git a/.config/wget/wgetrc b/.config/wget/wgetrc
new file mode 100644
index 0000000..4fd7999
--- /dev/null
+++ b/.config/wget/wgetrc
@@ -0,0 +1 @@
+hsts-file=~/.cache/wget-hsts
diff --git a/.config/yazi/yazi.toml b/.config/yazi/yazi.toml
new file mode 100644
index 0000000..7f1fde1
--- /dev/null
+++ b/.config/yazi/yazi.toml
@@ -0,0 +1,2 @@
+[mgr]
+show_hidden = true
diff --git a/.config/zathura/zathurarc b/.config/zathura/zathurarc
new file mode 100644
index 0000000..de92e4d
--- /dev/null
+++ b/.config/zathura/zathurarc
@@ -0,0 +1,25 @@
+set sandbox none
+set statusbar-h-padding 0
+set statusbar-v-padding 0
+set page-padding 1
+set selection-clipboard clipboard
+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
+map g goto top
+map [fullscreen] u scroll half-up
+map [fullscreen] d scroll half-down
+map [fullscreen] D toggle_page_mode
+map [fullscreen] r reload
+map [fullscreen] R rotate
+map [fullscreen] K zoom in
+map [fullscreen] J zoom out
+map [fullscreen] i recolor
+map [fullscreen] p print
+map [fullscreen] g goto top
diff --git a/.config/zsh/.zshrc b/.config/zsh/.zshrc
new file mode 100644
index 0000000..4d482f6
--- /dev/null
+++ b/.config/zsh/.zshrc
@@ -0,0 +1,87 @@
+# Enable colors and change prompt:
+autoload -U colors && colors # Load colors
+PS1='%B%{$fg[red]%}[%{$fg[yellow]%}%n%{$fg[green]%}@%{$fg[blue]%}%M %{$fg[magenta]%}%~%{$fg[red]%}]%{$reset_color%}$%b${vcs_info_msg_0_} '
+setopt autocd # Automatically cd into typed directory.
+stty stop undef # Disable ctrl-s to freeze terminal.
+setopt interactive_comments
+setopt prompt_subst
+# History in cache directory:
+HISTSIZE=10000000
+SAVEHIST=10000000
+HISTFILE="${XDG_CACHE_HOME:-$HOME/.cache}/zsh/history"
+setopt inc_append_history
+
+autoload -Uz vcs_info # enable vcs_info
+precmd () { vcs_info }
+zstyle ':vcs_info:*' formats ' %s(%F{blue}%b%f)' # git(main)
+
+# Load aliases and shortcuts if existent.
+[ -f "${XDG_CONFIG_HOME:-$HOME/.config}/shell/shortcutrc" ] && source "${XDG_CONFIG_HOME:-$HOME/.config}/shell/shortcutrc"
+[ -f "${XDG_CONFIG_HOME:-$HOME/.config}/shell/shortcutenvrc" ] && source "${XDG_CONFIG_HOME:-$HOME/.config}/shell/shortcutenvrc"
+[ -f "${XDG_CONFIG_HOME:-$HOME/.config}/shell/aliasrc" ] && source "${XDG_CONFIG_HOME:-$HOME/.config}/shell/aliasrc"
+[ -f "${XDG_CONFIG_HOME:-$HOME/.config}/shell/zshnameddirrc" ] && source "${XDG_CONFIG_HOME:-$HOME/.config}/shell/zshnameddirrc"
+
+# Basic auto/tab complete:
+autoload -U compinit
+zstyle ':completion:*' menu select
+zmodload zsh/complist
+compinit
+_comp_options+=(globdots) # Include hidden files.
+
+# vi mode
+bindkey -v
+export KEYTIMEOUT=1
+
+# Use vim keys in tab complete menu:
+bindkey -M menuselect 'h' vi-backward-char
+bindkey -M menuselect 'k' vi-up-line-or-history
+bindkey -M menuselect 'l' vi-forward-char
+bindkey -M menuselect 'j' vi-down-line-or-history
+bindkey -v '^?' backward-delete-char
+
+# Change cursor shape for different vi modes.
+function zle-keymap-select () {
+ case $KEYMAP in
+ vicmd) echo -ne '\e[6 q';;
+ viins|main) echo -ne '\033[0 q';;
+ esac
+}
+zle -N zle-keymap-select
+zle-line-init() {
+ zle -K viins # initiate `vi insert` as keymap (can be removed if `bindkey -V` has been set elsewhere)
+ echo -ne '\033[0 q'
+}
+zle -N zle-line-init
+
+function preexec {
+ print -Pn "\e]0;${(q)1}\e\\"
+}
+
+# Use yazi to switch directories and bind it to ctrl-o
+function y() {
+ local tmp="$(mktemp -t "yazi-cwd.XXXXXX")" cwd
+ yazi "$@" --cwd-file="$tmp"
+ if cwd="$(command cat -- "$tmp")" && [ -n "$cwd" ] && [ "$cwd" != "$PWD" ]; then
+ builtin cd -- "$cwd"
+ fi
+ rm -f -- "$tmp" > /dev/null
+}
+
+bindkey -s '^o' '^uy\n'
+
+bindkey -s '^a' '^ubc -lq\n'
+
+bindkey -s '^f' '^ucd "$(dirname "$(fzf)")"\n'
+
+bindkey '^[[P' delete-char
+
+# Edit line in vim with ctrl-e:
+autoload edit-command-line; zle -N edit-command-line
+bindkey '^e' edit-command-line
+bindkey -M vicmd '^[[P' vi-delete-char
+bindkey -M vicmd '^e' edit-command-line
+bindkey -M visual '^[[P' vi-delete
+
+source /usr/share/zsh/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh
+# Load syntax highlighting; should be last.
+source /usr/share/zsh/plugins/fast-syntax-highlighting/fast-syntax-highlighting.plugin.zsh 2>/dev/null