all repos — zenUtils @ main

misc utilities for computing zen

rio.sh (raw)

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
71
#!/bin/sh

termprog="st"
movebind="super+v"

delete()
{
  wmctrl -c :SELECT:
}

new()
{
  geom=$(slop -t 0 -f %x,%y,%w,%h)
  x=$(echo $geom | awk -F , '{print $1}')
  y=$(echo $geom | awk -F , '{print $2}')
  
  wmctrl -l > ~/.wl

  $termprog -g 80x24+${x}+${y}&

  while true; do
    lastCreatedID=$(wmctrl -l | tail -n 1 | awk '{print $1}')
    if [ "$lastCreatedID" != "$(tail -n 1 ~/.wl | awk '{print $1}')" ]; then
      break
    fi
  done

  wmctrl -i -r $lastCreatedID -e 0,$geom
  rm ~/.wl
}

resize()
{
  wid=$(slop -t 9999999 -f %i)
  geom=$(slop -t 0 -f %x,%y,%w,%h)
  wmctrl -i -r $wid -b remove,maximized_vert,maximized_horz
  wmctrl -i -r $wid -e 0,$geom
}

move()
{
  wid=$(slop -t 9999999 -f %i)
  wmctrl -a $wid
  xdotool key $movebind
}

hide()
{
  wid=$(slop -t 9999999 -f %i)
  wmctrl -i -r $wid -b add,hidden
}


# swap mouse buttons so we can use right button like in rio
xmodmap -e 'pointer = 3 2 1'

case $1 in
  delete)
    delete;;
  new)
    new;;
  resize)
    resize;;
  move)
    move;;
  hide)
    hide;;
esac

# restore original mouse config
xmodmap -e 'pointer = 1 2 3'