Files
dotfiles/sxhkd/.config/sxhkd/sxhkdrc
2021-11-24 18:04:46 +01:00

379 lines
8.8 KiB
Plaintext
Executable File
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
###############################################################################################################################
# bspwm hotkeys
###############################################################################################################################
# Cleanly quit bspwm
super + shift + q
bspc quit 1 && pkill polybar
# Show this file
super + F1
alacritty -e bat ~/.config/sxhkd/sxhkdrc
#
# Window manipulation
# ______________
# BSPWM WINDOW STATES:
#tiled - Its size and position are determined by the window tree.
#pseudo_tiled - A tiled window that automatically shrinks but doesnt stretch beyond its floating size.
#floating - Can be moved/resized freely. Although it doesnt use any tiling space, it is still part of the window tree.
#fullscreen - Fills its monitor rectangle and has no borders.
# 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
# Lock a window from closing
super + Escape
bspc node -g locked
### Map or unmap windows (functional equivalent of "minimize")
super + c
whid dmenu
super + shift + c
whid hide
super + ctrl + c
whid last
#
# Window moving and splitting
# ______________
# Autopresel (split window in its largest dimension)
ctrl + space
auto-presel
# Presel window for splitting in certain direction
alt + ctrl + {a,s,w,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}
# cancel the preselection for the focused node
super + ctrl + space
bspc node -p cancel
# Presel the desktop for splitting in certain direction
# alt + shift + {a,s,w,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 + }{1-9,0}
bspc {desktop -f,node -d} ^{1-9,10}
## Alternative: i3 style behavior (focus nth, desktop of the focused monitor)
#super + {1-9,0}
# focusdesktopofthismonitor {1-9}
#super + shift + {1-9,0}
# 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 + {1-9,0}
# summondesktop.sh {1-9,10}
#super + shift + {1-9,0}
# 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
rofi -modi window -show window
#Focus windows by direction, works with multihead
super + {a,s,w,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 + {a,s,w,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 + {a,s,w,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}
super + shift + r
bspwm_rename_desktop
#
# 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
#DidIClickDesktop.sh && mygtkmenui -- .config/GTKmenu/BspwmWindowMenui
~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
rofi -modi drun,run,window,calc -show drun
#dmenu_recent -fn 'xos4 Terminus:size=15' -i -l 14 -w 600 -y $PANEL_HEIGHT
# Triggered by jus tapping super
super + shift + @space
ulauncher-toggle
#gnome-pie -o 460 --display=:0
super + shift + Return
urxvt
super + z
alacritty
super + shift + z
open-terminal-here
super + r
rofi -modi drun,run,window,calc -show run
super + shift + b
$BROWSER
super + e
nemo
# Use slightly bigger font for ranger
super + shift + e
alacritty -e ranger
Print
# scrot
flameshot gui
#
# Media keys
#
XF86AudioPrev
playerctl previous
XF86AudioPlay
playerctl play-pause
XF86AudioNext
playerctl next
XF86AudioRaiseVolume
amixer set Master playback 2%+
XF86AudioLowerVolume
amixer set Master playback 2%-
XF86AudioMute
amixer set Master toggle
XF86MonBrightnessDown
xbacklight -dec 5
XF86MonBrightnessUp
xbacklight -inc 5
XF86ScreenSaver
loginctl lock-session
XF86Sleep
systemctl suspend
XF86Display
workspaces_multimonitor
shift + XF86Display
arandr
XF86AudioMicMute
amixer set Capture toggle
XF86Launch1
rofi -modi drun,run,window,calc,windowcd,combi,keys,filebrowser,emoji -show drun
ctrl + shift + Escape
alacritty -e htop
# make sxhkd reload its configuration files:
super + shift + Escape
pkill -SIGUSR1 -x sxhkd
alt + space
ulauncher-toggle
super + shift + @S
flameshot gui
#scrot
# In case bspwmrc fails to execute/you wish have plugged in a new monitor
super + shift + R
bspwmrc
#edit this file
alt + ctrl + space
vim ~/.config/sxhkd/sxhkdrc
# Toggle compositing
super + ctrl + alt + space
{pkill picom ,\
picom -b --experimental-backends }
# Remove receptacles
super + BackSpace
for i in $(bspc query -N -n .leaf.!window.local); do bspc node $i -k; done
###############################################################################################################################
# VIDEO-RELATED HOTKEYS
###############################################################################################################################
# Rotate the screen. WARNING: Laggy.
mod5 + {Left,Down,Up,Right}
rotate_desktop {left,inverted,normal,right}