diff --git a/desktopenvs/hyprland/scripts/unified-rotate.sh b/desktopenvs/hyprland/scripts/unified-rotate.sh new file mode 100644 index 0000000..3ef16aa --- /dev/null +++ b/desktopenvs/hyprland/scripts/unified-rotate.sh @@ -0,0 +1,49 @@ + +#!/bin/bash + +# Usage: rotate.sh [cw|ccw] +direction="$1" + +if [[ "$direction" != "cw" && "$direction" != "ccw" ]]; then + echo "Usage: $0 [cw|ccw]" + exit 1 +fi + +# Get current monitor name +curmon=$(hyprctl monitors | awk '/focused: yes/{getline; print $2}') + +# Get current transform value +currot=$(hyprctl monitors | awk '/focused: yes/{for(i=0;i<15;i++){getline;if($1=="transform:"){print $2;break}}}') + +# Calculate new rotation +if [[ "$direction" == "cw" ]]; then + if [[ "$currot" == "3" ]]; then + newrot="0" + else + newrot=$((currot + 1)) + fi +else # ccw + if [[ "$currot" == "0" ]]; then + newrot="3" + else + newrot=$((currot - 1)) + fi +fi + +echo "Rotating monitor '$curmon' from $currot to $newrot ($direction)" + +# Apply new rotation to monitor +hyprctl keyword monitor "$curmon,preferred,auto,0x0,$newrot" + +# Detect touchscreen device name +touchdev=$(hyprctl devices | awk '/Touchscreen/{getline; print $2}') + +if [[ -n "$touchdev" ]]; then + echo "Applying same rotation to touchscreen: $touchdev" + hyprctl keyword "device:$touchdev" transform "$newrot" +else + echo "No touchscreen device detected." +fi + +# Reload Eww to adjust bar size +eww reload