summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore2
-rw-r--r--Makefile1
-rwxr-xr-xX11/xinitrc5
-rwxr-xr-xX11/xprofile7
-rwxr-xr-xautostart.sh39
-rw-r--r--foot/foot.ini199
-rw-r--r--hypr/hyprland.conf326
-rw-r--r--lf/lfrc115
-rw-r--r--mako/config37
-rwxr-xr-xnsxiv/exec/key-handler11
-rw-r--r--nwg-bar/bar.json22
-rwxr-xr-xriver/init223
-rwxr-xr-xriver/sp/river_sp51
-rwxr-xr-xriver/sp/sp_a3
-rwxr-xr-xriver/sp/sp_b3
-rwxr-xr-xriver/sp/sp_c3
-rwxr-xr-xriver/sp/sp_d3
-rwxr-xr-xriver/sp/sp_f3
-rwxr-xr-xriver/sp/sp_g3
-rwxr-xr-xriver/sp/sp_q3
-rwxr-xr-xriver/sp/sp_s3
-rwxr-xr-xriver/sp/sp_v3
-rwxr-xr-xriver/sp/sp_x3
-rwxr-xr-xriver/sp/sp_z3
-rw-r--r--sh/aliases2
-rw-r--r--sh/functions236
-rw-r--r--swayidle/config3
-rwxr-xr-xsxhkd/sxhkdrc.1329
-rwxr-xr-xsxhkd/sxhkdrc.bsp159
-rwxr-xr-xsxiv/exec/key-handler11
l---------tofi/config1
-rw-r--r--tofi/themes/colors17
-rw-r--r--tofi/themes/dmenu22
-rw-r--r--waybar/config126
-rw-r--r--waybar/config-Hyprland137
-rw-r--r--waybar/config-river129
-rw-r--r--waybar/style.css317
-rw-r--r--waylock/config1
-rw-r--r--zsh/.zshenv4
39 files changed, 1889 insertions, 676 deletions
diff --git a/.gitignore b/.gitignore
index 04ca00a..6158684 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,6 +1,7 @@
zsh/hist
zsh/zcompdump
zoomus.conf
+zirless/
zec-qt-wallet-org/
ytfzf/subscriptions
yabridgectl/
@@ -10,6 +11,7 @@ xmonad/xmonad-x86_64-linux
xmonad/xmonad.o
xmonad/xmonad.hi
weechat/
+waybar/config-Hyprland-*
waybar/config-river-*
waybar/config-dwl-*
vlc/vlc-qt-interface.conf
diff --git a/Makefile b/Makefile
index c68d34c..009bad1 100644
--- a/Makefile
+++ b/Makefile
@@ -1,6 +1,5 @@
VIM := $(shell command -v vim 2>/dev/null)
NVIM := $(shell command -v nvim 2>/dev/null)
-XCONFS := X11/xinitrc X11/xprofile X11/Xresources
ZCONFS := zsh/.zshenv
DCONFS := doas.conf
diff --git a/X11/xinitrc b/X11/xinitrc
deleted file mode 100755
index 73e2b83..0000000
--- a/X11/xinitrc
+++ /dev/null
@@ -1,5 +0,0 @@
-xrdb ~/.Xresources
-sh -c ~/.xprofile &
-#runsvdir ~/.runit/runsvdir &
-WM="$(~/.local/bin/scripts/crcparse 'WM')"
-exec dbus-launch --exit-with-session $WM
diff --git a/X11/xprofile b/X11/xprofile
deleted file mode 100755
index 18647e2..0000000
--- a/X11/xprofile
+++ /dev/null
@@ -1,7 +0,0 @@
-#!/bin/sh
-#layout.sh
-#tsoff
-#xrdb ~/.Xresources &
-setxkbmap -option "caps:escape" &
-#xwallpaper --center ~/background.jpg &
-#picom &
diff --git a/autostart.sh b/autostart.sh
index e9fbeda..38d03be 100755
--- a/autostart.sh
+++ b/autostart.sh
@@ -7,20 +7,35 @@ runifnot () {
fi
fi
}
+killandrun () {
+ if type $1 >/dev/null; then
+ echo $1
+ if [ -n "$(pgrep -Uzachir -f $1)" ]; then
+ pkill -Uzachir $1
+ fi
+ $@ &
+ fi
+}
-#runifnot runsvdir ~/.runit/runsvdir
-notify-sound.sh off &
-runifnot picom
-runifnot xss-lock slockd
-runifnot sxhkd
-runifnot dunst
-runifnot caffeine
-if "$(type xmonad >/dev/null 2>&1)"; then
- if ["$(crcparse WM)" = "$(which xmonad)" ]; then
- runifnot stalonetray
+if [ -n "${WAYLAND_DISPLAY}${DISPLAY}" ]; then
+ notify-sound.sh off &
+ runifnot caffeine
+ if [ -n "$WAYLAND_DISPLAY" ]; then
+ runifnot swayidle
+ launch_waybar.sh "$(crcparse WC)"
+ killandrun swaybg -i ~/background.jpg
+ else
+ runifnot picom
+ runifnot xss-lock slockd
+ runifnot sxhkd
+ if "$(type xmonad >/dev/null 2>&1)"; then
+ if ["$(crcparse WM)" = "$(which xmonad)" ]; then
+ runifnot stalonetray
+ fi
+ fi
+ xwallpaper --zoom ~/background.jpg
+ setxkbmap -option "caps:escape"
fi
fi
-xwallpaper --zoom ~/background.jpg
-setxkbmap -option "caps:escape"
[ -x "$XDG_CONFIG_HOME/computerrc.sh" ] && "$XDG_CONFIG_HOME/computerrc.sh"
diff --git a/foot/foot.ini b/foot/foot.ini
new file mode 100644
index 0000000..3817067
--- /dev/null
+++ b/foot/foot.ini
@@ -0,0 +1,199 @@
+# -*- conf -*-
+
+# shell=$SHELL (if set, otherwise user's default shell from /etc/passwd)
+# term=foot (or xterm-256color if built with -Dterminfo=disabled)
+# login-shell=no
+
+# app-id=foot
+# title=foot
+# locked-title=no
+
+font=mononoki Nerd Font Mono:size=10
+# font-bold=<bold variant of regular font>
+# font-italic=<italic variant of regular font>
+# font-bold-italic=<bold+italic variant of regular font>
+# font-size-adjustment=0.5
+# line-height=<font metrics>
+# letter-spacing=0
+# horizontal-letter-offset=0
+# vertical-letter-offset=0
+# underline-offset=<font metrics>
+# underline-thickness=<font underline thickness>
+# box-drawings-uses-font-glyphs=no
+# dpi-aware=auto
+
+# initial-window-size-pixels=700x500 # Or,
+# initial-window-size-chars=<COLSxROWS>
+# initial-window-mode=windowed
+# pad=0x0 # optionally append 'center'
+# resize-delay-ms=100
+
+# notify=notify-send -a ${app-id} -i ${app-id} ${title} ${body}
+
+# bold-text-in-bright=no
+# word-delimiters=,│`|:"'()[]{}<>
+# selection-target=primary
+# workers=<number of logical CPUs>
+# utempter=/usr/lib/utempter/utempter
+
+[environment]
+# name=value
+
+[bell]
+# urgent=no
+# notify=no
+# command=
+# command-focused=no
+
+[scrollback]
+# lines=1000
+# multiplier=3.0
+# indicator-position=relative
+# indicator-format=""
+
+[url]
+launch=browser ${url}
+# label-letters=sadfjklewcmpgh
+# osc8-underline=url-mode
+# protocols=http, https, ftp, ftps, file, gemini, gopher
+# uri-characters=abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_.,~:;/?#@!$&%*+="'()[]
+
+[cursor]
+# style=block
+# color=<inverse foreground/background>
+# blink=no
+# beam-thickness=1.5
+# underline-thickness=<font underline thickness>
+
+[mouse]
+hide-when-typing=yes
+# alternate-scroll-mode=yes
+
+[colors]
+alpha=0.8
+background=000000
+foreground=c5c8c6
+
+## Normal/regular colors (color palette 0-7)
+regular0=1b1d1c # black
+regular1=89231d # red
+regular2=4eec4e # green
+regular3=ae7518 # yellow
+regular4=2b55b2 # blue
+regular5=784e93 # magenta
+regular6=2783a1 # cyan
+regular7=b4b7b5 # white
+
+## Bright colors (color palette 8-15)
+bright0=969896 # bright black
+bright1=cc342b # bright red
+bright2=198844 # bright green
+bright3=fba922 # bright yellow
+bright4=3971ed # bright blue
+bright5=a36ac7 # bright magenta
+bright6=39c1ed # bright cyan
+bright7=ffffff # bright white
+
+## dimmed colors (see foot.ini(5) man page)
+# dim0=<not set>
+# ...
+# dim7=<not-set>
+
+## The remaining 256-color palette
+# 16 = <256-color palette #16>
+# ...
+# 255 = <256-color palette #255>
+
+## Misc colors
+# selection-foreground=<inverse foreground/background>
+# selection-background=<inverse foreground/background>
+# jump-labels=<regular0> <regular3> # black-on-yellow
+# scrollback-indicator=<regular0> <bright4> # black-on-bright-blue
+# search-box-no-match=<regular0> <regular1> # black-on-red
+# search-box-match=<regular0> <regular3> # black-on-yellow
+# urls=<regular3>
+
+[csd]
+# preferred=server
+# size=26
+# font=<primary font>
+# color=<foreground color>
+# hide-when-typing=no
+# border-width=0
+# border-color=<csd.color>
+# button-width=26
+# button-color=<background color>
+# button-minimize-color=<regular4>
+# button-maximize-color=<regular2>
+# button-close-color=<regular1>
+
+[key-bindings]
+# scrollback-up-page=Shift+Page_Up
+# scrollback-up-half-page=none
+# scrollback-up-line=none
+# scrollback-down-page=Shift+Page_Down
+# scrollback-down-half-page=none
+# scrollback-down-line=none
+# clipboard-copy=Control+Shift+c XF86Copy
+# clipboard-paste=Control+Shift+v XF86Paste
+# primary-paste=Shift+Insert
+# search-start=Control+Shift+r
+# font-increase=Control+plus Control+equal Control+KP_Add
+# font-decrease=Control+minus Control+KP_Subtract
+# font-reset=Control+0 Control+KP_0
+# spawn-terminal=Control+Shift+n
+# minimize=none
+# maximize=none
+# fullscreen=none
+pipe-visible=[sh -c "xurls | xargs -r browser"] none
+pipe-scrollback=[sh -c "xurls | xargs -r browser"] Mod4+l
+pipe-selected=[xargs -r browser] none
+# show-urls-launch=Control+Shift+u
+# show-urls-copy=none
+# show-urls-persistent=none
+# prompt-prev=Control+Shift+z
+# prompt-next=Control+Shift+x
+# unicode-input=none
+# noop=none
+
+[search-bindings]
+# cancel=Control+g Control+c Escape
+# commit=Return
+# find-prev=Control+r
+# find-next=Control+s
+# cursor-left=Left Control+b
+# cursor-left-word=Control+Left Mod1+b
+# cursor-right=Right Control+f
+# cursor-right-word=Control+Right Mod1+f
+# cursor-home=Home Control+a
+# cursor-end=End Control+e
+# delete-prev=BackSpace
+# delete-prev-word=Mod1+BackSpace Control+BackSpace
+# delete-next=Delete
+# delete-next-word=Mod1+d Control+Delete
+# extend-to-word-boundary=Control+w
+# extend-to-next-whitespace=Control+Shift+w
+# clipboard-paste=Control+v Control+Shift+v Control+y XF86Paste
+# primary-paste=Shift+Insert
+# unicode-input=none
+
+[url-bindings]
+# cancel=Control+g Control+c Control+d Escape
+# toggle-url-visible=t
+
+[text-bindings]
+# \x03=Mod4+c # Map Super+c -> Ctrl+c
+
+[mouse-bindings]
+# selection-override-modifiers=Shift
+# primary-paste=BTN_MIDDLE
+# select-begin=BTN_LEFT
+# select-begin-block=Control+BTN_LEFT
+# select-extend=BTN_RIGHT
+# select-extend-character-wise=Control+BTN_RIGHT
+# select-word=BTN_LEFT-2
+# select-word-whitespace=Control+BTN_LEFT-2
+# select-row=BTN_LEFT-3
+
+# vim: ft=dosini
+
diff --git a/hypr/hyprland.conf b/hypr/hyprland.conf
new file mode 100644
index 0000000..cc7c331
--- /dev/null
+++ b/hypr/hyprland.conf
@@ -0,0 +1,326 @@
+# See https://wiki.hyprland.org/Configuring/Monitors/
+#{{{ Monitor config
+monitor = , preferred, auto, 1
+#}}}
+
+# See https://wiki.hyprland.org/Configuring/Keywords/ for more
+
+#{{{ Autostart
+# Execute your favorite apps at launch
+# exec-once = waybar & hyprpaper & firefox
+exec-once = ~/.config/autostart.sh
+#}}}
+
+# Source a file (multi-file configs)
+# source = ~/.config/hypr/myColors.conf
+
+#{{{ Input options
+# For all categories, see https://wiki.hyprland.org/Configuring/Variables/
+input {
+ kb_layout = us
+ kb_variant =
+ kb_model =
+ kb_options = caps:escape
+ kb_rules =
+ numlock_by_default = true
+ scroll_method = "2fg"
+ follow_mouse = 1
+ touchpad {
+ natural_scroll = no
+ }
+ float_switch_override_focus = 0
+ sensitivity = 0 # -1.0 - 1.0, 0 means no modification.
+}
+#}}}
+
+#{{{ General options
+general {
+ # See https://wiki.hyprland.org/Configuring/Variables/ for more
+ gaps_in = 5
+ gaps_out = 20
+ border_size = 2
+ col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg
+ col.inactive_border = rgba(595959aa)
+ layout = dwindle
+ no_cursor_warps = false
+}
+#}}}
+
+#{{{ Misc options
+misc {
+ enable_swallow = true
+ swallow_regex = ^(foot)$
+}
+#}}}
+
+#{{{ Decoration options
+decoration {
+ # See https://wiki.hyprland.org/Configuring/Variables/ for more
+ rounding = 10
+ blur = yes
+ blur_size = 3
+ blur_passes = 1
+ blur_new_optimizations = on
+ drop_shadow = yes
+ shadow_range = 4
+ shadow_render_power = 3
+ col.shadow = rgba(1a1a1aee)
+}
+#}}}
+
+#{{{ Animations options
+animations {
+ enabled = yes
+ # Some default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more
+ bezier = myBezier, 0.05, 0.9, 0.1, 1.05
+ animation = windows, 1, 7, myBezier
+ animation = windowsOut, 1, 7, default, popin 80%
+ animation = border, 1, 10, default
+ animation = borderangle, 1, 8, default
+ animation = fade, 1, 7, default
+ animation = workspaces, 1, 6, default
+}
+#}}}
+
+#{{{ Dwindle layout options
+dwindle {
+ # See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
+ pseudotile = yes # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
+ preserve_split = yes # you probably want this
+ special_scale_factor = 0.55
+}
+#}}}
+
+#{{{ Master layout options
+master {
+ special_scale_factor = 0.55
+ # See https://wiki.hyprland.org/Configuring/Master-Layout/ for more
+ new_is_master = true
+ new_on_top = false
+ no_gaps_when_only = false
+ orientation = left
+ inherit_fullscreen = true
+}
+#}}}
+
+#{{{ Gestures options
+gestures {
+ # See https://wiki.hyprland.org/Configuring/Variables/ for more
+ workspace_swipe = off
+}
+#}}}
+
+#{{{ Device options
+# Example per-device config
+# See https://wiki.hyprland.org/Configuring/Keywords/#executing for more
+device:epic mouse V1 {
+ sensitivity = -0.5
+}
+#}}}
+
+#{{{ Windowrules
+# Example windowrule v1
+# windowrule = float, ^(kitty)$
+# Example windowrule v2
+# windowrulev2 = float, class:^(kitty)$, title:^(kitty)$
+# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
+windowrule = windowdance, title:^(Rhythm Doctor)$
+windowrulev2 = float, class:^(yabridge-host.exe.so)$, title:^(menu)$
+windowrulev2 = float,floating:0,title:^(menu*)
+windowrulev2 = forceinput,title:^(menu*)
+windowrulev2 = windowdance,title:^(menu*)
+#}}}
+
+#{{{ Mods
+# See https://wiki.hyprland.org/Configuring/Keywords/ for more
+$mainMod = ALT
+$secdMod = SUPER
+#}}}
+
+#{{{ Layout toggle bind
+# Layout toggle
+bind = $mainMod $secdMod, A, exec, hypr-layout -t
+#}}}
+
+#{{{ Master layout binds
+# Master layout binds
+#bind = $mainMod+SHIFT, Return, layoutmsg, swapwithmaster auto #MASTER
+#bind = $mainMod+SHIFT, J, layoutmsg, swapnext #MASTER
+#bind = $mainMod+SHIFT, K, layoutmsg, swapprev #MASTER
+#bind = $mainMod, H, layoutmsg, addmaster #MASTER
+#bind = $mainMod, L, layoutmsg, removemaster #MASTER
+#bind = $mainMod, J, movefocus, d #MASTER
+#bind = $mainMod, K, movefocus, u #MASTER
+#}}}
+
+#{{{ Dwindle layout binds
+# Dwindle layout binds
+bind = $mainMod, P, pseudo, #DWINDLE
+bind = $mainMod $secdMod, S, togglesplit, #DWINDLE
+# Move focus with mainMod + HJKL
+bind = $mainMod, H, movefocus, l #DWINDLE
+bind = $mainMod, L, movefocus, r #DWINDLE
+bind = $mainMod, K, movefocus, u #DWINDLE
+bind = $mainMod, J, movefocus, d #DWINDLE
+# Move window with mainMod + HJKL
+bind = $mainMod SHIFT, L, movewindow, r #DWINDLE
+bind = $mainMod SHIFT, H, movewindow, l #DWINDLE
+bind = $mainMod SHIFT, J, movewindow, d #DWINDLE
+bind = $mainMod SHIFT, K, movewindow, u #DWINDLE
+# Resize clients with mainMod + secdMod + HJKL
+binde = $mainMod $secdMod, L, resizeactive, 10 0 #DWINDLE
+binde = $mainMod $secdMod, H, resizeactive, -10 0 #DWINDLE
+binde = $mainMod $secdMod, K, resizeactive, 0 -10 #DWINDLE
+binde = $mainMod $secdMod, J, resizeactive, 0 10 #DWINDLE
+#}}}
+
+#{{{ Group binds
+# Group binds
+#bind = $mainMod CONTROL, G, togglegroup,
+#bind = $mainMod CONTROL, I, lockgroups, lock
+#bind = $mainMod CONTROL, U, lockgroups, unlock
+#bind = $mainMod CONTROL, H, moveintogroup, r
+#bind = $mainMod CONTROL, L, moveintogroup, l
+#bind = $mainMod CONTROL, J, moveintogroup, d
+#bind = $mainMod CONTROL, K, moveintogroup, u
+#}}}
+
+#{{{ WC binds
+bind = $mainMod+SHIFT, Q, killactive,
+bind = $mainMod+SHIFT, E, exit,
+bind = $mainMod+SHIFT, SPACE, togglefloating,
+#}}}
+
+#{{{ Workspace binds
+# Switch workspaces with mainMod + [0-9]
+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
+# Move active window to a workspace with mainMod + SHIFT + [0-9]
+bind = $mainMod SHIFT, 1, movetoworkspacesilent, 1
+bind = $mainMod SHIFT, 2, movetoworkspacesilent, 2
+bind = $mainMod SHIFT, 3, movetoworkspacesilent, 3
+bind = $mainMod SHIFT, 4, movetoworkspacesilent, 4
+bind = $mainMod SHIFT, 5, movetoworkspacesilent, 5
+bind = $mainMod SHIFT, 6, movetoworkspacesilent, 6
+bind = $mainMod SHIFT, 7, movetoworkspacesilent, 7
+bind = $mainMod SHIFT, 8, movetoworkspacesilent, 8
+bind = $mainMod SHIFT, 9, movetoworkspacesilent, 9
+bind = $mainMod SHIFT, 0, movetoworkspacesilent, 10
+bind = $mainMod CONTROL SHIFT, 1, movetoworkspace, 1
+bind = $mainMod CONTROL SHIFT, 2, movetoworkspace, 2
+bind = $mainMod CONTROL SHIFT, 3, movetoworkspace, 3
+bind = $mainMod CONTROL SHIFT, 4, movetoworkspace, 4
+bind = $mainMod CONTROL SHIFT, 5, movetoworkspace, 5
+bind = $mainMod CONTROL SHIFT, 6, movetoworkspace, 6
+bind = $mainMod CONTROL SHIFT, 7, movetoworkspace, 7
+bind = $mainMod CONTROL SHIFT, 8, movetoworkspace, 8
+bind = $mainMod CONTROL SHIFT, 9, movetoworkspace, 9
+bind = $mainMod CONTROL SHIFT, 0, movetoworkspace, 10
+bind = $mainMod, mouse_down, workspace, e+1
+bind = $mainMod, mouse_up, workspace, e-1
+#}}}
+
+#{{{ Mouse binds
+# Move/resize windows with mainMod + LMB/RMB and dragging
+bindm = $mainMod, mouse:272, movewindow
+bindm = $mainMod, mouse:273, resizewindow
+#}}}
+
+#{{{ Resize submap binds
+bind = $mainMod $secdMod, R, submap, resize
+submap = resize
+binde = CONTROL, L, resizeactive, 10 0
+binde = CONTROL, H, resizeactive, -10 0
+binde = CONTROL, K, resizeactive, 0 -10
+binde = CONTROL, J, resizeactive, 0 10
+binde = , escape, submap, reset
+submap = reset
+#}}}
+
+#{{{ Menu bindings
+bind = $mainMod, R, exec, exec j4-dmenu-desktop --dmenu="bemenu -l 10 -p \"Run:\""
+bind = $mainMod, D, exec, exec bemenu-run -l 15 -p "Run:"
+bind = $mainMod $secdMod, Q, exec, qbc
+bind = $mainMod $secdMod, W, exec, GTK_THEME="Plata-Noir-Compact" lwc
+bind = $mainMod $secdMod, E, exec, GTK_THEME="Plata-Noir-Compact" ffc
+bind = $mainMod $secdMod, 1, exec, bm
+bind = $mainMod $secdMod, comma, exec, dmenumount
+bind = $mainMod $secdMod, period, exec, dmenuumount
+bind = $mainMod $secdMod CONTROL, U, exec, dmenuunicode
+bind = $mainMod $secdMod, U, exec, mprisctl
+bind = $mainMod $secdMod, P, exec, passmenu
+#}}}
+
+#{{{ Misc bindings
+bind = $mainMod, Return, exec, foot
+bind = $mainMod $secdMod, F, exec, foot lf
+bind = $mainMod, W, exec, waytoggle
+bind = $mainMod, Q, exec, loginctl lock-session
+bind = $mainMod SHIFT, G, exec, get-app-id
+#}}}
+
+#{{{ Scratchpads
+bind = $mainMod+CONTROL, Z, exec, [workspace special:sphtop;float;noanim] sphtop
+bind = $mainMod+CONTROL, Z, togglespecialworkspace, sphtop
+bind = $mainMod+CONTROL, X, exec, [workspace special:spterm;float;noanim] spterm
+bind = $mainMod+CONTROL, X, togglespecialworkspace, spterm
+bind = $mainMod+CONTROL, C, exec, [workspace special:sppmxr;float;noanim] sppmxr
+bind = $mainMod+CONTROL, C, togglespecialworkspace, sppmxr
+bind = $mainMod+CONTROL, V, exec, [workspace special:spblue;float;noanim] spblue
+bind = $mainMod+CONTROL, V, togglespecialworkspace, spblue
+bind = $mainMod+CONTROL, B, exec, [workspace special:spncmp;float;noanim] spncmp
+bind = $mainMod+CONTROL, B, togglespecialworkspace, spncmp
+bind = $mainMod+CONTROL, A, exec, [workspace special:spmutt;float;noanim] spmutt
+bind = $mainMod+CONTROL, A, togglespecialworkspace, spmutt
+bind = $mainMod+CONTROL, S, exec, [workspace special:spprof;float;noanim] spprof
+bind = $mainMod+CONTROL, S, togglespecialworkspace, spprof
+bind = $mainMod+CONTROL, D, exec, [workspace special:spirss;float;noanim] spirss
+bind = $mainMod+CONTROL, D, togglespecialworkspace, spirss
+bind = $mainMod+CONTROL, F, exec, [workspace special:sptodo;float;noanim] sptodo
+bind = $mainMod+CONTROL, F, togglespecialworkspace, sptodo
+bind = $mainMod+CONTROL, G, exec, [workspace special:sptrmc;float;noanim] sptrmc
+bind = $mainMod+CONTROL, G, togglespecialworkspace, sptrmc
+bind = $mainMod+CONTROL, Q, exec, [workspace special:spqpwg;float;noanim] spqpwg
+bind = $mainMod+CONTROL, Q, togglespecialworkspace, spqpwg
+#}}}
+
+#{{{ OBS bindings
+bind = $mainMod CONTROL, 1, pass, ^(com\.obsproject\.Studio)$
+bind = $mainMod CONTROL, 2, pass, ^(com\.obsproject\.Studio)$
+bind = $mainMod CONTROL, 3, pass, ^(com\.obsproject\.Studio)$
+bind = $mainMod CONTROL, 4, pass, ^(com\.obsproject\.Studio)$
+bind = $mainMod CONTROL, 5, pass, ^(com\.obsproject\.Studio)$
+bind = $mainMod CONTROL, 6, pass, ^(com\.obsproject\.Studio)$
+bind = $mainMod CONTROL, 7, pass, ^(com\.obsproject\.Studio)$
+bind = $mainMod CONTROL, 8, pass, ^(com\.obsproject\.Studio)$
+bind = $mainMod CONTROL, 9, pass, ^(com\.obsproject\.Studio)$
+bind = $mainMod CONTROL, 0, pass, ^(com\.obsproject\.Studio)$
+#}}}
+
+#{{{ Inert submap binds
+bind = $mainMod, B, submap, inert
+submap = inert
+bind = $mainMod, B, submap, reset
+submap = reset
+#}}}
+
+#{{{ Media bindings
+bindl = $secdMod, P, exec, playerctl -p mpd play-pause
+bindel = , XF86AudioRaiseVolume, exec, volsv -i 5
+bindel = , XF86AudioLowerVolume, exec, volsv -d 5
+bind = , XF86AudioMute, exec, volsv -t
+bindl = , XF86AudioMicMute, exec, volsv -m
+bindel = , XF86MonBrightnessUp, exec, bl -i
+bindel = , XF86MonBrightnessDown, exec, bl -d
+bindl = $mainMod, XF86MonBrightnessUp, exec, bl -s 100
+bindl = $mainMod, XF86MonBrightnessDown, exec, bl -s 1
+bind = , Print, exec, scrshot
+#}}}
diff --git a/lf/lfrc b/lf/lfrc
index 1b2eb7a..04745c9 100644
--- a/lf/lfrc
+++ b/lf/lfrc
@@ -303,49 +303,72 @@ map C clear
map U unselect
# Movement
-map ga cd ~/.config/awesome
-map gb cd ~/.local/bin
-map gc cd ~/.config
-map gdc cd ~/Documents
-map gdo cd ~/Downloads
-map gdw cd ~/suckless/dwm
-map gdb cd ~/.local/src/dwmbar
-map ge cd ~/Desktop
-map gE cd /etc
-map gf cd ~/.var/app
-map glb cd ~/.local/bin
-map glc cd ~/Games/cache
-map gls cd ~/.local/share
-map glf cd ~/.config/lf
-map gnv cd ~/.config/nvim
-map gns cd ~/.natvst
-map gp cd ~/Pictures
-map gqc cd ~/.config/qutebrowser
-map gqp cd ~/.local/share/qutebrowser-profiles
-map gqt cd ~/.config/qtile
-map gre cd ~/.local/src
-map grs cd /etc/runit/sv
-map gsc cd ~/.local/scripts
-map gsh cd ~/.config/sh
-map gsl cd ~/.local/src/slock
-map gss cd /etc/s6/sv
-map gsx cd ~/.config/sxhkd
-map gtr cd ~/.local/share/Trash/files
-map gU. cd /usr
-map gUs cd /usr/share
-map gva cd ~/.var
-map gVa cd /var
-map gvi cd ~/Videos
-map gvs cd ~/.vst
-map gv3 cd ~/.vst3
-map gwa cd ~/git/wallpapers
-map gwd cd ~/.local/share/wineprefixes/default
-map gwD cd ~/.local/share/wineprefixes/default/drive_c/users/zachir/Downloads
-map gwr cd ~/.local/share/wineprefixes
-map gww cd ~/.local/share/wineprefixes/work
-map gx cd ~/.config/X11
-map gyb cd ~/.cache/yay
-map gyc cd ~/.config/yay
-map gzs cd ~/.config/zsh
-map gzx cd ~/Documents/zachir.xyz
-
+## PATHS
+map gE. cd "/etc"
+map gO. cd "/opt"
+map gOa cd "/opt/Audio Assault"
+map gR cd "/"
+map gU. cd "/usr"
+map gUs cd "/usr/share"
+map gV. cd "/var"
+map gaw cd "/home/zachir/.config/awesome"
+map gb. cd "/home/zachir/.local/bin"
+map gbb cd "/home/zachir/.local/bin/blocks"
+map gbf cd "/home/zachir/.local/bin/slatpak-sc"
+map gbg cd "/home/zachir/.local/bin/generics"
+map gbi cd "/home/zachir/.local/bin/ignore"
+map gbsc cd "/home/zachir/.local/bin/scripts"
+map gbsh cd "/home/zachir/.local/bin/shortcmds"
+map gbsp cd "/home/zachir/.local/bin/sp"
+map gc cd "/home/zachir/.config"
+map gdb cd "/home/zachir/.local/src/dwmbar"
+map gdc cd ""
+map gdl cd "/home/zachir/.local/src/dwl"
+map gdm cd "/home/zachir/.local/src/dmenu"
+map gdo cd ""
+map gdp cd "/plugin/zachir_librem.one"
+map gdw cd "/wine"
+map ge cd ""
+map gf cd "/home/zachir/.var/app"
+map gh cd "/home/zachir/.config/hypr"
+map glb cd "/home/zachir/.local/bin"
+map glc cd "/home/zachir/Games/cache"
+map glf cd "/home/zachir/.config/lf"
+map gls cd "/home/zachir/.local/share"
+map gn3 cd "/home/zachir/.vst3/native"
+map gns cd "/home/zachir/.vst/native"
+map gnv cd "/home/zachir/.config/nvim"
+map gp cd ""
+map gqb cd "/home/zachir/.config/qutebrowser"
+map gqp cd "/home/zachir/.local/share/qutebrowser-profiles"
+map gre cd "/home/zachir/.local/src"
+map grs cd "/etc/runit/sv"
+map gsc cd "/home/zachir/.local/bin/scripts"
+map gsh cd "/home/zachir/.config/sh"
+map gsl cd "/home/zachir/.local/src/slock"
+map gss cd "/etc/s6/sv"
+map gst cd "/home/zachir/.local/src/st"
+map gsx cd "/home/zachir/.config/sxhkd"
+map gtr cd "/home/zachir/.local/share/Trash/files"
+map gurs cd "/home/zachir/.runit/sv"
+map gv3. cd "/home/zachir/.vst3"
+map gv3n cd "/home/zachir/.vst3/native"
+map gv3y cd "/home/zachir/.vst3/yabridge"
+map gv. cd "/home/zachir/var"
+map gvi cd ""
+map gvsn cd "/home/zachir/.vst/native"
+map gvs. cd "/home/zachir/.vst"
+map gvsy cd "/home/zachir/.vst/yabridge"
+map gwdo cd "/home/zachir/.local/share/wineprefixes/default/drive_c/users/zachir/Downloads"
+map gwa cd "/home/zachir/.local/src/wallpapers"
+map gwd cd "/home/zachir/.local/share/wineprefixes/default"
+map gwr cd "/home/zachir/.local/share/wineprefixes"
+map gwv3 cd "/home/zachir/.winvst3"
+map gwvs cd "/home/zachir/.winvst"
+map gww cd "/home/zachir/.local/share/wineprefixes/work"
+map gx cd "/home/zachir/.config/X11"
+map gy3 cd "/home/zachir/.vst3/yabridge"
+map gyb cd "/home/zachir/.cache/yay"
+map gyc cd "/home/zachir/.config/yay"
+map gzs cd "/home/zachir/.config/zsh"
+map gzx cd "/zachir.xyz"
diff --git a/mako/config b/mako/config
new file mode 100644
index 0000000..426a0c2
--- /dev/null
+++ b/mako/config
@@ -0,0 +1,37 @@
+max-history=5
+sort=-time
+
+on-button-left=dismiss
+on-button-middle=none
+on-button-right=invoke-default-action
+on-touch=dismiss
+on-notify=exec notify-sound.sh
+
+font=mononoki Nerd Font Mono 12
+background-color=#000000FF
+text-color=#FFFFFFFF
+width=300
+height=100
+outer-margin=0
+margin=10
+padding=5
+border-size=2
+border-color=#999999FF
+border-radius=3
+progress-color=over #5588AAFF
+icons=1
+max-icon-size=64
+icon-path=
+icon-location=left
+markup=1
+actions=1
+history=0
+text-alignment=left
+default-timeout=5000
+ignore-timeout=0
+group-by=none
+max-visible=5
+output=
+layer=top
+anchor=top-right
+
diff --git a/nsxiv/exec/key-handler b/nsxiv/exec/key-handler
deleted file mode 100755
index 08e06d5..0000000
--- a/nsxiv/exec/key-handler
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/bin/sh
-
-IMAGES=`cat -`
-
-case "$1" in
- "w")
- notify-send "$IMAGES" "background"
- ln -sf $IMAGES ~/background.jpg
- xwallpaper --zoom ~/background.jpg
- ;;
-esac
diff --git a/nwg-bar/bar.json b/nwg-bar/bar.json
new file mode 100644
index 0000000..82bc6ed
--- /dev/null
+++ b/nwg-bar/bar.json
@@ -0,0 +1,22 @@
+[
+ {
+ "label": "Lock",
+ "exec": "loginctl lock-session self",
+ "icon": "/usr/share/nwg-bar/images/system-lock-screen.svg"
+ },
+ {
+ "label": "Logout",
+ "exec": "hyprctl dispatch exit",
+ "icon": "/usr/share/nwg-bar/images/system-log-out.svg"
+ },
+ {
+ "label": "Reboot",
+ "exec": "loginctl reboot",
+ "icon": "/usr/share/nwg-bar/images/system-reboot.svg"
+ },
+ {
+ "label": "Shutdown",
+ "exec": "loginctl -i poweroff",
+ "icon": "/usr/share/nwg-bar/images/system-shutdown.svg"
+ }
+]
diff --git a/river/init b/river/init
new file mode 100755
index 0000000..cfa8c39
--- /dev/null
+++ b/river/init
@@ -0,0 +1,223 @@
+#!/bin/sh
+
+# This is the example configuration file for river.
+#
+# If you wish to edit this, you will probably want to copy it to
+# $XDG_CONFIG_HOME/river/init or $HOME/.config/river/init first.
+#
+# See the river(1), riverctl(1), and rivertile(1) man pages for complete
+# documentation.
+
+# Note: the "$mod1" modifier is also known as Logo, GUI, Windows, Mod4, etc.
+
+mod1="Alt"
+mod2="Super"
+
+# $mod1+Shift+Return to start an instance of foot (https://codeberg.org/dnkl/foot)
+riverctl map normal $mod1 Return spawn foot
+
+# $mod1+Q to close the focused view
+riverctl map normal $mod1+Shift Q close
+
+# $mod1+Shift+E to exit river
+riverctl map normal $mod1+Shift E exit
+
+# $mod1+J and $mod1+K to focus the next/previous view in the layout stack
+riverctl map normal $mod1 J focus-view next
+riverctl map normal $mod1 K focus-view previous
+
+# $mod1+Shift+J and $mod1+Shift+K to swap the focused view with the next/previous
+# view in the layout stack
+riverctl map normal $mod1+Shift J swap next
+riverctl map normal $mod1+Shift K swap previous
+
+# $mod1+Period and $mod1+Comma to focus the next/previous output
+riverctl map normal $mod1 Period focus-output next
+riverctl map normal $mod1 Comma focus-output previous
+
+# $mod1+Shift+{Period,Comma} to send the focused view to the next/previous output
+riverctl map normal $mod1+Shift Period send-to-output next
+riverctl map normal $mod1+Shift Comma send-to-output previous
+
+# $mod1+Return to bump the focused view to the top of the layout stack
+riverctl map normal $mod1+Shift Return zoom
+
+# $mod1+H and $mod1+L to decrease/increase the main ratio of rivertile(1)
+riverctl map normal $mod1 H send-layout-cmd rivertile "main-ratio -0.05"
+riverctl map normal $mod1 L send-layout-cmd rivertile "main-ratio +0.05"
+
+# $mod1+Shift+H and $mod1+Shift+L to increment/decrement the main count of rivertile(1)
+riverctl map normal $mod1+Shift H send-layout-cmd rivertile "main-count +1"
+riverctl map normal $mod1+Shift L send-layout-cmd rivertile "main-count -1"
+
+# $mod1+$mod2+{H,J,K,L} to move views
+riverctl map normal $mod1+$mod2 H move left 100
+riverctl map normal $mod1+$mod2 J move down 100
+riverctl map normal $mod1+$mod2 K move up 100
+riverctl map normal $mod1+$mod2 L move right 100
+
+# $mod1+$mod2+Control+{H,J,K,L} to snap views to screen edges
+riverctl map normal $mod1+$mod2+Control H snap left
+riverctl map normal $mod1+$mod2+Control J snap down
+riverctl map normal $mod1+$mod2+Control K snap up
+riverctl map normal $mod1+$mod2+Control L snap right
+
+# $mod1+$mod2+Shift+{H,J,K,L} to resize views
+riverctl map normal $mod1+$mod2+Shift H resize horizontal -100
+riverctl map normal $mod1+$mod2+Shift J resize vertical 100
+riverctl map normal $mod1+$mod2+Shift K resize vertical -100
+riverctl map normal $mod1+$mod2+Shift L resize horizontal 100
+
+# $mod1 + Left Mouse Button to move views
+riverctl map-pointer normal $mod1 BTN_LEFT move-view
+
+# $mod1 + Right Mouse Button to resize views
+riverctl map-pointer normal $mod1 BTN_RIGHT resize-view
+
+# $mod1 + Middle Mouse Button to toggle float
+riverctl map-pointer normal $mod1 BTN_MIDDLE toggle-float
+
+# Mouse rules
+riverctl set-cursor-warp on-output-change
+riverctl focus-follors-cursor always
+
+for i in $(seq 1 9)
+do
+ tags=$((1 << ($i - 1)))
+
+ # $mod1+[1-9] to focus tag [0-8]
+ riverctl map normal $mod1 $i set-focused-tags $tags
+
+ # $mod1+Shift+[1-9] to tag focused view with tag [0-8]
+ riverctl map normal $mod1+Shift $i set-view-tags $tags
+
+ # $mod1+Ctrl+[1-9] to toggle focus of tag [0-8]
+ riverctl map normal $mod1+Control $i toggle-focused-tags $tags
+
+ # $mod1+Shift+Ctrl+[1-9] to toggle tag [0-8] of focused view
+ riverctl map normal $mod1+Shift+Control $i toggle-view-tags $tags
+done
+
+# $mod1+0 to focus all tags
+# $mod1+Shift+0 to tag focused view with all tags
+all_tags=$(((1 << 9) - 1))
+riverctl map normal $mod1 0 set-focused-tags $all_tags
+riverctl map normal $mod1+Shift 0 set-view-tags $all_tags
+
+# scratchpad tags
+BINPATH="${XDG_CONFIG_HOME:-$HOME/.config}/river/sp"
+riverctl map normal $mod1+Control z spawn "$BINPATH/river_sp z"
+riverctl map normal $mod1+Control x spawn "$BINPATH/river_sp x"
+riverctl map normal $mod1+Control c spawn "$BINPATH/river_sp c"
+riverctl map normal $mod1+Control v spawn "$BINPATH/river_sp v"
+riverctl map normal $mod1+Control b spawn "$BINPATH/river_sp b"
+riverctl map normal $mod1+Control a spawn "$BINPATH/river_sp a"
+riverctl map normal $mod1+Control s spawn "$BINPATH/river_sp s"
+riverctl map normal $mod1+Control d spawn "$BINPATH/river_sp d"
+riverctl map normal $mod1+Control f spawn "$BINPATH/river_sp f"
+riverctl map normal $mod1+Control g spawn "$BINPATH/river_sp g"
+riverctl map normal $mod1+Control q spawn "$BINPATH/river_sp q"
+
+# $mod1+Space to toggle float
+riverctl map normal $mod1+Control Space toggle-float
+
+# $mod1+F to toggle fullscreen
+riverctl map normal $mod1 F toggle-fullscreen
+
+# $mod1+{Up,Right,Down,Left} to change layout orientation
+riverctl map normal $mod1 Up send-layout-cmd rivertile "main-location top"
+riverctl map normal $mod1 Right send-layout-cmd rivertile "main-location right"
+riverctl map normal $mod1 Down send-layout-cmd rivertile "main-location bottom"
+riverctl map normal $mod1 Left send-layout-cmd rivertile "main-location left"
+
+# Declare a passthrough mode. This mode has only a single mapping to return to
+# normal mode. This makes it useful for testing a nested wayland compositor
+riverctl declare-mode passthrough
+
+# $mod1+F11 to enter passthrough mode
+riverctl map normal $mod1 b enter-mode passthrough
+
+# $mod1+F11 to return to normal mode
+riverctl map passthrough $mod1 b enter-mode normal
+
+# Various media key mapping examples for both normal and locked mode which do
+# not have a modifier
+for mode in normal locked
+do
+ # Eject the optical drive (well if you still have one that is)
+ riverctl map $mode None XF86Eject spawn 'eject -T'
+
+ # Control pulse audio volume with pamixer (https://github.com/cdemoulins/pamixer)
+ riverctl map $mode None XF86AudioRaiseVolume spawn 'volsv -i'
+ riverctl map $mode None XF86AudioLowerVolume spawn 'volsv -d'
+ riverctl map $mode None XF86AudioMute spawn 'volsv -t'
+ riverctl map $mode None XF86AudioMicMute spawn 'volsv -m'
+
+ # Control MPRIS aware media players with playerctl (https://github.com/altdesktop/playerctl)
+ riverctl map $mode None XF86AudioMedia spawn 'playerctl play-pause'
+ riverctl map $mode None XF86AudioPlay spawn 'playerctl play-pause'
+ riverctl map $mode None XF86AudioPrev spawn 'playerctl previous'
+ riverctl map $mode None XF86AudioNext spawn 'playerctl next'
+
+ # Control screen backlight brightness with light (https://github.com/haikarainen/light)
+ riverctl map $mode None XF86MonBrightnessUp spawn 'bl -i 5'
+ riverctl map $mode None XF86MonBrightnessDown spawn 'bl -d 5'
+done
+
+# add browser shortcuts
+riverctl map normal $mod1+$mod2 1 spawn "bm -w"
+riverctl map normal $mod1+$mod2 q spawn "qbc -w"
+riverctl map normal $mod1+$mod2 w spawn "lwc -w"
+riverctl map normal $mod1+$mod2 e spawn "ffc -w"
+
+# add other menu shortcuts
+riverctl map normal $mod1+$mod2 p spawn passmenu
+riverctl map normal $mod1 r spawn 'exec $(tofi-drun)'
+riverctl map normal $mod1 d spawn 'exec $(tofi-run)'
+riverctl map normal $mod1+$mod2+Control u spawn 'dmenuunicode -w'
+riverctl map normal $mod1+$mod2 Comma spawn 'dmenumount -w'
+riverctl map normal $mod1+$mod2 Period spawn 'dmenuumount -w'
+riverctl map normal $mod1+$mod2 b spawn 'dmenu_books -w'
+riverctl map normal $mod1+$mod2 u spawn 'mprisctl -w'
+
+# add other shortcuts
+riverctl map normal $mod1 q spawn 'loginctl lock-session self'
+riverctl map normal $mod1+$mod2 f spawn 'foot lf'
+riverctl map normal $mod1+$mod2 m spawn 'volsv -t'
+riverctl map normal $mod1+$mod2+Shift m spawn 'volsv -m'
+
+# secondary mod shortcuts
+riverctl map normal $mod2 p spawn 'playerctl play-pause'
+
+# Set background and border color
+riverctl background-color 0x000000
+riverctl border-color-focused 0x535d6c
+riverctl border-color-unfocused 0x000000
+
+# Set keyboard repeat rate
+riverctl set-repeat 50 300
+
+# Make certain views start floating
+riverctl float-filter-add app-id float
+riverctl float-filter-add app-id "sphtop"
+riverctl float-filter-add app-id "spterm"
+riverctl float-filter-add app-id "sppmxr"
+riverctl float-filter-add app-id "spblue"
+riverctl float-filter-add app-id "spncmp"
+riverctl float-filter-add app-id "spmutt"
+riverctl float-filter-add app-id "spprof"
+riverctl float-filter-add app-id "spirss"
+riverctl float-filter-add app-id "sptodo"
+riverctl float-filter-add app-id "sptrmc"
+riverctl float-filter-add app-id "qpwgraph"
+riverctl float-filter-add title "popup title with spaces"
+
+# Set app-ids and titles of views which should use client side decorations
+riverctl csd-filter-add app-id "gedit"
+
+# Set the default layout generator to be rivertile and start it.
+# River will send the process group of the init executable SIGTERM on exit.
+riverctl default-layout rivertile
+rivertile -view-padding 6 -outer-padding 6 &
+
+sh ~/.config/autostart.sh &
diff --git a/river/sp/river_sp b/river/sp/river_sp
new file mode 100755
index 0000000..9b1e1ad
--- /dev/null
+++ b/river/sp/river_sp
@@ -0,0 +1,51 @@
+#!/bin/sh
+
+#{{{ binpath
+BINPATH="${XDG_CONFIG_HOME:-$HOME/.config}/river/sp"
+#}}}
+
+#{{{ spawnwindow
+spawnwindow () {
+ case "$1" in
+ 1) pgrep -x sp_z || ${BINPATH}/sp_z ;;
+ 2) pgrep -x sp_x || ${BINPATH}/sp_x ;;
+ 3) pgrep -x sp_c || ${BINPATH}/sp_c ;;
+ 4) pgrep -x sp_v || ${BINPATH}/sp_v ;;
+ 5) pgrep -x sp_b || ${BINPATH}/sp_b ;;
+ 6) pgrep -x sp_a || ${BINPATH}/sp_a ;;
+ 7) pgrep -x sp_s || ${BINPATH}/sp_s ;;
+ 8) pgrep -x sp_d || ${BINPATH}/sp_d ;;
+ 9) pgrep -x sp_f || ${BINPATH}/sp_f ;;
+ 10) pgrep -x sp_g || ${BINPATH}/sp_g ;;
+ 11) pgrep -x sp_q || ${BINPATH}/sp_q ;;
+ *) printf "Unknown scratchpad $1!\n" ; exit 1 ;;
+ esac
+}
+#}}}
+
+#{{{ getopts
+for i in "$@"; do
+ case "$i" in
+ z) ARG=1 ;;
+ x) ARG=2 ;;
+ c) ARG=3 ;;
+ v) ARG=4 ;;
+ b) ARG=5 ;;
+ a) ARG=6 ;;
+ s) ARG=7 ;;
+ d) ARG=8 ;;
+ f) ARG=9 ;;
+ g) ARG=10 ;;
+ q) ARG=11 ;;
+ *) printf "Unknown scratchpad $i!\n" ; exit 1 ;;
+ esac
+ if pgrep -x "sp_$i"; then
+ riverctl toggle-focused-tags $((1 << ($ARG + 9)))
+ else
+ riverctl toggle-focused-tags $(( 1 << ($ARG + 9)))
+ riverctl spawn-tagmask $(( 1 << ($ARG + 9)))
+ spawnwindow "$ARG"
+ riverctl spawn-tagmask $(( (1 << 9) - 1))
+ fi
+done
+#}}}
diff --git a/river/sp/sp_a b/river/sp/sp_a
new file mode 100755
index 0000000..d76f78e
--- /dev/null
+++ b/river/sp/sp_a
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+foot -a "spmutt" neomutt
diff --git a/river/sp/sp_b b/river/sp/sp_b
new file mode 100755
index 0000000..208cf4c
--- /dev/null
+++ b/river/sp/sp_b
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+foot -a "spncmp" ncmpcpp
diff --git a/river/sp/sp_c b/river/sp/sp_c
new file mode 100755
index 0000000..0201227
--- /dev/null
+++ b/river/sp/sp_c
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+foot -a "sppmxr" pulsemixer
diff --git a/river/sp/sp_d b/river/sp/sp_d
new file mode 100755
index 0000000..1545c87
--- /dev/null
+++ b/river/sp/sp_d
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+foot -a "spirss" irssi
diff --git a/river/sp/sp_f b/river/sp/sp_f
new file mode 100755
index 0000000..f2468ea
--- /dev/null
+++ b/river/sp/sp_f
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+foot -a "sptodo" todo
diff --git a/river/sp/sp_g b/river/sp/sp_g
new file mode 100755
index 0000000..7b3a393
--- /dev/null
+++ b/river/sp/sp_g
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+foot -a "sptrmc" tremc
diff --git a/river/sp/sp_q b/river/sp/sp_q
new file mode 100755
index 0000000..9202782
--- /dev/null
+++ b/river/sp/sp_q
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+qpwgraph
diff --git a/river/sp/sp_s b/river/sp/sp_s
new file mode 100755
index 0000000..288373c
--- /dev/null
+++ b/river/sp/sp_s
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+foot -a "spprof" profanity
diff --git a/river/sp/sp_v b/river/sp/sp_v
new file mode 100755
index 0000000..009e18d
--- /dev/null
+++ b/river/sp/sp_v
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+foot -a "spblue" bluetoothctl
diff --git a/river/sp/sp_x b/river/sp/sp_x
new file mode 100755
index 0000000..ef07b51
--- /dev/null
+++ b/river/sp/sp_x
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+foot -a "spterm"
diff --git a/river/sp/sp_z b/river/sp/sp_z
new file mode 100755
index 0000000..c6414ed
--- /dev/null
+++ b/river/sp/sp_z
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+foot -a "sphtop" htop
diff --git a/sh/aliases b/sh/aliases
index 612b2ec..8dfc57f 100644
--- a/sh/aliases
+++ b/sh/aliases
@@ -31,7 +31,7 @@ alias du='du -sxhc'
#alias nvim='vim'
alias nv='nvim'
alias v='nvim'
-alias lf='lfrun'
+#alias lf='lfrun'
## Change utils
alias rm='rm -i'
diff --git a/sh/functions b/sh/functions
index 6ed5792..30e1341 100644
--- a/sh/functions
+++ b/sh/functions
@@ -31,99 +31,149 @@ scd () {
cd $HOME
else
case "$1" in
- "-l") echo "
-aw - ~/.config/awesome
-al - ~/.config/alacritty
-b - ~/.local/bin
-c - ~/.config
-db - ~/.local/src/dwmblocks
-dc - ~/Documents
-do - ~/Downloads
-dw - ~/.local/src/dwm
-e - ~/Desktop
-E - /etc
-f - ~/.var/app
-h - ~/.config/herbstluftwm
-lb - ~/.local/bin
-lc - ~/Games/cache
-lf - ~/.config/lf
-ls - ~/.local/share
-nv - ~/.config/nvim
-ns - ~/.natvst
-p - ~/Pictures
-qc - ~/.config/qutebrowser
-qp - ~/.local/share/qutebrowser-profiles
-qt - ~/.config/qtile
-re - ~/.local/src
-ri - ~/.config/river
-rs - /etc/runit/sv
-sc - ~/.local/bin/scripts
-sh - ~/.config/sh
-sl - ~/.local/src/slock
-ss - /etc/s6/sv
-st - ~/.local/src/st
-sx - ~/.config/sxhkd
-Va - /var
-v3 - ~/.vst3
-va - ~/.var
-vs - ~/.vst
-vv - ~/.local/volsv
-wa - ~/.local/src/wallpapers
-wd - ~/.local/share/wineprefixes/default
-wh - ~/.local/share/wineprefixes/[CURRENT]
-wr - ~/.local/share/wineprefixes
-ww - ~/.local/share/wineprefixes/work
-x - ~/.config/X11
-yb - ~/.cache/yay
-yc - ~/.config/yay
-zs - ~/.config/zsh
-zx - ~/Documents/zachir.xyz
-";;
- "aw") cd $XDG_CONFIG_HOME/awesome/ ;;
- "al") cd $XDG_CONFIG_HOME/alacritty/ ;;
- "b") cd "$HOME"/.local/bin/ ;;
- "c") cd $XDG_CONFIG_HOME/ ;;
- "dc") cd $HOME/Documents/ ;;
- "do") cd $HOME/Downloads/ ;;
- "dw") cd $HOME/.local/src/dwm/ ;;
- "db") cd $HOME/.local/src/dwmbar/ ;;
- "e") cd $HOME/Desktop ;;
- "E") cd /etc ;;
- "f") cd $HOME/.var/app ;;
- "h") cd "$XDG_CONFIG_HOME"/herbstluftwm ;;
- "lb") cd $HOME/.local/bin ;;
- "lc") cd $HOME/Games/cache ;;
- "ls") cd $XDG_DATA_HOME ;;
- "lf") cd $XDG_CONFIG_HOME/lf ;;
- "nv") cd $XDG_CONFIG_HOME/nvim ;;
- "ns") cd $HOME/.natvst ;;
- "p") cd $HOME/Pictures ;;
- "qc") cd $XDG_CONFIG_HOME/qutebrowser/ ;;
- "qp") cd $XDG_DATA_HOME/qutebrowser-profiles/ ;;
- "qt") cd $XDG_CONFIG_HOME/qtile/ ;;
- "re") cd $HOME/.local/src/ ;;
- "ri") cd $XDG_CONFIG_HOME/river ;;
- "rs") cd /etc/runit/sv ;;
- "sc") cd $HOME/.local/bin/scripts/ ;;
- "sh") cd $XDG_CONFIG_HOME/sh/ ;;
- "sl") cd $HOME/.local/src/slock/ ;;
- "ss") cd /etc/s6/sv ;;
- "st") cd $HOME/.local/src/st/ ;;
- "sx") cd $XDG_CONFIG_HOME/sxhkd/ ;;
- "v3") cd $HOME/.vst3 ;;
- "vi") cd $HOME/Videos ;;
- "vs") cd $HOME/.vst/ ;;
- "vv") cd $HOME/.local/volsv/ ;;
- "wa") cd $HOME/.local/src/wallpapers ;;
- "wd") cd $WINEROOT/default ;;
- "wh") cd $WINEPREFIX ;;
- "wr") cd $WINEROOT ;;
- "ww") cd $WINEROOT/work ;;
- "x") cd $XDG_CONFIG_HOME/X11 ;;
- "yb") cd $XDG_CACHE_HOME/yay ;;
- "yc") cd $XDG_CONFIG_HOME/yay ;;
- "zs") cd $ZDOTDIR/ ;;
- "zx") cd $HOME/Documents/zachir.xyz/ ;;
+ "-h")
+ # STARTPRINT
+echo "scd - a script to change directories based on shortcuts.
+E. - /etc
+O. - /opt
+Oa - /opt/Audio Assault
+R - /
+U. - /usr
+Us - /usr/share
+V. - /var
+aw - /home/zachir/.config/awesome
+b. - /home/zachir/.local/bin
+bb - /home/zachir/.local/bin/blocks
+bf - /home/zachir/.local/bin/slatpak-sc
+bg - /home/zachir/.local/bin/generics
+bi - /home/zachir/.local/bin/ignore
+bsc - /home/zachir/.local/bin/scripts
+bsh - /home/zachir/.local/bin/shortcmds
+bsp - /home/zachir/.local/bin/sp
+c - /home/zachir/.config
+db - /home/zachir/.local/src/dwmbar
+dc -
+dl - /home/zachir/.local/src/dwl
+dm - /home/zachir/.local/src/dmenu
+do -
+dp - /plugin/zachir_librem.one
+dw - /wine
+e -
+f - /home/zachir/.var/app
+h - /home/zachir/.config/hypr
+lb - /home/zachir/.local/bin
+lc - /home/zachir/Games/cache
+lf - /home/zachir/.config/lf
+ls - /home/zachir/.local/share
+n3 - /home/zachir/.vst3/native
+ns - /home/zachir/.vst/native
+nv - /home/zachir/.config/nvim
+p -
+qb - /home/zachir/.config/qutebrowser
+qp - /home/zachir/.local/share/qutebrowser-profiles
+re - /home/zachir/.local/src
+rs - /etc/runit/sv
+sc - /home/zachir/.local/bin/scripts
+sh - /home/zachir/.config/sh
+sl - /home/zachir/.local/src/slock
+ss - /etc/s6/sv
+st - /home/zachir/.local/src/st
+sx - /home/zachir/.config/sxhkd
+tr - /home/zachir/.local/share/Trash/files
+urs - /home/zachir/.runit/sv
+v3. - /home/zachir/.vst3
+v3n - /home/zachir/.vst3/native
+v3y - /home/zachir/.vst3/yabridge
+v. - /home/zachir/var
+vi -
+vsn - /home/zachir/.vst/native
+vs. - /home/zachir/.vst
+vsy - /home/zachir/.vst/yabridge
+wdo - /home/zachir/.local/share/wineprefixes/default/drive_c/users/zachir/Downloads
+wa - /home/zachir/.local/src/wallpapers
+wd - /home/zachir/.local/share/wineprefixes/default
+wr - /home/zachir/.local/share/wineprefixes
+wv3 - /home/zachir/.winvst3
+wvs - /home/zachir/.winvst
+ww - /home/zachir/.local/share/wineprefixes/work
+x - /home/zachir/.config/X11
+y3 - /home/zachir/.vst3/yabridge
+yb - /home/zachir/.cache/yay
+yc - /home/zachir/.config/yay
+zs - /home/zachir/.config/zsh
+zx - /zachir.xyz
+" ;;
+ # STOPPRINT
+ # STARTPATHS
+"E.") cd "/etc" ;;
+"O.") cd "/opt" ;;
+"Oa") cd "/opt/Audio Assault" ;;
+"R") cd "/" ;;
+"U.") cd "/usr" ;;
+"Us") cd "/usr/share" ;;
+"V.") cd "/var" ;;
+"aw") cd "$XDG_CONFIG_HOME/awesome" ;;
+"b.") cd "$HOME/.local/bin" ;;
+"bb") cd "$HOME/.local/bin/blocks" ;;
+"bf") cd "$HOME/.local/bin/slatpak-sc" ;;
+"bg") cd "$HOME/.local/bin/generics" ;;
+"bi") cd "$HOME/.local/bin/ignore" ;;
+"bsc") cd "$HOME/.local/bin/scripts" ;;
+"bsh") cd "$HOME/.local/bin/shortcmds" ;;
+"bsp") cd "$HOME/.local/bin/sp" ;;
+"c") cd "$XDG_CONFIG_HOME" ;;
+"db") cd "$SRCDIR/dwmbar" ;;
+"dc") cd "$XDG_DOCUMENTS_DIR" ;;
+"dl") cd "$SRCDIR/dwl" ;;
+"dm") cd "$SRCDIR/dmenu" ;;
+"do") cd "$XDG_DOWNLOAD_DIR" ;;
+"dp") cd "$XDG_DOWNLOAD_DIR/plugin/zachir_librem.one" ;;
+"dw") cd "$XDG_DOWNLOAD_DIR/wine" ;;
+"e") cd "$XDG_DESKTOP_DIR" ;;
+"f") cd "$HOME/.var/app" ;;
+"h") cd "$XDG_CONFIG_HOME/hypr" ;;
+"lb") cd "$HOME/.local/bin" ;;
+"lc") cd "$HOME/Games/cache" ;;
+"lf") cd "$XDG_CONFIG_HOME/lf" ;;
+"ls") cd "$XDG_DATA_HOME" ;;
+"n3") cd "$HOME/.vst3/native" ;;
+"ns") cd "$HOME/.vst/native" ;;
+"nv") cd "$XDG_CONFIG_HOME/nvim" ;;
+"p") cd "$XDG_PICTURES_DIR" ;;
+"qb") cd "$XDG_CONFIG_HOME/qutebrowser" ;;
+"qp") cd "$XDG_DATA_HOME/qutebrowser-profiles" ;;
+"re") cd "$SRCDIR" ;;
+"rs") cd "/etc/runit/sv" ;;
+"sc") cd "$HOME/.local/bin/scripts" ;;
+"sh") cd "$XDG_CONFIG_HOME/sh" ;;
+"sl") cd "$SRCDIR/slock" ;;
+"ss") cd "/etc/s6/sv" ;;
+"st") cd "$SRCDIR/st" ;;
+"sx") cd "$XDG_CONFIG_HOME/sxhkd" ;;
+"tr") cd "$XDG_DATA_HOME/Trash/files" ;;
+"urs") cd "$HOME/.runit/sv" ;;
+"v3.") cd "$HOME/.vst3" ;;
+"v3n") cd "$HOME/.vst3/native" ;;
+"v3y") cd "$HOME/.vst3/yabridge" ;;
+"v.") cd "$HOME/var" ;;
+"vi") cd "$XDG_VIDEOS_DIR" ;;
+"vsn") cd "$HOME/.vst/native" ;;
+"vs.") cd "$HOME/.vst" ;;
+"vsy") cd "$HOME/.vst/yabridge" ;;
+"wdo") cd "$WINEPREFIX/drive_c/users/$USER/Downloads" ;;
+"wa") cd "$SRCDIR/wallpapers" ;;
+"wd") cd "$WINEPREFIX" ;;
+"wr") cd "$WINEROOT" ;;
+"wv3") cd "$HOME/.winvst3" ;;
+"wvs") cd "$HOME/.winvst" ;;
+"ww") cd "$WINEROOT/work" ;;
+"x") cd "$XDG_CONFIG_HOME/X11" ;;
+"y3") cd "$HOME/.vst3/yabridge" ;;
+"yb") cd "$XDG_CACHE_HOME/yay" ;;
+"yc") cd "$XDG_CONFIG_HOME/yay" ;;
+"zs") cd "$XDG_CONFIG_HOME/zsh" ;;
+"zx") cd "$XDG_DOCUMENTS_DIR/zachir.xyz" ;;
+ # STOPPATHS
*) echo "\"$1\" is not a known location" ;;
esac
fi
diff --git a/swayidle/config b/swayidle/config
new file mode 100644
index 0000000..fb741b3
--- /dev/null
+++ b/swayidle/config
@@ -0,0 +1,3 @@
+timeout 600 waylockd
+before-sleep waylockd
+lock waylockd
diff --git a/sxhkd/sxhkdrc.1 b/sxhkd/sxhkdrc.1
deleted file mode 100755
index 0af969a..0000000
--- a/sxhkd/sxhkdrc.1
+++ /dev/null
@@ -1,329 +0,0 @@
-#
-# wm independent hotkeys
-#
-
-# reload sxhkd config
-alt + Escape
- pkill -USR1 -x sxhkd
-
-#
-# dmenu interfaces
-#
-
-# program launcher
-alt + d
- dmenu_run -h 24
-
-# desktop application launcher
-alt + r
- j4-dmenu-desktop --dmenu="barmenu -h 24 -l 15"
-
-# dmenu prompt for recording
-alt + control + r
- dmenurecord
-
-# run dmenu interface for keepassxc
-alt + p
- dmenu_keepass -H 24
-
-# run dmenu interface for pass
-alt + super + p
- passmenu
-
-# run dmenu interface for mpv
-alt + v
- dmpv
-
-# run dmenu interface for ytfzf
-alt + y
- ytfzf-launcher -D 'barmenu -h 24 -l 15'
-
-# run dmenu interface to spawn browsers
-alt + super + 1
- browser
-
-# run dmenu interface for qutebrowser profile chooser
-alt + super + q
- qbc
- #qbpm choose
-
-# run dmenu interface for librewolf profile chooser
-alt + super + w
- lwc
-
-# run dmenu interface for librewolf profile chooser
-alt + super + e
- fdc
-
-# run dmenu interface to open book
-alt + super + b
- dmenu_books
-
-# run dmenu interface for mpris
-alt + super + u
- mprisctl
-
-# run dmenu interface for monattach
-alt + super + m
- monattach right
-
-# run dmenu interface for mondetach
-alt + super + n
- mondetach
-
-# run dmenu interface for mount
-alt + super + comma
- dmenumount
-
-# run dmenu interface for umount
-alt + super + period
- dmenuumount
-
-#run dmenu prompt for unicode chars
-alt + super + u
- dmenuunicode
-
-#
-# utilities
-#
-
-# toggle x idle state
-alt + c
- xidletog
-
-# warp cursor to left or right monitor
-alt + {Left,Right}
- mwarp {left,right}
-
-# lock the screen
-alt + q
- loginctl lock-session self
-
-# restart dwmblocks
-alt + super + 9
- toggle dwmblocks
-
-# signal all dwmblocks modules
-alt + super + 0
- sigdwmb all
-
-# spawn file manager
-alt + super + f
- $TERMINAL -e lfrun
-
-# toggle touchpad
-alt + super + t
- toggletouchpad
-
-# notify-send firewall rules
-alt + super + f
- notify-iptables
-
-# mute volume
-alt + super + m
- volsv -t
-
-# mute microphone
-alt + super + shift + m
- volsv -m
-
-# load sxiv for backgrounds
-alt + super + x
- sxiv ~/.local/src/wallpapers
-
-# xkill
-alt + x
- xkill
-
-#
-# xf86 keys
-#
-
-# manipulate audio stream
-XF86Audio{Prev,Next,Play,Stop}
- mpc {prev,next,toggle,stop}
-
-# turn the brightness up
-XF86MonBrightnessUp
- xbacklight -inc 1
- # light -A 1
-
-# turn the brightness down
-XF86MonBrightnessDown
- xbacklight -dec 1
- # light -U 1
-
-# raise the volume
-XF86AudioRaiseVolume
- volsv -i
-
-# lower the volume
-XF86AudioLowerVolume
- volsv -d
-
-# toggle mute
-XF86AudioMute
- volsv -t
-
-# mute mic
-XF86AudioMicMute
- volsv -m
-#
-# bspwm hotkeys
-#
-
-# launch terminal
-alt + Return
- st
-
-# quit/restart bspwm
-alt + shift + {e,r}
- bspc {quit,wm -r}
-
-# close
-alt + shift + {q, super + k}
- bspc node {-c,-k}
-
-# alternate between the tiled and monocle layout
-# alt + m
-# bspc desktop -l next
-
-# send the newest marked node to the newest preselected node
-alt + y
- bspc node newest.marked.local -n newest.!automatic.local
-
-# swap the current node and the biggest node
-alt + g
- bspc node -s biggest
-
-#
-# state/flags
-#
-
-# set the window state
-alt + super + {t,shift + t,s,f}
- bspc node -t {tiled,pseudo_tiled,floating,fullscreen}
-
-# set the node flags
-alt + super + {m,x,y,z}
- bspc node -g {marked,locked,sticky,private}
-
-#
-# focus/swap
-#
-
-# focus the node in the given direction
-alt + {_,shift + }{h,j,k,l}
- bspc node -{f,s} {west,south,north,east}
-
-# focus the node for the given path jump
-alt + {p,b,comma,period}
- bspc node -f @{parent,brother,first,second}
-
-# focus the next/previous node in the current desktop
-alt + {_,shift + }c
- bspc node -f {next,prev}.local
-
-# focus the next/previous desktop in the current Monitor
-alt + bracket{left,right}
- bspc desktop -f {prev,next}.local
-
-# focus the last node/desktop
-alt + {grave,Tab}
- bspc {node,desktop} -f last
-
-# focus the older or newer node in the focus history
-alt + {o,i}
- bspc wm -h off; \
- bspc node {older,newer} -f; \
- bspc wm -h on
-
-# focus or send to the given desktop
-alt + {_,shift + }{1-9,0}
- bspc {desktop -f,node -d} '^{1-9,10}'
-
-#
-# preselect
-#
-
-# preselect the direction
-alt + ctrl + {h,j,k,l}
- bspc node -p {west,south,north,east}
-
-# preselect the ratio
-alt + ctrl + {1-9}
- bspc node -o 0.{1-9}
-
-# cancel the preselection for the focused node
-alt + ctrl + space
- bspc node -p cancel
-
-# cancel the preselection for the focused desktop
-alt + ctrl + shift + space
- bspc query -N -d | xargs -I id -n 1 bspc node id -p cancel
-
-#
-# move/resize
-#
-
-# expand a window by moving one of its side outward
-super + alt + {h,j,k,l}
- bspc node -z {left -20 0,bottom 0 20,top 0 -20,right 20 0}
-
-# contract a window by moving one of its side inward
-super + alt + shift + {h,j,k,l}
- bspc node -z {right -20 0,top :0 20,bottom 0 -20,left 20 0}
-
-# move a floating window
-super + {Left,Down,Up,Right}
- bspc node -v {-20 0,0 20,0 -20,20 0}
-
-#
-# bsp-layout
-#
-alt + {t,shift + t}
- bsp-layout set {tile,tall -- --master-size 0.5}
-
-#
-# scratchpads
-#
-
-# htop
-alt + control + z
- bspt sphtop htop
-
-# terminal
-alt + control + x
- bspt spterm tmux
-
-# pulsemixer
-alt + control + c
- bspt sppmxr pulsemixer
-
-# bluetoothctl
-alt + control + v
- bspt spblue bluetoothctl
-
-# ncmpcpp
-alt + control + b
- bspt spncmp ncmpcpp
-
-# neomutt
-alt + control + a
- bspt spmutt neomutt
-
-# profanity
-alt + control + s
- bspt spprof profanity
-
-# irssi
-alt + control + d
- bspt spircc irssi
-
-# todo
-alt + control + f
- bspt sptodo todo
-
-# trem
-alt + control + g
- bspt sptrem tremc
diff --git a/sxhkd/sxhkdrc.bsp b/sxhkd/sxhkdrc.bsp
deleted file mode 100755
index e31576b..0000000
--- a/sxhkd/sxhkdrc.bsp
+++ /dev/null
@@ -1,159 +0,0 @@
-#
-# bspwm hotkeys
-#
-
-# launch terminal
-alt + Return
- st
-
-# quit/restart bspwm
-alt + shift + {e,r}
- bspc {quit,wm -r}
-
-# close
-alt + shift + {q, super + k}
- bspc node {-c,-k}
-
-# alternate between the tiled and monocle layout
-# alt + m
-# bspc desktop -l next
-
-# send the newest marked node to the newest preselected node
-alt + y
- bspc node newest.marked.local -n newest.!automatic.local
-
-# swap the current node and the biggest node
-alt + g
- bspc node -s biggest
-
-#
-# state/flags
-#
-
-# set the window state
-alt + super + {t,shift + t,s,f}
- bspc node -t {tiled,pseudo_tiled,floating,fullscreen}
-
-# set the node flags
-alt + super + {m,x,y,z}
- bspc node -g {marked,locked,sticky,private}
-
-#
-# focus/swap
-#
-
-# focus the node in the given direction
-alt + {_,shift + }{h,j,k,l}
- bspc node -{f,s} {west,south,north,east}
-
-# focus the node for the given path jump
-alt + {p,b,comma,period}
- bspc node -f @{parent,brother,first,second}
-
-# focus the next/previous node in the current desktop
-alt + {_,shift + }c
- bspc node -f {next,prev}.local
-
-# focus the next/previous desktop in the current Monitor
-alt + bracket{left,right}
- bspc desktop -f {prev,next}.local
-
-# focus the last node/desktop
-alt + {grave,Tab}
- bspc {node,desktop} -f last
-
-# focus the older or newer node in the focus history
-alt + {o,i}
- bspc wm -h off; \
- bspc node {older,newer} -f; \
- bspc wm -h on
-
-# focus or send to the given desktop
-alt + {_,shift + }{1-9,0}
- bspc {desktop -f,node -d} '^{1-9,10}'
-
-#
-# preselect
-#
-
-# preselect the direction
-alt + ctrl + {h,j,k,l}
- bspc node -p {west,south,north,east}
-
-# preselect the ratio
-alt + ctrl + {1-9}
- bspc node -o 0.{1-9}
-
-# cancel the preselection for the focused node
-alt + ctrl + space
- bspc node -p cancel
-
-# cancel the preselection for the focused desktop
-alt + ctrl + shift + space
- bspc query -N -d | xargs -I id -n 1 bspc node id -p cancel
-
-#
-# move/resize
-#
-
-# expand a window by moving one of its side outward
-super + alt + {h,j,k,l}
- bspc node -z {left -20 0,bottom 0 20,top 0 -20,right 20 0}
-
-# contract a window by moving one of its side inward
-super + alt + shift + {h,j,k,l}
- bspc node -z {right -20 0,top :0 20,bottom 0 -20,left 20 0}
-
-# move a floating window
-super + {Left,Down,Up,Right}
- bspc node -v {-20 0,0 20,0 -20,20 0}
-
-#
-# bsp-layout
-#
-alt + {t,shift + t}
- bsp-layout set {tile,tall -- --master-size 0.5}
-
-#
-# scratchpads
-#
-
-# htop
-alt + control + z
- bspt sphtop htop
-
-# terminal
-alt + control + x
- bspt spterm tmux
-
-# pulsemixer
-alt + control + c
- bspt sppmxr pulsemixer
-
-# bluetoothctl
-alt + control + v
- bspt spblue bluetoothctl
-
-# ncmpcpp
-alt + control + b
- bspt spncmp ncmpcpp
-
-# neomutt
-alt + control + a
- bspt spmutt neomutt
-
-# profanity
-alt + control + s
- bspt spprof profanity
-
-# irssi
-alt + control + d
- bspt spircc irssi
-
-# todo
-alt + control + f
- bspt sptodo todo
-
-# trem
-alt + control + g
- bspt sptrem tremc
diff --git a/sxiv/exec/key-handler b/sxiv/exec/key-handler
deleted file mode 100755
index 08e06d5..0000000
--- a/sxiv/exec/key-handler
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/bin/sh
-
-IMAGES=`cat -`
-
-case "$1" in
- "w")
- notify-send "$IMAGES" "background"
- ln -sf $IMAGES ~/background.jpg
- xwallpaper --zoom ~/background.jpg
- ;;
-esac
diff --git a/tofi/config b/tofi/config
new file mode 120000
index 0000000..54cdd97
--- /dev/null
+++ b/tofi/config
@@ -0,0 +1 @@
+/home/zachir/.config/tofi/themes/dmenu \ No newline at end of file
diff --git a/tofi/themes/colors b/tofi/themes/colors
new file mode 100644
index 0000000..a5f480c
--- /dev/null
+++ b/tofi/themes/colors
@@ -0,0 +1,17 @@
+background-color = #000000
+outline-color = #39c1ed
+border-color = #39c1ed
+text-color = #ffffff
+prompt-color = #39c1ed
+prompt-background = #000000
+placeholder-color = #39c1ed
+placeholder-background = #000000
+input-color = #ffffff
+input-background = #000000
+default-result-background = #000000
+alternate-result-color = #ffffff
+alternate-result-background = #000000
+selection-color = #000000
+selection-match-color = #198844
+selection-background = #39c1ed
+
diff --git a/tofi/themes/dmenu b/tofi/themes/dmenu
new file mode 100644
index 0000000..6bf9074
--- /dev/null
+++ b/tofi/themes/dmenu
@@ -0,0 +1,22 @@
+include = "themes/colors"
+
+hidden-character = "*"
+anchor = top
+width = 100%
+height = 36
+horizontal = true
+font-size = 24
+prompt-text = ""
+font = mononoki Nerd Font Mono
+outline-width = 0
+border-width = 0
+min-input-width = 424
+result-spacing = 15
+padding-top = 0
+padding-bottom = 0
+padding-left = 0
+padding-right = 0
+history = false
+selection-background-padding = 12
+result-spacing = 24
+require-match=false
diff --git a/waybar/config b/waybar/config
new file mode 100644
index 0000000..6be1ce2
--- /dev/null
+++ b/waybar/config
@@ -0,0 +1,126 @@
+{
+ "layer": "top",
+ "position": "top",
+ "height": 36,
+ "output": "%%DISPLAY%%",
+ "spacing": 4,
+ //"margin-top": 5,
+ //"margin-bottom":5,
+
+ // Choose the order of the modules
+
+ "modules-left":[ "custom/launcher"],
+ "modules-center":[],
+ "modules-right":[ "idle_inhibitor", "pulseaudio", "cpu", "memory", "temperature", "backlight", "battery#bat0", "battery#bat1", "network", "clock", "tray", "custom/power"],
+
+ // Modules configuration
+
+ "keyboard-state": {
+ "numlock": true,
+ "capslock": true,
+ "format": " {name} {icon}",
+ "format-icons": {
+ "locked": "",
+ "unlocked": ""
+ }
+ },
+ "idle_inhibitor": {
+ "format": "{icon}",
+ "format-icons": {
+ "activated": "",
+ "deactivated": ""
+ }
+ },
+ "tray": {
+ "icon-size": 20,
+ "spacing": 10
+ },
+ "clock": {
+ // "timezone": "America/New_York",
+ "tooltip-format": "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>",
+ "format-alt": "{:%Y-%m-%d}"
+ },
+ "cpu": {
+ "format": "{usage}% ",
+ "tooltip": false
+ },
+ "memory": {
+ "format": "{}% "
+ },
+ "temperature": {
+ // "thermal-zone": 2,
+ // "hwmon-path": "/sys/class/hwmon/hwmon2/temp1_input",
+ "critical-threshold": 80,
+ // "format-critical": "{temperatureC}°C {icon}",
+ "format": "{temperatureC}°C {icon}",
+ "format-icons": ["", "", ""]
+ },
+ "backlight": {
+ // "device": "acpi_video1",
+ "format": "{percent}% {icon}",
+ "format-icons": ["", ""]
+ },
+ "battery": {
+ "states": {
+ // "good": 95,
+ "warning": 30,
+ "critical": 15
+ },
+ "format": "{capacity}%",
+ "format-charging": "{capacity}% +",
+ "format-plugged": "{capacity}% =",
+ "format-alt": "{time}",
+ // "format-good": "", // An empty format will hide the module
+ // "format-full": "",
+ //"format-icons": ["", "", "", "", ""]
+ },
+ "battery#bat0": {
+ "bat": "BAT0"
+ },
+ "battery#bat1": {
+ "bat": "BAT1"
+ },
+ "network": {
+ // "interface": "wlp2*", // (Optional) To force the use of this interface
+ "format-wifi": "{essid} ({signalStrength}%) ",
+ "format-ethernet": "Connected  ",
+ "tooltip-format": "{ifname} via {gwaddr} ",
+ "format-linked": "{ifname} (No IP) ",
+ "format-disconnected": "Disconnected ⚠",
+ "format-alt": "{ifname}: {ipaddr}/{cidr}",
+ "on-click-right": "bash ~/.config/rofi/wifi_menu/rofi_wifi_menu"
+ },
+ "pulseaudio": {
+ // "scroll-step": 1, // %, can be a float
+ "format": "{volume}% {icon}",
+ "format-bluetooth": "{volume}% {icon}",
+ "format-bluetooth-muted": "{icon} {format_source}",
+ "format-muted": "{format_source}",
+ "format-source": "",
+ "format-source-muted": "",
+ "format-icons": {
+ "headphone": "",
+ "hands-free": "",
+ "headset": "",
+ "phone": "",
+ "portable": "",
+ "car": "",
+ "default": ["", "", ""]
+ },
+ "on-click": "pavucontrol"
+ },
+ "custom/launcher":{
+ "format": "",
+ "on-click": "exec $(tofi-drun)",
+ "on-click-right": "killall tofi"
+ },
+ "custom/power":{
+ "format": " ",
+ "on-click": "nwg-bar",
+ "on-click-right": "killall nwg-bar"
+ },
+ "custom/snip":{
+ "format": " ",
+ "on-click": "grimshot --notify save area $HOME/Pictures/$(zenity --entry --text 'Set filename:' --entry-text '.png')"
+ }
+}
diff --git a/waybar/config-Hyprland b/waybar/config-Hyprland
new file mode 100644
index 0000000..903fcc7
--- /dev/null
+++ b/waybar/config-Hyprland
@@ -0,0 +1,137 @@
+{
+ "layer": "top",
+ "position": "top",
+ "height": 36,
+ "output": "%%DISPLAY%%",
+ "spacing": 4,
+ //"margin-top": 5,
+ //"margin-bottom":5,
+
+ // Choose the order of the modules
+
+ "modules-left":[ "wlr/workspaces", "custom/launcher", "hyprland/window"],
+ "modules-center":[],
+ "modules-right":[ "idle_inhibitor", "pulseaudio", "cpu", "memory", "temperature", "backlight", "battery#bat0", "battery#bat1", "network", "clock", "tray", "custom/power"],
+
+ // Modules configuration
+
+ "wlr/workspaces": {
+ "format": "{name}",
+ "active-only": false,
+ "all-outputs": true,
+ "on-scroll-up": "hyprctl dispatch workspace e+1",
+ "on-scroll-down": "hyprctl dispatch workspace e-1"
+ },
+ "hyprland/window": {
+ "separate-outputs": true,
+ "format": "{}"
+ },
+ "keyboard-state": {
+ "numlock": true,
+ "capslock": true,
+ "format": " {name} {icon}",
+ "format-icons": {
+ "locked": "",
+ "unlocked": ""
+ }
+ },
+ "idle_inhibitor": {
+ "format": "{icon}",
+ "format-icons": {
+ "activated": "",
+ "deactivated": ""
+ }
+ },
+ "tray": {
+ "icon-size": 20,
+ "spacing": 10
+ },
+ "clock": {
+ // "timezone": "America/New_York",
+ "tooltip-format": "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>",
+ "format-alt": "{:%Y-%m-%d}"
+ },
+ "cpu": {
+ "format": "{usage}% ",
+ "tooltip": false
+ },
+ "memory": {
+ "format": "{}% "
+ },
+ "temperature": {
+ // "thermal-zone": 2,
+ // "hwmon-path": "/sys/class/hwmon/hwmon2/temp1_input",
+ "critical-threshold": 80,
+ // "format-critical": "{temperatureC}°C {icon}",
+ "format": "{temperatureC}°C {icon}",
+ "format-icons": ["", "", ""]
+ },
+ "backlight": {
+ // "device": "acpi_video1",
+ "format": "{percent}% {icon}",
+ "format-icons": ["", ""]
+ },
+ "battery": {
+ "states": {
+ // "good": 95,
+ "warning": 30,
+ "critical": 15
+ },
+ "format": "{capacity}%",
+ "format-charging": "{capacity}% +",
+ "format-plugged": "{capacity}% =",
+ "format-alt": "{time}",
+ // "format-good": "", // An empty format will hide the module
+ // "format-full": "",
+ //"format-icons": ["", "", "", "", ""]
+ },
+ "battery#bat0": {
+ "bat": "BAT0"
+ },
+ "battery#bat1": {
+ "bat": "BAT1"
+ },
+ "network": {
+ // "interface": "wlp2*", // (Optional) To force the use of this interface
+ "format-wifi": "{essid} ({signalStrength}%) ",
+ "format-ethernet": "Connected  ",
+ "tooltip-format": "{ifname} via {gwaddr} ",
+ "format-linked": "{ifname} (No IP) ",
+ "format-disconnected": "Disconnected ⚠",
+ "format-alt": "{ifname}: {ipaddr}/{cidr}",
+ "on-click-right": "bash ~/.config/rofi/wifi_menu/rofi_wifi_menu"
+ },
+ "pulseaudio": {
+ // "scroll-step": 1, // %, can be a float
+ "format": "{volume}% {icon}",
+ "format-bluetooth": "{volume}% {icon}",
+ "format-bluetooth-muted": "{icon} {format_source}",
+ "format-muted": "{format_source}",
+ "format-source": "",
+ "format-source-muted": "",
+ "format-icons": {
+ "headphone": "",
+ "hands-free": "",
+ "headset": "",
+ "phone": "",
+ "portable": "",
+ "car": "",
+ "default": ["", "", ""]
+ },
+ "on-click": "pavucontrol"
+ },
+ "custom/launcher":{
+ "format": "",
+ "on-click": "exec $(tofi-drun)",
+ "on-click-right": "killall tofi"
+ },
+ "custom/power":{
+ "format": " ",
+ "on-click": "nwg-bar",
+ "on-click-right": "killall nwg-bar"
+ },
+ "custom/snip":{
+ "format": " ",
+ "on-click": "grimshot --notify save area $HOME/Pictures/$(zenity --entry --text 'Set filename:' --entry-text '.png')"
+ }
+}
diff --git a/waybar/config-river b/waybar/config-river
new file mode 100644
index 0000000..3e84358
--- /dev/null
+++ b/waybar/config-river
@@ -0,0 +1,129 @@
+{
+ "layer": "top",
+ "position": "top",
+ "OUTPUT": "%%DISPLAY%%",
+ "height": 36,
+ "spacing": 4,
+ //"margin-top": 5,
+ //"margin-bottom":5,
+
+ // Choose the order of the modules
+
+ "modules-left":[ "river/tags", "custom/launcher"],
+ "modules-center":[],
+ "modules-right":[ "idle_inhibitor", "pulseaudio", "cpu", "memory", "temperature", "backlight", "battery#bat0", "battery#bat1", "network", "clock", "tray", "custom/power"],
+
+ // Modules configuration
+
+ "river/tags": {
+ "num-tags": 9,
+ },
+ "keyboard-state": {
+ "numlock": true,
+ "capslock": true,
+ "format": " {name} {icon}",
+ "format-icons": {
+ "locked": "",
+ "unlocked": ""
+ }
+ },
+ "idle_inhibitor": {
+ "format": "{icon}",
+ "format-icons": {
+ "activated": "",
+ "deactivated": ""
+ }
+ },
+ "tray": {
+ "icon-size": 20,
+ "spacing": 10
+ },
+ "clock": {
+ // "timezone": "America/New_York",
+ "tooltip-format": "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>",
+ "format-alt": "{:%Y-%m-%d}"
+ },
+ "cpu": {
+ "format": "{usage}% ",
+ "tooltip": false
+ },
+ "memory": {
+ "format": "{}% "
+ },
+ "temperature": {
+ // "thermal-zone": 2,
+ // "hwmon-path": "/sys/class/hwmon/hwmon2/temp1_input",
+ "critical-threshold": 80,
+ // "format-critical": "{temperatureC}°C {icon}",
+ "format": "{temperatureC}°C {icon}",
+ "format-icons": ["", "", ""]
+ },
+ "backlight": {
+ // "device": "acpi_video1",
+ "format": "{percent}% {icon}",
+ "format-icons": ["", ""]
+ },
+ "battery": {
+ "states": {
+ // "good": 95,
+ "warning": 30,
+ "critical": 15
+ },
+ "format": "{capacity}%",
+ "format-charging": "{capacity}% +",
+ "format-plugged": "{capacity}% =",
+ "format-alt": "{time}",
+ // "format-good": "", // An empty format will hide the module
+ // "format-full": "",
+ //"format-icons": ["", "", "", "", ""]
+ },
+ "battery#bat0": {
+ "bat": "BAT0"
+ },
+ "battery#bat1": {
+ "bat": "BAT1"
+ },
+ "network": {
+ // "interface": "wlp2*", // (Optional) To force the use of this interface
+ "format-wifi": "{essid} ({signalStrength}%) ",
+ "format-ethernet": "Connected  ",
+ "tooltip-format": "{ifname} via {gwaddr} ",
+ "format-linked": "{ifname} (No IP) ",
+ "format-disconnected": "Disconnected ⚠",
+ "format-alt": "{ifname}: {ipaddr}/{cidr}",
+ "on-click-right": "bash ~/.config/rofi/wifi_menu/rofi_wifi_menu"
+ },
+ "pulseaudio": {
+ // "scroll-step": 1, // %, can be a float
+ "format": "{volume}% {icon}",
+ "format-bluetooth": "{volume}% {icon}",
+ "format-bluetooth-muted": "{icon} {format_source}",
+ "format-muted": "{format_source}",
+ "format-source": "",
+ "format-source-muted": "",
+ "format-icons": {
+ "headphone": "",
+ "hands-free": "",
+ "headset": "",
+ "phone": "",
+ "portable": "",
+ "car": "",
+ "default": ["", "", ""]
+ },
+ "on-click": "pavucontrol"
+ },
+ "custom/launcher":{
+ "format": "",
+ "on-click": "exec $(tofi-drun)",
+ "on-click-right": "killall tofi"
+ },
+ "custom/power":{
+ "format": " ",
+ "on-click": "nwg-bar",
+ "on-click-right": "killall nwg-bar"
+ },
+ "custom/snip":{
+ "format": " ",
+ "on-click": "grimshot --notify save area $HOME/Pictures/$(zenity --entry --text 'Set filename:' --entry-text '.png')"
+ }
+}
diff --git a/waybar/style.css b/waybar/style.css
new file mode 100644
index 0000000..8333fb6
--- /dev/null
+++ b/waybar/style.css
@@ -0,0 +1,317 @@
+* {
+ border: 0px;
+ margin: 0px;
+ border-radius: 0px;
+ /* `otf-font-awesome` is required to be installed for icons */
+ font-family: mononoki Nerd Font Mono;
+ font-size: 18px;
+ min-height: 0px;
+ min-width: 0px;
+}
+
+window#waybar {
+ background-color: transparent;
+ color: #ffffff;
+ transition-property: background-color;
+ transition-duration: .5s;
+}
+
+window#waybar.hidden {
+ opacity: 0.2;
+}
+
+
+#workspaces button {
+ background: #1f1f1f;
+ color: #ffffff;
+ border-radius: 20px;
+
+}
+
+/* https://github.com/Alexays/Waybar/wiki/FAQ#the-workspace-buttons-have-a-strange-hover-effect */
+
+#workspaces button {
+ background: #2b55b2;
+ color: white;
+ border-bottom: 3px solid #000000;
+}
+
+#workspaces button:hover {
+ background: #39c1ed;
+ color: black;
+ border-bottom: 3px solid #ffffff;
+
+}
+
+#workspaces button.active {
+ background: #39c1ed;
+}
+
+#workspaces button.active:hover {
+ background: #39c1ed;
+ color: black;
+ border-bottom: 3px solid #ffffff;
+
+}
+
+#workspaces button.urgent {
+ background-color: #eb4d4b;
+}
+
+#mode {
+ background-color: #64727D;
+ border-bottom: 3px solid #ffffff;
+}
+
+#clock,
+#battery,
+#cpu,
+#memory,
+#disk,
+#temperature,
+#backlight,
+#network,
+#pulseaudio,
+#custom-media,
+#custom-launcher,
+#custom-power,
+#custom-layout,
+#custom-updater,
+#custom-snip,
+#custom-wallpaper,
+#tags,
+#taskbar,
+#tray,
+#mode,
+#idle_inhibitor,
+#mpd {
+ padding: 0px 9px;
+ margin: 0px;
+ color: #ffffff;
+}
+
+#window,
+#workspaces {
+ margin: 0px 4px;
+}
+
+/* If workspaces is the leftmost module, omit left margin */
+.modules-left > widget:first-child > #workspaces {
+ margin-left: 0px;
+}
+
+/* If workspaces is the rightmost module, omit right margin */
+.modules-right > widget:last-child > #workspaces {
+ margin-right: 0px;
+}
+
+#clock {
+ background-color: #171717;
+ color: #ffffff;
+}
+
+#battery {
+ background-color: #ffffff;
+ color: #000000;
+}
+
+#battery.charging, #battery.plugged {
+ color: #ffffff;
+ background-color: #26A65B;
+}
+
+@keyframes blink {
+ to {
+ background-color: #ffffff;
+ color: #000000;
+ }
+}
+
+#battery.critical:not(.charging) {
+ background-color: #f53c3c;
+ color: #ffffff;
+ animation-name: blink;
+ animation-duration: 0.5s;
+ animation-timing-function: linear;
+ animation-iteration-count: infinite;
+ animation-direction: alternate;
+}
+
+label:focus {
+ background-color: #000000;
+}
+
+#cpu {
+ background-color: #171717;
+ color: #ffffff;
+}
+
+#memory {
+ background-color: #171717;
+ color: #ffffff;
+}
+
+#disk {
+ background-color: #171717;
+ color: #ffffff;
+}
+
+#backlight {
+ background-color: #90b1b1;
+}
+
+#network {
+ background-color: #171717;
+ color: #ffffff;
+}
+
+#network.disconnected {
+ background-color: #171717;
+ color: red;
+}
+
+#pulseaudio {
+ background-color: #171717;
+ color: #ffffff;
+}
+
+#pulseaudio.muted {
+ background-color: #171717;
+ color: red;
+}
+
+#custom-media {
+ background-color: #171717;
+ color: white;
+}
+
+#custom-media.custom-spotify {
+ background-color: #171717;
+ color: white;
+
+}
+
+#custom-media.custom-vlc {
+ background-color: #171717;
+ color: white;
+}
+
+#custom-power{
+ background-color: #171717;
+ font-size: 18px;
+ margin-right: 5px;
+
+}
+
+#custom-launcher{
+ background-color: #171717;
+ font-size: 20px;
+ margin-left: 5px;
+
+}
+
+#custom-layout{
+ background-color: #171717;
+ color: white;
+ font-size:20px;
+}
+
+#custom-updater {
+ background-color: #171717;
+ color: white;
+}
+
+#custom-snip {
+ background-color: #171717;
+ color: skyblue;
+ font-size: 20px;
+}
+
+#custom-wallpaper {
+ background-color: #171717;
+ color: pink;
+ font-size: 20px;
+}
+
+#tags{
+ background-color: #171717;
+ font-size: 20px;
+}
+
+#tags button.occupied {
+ color: skyblue;
+ background-color: #272727;
+}
+#tags button.focused {
+ color: black;
+ background-color: white;
+}
+#tags button.urgent{
+ color: red;
+ background-color:white;
+}
+
+
+#taskbar{
+ background-color: #171717;
+ border-radius: 0px 20px 20px 0px;
+}
+
+#temperature {
+ background-color: #171717;
+ color: #ffffff;
+}
+
+#temperature.critical {
+ background-color: #eb4d4b;
+}
+
+#tray {
+ background-color: #171717;
+ color: #ffffff;
+}
+
+#tray > .passive {
+ -gtk-icon-effect: dim;
+ background-color: #171717;
+ color: #ffffff;
+}
+
+#tray > .needs-attention {
+ -gtk-icon-effect: highlight;
+ background-color: #171717;
+ color: #ffffff;
+}
+
+#idle_inhibitor {
+ background-color: #171717;
+ border-radius: 20px 0px 0px 20px;
+
+}
+
+#idle_inhibitor.activated {
+ background-color: #198844;
+ color: #ffffff;
+ border-radius: 20px 0px 0px 20px;
+
+}
+
+#language {
+ background-color: #171717;
+ color: #ffffff;
+ min-width: 16px;
+}
+
+#keyboard-state {
+ background: #97e1ad;
+ color: #000000;
+ min-width: 16px;
+}
+
+#keyboard-state > label {
+ padding: 0px 5px;
+}
+
+#keyboard-state > label.locked {
+ background: rgba(0, 0, 0, 0.2);
+}
diff --git a/waylock/config b/waylock/config
new file mode 100644
index 0000000..d25aa13
--- /dev/null
+++ b/waylock/config
@@ -0,0 +1 @@
+-init-color 0x000000 -input-color 0x39C1ED -fail-color 0xCC342B
diff --git a/zsh/.zshenv b/zsh/.zshenv
index 15ffd52..b8ee20d 100644
--- a/zsh/.zshenv
+++ b/zsh/.zshenv
@@ -50,7 +50,7 @@ export GDK_DPI_SCALE=1
# Theming
export QT_QPA_PLATFORMTHEME=qt5ct
-[ -n "$WAYLAND_DISPLAY" ] && export GTK_THEME=Sweet-mars-v40
+[ -n "$WAYLAND_DISPLAY" ] && export GTK_THEME=Plata-Noir-Compact
# Configure apps
export BEMENU_OPTS="-H 36 --fn \"mononoki Nerd Font Mono 24\" --nb \"#000000\" --nf \"#c5c8c6\" --hb \"#39c1ed\" --hf \"#000000\" --cb \"#000000\" --cf \"#000000\" --tf \"#000000\" --tb \"#39c1ed\" --fb \"#000000\" --ff \"#c5c8c6\" --fbb \"#39c1ed\" --fbf \"#198844\""
@@ -98,4 +98,6 @@ export PATH="$PATH:/usr/sbin"
export PATH="$PATH:/bin"
export PATH="$PATH:/sbin"
+[ -f "${XDG_CONFIG_HOME:-$HOME/.config}/user-dirs.dirs" ] && . "${XDG_CONFIG_HOME:-$HOME/.config}/user-dirs.dirs"
+
[ -f /etc/profile.d/nix-daemon.sh ] && . /etc/profile.d/nix-daemon.sh