SXHKD experimentation, vesktop added, audio profile switching utility, shchemes installer, etc.

This commit is contained in:
2024-08-12 05:52:19 -06:00
parent 0cdbfbd9bd
commit 0a0a444a2d
27 changed files with 1390 additions and 111 deletions

2
config/sxhkd/moderc Normal file
View File

@@ -0,0 +1,2 @@
r
sxhkd-mode-exit

73
config/sxhkd/status Executable file
View File

@@ -0,0 +1,73 @@
#!/bin/sh
# tail -f test-out | awk -v qt='""' '
# $1 ~ "HSuper_L" { checkstart=1 }
# /^BBegin chain/ && checkstart {
# checkstart=0
# print "rofi -normal-window -e " qt "sxhkd: Super ;" qt
# }
# /^EEnd chain/ {
# print "kill " qt "$pid" qt
# }'
checkstart=false
theme='
window {
anchor: southwest;
location: southwest;
x-offset: 4;
y-offset: -4;
width: 200;
}
listview {
border-color: @blue;
}'
display_message() {
rofi \
-normal-window \
-e "sxhkd: $1" \
-theme-str "$theme" &
pid=$!
}
close_message() {
[ -n "$pid" ] && kill "$pid"
pid=""
}
tail -f test-out | while read -r line; do
case $line in
HSuper_L)
checkstart=true
;;
HSuper_L*)
if [ "$inchain" = "false" ]; then
continue
fi
echo "Extra chain"
close_message
display_message "$line"
;;
"BBegin chain")
if [ "$checkstart" = "false" ]; then
continue
fi
echo "In chain"
checkstart=false
inchain=true
display_message "HSuper_L"
;;
"EEnd chain")
if [ "$inchain" = "false" ]; then
continue
fi
echo "End chain"
close_message
;;
esac
done

View File

