#! /bin/zsh # # this file: # https://dataswamp.org/~incal/conf/.zsh/wm alias {wins,wl}='wmctrl -l' win-id () { case $# in (0) xprop -id $(xprop -root _NET_ACTIVE_WINDOW | awk '{print $5}') \ WM_CLIENT_LEADER | awk '{print $5}' ;; (1) wins | awk "/$1/{print \$1}" ;; (*) echo "error: $0 accepts 0 or 1 argument (got $#)" >&2 ;; esac } show-win () { local win=$1 wmctrl -a $win } hide-win () { local win=$1 wmctrl -r $win -b toggle,hidden } hide-all-wins () { DISPLAY=":0" wmctrl -k on } alias hide=hide-all-wins fullscreen () { local win case $# in (0) wmctrl -r :ACTIVE: -b toggle,fullscreen ;; (1) win=$1 wmctrl -r $win -b toggle,fullscreen ;; (*) echo "error: $0 accepts 0 or 1 argument (got $#)" >&2 esac } max-win () { wmctrl -r :ACTIVE: -b toggle,maximized_horz,maximized_vert } half-win () { local win=$1 wmctrl -r $win -b remove,fullscreen wmctrl -r $win -e 0,0,358,1024,381 } max-wait () { local prog=$1 while (( ! $(wmctrl -l | grep $prog | wc -l) )) {} fullscreen $prog } fullscreen-exec () { local prog=$1 $prog &; max-wait $prog }