dotfiles/fish/functions/sway-getwindowinfo.fish
2021-09-25 06:59:26 -05:00

18 lines
912 B
Fish

function sway-getwindowinfo
slurp -p -f "%x %y" | read x_sel y_sel
or return 1
# TODO: this returns everything when there is only one container open in the workspace
# need to fix the logic
for rect in (swaymsg -t get_tree | jq -r '.. | select(.pid? and .visible?) | .rect | "\(.x) \(.width) \(.y) \(.height)"')
echo $rect | read x1 w y1 h
set x2 (math $x1 + $w)
set y2 (math $y1 + $h)
if test \( $x_sel -ge $x1 \) -a \( $x_sel -le $x2 \)
and test \( $y_sel -ge $y1 \) -a \( $y_sel -le $y2 \)
#swaymsg --type get_tree | jq ".. | objects | select(.rect.x == $x1 and .rect.y == $y1 and .rect.width == $w and .rect.height == $h) | .id, .name, .pid, .title, .app_id, .marks, .type"
swaymsg --type get_tree | jq ".. | objects | select(.rect.x == $x1 and .rect.y == $y1 and .rect.width == $w and .rect.height == $h)"
end
end
end