#!/bin/sh ## move and resize windows ## . $HOME/.config/wms/wms_var FLAG=$1 # flag FW=$(pfw) # focused window id RID=$(lsw -r) # root window id GAP=$(atomx WM_GAP $RID) # gaps value RW=$(wattr w $RID) # root window width RH=$(wattr h $RID) # root window heigth SW=$((RW - 2 * BW - 2 * GAP)) # screen utilizable width SH=$((RH - 2 * BW - 2 * GAP)) # screen utilizable height usage() { echo "usage: wms_moveresize.sh [ -n, -s, -e, -o, -r, -l, -d, -u, -w, -W, -h, -H ] -f) fullsize -n) half north -s) half south -e) half est -o) half west -r) move right -l) move left -d) move down -u) move up -w) resize width - -W) resize width + -h) resize height - -H) resize height +" } # half north value north() { x=$GAP y=$GAP w=$SW h=$((SH / 2 - GAP - BW)) } # half south value south() { x=$GAP y=$((SH / 2 + GAP - BW)) w=$SW h=$((SH / 2 - BW)) } # half est value est() { x=$((SW / 2 + BW + GAP)) y=$GAP w=$((SW / 2 - BW - GAP)) h=$SH } # half west value west() { x=$GAP y=$GAP w=$((SW / 2 - BW - GAP)) h=$SH } # fulsize function fullsize() { fs=$(atomx WM_FS $FW) # atom fullsize and original size position fs_width=$((RW - BW * 2)) # fullsize width fs_height=$((RH - BW * 2)) # fullsize height x=0 y=0 # if atom exist and it is in fullsize if [ -n "$fs" ] & [ "$(wattr wh $FW)" = "$fs_width $fs_height" ]; then wtp $fs $FW # restore size and position atomx -d WM_FS $FW # remove from list else # if it's not atom and it's not in fullsize atomx WM_FS="$(wattr xywh $(pfw))" $FW # create atom and save original size an position wtp $x $y $fs_width $fs_height $FW # gets fullsize fi } case $FLAG in -f) fullsize wtp $x $y $w $h $FW ;; -n) north wtp $x $y $w $h $FW ;; -s) south wtp $x $y $w $h $FW ;; -e) est wtp $x $y $w $h $FW ;; -o) west wtp $x $y $w $h $FW ;; -r) # rigth wmv 10 0 $FW ;; -l) # left wmv -10 0 $FW ;; -d) # down wmv 0 10 $FW ;; -u) # up wmv 0 -10 $FW ;; -w) # width - wrs -10 0 $FW ;; -W) # width + wrs 10 0 $FW ;; -h) # higth - wrs 0 -10 $FW ;; -H) # hight + wrs 0 10 $FW ;; *) usage ;; esac