dotfiles/hyprland/scripts/workspaces.sh

34 lines
768 B
Bash
Raw Normal View History

2023-11-27 23:31:36 +01:00
#!/bin/bash
mapfile -t MONITORS < <(hyprctl monitors -j | yq -r '. | sort_by(.x) | .[].name')
mapfile -t WORKSPACES < <(hyprctl workspaces -j | yq -r '.[].name')
function docked() {
if [ ! ${#MONITORS[@]} -eq 3 ]; then
echo "Not the right amount of displays"
exit 1
fi
echo "Assume Docked at home."
for i in "${!WORKSPACES[@]}"; do
# Move the workspace to the correct monitor
w=${WORKSPACES[$i]}
case $w in
4|8|9)
hyprctl dispatch moveworkspacetomonitor "${w} ${MONITORS[0]}"
;;
5|6)
hyprctl dispatch moveworkspacetomonitor "${w} ${MONITORS[2]}"
;;
*)
hyprctl dispatch moveworkspacetomonitor "${w} ${MONITORS[1]}"
;;
esac
done
}
if [ "$1" = "docked" ]; then
docked
fi