aboutsummaryrefslogtreecommitdiff
path: root/tw/services/files/wlprop
diff options
context:
space:
mode:
Diffstat (limited to 'tw/services/files/wlprop')
-rwxr-xr-xtw/services/files/wlprop14
1 files changed, 14 insertions, 0 deletions
diff --git a/tw/services/files/wlprop b/tw/services/files/wlprop
new file mode 100755
index 00000000..f713b6f1
--- /dev/null
+++ b/tw/services/files/wlprop
@@ -0,0 +1,14 @@
+#!/bin/sh -e
+# https://gist.github.com/crispyricepc/f313386043395ff06570e02af2d9a8e0
+
+# Get the sway tree and store the output
+sway_tree=$(swaymsg -t get_tree | jq -r '.. | select(.pid? and .visible?)')
+
+# Invoke slurp to let the user select a window, and extract
+# the x, y, width, and height from the selection.
+IFS=', x' read -r x y w h < <(echo "$sway_tree" | jq -r '.rect | "\(.x),\(.y) \(.width)x\(.height)"' | slurp -r)
+
+# Find the window matching the selection.
+echo "$sway_tree" |
+ jq --argjson x "$x" --argjson y "$y" --argjson w "$w" --argjson h "$h" \
+ '. | select(.rect.x == $x and .rect.y == $y and .rect.width == $w and .rect.height == $h)'