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' |