Created
May 19, 2020 17:08
-
-
Save amacgregor/9d0b556103db9f5c5a2f1def6ba874ac to your computer and use it in GitHub Desktop.
Ubuntu 20.04 BSPWM + SXHD configuration
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/sh | |
# Configure the workspaces | |
for monitor in $(bspc query -M); do | |
bspc monitor $monitor -d 1 2 3 4 5 6 7 8 9 | |
done | |
sxhkd &> /var/log/sxhkd.log & | |
bspc config border_width 1 | |
bspc config window_gap 5 | |
bspc config split_ratio 0.52 | |
bspc config borderless_monocle true | |
bspc config gapless_monocle true | |
bspc rule -a Gimp desktop='^8' state=floating follow=on | |
bspc rule -a Chromium desktop='^2' | |
bspc rule -a mplayer2 state=floating | |
bspc rule -a Kupfer.py focus=on | |
bspc rule -a Screenkey manage=off | |
bspc config border_width 2 | |
# remap capslock to escape | |
setxkbmap -option caps:swapescape | |
# remap Super Key and left alt | |
xmodmap -e "remove mod1 = Alt_L" | |
xmodmap -e "remove mod4 = Super_L" | |
xmodmap -e "add mod1 = Super_L" | |
xmodmap -e "add mod4 = Alt_L" | |
# Rearrange layout | |
~/.screenlayout/default.sh & | |
# Set wallpaper | |
feh --bg-scale Downloads/Wallpapers/guard_tower.jpg | |
# Screen tearing fix | |
xrandr --output HDMI-A-1 --set "TearFree" on --primary | |
xrandr --output DVI-D-0 --set "TearFree" on | |
xrandr --output HDMI-A-0 --set "TearFree" on | |
# Launch polybar | |
/opt/utils/launch_polybar.sh & | |
# Initialize Compoton | |
compton & |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# | |
# wm independent hotkeys | |
# | |
# terminal emulator | |
super + Return | |
kitty | |
# program launcher | |
super + space | |
launcher | |
# make sxhkd reload its configuration files: | |
super + Escape | |
pkill -USR1 -x sxhkd | |
# | |
# bspwm hotkeys | |
# | |
# quit/restart bspwm | |
super + alt + {q,r} | |
bspc {quit,wm -r} | |
# close and kill | |
super + {_,shift + }w | |
bspc node -{c,k} | |
# alternate between the tiled and monocle layout | |
super + m | |
bspc desktop -l next | |
# send the newest marked node to the newest preselected node | |
super + y | |
bspc node newest.marked.local -n newest.!automatic.local | |
# swap the current node and the biggest node | |
super + g | |
bspc node -s biggest | |
# rotate tree clockwise/counter clockwise | |
super + ctrl + {comma,period} | |
bspc node @focused:/ -R {270,90} | |
# | |
# state/flags | |
# | |
# set the window state | |
super + {t,shift + t,s,f} | |
bspc node -t {tiled,pseudo_tiled,floating,fullscreen} | |
# set the node flags | |
super + ctrl + {m,x,y,z} | |
bspc node -g {marked,locked,sticky,private} | |
# | |
# focus/swap | |
# | |
# focus the node in the given direction | |
super + {_,shift + }{h,j,k,l} | |
bspc node -{f,s} {west,south,north,east} | |
# focus the node for the given path jump | |
super + {p,b,comma,period} | |
bspc node -f @{parent,brother,first,second} | |
# focus the next/previous node in the current desktop | |
super + {_,shift + }c | |
bspc node -f {next,prev}.local | |
# focus the next/previous desktop in the current monitor | |
super + bracket{left,right} | |
bspc desktop -f {prev,next}.local | |
# focus the last node/desktop | |
super + {grave,Tab} | |
bspc {node,desktop} -f last | |
# focus the older or newer node in the focus history | |
super + {o,i} | |
bspc wm -h off; \ | |
bspc node {older,newer} -f; \ | |
bspc wm -h on | |
# focus or send to the given desktop | |
super + {_,shift + } {1,2,3} ; {1-9,0} | |
bspc {desktop -f, node -d} "^{1,2,3}:^{1-9,10}" | |
# | |
# preselect | |
# | |
# preselect the direction | |
super + alt + ctrl + {h,j,k,l} | |
bspc node -p {west,south,north,east} | |
# preselect the ratio | |
super + alt + ctrl + {1-9} | |
bspc node -o 0.{1-9} | |
# cancel the preselection for the focused node | |
super + alt + ctrl + space | |
bspc node -p cancel | |
# cancel the preselection for the focused desktop | |
super + 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} | |
# screenshot configuration | |
{shift + ,_} Print | |
scrot {--select,_} '%F_%H-%M-%S_$wx$h.png' -e 'mv $f ~/ ' && notify-send 'Screenshot captured' |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment