summaryrefslogtreecommitdiff
path: root/river/sp/river_sp
diff options
context:
space:
mode:
Diffstat (limited to 'river/sp/river_sp')
-rwxr-xr-xriver/sp/river_sp70
1 files changed, 70 insertions, 0 deletions
diff --git a/river/sp/river_sp b/river/sp/river_sp
new file mode 100755
index 0000000..e354cc9
--- /dev/null
+++ b/river/sp/river_sp
@@ -0,0 +1,70 @@
+#!/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
+while getopts "n:s:" o; do case "${o}" in
+ n)
+ case "$OPTARG" in
+ z|1) ARG=1 ;;
+ x|2) ARG=2 ;;
+ c|3) ARG=3 ;;
+ v|4) ARG=4 ;;
+ b|5) ARG=5 ;;
+ a|6) ARG=6 ;;
+ s|7) ARG=7 ;;
+ d|8) ARG=8 ;;
+ f|9) ARG=9 ;;
+ g|10) ARG=10 ;;
+ q|11) ARG=11 ;;
+ *) printf "Unknown scratchpad $1!\n" ; exit 1 ;;
+ esac
+ if pgrep -x "sp_$OPTARG"; 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
+ ;;
+ s)
+ case "$OPTARG" in
+ z|1) ARG=1 ;;
+ x|2) ARG=2 ;;
+ c|3) ARG=3 ;;
+ v|4) ARG=4 ;;
+ b|5) ARG=5 ;;
+ a|6) ARG=6 ;;
+ s|7) ARG=7 ;;
+ d|8) ARG=8 ;;
+ f|9) ARG=9 ;;
+ g|10) ARG=10 ;;
+ q|11) ARG=11 ;;
+ *) printf "Unknown scratchpad $1!\n" ; exit 1 ;;
+ esac
+ riverctl toggle-focused-tags $((1 << ($ARG + 9)))
+ ;;
+esac done
+#}}}