Add desktopenvs/hyprland/scripts/unified-rotate.sh
parent
7f03a92854
commit
efa20d123c
|
|
@ -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
|
||||
Loading…
Reference in New Issue