summaryrefslogtreecommitdiff
path: root/river/sp/river_sp
diff options
context:
space:
mode:
Diffstat (limited to 'river/sp/river_sp')
-rwxr-xr-xriver/sp/river_sp51
1 files changed, 51 insertions, 0 deletions
diff --git a/river/sp/river_sp b/river/sp/river_sp
new file mode 100755
index 0000000..9b1e1ad
--- /dev/null
+++ b/river/sp/river_sp
@@ -0,0 +1,51 @@
+#!/bin/sh
+
+#{{{ binpath
+BINPATH="${XDG_CONFIG_HOME:-$HOME/.config}/river/sp"
+#}}}
+
+#{{{ spawnwindow
+spawnwindow () {
+ case "$1" in
+ 1) pgrep -x sp_z || ${BINPATH}/sp_z ;;
+ 2) pgrep -x sp_x || ${BINPATH}/sp_x ;;
+ 3) pgrep -x sp_c || ${BINPATH}/sp_c ;;
+ 4) pgrep -x sp_v || ${BINPATH}/sp_v ;;
+ 5) pgrep -x sp_b || ${BINPATH}/sp_b ;;
+ 6) pgrep -x sp_a || ${BINPATH}/sp_a ;;
+ 7) pgrep -x sp_s || ${BINPATH}/sp_s ;;
+ 8) pgrep -x sp_d || ${BINPATH}/sp_d ;;
+ 9) pgrep -x sp_f || ${BINPATH}/sp_f ;;
+ 10) pgrep -x sp_g || ${BINPATH}/sp_g ;;
+ 11) pgrep -x sp_q || ${BINPATH}/sp_q ;;
+ *) printf "Unknown scratchpad $1!\n" ; exit 1 ;;
+ esac
+}
+#}}}
+
+#{{{ getopts
+for i in "$@"; do
+ case "$i" in
+ z) ARG=1 ;;
+ x) ARG=2 ;;
+ c) ARG=3 ;;
+ v) ARG=4 ;;
+ b) ARG=5 ;;
+ a) ARG=6 ;;
+ s) ARG=7 ;;
+ d) ARG=8 ;;
+ f) ARG=9 ;;
+ g) ARG=10 ;;
+ q) ARG=11 ;;
+ *) printf "Unknown scratchpad $i!\n" ; exit 1 ;;
+ esac
+ if pgrep -x "sp_$i"; then
+ riverctl toggle-focused-tags $((1 << ($ARG + 9)))
+ else
+ riverctl toggle-focused-tags $(( 1 << ($ARG + 9)))
+ riverctl spawn-tagmask $(( 1 << ($ARG + 9)))
+ spawnwindow "$ARG"
+ riverctl spawn-tagmask $(( (1 << 9) - 1))
+ fi
+done
+#}}}