First Commit
This is a first dotfiles config. I think I have a lot more to add tho...
This commit is contained in:
		
							
								
								
									
										331
									
								
								sxhkd/.config/sxhkd/sxhkdrc
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										331
									
								
								sxhkd/.config/sxhkd/sxhkdrc
									
									
									
									
									
										Executable file
									
								
							@ -0,0 +1,331 @@
 | 
			
		||||
# bspwm hotkeys
 | 
			
		||||
#
 | 
			
		||||
# Cleanly quit bspwm
 | 
			
		||||
super + shift + a
 | 
			
		||||
	bspc quit 1 && pkill lemonpanel && pkill lemonbar
 | 
			
		||||
 | 
			
		||||
# Show keybindings
 | 
			
		||||
super + F1
 | 
			
		||||
	$TERMINAL -e keybindings.sh
 | 
			
		||||
#
 | 
			
		||||
# Window manipulation
 | 
			
		||||
# ______________
 | 
			
		||||
 | 
			
		||||
# Close window
 | 
			
		||||
super + x
 | 
			
		||||
	bspc  node -c
 | 
			
		||||
 | 
			
		||||
# Kill window
 | 
			
		||||
super + shift + x
 | 
			
		||||
	bspc  node -k
 | 
			
		||||
 | 
			
		||||
# Toggle tiling mode of window
 | 
			
		||||
super + shift + t
 | 
			
		||||
	bspc node -t {pseudo_tiled,tiled}
 | 
			
		||||
super + t
 | 
			
		||||
	{bspc node -t floating && window-placer $(bspc query -T -d | grep -o '"state":"floating"' | wc -l),bspc node -t tiled}
 | 
			
		||||
# Force all windows of the desktop to tile
 | 
			
		||||
super + ctrl + t
 | 
			
		||||
	bspcp tile
 | 
			
		||||
# Force all windows of the desktop to float and arrange them
 | 
			
		||||
super + ctrl + shift + t
 | 
			
		||||
	bspcp float
 | 
			
		||||
	
 | 
			
		||||
# Toggle fullscreen
 | 
			
		||||
super + shift + f 
 | 
			
		||||
	bspc node -t {fullscreen,tiled}	
 | 
			
		||||
 | 
			
		||||
# Try to keep size and position of the selected window
 | 
			
		||||
super + o
 | 
			
		||||
	bspc node -g private
 | 
			
		||||
 | 
			
		||||
# Make window sticky
 | 
			
		||||
super + i
 | 
			
		||||
	bspc node -g sticky
 | 
			
		||||
 | 
			
		||||
super + h
 | 
			
		||||
	bspc node -g hidden
 | 
			
		||||
 | 
			
		||||
super + H
 | 
			
		||||
	WindowMinimiser
 | 
			
		||||
 | 
			
		||||
# Lock a window from closing
 | 
			
		||||
super + Escape
 | 
			
		||||
	bspc node -g locked 
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# Window moving and splitting
 | 
			
		||||
# ______________    
 | 
			
		||||
 | 
			
		||||
# Autopresel (split window in its largest dimension)
 | 
			
		||||
super + ctrl + Return
 | 
			
		||||
	auto-presel
 | 
			
		||||
	
 | 
			
		||||
# Presel window for splitting in certain direction
 | 
			
		||||
alt + ctrl + {q,s,z,d}
 | 
			
		||||
	bspc node -p \~{west,south,north,east} -i
 | 
			
		||||
 | 
			
		||||
alt + ctrl + {h,j,k,l}
 | 
			
		||||
	bspc node -p \~{west,south,north,east}
 | 
			
		||||
 | 
			
		||||
alt + ctrl + {Left,Down,Up,Right}
 | 
			
		||||
	bspc node -p \~{west,south,north,east}
 | 
			
		||||
 | 
			
		||||
# Presel the desktop for splitting in certain direction
 | 
			
		||||
alt + shift + {q,s,z,d}
 | 
			
		||||
	bspc node @/ -p \~{west,south,north,east}
 | 
			
		||||
 | 
			
		||||
alt + shift + {h,j,k,l}
 | 
			
		||||
	bspc node @/ -p \~{west,south,north,east}
 | 
			
		||||
 | 
			
		||||
