aboutsummaryrefslogtreecommitdiff
path: root/.config/sxhkd
diff options
context:
space:
mode:
Diffstat (limited to '.config/sxhkd')
-rwxr-xr-x.config/sxhkd/show_help.sh3
-rwxr-xr-x.config/sxhkd/sxhkdrc414
2 files changed, 417 insertions, 0 deletions
diff --git a/.config/sxhkd/show_help.sh b/.config/sxhkd/show_help.sh
new file mode 100755
index 0000000..bd0cd6c
--- /dev/null
+++ b/.config/sxhkd/show_help.sh
@@ -0,0 +1,3 @@
+#!/bin/bash
+cat ~/.config/sxhkd/sxhkdrc | awk '/^[a-z]/ && last {print $0,"\t",last} {last=""} /^#/{last=$0}' | column -t -s $'\t' | rofi -dmenu -i -no-show-icons -width 1000
+
diff --git a/.config/sxhkd/sxhkdrc b/.config/sxhkd/sxhkdrc
new file mode 100755
index 0000000..2d6bf9d
--- /dev/null
+++ b/.config/sxhkd/sxhkdrc
@@ -0,0 +1,414 @@
+# __ __ __
+# /\ \ /\ \ /\ \
+# ____ __ _\ \ \___\ \ \/'\ \_\ \
+# /',__\/\ \/'\\ \ _ `\ \ , < /'_` \
+#/\__, `\/> </ \ \ \ \ \ \ \\`\ /\ \L\ \
+#\/\____//\_/\_\ \ \_\ \_\ \_\ \_\ \___,_\
+# \/___/ \//\/_/ \/_/\/_/\/_/\/_/\/__,_ /
+#
+
+#---------------------------------------------------------------
+#
+# WM independent hotkeys
+#
+
+# Help
+super + F1
+ ~/.config/sxhkd/show_help.sh -m -3
+
+# Application menu
+super + a
+ ~/.config/polybar/scripts/menu.sh
+
+# Shutdown menu
+#super + alt + Delete
+# ~/.config/polybar/scripts/sysmenu.sh
+
+# lockscreen
+super + Escape
+ betterlockscreen -l
+
+# Program launcher
+super + @space
+ rofi -show drun
+
+# Run launcher (commands)
+super + r
+ rofi -show run
+
+# Task switcher
+alt + Tab
+ rofi -show window
+
+# Turn off compositor
+super + shift + p
+ toggleprogram "picom" "--experimental-backends"
+
+#picom-trans -c -10
+#picom-trans -c +10
+
+# Launch eww
+#super + ctrl + a
+# ~/.config/eww/launch_widgets.sh
+
+# Terminal emulator
+super + Return
+ $TERMINAL
+
+# Browser
+super + w
+ $BROWSER
+
+# Show clipmenu
+alt + x
+ rofi -modi "clipboard:greenclip print" -show clipboard -run-command '{cmd}' \
+ -location 1 \
+ -m -3 \
+ -no-show-icons \
+ -theme-str '* \{ font: 10px; \}' \
+ -theme-str 'listview \{ spacing: 0; \}' \
+ -theme-str 'window \{ width: 20em; \}'
+
+# Screenshots tool (selection)
+ctrl + Print
+ flameshot gui -p ~/pictures/screenshots
+
+# Screenshots tool (screen)
+shift + Print
+ flameshot full -p ~/pictures/screenshots
+
+# make sxhkd reload its configuration files:
+super + ctrl + x
+ pkill -USR1 -x sxhkd; dunstify "Sxhkd configuration reloaded"
+
+
+
+#---------------------------------------------------------------
+#
+# bspwm hotkeys
+#
+
+# Quit/restart bspwm
+super + alt + shift + {q,r}
+ bspc {quit,wm -r}
+
+# Close and kill
+super + d
+ bspc node -c
+
+# Alternate between the tiled and monocle layout
+super + m
+ bspc desktop -l next
+super + z
+ 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 window
+super + g
+ bspc node -s biggest.window
+
+
+#---------------------------------------------------------------
+#
+# state/flags
+#
+
+# Set the window state
+#super + {t,shift + t,s,f}
+# bspc node -t {tiled,pseudo_tiled,floating,fullscreen}
+
+# Floating into monocle layout
+super + shift + m
+ bspc node -t pseudo_tiled; bspc node -t floating && wtp 10 40 1342 716 "$(pfw)"
+
+# Set the window state
+super + {t,shift + t,s}
+ bspc node -t {tiled,pseudo_tiled,floating}; \
+ xdo raise -N Plank; \
+ xdo raise -N '*:*:Picture in picture'; \
+ xdo raise -N "Picture-in-Picture"
+
+# Toggle fullscreen
+super + {f}
+ bspc node -t \~fullscreen
+
+# Toggle sticky
+#super + q
+# bspc node -g sticky=on
+
+# Set the node flags
+super + ctrl + {m,x,y,z}
+ bspc node -g {marked,locked,sticky,private}
+
+# Move layers of windows above/below each other (script)
+super + {equal,minus}
+ layer.sh {+,-}
+
+
+#---------------------------------------------------------------
+#
+# 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 window in the current desktop
+super + {_,shift + }c
+ bspc node -f {next,prev}.local.!hidden.window
+
+# 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-9,0}
+ bspc {desktop -f,node -d} '^{1-9,10}'
+
+# Hide window
+super + comma
+ bspc node -g hidden
+
+# Unhide window (script)
+super + period
+ ${HOME}/.config/bspwm/bspcmd unhide
+
+
+#---------------------------------------------------------------
+#
+# Preselect
+#
+
+# Preselect the direction
+super + ctrl + {h,j,k,l}
+ bspc node -p {west,south,north,east}
+
+# Preselect the ratio
+super + ctrl + {1-9}
+ bspc node -o 0.{1-9}
+
+# Cancel the preselection for the focused node
+super + 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
+
+# Close all receptacle
+super + shift + i
+ for win in `bspc query -N -n .leaf.\!window`; do bspc node $win -k ; done;
+
+# Insert receptacle
+super + i; {h,j,k,l}
+ bspc node --presel-dir {west,south,north,east} -i
+
+# Move to rectacle
+super + ctrl + i
+ bspreceptacle
+
+# Balance nodes
+super + alt + i
+ bspc node @/ -B
+
+
+
+#---------------------------------------------------------------
+#
+# Move/resize
+#
+
+# Move a floating window or swap with any other adjacent tiled/pseudo_tiled window
+ctrl + alt + {h,j,k,l}
+ { dir=west dx=-20 dy=0 \
+ , dir=south dx=0 dy=20 \
+ , dir=north dx=0 dy=-20 \
+ , dir=east dx=20 dy=0 \
+ }; \
+ bspc node --move "$dx" "$dy" || bspc node --swap $dir
+
+# Move a tiled window to any direction
+super + shift + {h,j,k,l}
+ /path/to/bspwm_smart_move {west,south,north,east}
+
+# Rotate windows to different nodes
+super + ctrl + r
+ bspc node @parent -R 90
+
+# Resize tiled/floating windows (script)
+shift + alt + {h,j,k,l}
+ bspwm_resize.sh {west,south,north,east}
+
+# Resize window into predefined pseudo_tiled window
+super + shift + s
+ bspc node -t pseudo_tiled; bspc node -t floating && wtp 320 200 720 480 "$(pfw)"
+
+# Spawn next window/program into predefined floating window
+super + ctrl + s
+ bspc rule -a '*' -o state=floating rectangle=720x480+320+200
+
+# Spawn next window/program into predefined smaller Heads-Up-Display like floating window
+#ctrl + alt + 2
+# bspc rule -a '*' -o state=floating rectangle=320x140+1030+32
+
+# Spawn next window/program into another desktop
+super + alt + {1-9,0}
+ bspc rule -a '*' -o desktop=^{1-9,10}
+
+
+#---------------------------------------------------------------
+#
+# Multimedia
+#
+# Multimedia control
+{XF86AudioStop,XF86AudioPlay,XF86AudioPrev,XF86AudioNext}
+ playerctl {stop,play-pause,previous,next}
+
+# Use arrow keys as multimedia keys
+alt + shift + {Left,Up,Right}
+ playerctl {previous,play-pause,next}
+
+# Brightness control
+XF86MonBrightness{Up,Down}
+ brightnessctl s 5%{+,-}
+
+# Use arrow keys as brightness keys
+alt + {Up,Down}
+ brightnessctl s 5%{+,-}
+
+# Volume control
+XF86Audio{Raise,Lower}Volume
+ pulsemixer --change-volume {+,-}10
+
+# Use arrow keys as volume keys
+alt + {Right,Left}
+ pulsemixer --change-volume {+,-}10
+
+
+#---------------------------------------------------------------
+#
+# Xdotool keys
+#
+
+# Move mouse cursor north, west, south, east
+alt + {w,a,s,d}
+ xdotool mousemove_relative --sync {-- 0 -24, -- -24 0, 0 24, 24 0}
+
+# Move mouse cursor diagonally north-west, north-east, south-west, south-east
+shift + alt + {q,e,a,d}
+ xdotool mousemove_relative --sync {-- -24 -24, -- 24 -24, -- -24 24,-- 24 24}
+
+# Emulate left mouse click
+alt + i
+ xdotool click --clearmodifiers 1
+
+# Emulate left mouse click select
+alt + shift + i
+ xdotool mousedown 1 sleep 0.5 mousemove_relative --sync {-- -8 0, 0 8, -- 0 -8, 8 0} sleep 0.5 mouseup 1
+
+# Emulate mouse right click
+alt + o
+ xdotool click --clearmodifiers 3
+
+# Emulate mouse scroll up
+alt + n
+ xdotool click --clearmodifiers 4
+
+# Emulate mouse scroll down
+alt + m
+ xdotool click --clearmodifiers 5
+
+# Emulate mouse scroll button
+alt + p
+ xdotool click --clearmodifiers 2
+
+# Emulate home key
+alt + ctrl + Left
+ xdotool keyup Left key --clearmodifiers Home
+
+# Emulate end key
+alt + ctrl + Right
+ xdotool keyup Right key --clearmodifiers End
+
+# Emulate delete key
+~alt + BackSpace
+ xte 'keyup Alt_L' 'key Delete' 'keydown Alt_L'
+
+
+#---------------------------------------------------------------
+#
+# Programs
+#
+
+# Scratchpad
+super + semicolon
+ ~/.local/bin/scripts/scratchpad
+
+super + x
+ ~/.local/bin/scripts/scratchpad
+
+# Heads-Up-Display scratchpad terminal
+super + e
+ ~/.local/bin/scripts/Heads-Up-Display
+
+# File manager nnn
+super + shift + n
+ $TERMINAL -e nnn
+
+# File manager pcmanfm (GUI)
+super + shift + f
+ pcmanfm
+
+# Bitwarden-rofi
+super + shift + b
+ rofi-rbw
+
+# Thunderbird mail
+#super + shift + m
+# thunderbird
+
+# VirtualBox gui
+super + v
+ /usr/bin/VirtualBox -- :0 vt1
+
+# Discord
+super + shift + d
+ discord
+
+# Spotify
+super + shift + y
+ spotify
+
+# Book reader (zathura)
+super + shift + z
+ zathura
+
+# Dictionary
+super + ctrl + w
+ goldendict
+
+# Thesaurus
+super + shift + w
+ artha
+
+# Suspend
+alt + F4
+ systemctl suspend && betterlockscreen --lock dimblur