summaryrefslogtreecommitdiff
path: root/river/sp/river_sp
blob: 9b1e1ad1ee73b7573e80dd9e50d21d0a397ac450 (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
#!/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
#}}}