summaryrefslogtreecommitdiff
path: root/river/sp/river_sp
blob: 2203e40a2e900e398edf098bc55a9a72c962aa3c (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|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 $i!\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
done
#}}}