diff options
Diffstat (limited to '.config/sxhkd')
| -rwxr-xr-x | .config/sxhkd/show_help.sh | 3 | ||||
| -rwxr-xr-x | .config/sxhkd/sxhkdrc | 414 |
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..cda6f5e --- /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 + suspend |