alt + shift + {Left,Down,Up,Right}
 | 
			
		||||
	bspc node @/ -p \~{west,south,north,east}
 | 
			
		||||
# Set splitting ratio of windows
 | 
			
		||||
alt + ctrl + {1-9}
 | 
			
		||||
	bspc node -o 0.{1-9}
 | 
			
		||||
		
 | 
			
		||||
# Move current window to largest space or preselected area if there is one.
 | 
			
		||||
super + Return
 | 
			
		||||
    windowpromoter
 | 
			
		||||
 | 
			
		||||
# # Create a new "master area", splitting the whole desktop instead of just windows.
 | 
			
		||||
# alt + Return
 | 
			
		||||
# 	bspc node -n @/
 | 
			
		||||
	
 | 
			
		||||
# go (Shift=move) to desktop (and focus the monitor that the desktop is located on. Bspwm style)
 | 
			
		||||
super + {_,shift + }{ampersand,eacute,quotedbl,apostrophe,parenleft,minus,egrave,underscore,ccedilla,agrave}
 | 
			
		||||
    bspc {desktop -f,node -d} ^{1-9,10}
 | 
			
		||||
 | 
			
		||||
## Alternative: i3 style behavior (focus nth, desktop of the focused monitor)
 | 
			
		||||
#super + {ampersand,eacute,quotedbl,apostrophe,parenleft,minus,egrave,underscore,ccedilla,agrave}
 | 
			
		||||
#	focusdesktopofthismonitor {1-9}
 | 
			
		||||
#super + shift + {ampersand,eacute,quotedbl,apostrophe,parenleft,minus,egrave,underscore,ccedilla,agrave}
 | 
			
		||||
#	movetodesktopofthismonitor {1-9,10}
 | 
			
		||||
 | 
			
		||||
## Another alternative: xmonad style desktops. You have 10 desktops shared between all monitors,
 | 
			
		||||
## and focusing a desktop focuses it on the currently focused monitor
 | 
			
		||||
#super + {ampersand,eacute,quotedbl,apostrophe,parenleft,minus,egrave,underscore,ccedilla,agrave}
 | 
			
		||||
#	summondesktop.sh {1-9,10}
 | 
			
		||||
#super + shift + {ampersand,eacute,quotedbl,apostrophe,parenleft,minus,egrave,underscore,ccedilla,agrave}
 | 
			
		||||
#	bspc node -d ^{1-9,10}
 | 
			
		||||
 | 
			
		||||
# Select previous / next desktop
 | 
			
		||||
super + {m,n}
 | 
			
		||||
	bspc desktop -f {prev.occupied,next.occupied} 
 | 
			
		||||
 | 
			
		||||
# cycle windows
 | 
			
		||||
alt + {_,shift + }Tab
 | 
			
		||||
    bspc node -f {next,prev}
 | 
			
		||||
 | 
			
		||||
# Go to specific window
 | 
			
		||||
super + Tab
 | 
			
		||||
	WindowSelector
 | 
			
		||||
	
 | 
			
		||||
#Focus windows by direction, works with multihead
 | 
			
		||||
super +  {q,s,z,d}
 | 
			
		||||
    focusmover {west,south,north,east}
 | 
			
		||||
 | 
			
		||||
super +  {h,j,k,l}
 | 
			
		||||
    focusmover {west,south,north,east}
 | 
			
		||||
 | 
			
		||||
super +  {Left,Down,Up,Right}
 | 
			
		||||
    focusmover {west,south,north,east}
 | 
			
		||||
        	
 | 
			
		||||
# Move tiled windows. Moving a tiled window to 
 | 
			
		||||
# preselected one moves into preselection instead. 
 | 
			
		||||
# Moving out of the screen should move the window to next monitor if possible
 | 
			
		||||
super + shift + {q,s,z,d}
 | 
			
		||||
	windowgrabber {west,south,north,east}
 | 
			
		||||
 | 
			
		||||
super + shift + {h,j,k,l}
 | 
			
		||||
	windowgrabber {west,south,north,east}
 | 
			
		||||
	
 | 
			
		||||
# Different style of movement: transplant into window in chosen direction
 | 
			
		||||
super + shift + {Left,Down,Up,Right}
 | 
			
		||||
	euclid_mover {west,south,north,east}
 | 
			
		||||
 | 
			
		||||
