1
0
mirror of https://github.com/alrayyes/dotfiles/ synced 2023-11-14 15:56:30 +00:00
dotfiles/bspwm/.config/bspwm/bspwmrc
2021-03-13 15:27:16 +01:00

138 lines
3.2 KiB
Fish
Executable File

#!/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
###---Get monitor count---###
set SCREENCOUNT (xrandr | grep -c "\*")
###---Monitors---###
if [ "$SCREENCOUNT" -eq 2 ]
bspc monitor DP-3 -d 2 3 4 5 6 7 8 9 0
bspc monitor DP-2 -d 1
if [ -f "$HOME/.local/bin/screen_desktop" ]
screen_desktop
end
if [ -f "$HOME/.local/bin/polybar-desktop" ]
polybar-desktop
end
else
bspc monitor -d 1 2 3 4 5 6 7 8 9 0
if [ -f "$HOME/.local/bin/screen" ]
screen
end
if [ -f "$HOME/.local/bin/polybar-laptop" ]
polybar-laptop
end
end
###---Wallpaper & opacity---###
~/.local/bin/wallpaper
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 brave
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 [ "$SCREENCOUNT" -eq 2 ]
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 &