diff options
| -rwxr-xr-x | .config/sxhkd/show_help.sh | 3 | ||||
| -rwxr-xr-x | .config/sxhkd/sxhkdrc | 487 |
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 + |
