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