aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsrdusr <trevorgray@srdusr.com>2022-11-14 23:50:53 +0200
committersrdusr <trevorgray@srdusr.com>2022-11-14 23:50:53 +0200
commitce455d662a2a8214a886109db25b584c057a8428 (patch)
treed4fbc94b12347547d30925ec5d1e44c11056b794
parentd28348a998bfc12f2b348eb9984ad66239c323cd (diff)
downloaddotfiles-ce455d662a2a8214a886109db25b584c057a8428.tar.gz
dotfiles-ce455d662a2a8214a886109db25b584c057a8428.zip
Added sxhkd
-rwxr-xr-x.config/sxhkd/show_help.sh3
-rwxr-xr-x.config/sxhkd/sxhkdrc487
2 files changed, 490 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..d1fba96
--- /dev/null
+++ b/.config/sxhkd/sxhkdrc
@@ -0,0 +1,487 @@
+#
+# wm independent hotkeys
+#
+
+
+# help
+super + F1
+ ~/.config/sxhkd/show_help.sh -m -3
+
+# application menu
+super + a
+ ~/.config/polybar/scripts/menu.sh
+
+# shutdown menu
+ctrl + alt + Delete
+ ~/.config/polybar/scripts/sysmenu.sh
+
+# run launcher
+super + r
+ rofi -show run
+
+# toggle sticky
+#super + q
+# bspc node -g sticky=on
+
+# Scratchpad Terminal
+super + e
+ ~/.local/bin/scripts/Heads-Up-Display
+
+super + {equal,minus}
+ layer.sh {+,-}
+
+# Scratchpad
+super + semicolon
+ ~/.local/bin/scripts/scratchpad
+
+#{~/.local/bin/scripts/scratchpad, bspc rule -a \* -o state=floating sticky=on floating=on rectangle=680x260+340+460}
+#sid=$(cat /tmp/scratchID);\
+#cid=$(cat /tmp/calcID);\
+#wmctrl -ir $sid -b toggle,hidden && wmctrl -ir $cid -b add,hidden; wmctrl -ia $sid
+
+#super + apostrophe
+# {~/.local/bin/scripts/scratchpad, bspc rule -a \* -o state=floating sticky=on floating=on rectangle=680x700+340+40}
+
+
+#super + x
+# ~/.local/bin/scripts/scratchpad
+
+# open st (simple terminal)
+#super + colon
+# st
+
+# Bitwarden-rofi
+super + shift + b
+ rofi-rbw
+ #bwmenu -c 15
+
+# thunderbird mail
+#super + shift + m
+# thunderbird
+
+# discord
+super + shift + d
+ discord
+
+# Spotify
+super + shift + y
+ spotify
+
+# lockscreen
+super + Escape
+ betterlockscreen -l
+
+# 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; \}'
+
+# terminal emulator
+#super + Return
+super + x
+ alacritty
+ #urxvt
+ #$TERMINAL
+
+super + shift + z
+ zathura
+
+# program launcher
+super + @space
+ rofi -show drun
+
+# task switcher
+alt + Tab
+ rofi -show window
+
+# browser
+super + w
+ $BROWSER
+
+# neovim
+#super + v
+# kitty -e nvim
+
+# alacritty
+#super + x
+# kitty
+
+# file manager nnn
+super + n
+ $TERMINAL -e nnn
+
+# file manager ranger
+super + shift + r
+ $TERMINAL -e ranger
+
+# file manager pcmanfm (GUI)
+super + shift + f
+ pcmanfm
+
+# Dictionary
+super + ctrl + w
+ goldendict
+
+# Thesaurus
+super + shift + w
+ artha
+
+# screenshots tool (selection)
+ctrl + Print
+ flameshot gui -p ~/pictures/screenshots
+
+# screenshots tool (screen)
+shift + Print
+ flameshot full -p ~/pictures/screenshots
+
+# turn off compositor
+super + shift + p
+ toggleprogram "picom" "--experimental-backends"
+
+#picom-trans -c -10
+#picom-trans -c +10
+
+# 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}
+#super + alt + {q,r}
+# bspc {quit,wm -r}
+
+
+# launch eww
+#super + ctrl + a
+# ~/.config/eww/launch_widgets.sh
+
+
+# close and kill
+super + d
+ bspc node -c
+
+# 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 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}
+
+# 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"
+# xdo raise -N Plank; \
+# xdo raise -a polybar-left_LVDS-1; \
+# xdo raise -a polybar-bottom_LVDS-1
+
+ #polybar-msg cmd show
+
+
+#xdo raise -p $(pidof polybar-bottom_LDVS-1)
+#bspc node -t \~fullscreen
+super + {f}
+ bspc node -t \~fullscreen
+ #bspc window -t floating=off; \
+ #bspc node -t {fullscreen}; \
+ #xdo lower -N Plank
+# xdo lower -N Plank; \
+# xdo lower -a polybar-left_LVDS-1; \
+# xdo lower -a polybar-bottom_LVDS-1
+ #bspc node -t \~{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 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/Unhide Window
+#super + p
+# ~/.local/bin/scripts/winhide.sh
+
+# hide window
+super + comma
+ bspc node -g hidden
+
+# unhide window
+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
+
+#shift + alt + {h,j,k,l}
+shift + alt + {h,j,k,l}
+ bspwm_resize.sh {west,south,north,east}
+
+super + shift + s
+ bspc node -t pseudo_tiled; bspc node -t floating && wtp 340 40 680 700 "$(pfw)"
+
+# floating into similar monocle layout
+super + shift + m
+ bspc node -t pseudo_tiled; bspc node -t floating && wtp 10 40 1342 716 "$(pfw)"
+ #bspc node -t pseudo_tiled; bspc node -t floating && wtp 1 26 1360 735 "$(pfw)"
+
+#super + shift + z
+# bspc node -t floating && wtp 340 40 680 700 "$(pfw)"
+
+# Spawn next window/program in floating mode
+ctrl + alt + 1
+ bspc rule -a '*' -o state=floating rectangle=680x700+340+40
+# Spawn next window/program in smaller scratchpad like floating mode
+ctrl + alt + 2
+ bspc rule -a '*' -o state=floating rectangle=478x291+656+214
+#super + e : {h,j,k,l}
+# bspwm_resize.sh expand {west,south,north,east} 50
+#
+#super + shift + e : {h,j,k,l}
+# bspwm_resize.sh contract {west,south,north,east} 50
+#super + colon
+# bspc rule -a scratchpad -o state=floating rectangle=680x700+340+40
+# resize floating windows
+#shift + alt + {h,j,k,l}
+# xdo resize {-w -20,-h +20,-h -20,-w +20}
+# resize floating windows
+#shift + alt + {h,j,k,l}
+# xdo resize {-w -20,-h +20,-h -20,-w +20}
+
+# resize windows i3 style
+#shift + alt + {h,j,k,l}
+# ;bash ~/.config/sxhkd/resize {x -, y +, y -, x +}
+
+# expand a window by moving one of its side outward
+#alt + shift + {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
+#alt + ctrl + {h,j,k,l}
+# bspc node -z {right -20 0,top 0 20,bottom 0 -20,left 20 0}
+# expand/contract a window
+
+#alt + shift + {h,j,k,l}
+# bspc node -z {left -20 0 || bspc node -z right -20 0, \
+# bottom 0 20 || bspc node -z top 0 20,\
+# top 0 -20 || bspc node -z bottom 0 -20,\
+# right 20 0 || bspc node -z left 20 0}
+
+# move a floating window
+#ctrl + alt + {h,j,k,l}
+# bspc node -v {-20 0,0 20,0 -20,20 0}
+
+
+# move a floating window
+#super + {Left,Down,Up,Right}
+
+
+
+
+
+
+
+##################################
+# Control Multimedia #
+##################################
+
+#super + {F6,F7,F8}
+# playerctl {previous,play-pause,next}
+
+{XF86AudioStop,XF86AudioPlay,XF86AudioPrev,XF86AudioNext}
+ playerctl {stop,play-pause,previous,next}
+
+
+# Brightness control
+XF86MonBrightness{Up,Down}
+ brightnessctl s 5%{+,-}
+
+alt + {Up,Down}
+ brightnessctl s 5%{+,-}
+
+
+# Volume control
+XF86Audio{Raise,Lower}Volume
+ pulsemixer --change-volume {+,-}10
+
+alt + {Right,Left}
+ pulsemixer --change-volume {+,-}10
+
+
+
+#####################################
+# MPC-MPD Multimedia Keybindings #
+#####################################
+
+super + {XF86AudioPrev,XF86AudioPlay,XF86AudioStop,XF86AudioNext}
+ mpc {prev,toggle,stop,next}
+
+
+# xdotool {{{
+
+# move mouse cursor
+alt + {a,s,w,d,q,e,z,c}
+ xdotool mousemove_relative --sync {-- -24 0, 0 24, -- 0 -24, 24 0, -- -24 -24, -- 24 -24, -- -24 24,-- 24 24}
+
+# move mouse cursor with extra jump size
+ctrl + alt + {a,s,w,d,q,e,z,c}
+ xdotool mousemove_relative --sync {-- -48 0, 0 48, -- 0 -48, 48 0, -- -48 -48, -- 48 -48, -- -48 48,-- 48 48}
+
+# move mouse cursor with lower jump size
+shift + alt + {a,s,w,d,q,e,z,c}
+ xdotool mousemove_relative --sync {-- -8 0, 0 8, -- 0 -8, 8 0, -- -8 -8, -- 8 -8, -- -8 8,-- 8 8}
+
+# emulate left mouse click
+alt + i
+ xdotool click --clearmodifiers 1
+#alt + q
+# xdotool click --repeat 2 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 scroll button
+alt + p
+ xdotool click --clearmodifiers 2
+
+# emulate mouse right click
+alt + o
+ xdotool click --clearmodifiers 3
+
+# emulate mouse scroll up
+alt + m
+ xdotool click --clearmodifiers 4
+
+# emulate mouse scroll down
+alt + n
+ xdotool click --clearmodifiers 5
+
+# 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'
+
+# Emulate home/end keys
+#ctrl + alt + @{Up,Down}
+# xte 'keyup Control_L' 'keyup Alt_L' 'key {Home,End}'
+
+# Emulate home/end keys with shift
+#ctrl + alt + shift + {k,j}
+# xte 'keyup Control_L' 'keyup Alt_L' 'key {Home,End}'
+# Emulate delete key
+#super + BackSpace
+# xdotool key --clearmodifiers Delete
+#super + BackSpace
+# Delete
+