diff options
| author | littleblack111 <jerrylam110209@gmail.com> | 2023-03-22 20:50:50 +0800 |
|---|---|---|
| committer | littleblack111 <jerrylam110209@gmail.com> | 2023-03-22 20:50:50 +0800 |
| commit | 6a731444376c853ff8831ab4e0575302049ed27b (patch) | |
| tree | 068a0583c26575cafb3c14b891626d345ea6bf09 /bspwm_resize | |
| parent | dc24c2c18601986421911bbcff42d42292a963a0 (diff) | |
update
Diffstat (limited to 'bspwm_resize')
| -rwxr-xr-x | bspwm_resize | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/bspwm_resize b/bspwm_resize new file mode 100755 index 0000000..b935126 --- /dev/null +++ b/bspwm_resize @@ -0,0 +1,41 @@ +#!/bin/bash + +size=${2:-'10'} +dir=$1 + +# Find current window mode +is_tiled() { +bspc query -T -n | grep -q '"state":"tiled"' +} +# If the window is floating, move it +if ! is_tiled; then +#only parse input if window is floating,tiled windows accept input as is + case "$dir" in + west) switch="-w" + sign="-" + ;; + east) switch="-w" + sign="+" + ;; + north) switch="-h" + sign="-" + ;; + south) switch="-h" + sign="+" + ;; + esac + xdo resize ${switch} ${sign}${size} + +# Otherwise, window is tiled: switch with window in given direction +else + case "$dir" in + west) bspc node @west -r -$size || bspc node @east -r -${size} + ;; + east) bspc node @west -r +$size || bspc node @east -r +${size} + ;; + north) bspc node @south -r -$size || bspc node @north -r -${size} + ;; + south) bspc node @south -r +$size || bspc node @north -r +${size} + ;; + esac +fi |
