summaryrefslogtreecommitdiff
path: root/river/sp/river_sp
blob: e354cc90f8192f95fe84da066a8b5af88b76566c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
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
#}}}