#resize windows
 | 
			
		||||
super + ctrl + {q,s,z,d}
 | 
			
		||||
	bspwm_resize.sh {west,south,north,east}
 | 
			
		||||
 | 
			
		||||
super + ctrl + {h,j,k,l}
 | 
			
		||||
	bspwm_resize.sh {west,south,north,east}
 | 
			
		||||
	
 | 
			
		||||
super + ctrl + {Left,Down,Up,Right}
 | 
			
		||||
	bspwm_resize.sh {west,south,north,east}
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# Layout manipulation/desktop level controls
 | 
			
		||||
# ______________    
 | 
			
		||||
 | 
			
		||||
# Toggle monocle mode
 | 
			
		||||
super + f 
 | 
			
		||||
	bspc desktop -l next
 | 
			
		||||
	
 | 
			
		||||
# Balance tree
 | 
			
		||||
super + b
 | 
			
		||||
	bspc node @/ -B
 | 
			
		||||
 | 
			
		||||
# Balance brother node. If you do this on biggest window of the desktop, it usually means balancing all windows with except the biggest.
 | 
			
		||||
super + alt + b
 | 
			
		||||
	bspc node @brother -B
 | 
			
		||||
	
 | 
			
		||||
# Undo balancing (equalize windows)
 | 
			
		||||
super + ctrl + b
 | 
			
		||||
	bspc node @/ -E
 | 
			
		||||
 | 
			
		||||
# Toggle automatic balancing of windows
 | 
			
		||||
alt + b
 | 
			
		||||
	euclid_balancer
 | 
			
		||||
 | 
			
		||||
# Mirror and flip leaves of tree
 | 
			
		||||
super + {comma,period}
 | 
			
		||||
	bspc node @/ -F {horizontal,vertical}
 | 
			
		||||
	
 | 
			
		||||
# Rotate leaves of tree
 | 
			
		||||
super + shift + {comma,period}
 | 
			
		||||
	bspc node @/ -R {90,270}
 | 
			
		||||
 | 
			
		||||
# Change window gap
 | 
			
		||||
 | 
			
		||||
super + g
 | 
			
		||||
	bspc config -d focused window_gap {$gap,$(($gap+$gap)),$(($gap+$gap+$gap))}
 | 
			
		||||
 | 
			
		||||
super + button{4,5}
 | 
			
		||||
	bspc config -d focused window_gap $((`bspc config -d focused window_gap` {+,-} 2 ))
 | 
			
		||||
#
 | 
			
		||||
# mouse bindings
 | 
			
		||||
# __________________
 | 
			
		||||
 | 
			
		||||
~button1
 | 
			
		||||
	DidIClickDesktop.sh && gapgrab
 | 
			
		||||
 | 
			
		||||
~button2
 | 
			
		||||
	DidIClickDesktop.sh && mygtkmenui -- .config/GTKmenu/BspwmDesktopMenui
 | 
			
		||||
		
 | 
			
		||||
~button3
 | 
			
		||||
	DidIClickDesktop.sh && mygtkmenui -- .config/GTKmenu/LaunchMenu
 | 
			
		||||
 | 
			
		||||
# Switch workspace by scrolling on the desktop. Causes scrolling issues on some systems.
 | 
			
		||||
#~button4
 | 
			
		||||
#	DidIClickDesktop.sh && bspc desktop -f next
 | 
			
		||||
#~button5
 | 
			
		||||
#	DidIClickDesktop.sh && bspc desktop -f prev
 | 
			
		||||
	
 | 
			
		||||
### Add or remove desktops by scrolling
 | 
			
		||||
super + ctrl + button5
 | 
			
		||||
    bspcp dsktp rm
 | 
			
		||||
 | 
			
		||||
super + ctrl + button4
 | 
			
		||||
    bspcp dsktp add
 | 
			
		||||
 | 
			
		||||
# Spawn applications popup menu and manually tile selected 
 | 
			
		||||
# app where your mouse was when you opened the menu. Smartsplit only chooses
 | 
			
		||||
# biggest dimension of the window, MouseLaunch only cares which edge is closer.
 | 
			
		||||
# mod5 is alt_gr (first key right from space) on most keyboards. 
 | 
			
		||||
