Dotfiles/desktopenvs/hyprland/scripts/screenrotationacw.sh

34 lines
885 B
Bash

#!/bin/bash
# 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 (cycle through 0-3)
if [[ "$currot" == "3" ]]; then
newrot="0"
else
newrot=$((currot + 1))
fi
echo "Rotating monitor '$curmon' from $currot to $newrot"
# 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