diff options
| author | Robert Günzler <r@gnzler.io> | 2020-04-29 23:38:05 +0200 |
|---|---|---|
| committer | Robert Günzler <r@gnzler.io> | 2020-04-29 23:38:05 +0200 |
| commit | 76058dbd62cde20ccd7477a4fc922d1242283d3c (patch) | |
| tree | ef58f8c6d7489d71e93a1e5b87ee61cd309970dd /bin/centercon | |
| parent | 5d5d2066094b3b71308d7839148fd0383702b766 (diff) | |
Add bin/centercon and sway bindings
Diffstat (limited to 'bin/centercon')
| -rwxr-xr-x | bin/centercon | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/bin/centercon b/bin/centercon new file mode 100755 index 0000000..e9cd189 --- /dev/null +++ b/bin/centercon @@ -0,0 +1,40 @@ +#!/bin/sh + +if [ "$1" = "-h" ]; then + printf "usage: %s [RESIZE_PERC]\n" "$(basename "$0")" + exit 2 +fi + +con=$(swq current con) +if [ "$(echo "$con" | jq -r '.type')" = "con" ]; then + printf "not a floating container\n" + exit 1 +fi + +ws=$(swq current workspace) +ws_width=$(echo "$ws" | jq -r '.rect.width') +ws_height=$(echo "$ws" | jq -r '.rect.height') +ws_x=$(echo "$ws" | jq -r '.rect.x') +ws_y=$(echo "$ws" | jq -r '.rect.y') + +center_x=$(awk "BEGIN{print int($ws_width - $ws_x)/2}") +center_y=$(awk "BEGIN{print int($ws_height - $ws_y)/2}") + +if [ -n "$1" ]; then + perc="$1" + con_width=$(awk "BEGIN{print int($ws_width * $perc)}") + con_height=$(awk "BEGIN{print int($ws_height * $perc)}") + swaymsg resize set "$con_width" "$con_height" +else + con_width=$(echo "$con" | jq -r '.window_rect.width') + con_height=$(echo "$con" | jq -r '.window_rect.height') +fi + +echo "center: $center_x x $center_y" +echo "con: $con_width x $con_height" + +tar_x=$(awk "BEGIN{print int($center_x - ($con_width / 2))}") +tar_y=$(awk "BEGIN{print int($center_y - ($con_height / 2))}") + +echo "moveto: $tar_x x $tar_y" +swaymsg move position "$tar_x" "$tar_y" |