#! /bin/zsh # # this file: # http://user.it.uu.se/~embe8573/conf/.zsh/wm # https://dataswamp.org/~incal/conf/.zsh/wm alias wins='wmctrl -l' get-window-id () { local name=$1 if [[ $# == 0 ]]; then xprop -id $(xprop -root _NET_ACTIVE_WINDOW | awk '{print $5}') WM_CLIENT_LEADER | awk '{print $5}' elif [[ $# == 1 ]]; then wins | awk -v n="$name" '/n/{print $1}' else echo "error: $0 accepts 0 or 1 argument, got $#" >&2 fi } alias get-win-id=get-window-id show-window () { local window=$1 wmctrl -a $window } alias show-win=show-window hide-window () { local window=$1 wmctrl -r $window -b toggle,hidden } alias hide-win=hide-window hide-all-windows () { DISPLAY=":0" wmctrl -k on } alias hide=hide-all-windows maximize-window () { local window case $# in (0) window=$(get-win-id) wmctrl -i -r $window -b toggle,fullscreen ;; (1) window=$1 wmctrl -r $window -b toggle,fullscreen ;; (*) echo "error: $0 accepts 0 or 1 argument (got $#)" >&2 esac } alias fullscreen=maximize-window bisect-window () { local window=$1 wmctrl -r $window -b remove,fullscreen wmctrl -r $window -e 0,0,358,1024,381 } alias half-win=bisect-window # open in fullscreen maximize-window-delayed () { local program=$1 while (( ! $(wmctrl -l | grep $program | wc -l) )) {} maximize-window $program } fullscreen-launch () { local program=$1 $program &; max-wait $program } get-x-window () { echo $(xprop -display ":0" -root | awk '/^_NET_ACTIVE_WINDOW/{print $5}') }