1
0
mirror of https://github.com/alrayyes/dotfiles/ synced 2023-11-14 15:56:30 +00:00
dotfiles/private_dot_config/bspwm/executable_bspwmrc.tmpl

141 lines
3.5 KiB
Fish

#!/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.chassisType -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.chassisType -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 &