aboutsummaryrefslogtreecommitdiff
path: root/sxhkd
diff options
context:
space:
mode:
authorSébastien Dailly <sebastien@chimrod.com>2021-10-24 21:55:02 +0200
committerSébastien Dailly <sebastien@chimrod.com>2021-10-24 21:55:02 +0200
commit4e1bd1e207f96ec705152e7284fcaceb135182a8 (patch)
tree38106b47bf1bc0a1a12d879bc67a513238d32a92 /sxhkd
parent6a4662677712caf3a511fac4aa4e0afaf98947d0 (diff)
Bspwm configuration
Diffstat (limited to 'sxhkd')
-rw-r--r--sxhkd/.config/sxhkd/sxhkdrc164
-rwxr-xr-xsxhkd/scripts/sxhkd/move.sh4
-rwxr-xr-xsxhkd/scripts/sxhkd/rofi_new.sh7
-rwxr-xr-xsxhkd/scripts/sxhkd/rofi_rename.sh9
-rwxr-xr-xsxhkd/scripts/sxhkd/rofi_resize.sh18
-rwxr-xr-xsxhkd/scripts/sxhkd/rofi_rotate.sh21
-rwxr-xr-xsxhkd/scripts/sxhkd/show.sh3
7 files changed, 226 insertions, 0 deletions
diff --git a/sxhkd/.config/sxhkd/sxhkdrc b/sxhkd/.config/sxhkd/sxhkdrc
new file mode 100644
index 0000000..2276c2d
--- /dev/null
+++ b/sxhkd/.config/sxhkd/sxhkdrc
@@ -0,0 +1,164 @@
+#
+# wm independent hotkeys
+#
+
+# terminal emulator
+super + Return
+ urxvtcd
+
+# program launcher
+super + i
+ rofi -show run
+
+#super + @space
+# dmenu_run
+
+# 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}
+super + {_,shift + }q
+ bspc node -{c,k}
+
+XF86HomePage
+ bspc query -N -d Web || firefox & bspc desktop -f Web
+
+XF86Mail
+ bspc query -N -d Mail || thunderbird & bspc desktop -f Mail
+
+XF86Calculator
+ bspc query -N -d Musique || gmpc & bspc desktop -f Musique
+
+# alternate between the tiled and monocle layout
+super + f
+ 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 node
+super + g
+ bspc node -s biggest
+
+#
+# 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 node in the current desktop
+super + {_,shift + }c
+ bspc node -f {next,prev}.local
+
+# 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
+
+super + r
+ rofi -modi "Reorganiser:~/scripts/sxhkd/rofi_resize.sh,Rotation:~/scripts/sxhkd/rofi_rotate.sh" -show Rotation
+
+#
+# move/resize
+#
+
+# expand a window by moving one of its side outward
+super + shift + {Left,Down,Up,Right}
+ 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}
+#
+
+super + {Up,Down,Left,Right}
+ bspc node {north,south,west,east} -f
+
+mod5 + Escape
+ ~/scripts/sxhkd/show.sh older
+
+shift + mod5 + Escape
+ ~/scripts/sxhkd/move.sh older
+
+mod5 + {_,shift + } F{1-5}
+ {~/scripts/sxhkd/show.sh, ~/scripts/sxhkd/move.sh} {1-5}
+
+super + n
+ rofi -modi "Desktop:~/scripts/sxhkd/rofi_new.sh,Renommer:~/scripts/sxhkd/rofi_rename.sh" -show Desktop
+
+super + a
+ bspc node @parent -f
+
+super + m
+ test -z $(bspc query -N -n any.marked) && bspc node -g marked; \
+ bspc node --swap any.marked --follow && bspc node any.marked -g marked=off
+
+super + button{4,5}
+ bspc desktop -f {prev,next}.local
diff --git a/sxhkd/scripts/sxhkd/move.sh b/sxhkd/scripts/sxhkd/move.sh
new file mode 100755
index 0000000..2f0d5f1
--- /dev/null
+++ b/sxhkd/scripts/sxhkd/move.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+bspc query -D $1 || bspc monitor -a $1
+bspc node --to-desktop $1
+
diff --git a/sxhkd/scripts/sxhkd/rofi_new.sh b/sxhkd/scripts/sxhkd/rofi_new.sh
new file mode 100755
index 0000000..4e28454
--- /dev/null
+++ b/sxhkd/scripts/sxhkd/rofi_new.sh
@@ -0,0 +1,7 @@
+#!/bin/bash
+if [ -z $1 ]; then
+ cat <(echo -e "Web\nMail\nMusique") <(bspc query --names -D) | sort -u
+else
+ ~/scripts/sxhkd/show.sh $1
+fi
+
diff --git a/sxhkd/scripts/sxhkd/rofi_rename.sh b/sxhkd/scripts/sxhkd/rofi_rename.sh
new file mode 100755
index 0000000..d2bb04d
--- /dev/null
+++ b/sxhkd/scripts/sxhkd/rofi_rename.sh
@@ -0,0 +1,9 @@
+#!/bin/sh
+if [ -z $1 ]; then
+ echo "Edit"
+ echo "Musique"
+ exit 0
+else
+ bspc desktop -n ${1}
+ exit 1
+fi
diff --git a/sxhkd/scripts/sxhkd/rofi_resize.sh b/sxhkd/scripts/sxhkd/rofi_resize.sh
new file mode 100755
index 0000000..dfb9679
--- /dev/null
+++ b/sxhkd/scripts/sxhkd/rofi_resize.sh
@@ -0,0 +1,18 @@
+#!/bin/sh
+if [ -z $1 ]; then
+ echo "10"
+ echo "20"
+ echo "30"
+ echo "40"
+ echo "50"
+ echo "52"
+ echo "60"
+ echo "70"
+ echo "80"
+ echo "90"
+ exit 0
+else
+ bspc node @parent --ratio .${1}
+ exit 1
+fi
+
diff --git a/sxhkd/scripts/sxhkd/rofi_rotate.sh b/sxhkd/scripts/sxhkd/rofi_rotate.sh
new file mode 100755
index 0000000..6438f2a
--- /dev/null
+++ b/sxhkd/scripts/sxhkd/rofi_rotate.sh
@@ -0,0 +1,21 @@
+#!/bin/bash
+if [ -z $1 ]; then
+ echo "Horaire"
+ echo "Antihoraire"
+ echo "Flip"
+ exit 0
+else
+ case $1 in
+ Horaire)
+ bspc node @parent --rotate 90
+ ;;
+ Antihoraire)
+ bspc node @parent --rotate 270
+ ;;
+ Flip)
+ bspc node @parent --rotate 180
+ ;;
+ esac
+ exit 1
+fi
+
diff --git a/sxhkd/scripts/sxhkd/show.sh b/sxhkd/scripts/sxhkd/show.sh
new file mode 100755
index 0000000..4f83617
--- /dev/null
+++ b/sxhkd/scripts/sxhkd/show.sh
@@ -0,0 +1,3 @@
+#!/bin/sh
+bspc query -D --names | grep -q "$1" || bspc monitor -a "$1"
+bspc desktop -f "$1"