bazzite/system_files/deck/kinoite/usr/libexec/bazzite-rotation-fix
2024-01-19 16:46:01 -08:00

44 lines
1.5 KiB
Bash
Executable File

#!/usr/bin/bash
# This script fixes the screen orientation in the Desktop Mode in Bazzite-Deck KDE
# Author: d3Xt3r
SYS_ID="$(cat /sys/devices/virtual/dmi/id/product_name)"
STEAM_PID=$(cat $HOME/.steam/steam.pid)
STEAM_CMDLINE_PATH=/proc/$STEAM_PID/cmdline
STEAM_CMDLINE=$(cat $STEAM_CMDLINE_PATH)
IS_GAMEMODE=$(echo $STEAM_CMDLINE | grep gamepadui*)
sleep 1
echo $(date '+%Y-%m-%d %H:%M:%S') Starting Bazzite Desktop Orientation Fix script...| tee -a /tmp/bazrotfix.log
# This bit is needed to allow enough time for the desktop to load, otherwise the fix won't work
# Since Steam launches automatically in the Desktop mode in Bazzite-Deck, we can use it
# to determine whether or not the desktop has loaded.
while ! pgrep -x "steam" > /dev/null; do
echo $(date '+%Y-%m-%d %H:%M:%S') Waiting for Steam to start.. | tee -a /tmp/bazrotfix.log
sleep 0.5
done
sleep 1
# Debug: Get current outputs
kscreen-doctor --outputs 2>&1 | tee -a /tmp/bazrotfix.log
# Fix desktop orientation
# Rotation options: right, normal, left, inverted
echo $(date '+%Y-%m-%d %H:%M:%S') Fixing desktop orientation... | tee -a /tmp/bazrotfix.log
if [[ ! -z "$IS_GAMEMODE" ]]; then
kscreen-doctor output.1.rotation.normal 2>&1 | tee -a /tmp/bazrotfix.log
elif [[ ":83E1:" =~ ":$SYS_ID" ]]; then
kscreen-doctor output.1.rotation.left 2>&1 | tee -a /tmp/bazrotfix.log
else
kscreen-doctor output.1.rotation.normal 2>&1 | tee -a /tmp/bazrotfix.log
fi
echo $(date '+%Y-%m-%d %H:%M:%S') Ending Bazzite Desktop Orientation Fix script >> /tmp/bazrotfix.log
echo -e '\n' >> /tmp/bazrotfix.log