#!/usr/bin/env fish ###---Start app if not running already---### function start_if_not_running set PROCESS_NAME $argv[1] if [ (pgrep -u (id -u) -x "$PROCESS_NAME" | wc -l) -lt 1 ] if type -q $argv[1] eval "$argv[1] &" end end end ###---Start app in alacritty if not running already---### function start_shell_if_not_running if [ (pgrep -u (id -u) -x $argv[1] | wc -l) -lt 1 ] if type -q $argv[1] eval "alacritty --class $argv[1],$argv[1] -e $argv[1] &" end end end ###---Load xresources---### xrdb -load ~/.config/X11/xresources ###---Flush rules---### bspc rule -r "*" ###---Sxhkd---### set -U SXHKD_SHELL sh sxhkd & ###---Keyboard---### setxkbmap -option caps:escape ###---Monitors---### {{- if eq .chassisType "desktop" }} bspc monitor DP-3 -d 2 3 4 5 6 7 8 9 0 bspc monitor DP-2 -d 1 xrandr --output DP-3 --primary --mode 3840x2160 --rotate normal --output DP-2 --mode 2560x1440 --pos 0x0 --rotate left {{ else }} bspc monitor -d 1 2 3 4 5 6 7 8 9 0 {{- end }} ###---Polybar---### # Terminate already running bar instances killall -q polybar # Wait until the processes have been shut down while pgrep -u (id -u) -x polybar >/dev/null sleep 1 end {{- if eq .chassisType "desktop" }} polybar-monitor1 & polybar-monitor2 & {{ else }} polybar framework-top & polybar framework-bottom & {{- end }} ###---Wallpaper & opacity---### {{- if eq .chassisType "desktop" }} xwallpaper --output DP-2 --zoom ~/.cache/wall2.png --output DP-3 --zoom ~/.cache/wall1.png & {{ else }} xwallpaper --output eDP-1 --zoom ~/.cache/wall1.png & {{- end }} wal -n -R picom -b ###---Global Settings---### . ~/.cache/wal/colors.fish bspc config normal_border_color "$color1" bspc config active_border_color "$color2" bspc config focused_border_color "$color15" bspc config presel_feedback_color "$color1" bspc config automatic_scheme alternate bspc config initial_polarity second_child ###---Desktop Settings----### bspc config border_width 2 bspc config window_gap 4 ###---Rules---### bspc rule -a "Syncthing GTK" state=floating bspc rule -a Gimp state=floating follow=on bspc rule -a float state=floating bspc rule -a fullscreen state=fullscreen bspc rule -a Emacs state=tiled bspc rule -a Zathura state=tiled bspc rule -a firefox desktop='^1' bspc rule -a Brave-browser desktop='^1' bspc rule -a bashtop desktop='^2' bspc rule -a Slack='^3' bspc rule -a Element desktop='^3' bspc rule -a weechat desktop='^3' bspc rule -a castero desktop='^4' bspc rule -a Spt desktop='^4' bspc rule -a jetbrains-webstorm desktop='^8' bspc rule -a Emacs desktop='^9' bspc rule -a scratchpad sticky=on state=floating bspc rule -a scratchmacs sticky=on state=floating ###---Autostart---### start_if_not_running dunst start_if_not_running unclutter start_if_not_running xbanish start_if_not_running nm-applet start_if_not_running pasystray start_if_not_running redshift-gtk start_if_not_running syncthing-gtk start_if_not_running caffeine start_if_not_running clipmenud start_if_not_running firefox start_if_not_running emacs start_if_not_running element-desktop start_if_not_running element-desktop-nightly start_if_not_running gpodder {{- if eq .chassisType "desktop" }}start_if_not_running slack{{ end }} pkill -f cleanfullscreen ~/.local/bin/cleanfullscreen & ###---System lock---### pkill -f xss-lock xset s 300 5 env XSECURELOCK_FONT="Hack Nerd Font" xss-lock -n /usr/lib/xsecurelock/dimmer -l -- xsecurelock & ###---Misc---### # Needed for Jetbrains products to work wmname LG3D & # Enable bspswallow pidof bspswallow || bash bspswallow &