@@ -54,6 +54,14 @@ super + t
super + Print
xfce4-screenshooter -r
# Manage audio profiles[57362;10u]
super + shift + Pause
le-audio
# Cycle audio profile on default sink
super + Pause
le-audio -afc
#
# bspwm hotkeys
#
@@ -142,11 +150,7 @@ super + {_,shift + }{1-6}
# preselect the direction
super + ctrl + shift {h,j,k,l,Left,Down,Up,Right}
bspc node -p {west,south,north,east,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
@@ -155,6 +159,10 @@ super + ctrl + space
super + ctrl + shift + space
bspc query -N -d | xargs -I id -n 1 bspc node id -p cancel
# swap current window with preselection
super + p
bspc node -n last.\!automatic -t tiled
#
# move/resize
#
@@ -171,26 +179,8 @@ super + {h,j,k,l}
# move a window
super + shift + {h,j,k,l,Left,Down,Up,Right}
bsp-smove {west,south,north,east,west,south,north,east}
bsp-smove {west,south,north,east,west,south,north,east}
#
# tabs
#
# move in/out of tabbed container
super + ctrl + {h,j,k,l,Left,Down,Up,Right}
tabc-smart-detach {west,south,north,east,west,south,north,east}
# tab/untab window
super + t
id=$(bspc query -N -n); \
[[ "$(tabc printclass $id)" == "tabbed" ]] \
&& tabc detach $id \
|| tabc create $id
# toggle autoattach in tabbed container
super + shift + t
tabc autoattach $(bspc query -N -n)
#
# Program launching binds

162
config/sxhkd/sxhkdrc.old Normal file
View File

@@ -0,0 +1,162 @@
#
# wm independent hotkeys
#
Super_L ; Return
kitty
# # Open kitty
# super + Return
# kitty
# Open floating kitty
# Super_L ; shift + Return
# bsp-float kitty
# launch program (drun)
Super_L ; @space
rofi -show drun -show-icons
# launch program (standard run)
# Super_L ; shift + @space
# rofi -show run
# make sxhkd reload its configuration files:
Super_L ; Escape
pkill -USR1 -x sxhkd && notify-send 'Key daemon reloaded'
super + alt + Menu
le-keyboard && notify-send 'Remapped Keyboard'
# Start a qutebrowser search
Super_L ; o
qutesearch
# Show keybinds
Super_L ; slash
sxhkd-help
# Show clipmenu
Super_L ; v
xfce4-popup-clipman
# Exit session
# Super_L ; shift + q
# xfce4-session-logout
# Lock screen
Super_L ; q
xflock4
# Open task manager
Super_L ; t
# Arguable how valuable this is tbh
bsp-float xfce4-taskmanager
# Screenshot region
Super_L ; Print
xfce4-screenshooter -r
#
# bspwm hotkeys
#
# close and kill
Super_L ; {_,shift + }w
bspc node -{c,k}
# superernate between the tiled and monocle layout
F3
bspc desktop -l next
# send the newest marked node to the newest preselected node
Super_L ; y
bspc node newest.marked.local -n newest.!automatic.local
# Plumb selected text
Super_L ; c
zsh -c "$(sselp | goawk $(cat ~/plumber.awk))"
#
# state/flags
#
# set the window state
Super_L ; {z,shift + z,x,f}
bspc node -t {tiled,pseudo_tiled,floating,fullscreen}
#
# focus/swap
#
# focus the node in the given direction
super + {w,a,s,d,j,k,i,l,Left,Down,Up,Right}
bspc node -f {west,south,north,east,west,south,north,east,west,south,north,east}
# Change window, counterclockwise/clockwise
{F1,F2}
bspc node -f {prev,next}.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 or send to the given desktop
super + {_,shift + }{1-6}
bspc {desktop -f,node -d} '^{1-6}'
#
# preselect
#
# preselect the direction
super + ctrl + shift {h,j,k,l,Left,Down,Up,Right}
bspc node -p {west,south,north,east,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
#
# move/resize
#
# Resize a window by moving one of its side outward/inward
# Super_L ; {w,a,s,d,j,k,i,l,Left,Down,Up,Right}
# STEP=20; SELECTION={1,2,3,4,1,2,3,4,1,2,3,4}; \
# bspc node -z $(echo "left -$STEP 0,bottom 0 $STEP,top 0 -$STEP,right $STEP 0" | cut -d',' -f$SELECTION) || \
# bspc node -z $(echo "right -$STEP 0,top 0 $STEP,bottom 0 -$STEP,left $STEP 0" | cut -d',' -f$SELECTION)
# move a floating window
super + {h,j,k,l}
bspc node -v {-30 0,0 20,0 -30,20 0}
# move a window
super + shift + {w,s,a,d,j,k,i,l,Left,Down,Up,Right}
bsp-smove {west,south,north,east,west,south,north,east,west,south,north,east}
#
# Program launching binds
#
super + 8
vesktop
super + 9
bitwarden
super + 0
kitty --hold sh -c micro

121
config/sxhkd/sxhkdrc.save Executable file
View File

@@ -0,0 +1,121 @@
#
# wm independent hotkeys
#
# terminal emulator
super + Return
kitty
# program launcher
super + @space
# make sxhkd reload its configuration files:
super + Escape
pkill -USR1 -x sxhkd
#
# bspwm hotkeys
#
# quit/restart bspwm
super + alt + {q,r}
bspc {quit,wm -r}
# close and kill
super + {_,shift + }w
bspc node -{c,k}
# 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 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}'
#
# 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
#
# move/resize
#
# expand a window by moving one of its side outward
super + alt + {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
super + alt + shift + {h,j,k,l}
bspc node -z {right -20 0,top 0 20,bottom 0 -20,left 20 0}
# move a floating window
super + {Left,Down,Up,Right}
bspc node -v {-20 0,0 20,0 -20,20 0}

52
config/sxhkd/sxhkdrc.seq Normal file
View File

@@ -0,0 +1,52 @@
#
# Utilities
#
Super_L ; Return
kitty
# Open floating kitty
Super_L ; f ; Return
bsp-float kitty
# open rofi
Super_L ; @space
rofi -show drun -show-icons
#
# Management
#
# Close or kill window
Super_L ; {_,shift + }w
bspc node -{c,k}
#
# Navigation
#
super + {w,a,s,d,j,k,i,l,Left,Down,Up,Right}
bspc node -f {west,south,north,east,west,south,north,east,west,south,north,east}
super + shift + {w,s,a,d,j,k,i,l,Left,Down,Up,Right}
bsp-smove {west,south,north,east,west,south,north,east,west,south,north,east}
# focus or send to the given desktop
Super_L ; {_,shift + }{1-5}
bspc {desktop -f,node -d} '^{1-5}'
#
# Program launching binds
#
Super_L ; o
qutesearch
super + 8
vesktop
super + 9
bitwarden
super + 0
kitty --hold sh -c micro

110
config/sxhkd/test-out Normal file
View File

@@ -0,0 +1,110 @@
HSuper_L
BBegin chain
EEnd chain
Hsuper + Right
Cbspc node -f east
Hsuper + Left
Cbspc node -f west
Hsuper + Right
Cbspc node -f east
HSuper_L
BBegin chain
HSuper_L ; Return
EEnd chain
Ckitty
HSuper_L
BBegin chain
EEnd chain
HSuper_L
BBegin chain
TTimeout reached
EEnd chain
HSuper_L
BBegin chain
TTimeout reached
EEnd chain
HSuper_L
BBegin chain
HSuper_L ; 2
EEnd chain
Cbspc desktop -f '^2'
HSuper_L
BBegin chain
TTimeout reached
EEnd chain
HSuper_L
BBegin chain
EEnd chain
HSuper_L
BBegin chain
HSuper_L ; w
EEnd chain
Cbspc node -c
HSuper_L
BBegin chain
EEnd chain
HSuper_L
BBegin chain
HSuper_L ; o
EEnd chain
Cqutesearch
HSuper_L
BBegin chain
HSuper_L ; w
EEnd chain
Cbspc node -c
HSuper_L
BBegin chain
HSuper_L ; w
EEnd chain
Cbspc node -c
HSuper_L
BBegin chain
EEnd chain
HSuper_L
BBegin chain
HSuper_L ; o
EEnd chain
Cqutesearch
HSuper_L
BBegin chain
EEnd chain
HSuper_L
BBegin chain
EEnd chain
HSuper_L
BBegin chain
EEnd chain
Hsuper + w
Cbspc node -f west
HSuper_L
BBegin chain
EEnd chain
HSuper_L
BBegin chain
EEnd chain
HSuper_L
BBegin chain
HSuper_L ; 1
EEnd chain
Cbspc desktop -f '^1'
HSuper_L
BBegin chain
HSuper_L ; 2
EEnd chain
Cbspc desktop -f '^2'
HSuper_L
BBegin chain
EEnd chain
Hsuper + Right
Cbspc node -f east
Hsuper + Left
Cbspc node -f west
Hsuper + Right
Cbspc node -f east
HSuper_L
BBegin chain
EEnd chain
HSuper_L
BBegin chain
EEnd chain