2023-03-06 19:08:25 +01:00
|
|
|
#!/bin/sh
|
|
|
|
|
2024-02-22 04:31:42 +01:00
|
|
|
## move and resize windows ##
|
2024-02-26 05:32:24 +01:00
|
|
|
# wms_usher.sh by @root_informatica.
|
2023-03-07 14:01:29 +01:00
|
|
|
|
2024-02-22 04:31:42 +01:00
|
|
|
. $HOME/.config/wms/wms_var
|
2023-03-06 19:08:25 +01:00
|
|
|
|
2024-01-21 04:05:04 +01:00
|
|
|
FLAG=$1
|
2024-02-22 04:31:42 +01:00
|
|
|
# focused window id.
|
|
|
|
FW=$(pfw)
|
2024-01-21 04:05:04 +01:00
|
|
|
# root window id.
|
|
|
|
RID=$(lsw -r)
|
2024-02-22 04:31:42 +01:00
|
|
|
# root window width.
|
2024-01-21 04:05:04 +01:00
|
|
|
RW=$(wattr w $RID)
|
2024-02-22 04:31:42 +01:00
|
|
|
# root window height.
|
2024-01-21 04:05:04 +01:00
|
|
|
RH=$(wattr h $RID)
|
2024-02-22 04:31:42 +01:00
|
|
|
# screen utilizable width.
|
2024-01-21 04:05:04 +01:00
|
|
|
SW=$((RW - 2 * BW))
|
2024-02-22 04:31:42 +01:00
|
|
|
# screen utilizable height.
|
2024-01-21 04:05:04 +01:00
|
|
|
SH=$((RH - 2 * BW))
|
2023-03-06 19:08:25 +01:00
|
|
|
|
|
|
|
usage() {
|
2023-07-24 08:08:48 +02:00
|
|
|
cat<<EOF
|
|
|
|
usage:
|
2024-02-27 20:02:12 +01:00
|
|
|
wms_usher.sh [ -c, -f, -n, -s, -e, -o, -r, -l, -d, -u, -w, -W, -h, -H ]
|
|
|
|
-c) centered
|
2024-02-22 04:31:42 +01:00
|
|
|
-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 +
|
2023-07-24 08:08:48 +02:00
|
|
|
EOF
|
2023-03-06 19:08:25 +01:00
|
|
|
}
|
|
|
|
|
2024-02-22 04:31:42 +01:00
|
|
|
# half north value
|
|
|
|
north() {
|
|
|
|
x=0
|
|
|
|
y=0
|
|
|
|
w=$SW
|
|
|
|
h=$((SH / 2 - BW))
|
2023-03-09 05:41:12 +01:00
|
|
|
}
|
|
|
|
|
2024-02-22 04:31:42 +01:00
|
|
|
# half south value
|
|
|
|
south() {
|
|
|
|
x=0
|
|
|
|
y=$((SH / 2 + BW))
|
|
|
|
w=$SW
|
2024-02-27 20:02:12 +01:00
|
|
|
h=$((SH / 2 - BW))
|
2023-03-09 05:41:12 +01:00
|
|
|
}
|
|
|
|
|
2024-02-22 04:31:42 +01:00
|
|
|
# half est value
|
|
|
|
est() {
|
|
|
|
x=$((SW / 2 + BW))
|
|
|
|
y=0
|
2024-02-27 20:02:12 +01:00
|
|
|
w=$((SW / 2 - BW))
|
2024-02-22 04:31:42 +01:00
|
|
|
h=$SH
|
|
|
|
}
|
2023-03-09 05:41:12 +01:00
|
|
|
|
2024-02-22 04:31:42 +01:00
|
|
|
# half west value
|
|
|
|
west() {
|
|
|
|
x=0
|
|
|
|
y=0
|
|
|
|
w=$((SW / 2 - BW))
|
|
|
|
h=$SH
|
2023-03-09 05:41:12 +01:00
|
|
|
}
|
|
|
|
|
2024-02-27 20:02:12 +01:00
|
|
|
# centered function.
|
|
|
|
center() {
|
|
|
|
# windows width.
|
|
|
|
ww=$((SW * WP / 100))
|
|
|
|
# windows height.
|
|
|
|
wh=$((SH * WP / 100))
|
|
|
|
x=$(((SW - ww) / 2))
|
|
|
|
y=$(((SH - wh) / 2))
|
|
|
|
wtp $x $y $ww $wh $FW
|
|
|
|
}
|
|
|
|
|
|
|
|
# fulsize function
|
2024-02-22 04:31:42 +01:00
|
|
|
fullsize() {
|
|
|
|
# original size and position.
|
|
|
|
osp=$(atomx WM_FS $FW)
|
|
|
|
# fullsize width.
|
|
|
|
fs_width=$((RW - BW * 2))
|
|
|
|
# fullsize height.
|
|
|
|
fs_height=$((RH - BW * 2))
|
|
|
|
x=0
|
|
|
|
y=0
|
2024-02-09 04:11:54 +01:00
|
|
|
|
2024-02-22 04:31:42 +01:00
|
|
|
# if atom exist and it is in fullsize
|
|
|
|
if [ -n "$osp" ] & [ "$(wattr wh $FW)" = "$fs_width $fs_height" ]; then
|
|
|
|
# restore size and position.
|
|
|
|
wtp $osp $FW
|
|
|
|
# remove atom from window.
|
|
|
|
atomx -d WM_FS $FW
|
|
|
|
|
|
|
|
else # if it's not atom and it's not in fullsize
|
|
|
|
# create atom and save original size and position.
|
|
|
|
atomx WM_FS="$(wattr xywh $FW)" $FW
|
|
|
|
# fullsize it.
|
|
|
|
wtp $x $y $fs_width $fs_height $FW
|
|
|
|
fi
|
|
|
|
}
|
2024-02-09 04:11:54 +01:00
|
|
|
|
2024-02-22 04:31:42 +01:00
|
|
|
case $FLAG in
|
2024-02-27 20:02:12 +01:00
|
|
|
-c)
|
|
|
|
center
|
|
|
|
;;
|
2024-02-22 04:31:42 +01:00
|
|
|
-f)
|
|
|
|
fullsize
|
|
|
|
;;
|
|
|
|
-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
|