diff options
Diffstat (limited to 'river/sp/river_sp')
-rwxr-xr-x | river/sp/river_sp | 51 |
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 +#}}} |