Files
colorshell/eww/scripts/workspaces.sh
T
2024-12-19 22:06:54 -03:00

38 lines
1.1 KiB
Bash

#!/usr/bin/env bash
print_workspaces_literal() {
active_workspace_id=$(hyprctl -j activeworkspace | jq .id | xargs)
existing_workspaces=$(hyprctl -j workspaces | jq .[].id | xargs)
output="
(box :class \"workspaces\"
:space-evenly false
:orientation \"horizontal\""
for i in {1..10}; do
output=$output"
(button :onclick \"hyprctl dispatch workspace $i >> /dev/null \"
:class { $active_workspace_id == $i ? \"active\" : \"\" }
:visible { \"$existing_workspaces\" =~ $i ? true : false }
:tooltip \"Workspace ${i}\"
\"\")"
if [ $i == 10 ]; then
output=$output")" # closes box if last
fi
done
echo "$(echo $output | xargs -0)"
}
# display workspaces on startup
print_workspaces_literal
handle() {
case $1 in
workspace*) print_workspaces_literal;;
esac
}
socat -U - UNIX-CONNECT:$XDG_RUNTIME_DIR/hypr/$HYPRLAND_INSTANCE_SIGNATURE/.socket2.sock | while read -r line; do handle "$line"; done