mod5 + @button1
 | 
			
		||||
    MouseLaunch ; mygtkmenui -- .config/GTKmenu/LaunchMenu
 | 
			
		||||
#	smartsplit ; dboxmenu
 | 
			
		||||
 | 
			
		||||
# Spawn window manipulation menu
 | 
			
		||||
# Mod1 is alt
 | 
			
		||||
#    BspwmWindowMenu
 | 
			
		||||
#mod1 + @button1
 | 
			
		||||
#    mygtkmenui -- .config/GTKmenu/BspwmWindowMenui
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# Touchpad "gestures" (depend on your touchpad driver, very likely to be unavailable)
 | 
			
		||||
#_____________________
 | 
			
		||||
    
 | 
			
		||||
#
 | 
			
		||||
# spawn programs
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
# run applications
 | 
			
		||||
super + space
 | 
			
		||||
	dmenu_recent -i -l 14 -w 600 -y $PANEL_HEIGHT
 | 
			
		||||
 | 
			
		||||
super + p
 | 
			
		||||
	st spt
 | 
			
		||||
 | 
			
		||||
super + shift + Return
 | 
			
		||||
	st	
 | 
			
		||||
 | 
			
		||||
super + z
 | 
			
		||||
	st	
 | 
			
		||||
 | 
			
		||||
super + shift + z
 | 
			
		||||
	open-terminal-here
 | 
			
		||||
	
 | 
			
		||||
super + r
 | 
			
		||||
	rofi-finder.sh
 | 
			
		||||
 | 
			
		||||
super + shift + b
 | 
			
		||||
	$BROWSER
 | 
			
		||||
    		
 | 
			
		||||
super + e
 | 
			
		||||
	spacefm -n
 | 
			
		||||
 | 
			
		||||
ctrl + alt + n 
 | 
			
		||||
	switchkblayout
 | 
			
		||||
 | 
			
		||||
super + shift + e
 | 
			
		||||
	st ranger
 | 
			
		||||
 | 
			
		||||
super + shift + n
 | 
			
		||||
	newsboat
 | 
			
		||||
 | 
			
		||||
Print
 | 
			
		||||
	scrot -s
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# Media keys
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
XF86AudioRaiseVolume
 | 
			
		||||
	volume up
 | 
			
		||||
 | 
			
		||||
XF86AudioLowerVolume
 | 
			
		||||
	volume down
 | 
			
		||||
 | 
			
		||||
XF86AudioMute
 | 
			
		||||
	volume mute
 | 
			
		||||
	
 | 
			
		||||
XF86MonBrightnessDown
 | 
			
		||||
 xbacklight -dec 10
 | 
			
		||||
 | 
			
		||||
XF86MonBrightnessUp
 | 
			
		||||
 xbacklight -inc 10
 | 
			
		||||
 
 | 
			
		||||
 | 
			
		||||
XF86Sleep
 | 
			
		||||
	systemctl suspend
 | 
			
		||||
 | 
			
		||||
XF86AudioPlay
 | 
			
		||||
	playerctl play-pause 
 | 
			
		||||
 | 
			
		||||
XF86AudioPlay
 | 
			
		||||
	playerctl stop
 | 
			
		||||
 | 
			
		||||
XF86AudioPrev
 | 
			
		||||
	playerctl previous
 | 
			
		||||
 | 
			
		||||
XF86AudioNext
 | 
			
		||||
	playerctl next
 | 
			
		||||
 | 
			
		||||
# make sxhkd reload its configuration files:
 | 
			
		||||
super + shift + Escape
 | 
			
		||||
	pkill -USR1 -x sxhkd
 | 
			
		||||
 | 
			
		||||
# In case bspwmrc fails to execute/you wish have plugged in a new monitor
 | 
			
		||||
super + shift + r
 | 
			
		||||
	bspwmrc
 | 
			
		||||
# Toggle compositing
 | 
			
		||||
super + ctrl + space
 | 
			
		||||
	{pkill picom ,\
 | 
			
		||||
	picom -b }
 | 
			
		||||
 | 
			
		||||
# Remove receptacles
 | 
			
		||||
super + BackSpace
 | 
			
		||||
  for i in $(bspc query -N -n .leaf.!window.local); do bspc node $i -k; done
 | 
			
		||||
		Reference in New Issue
	
	Block a user