From d1382af5179556df9b44a1e76cf80f2e6b6699f3 Mon Sep 17 00:00:00 2001 From: Kiwy Player Date: Sat, 17 Jan 2026 21:00:49 +0200 Subject: [PATCH] updated sh files --- .display-keepalive.sh | 84 +++++++++++++++++++++++++++++++++---------- .player_heartbeat | 1 - .start-player-cron.sh | 2 +- 3 files changed, 66 insertions(+), 21 deletions(-) delete mode 100644 .player_heartbeat diff --git a/.display-keepalive.sh b/.display-keepalive.sh index 728fbbc..7101ae3 100755 --- a/.display-keepalive.sh +++ b/.display-keepalive.sh @@ -1,32 +1,78 @@ #!/bin/bash # Aggressive display keep-alive for Raspberry Pi -# Prevents HDMI from powering down +# Supports both X11 and Wayland environments DISPLAY_TIMEOUT=30 +# Detect display server type +detect_display_server() { + if [ -n "$WAYLAND_DISPLAY" ]; then + echo "wayland" + elif [ -n "$DISPLAY" ]; then + echo "x11" + else + echo "unknown" + fi +} + +DISPLAY_SERVER=$(detect_display_server) + while true; do - # Keep HDMI powered on (tvservice command) + # Keep HDMI powered on (works for both X11 and Wayland) if command -v tvservice &> /dev/null; then /usr/bin/tvservice -p 2>/dev/null fi - # Disable screensaver - if command -v xset &> /dev/null; then - DISPLAY=:0 xset s off 2>/dev/null - DISPLAY=:0 xset -dpms 2>/dev/null - DISPLAY=:0 xset dpms force on 2>/dev/null - DISPLAY=:0 xset s reset 2>/dev/null - fi - - # Move mouse to trigger activity - if command -v xdotool &> /dev/null; then - DISPLAY=:0 xdotool mousemove_relative 1 1 2>/dev/null - DISPLAY=:0 xdotool mousemove_relative -1 -1 2>/dev/null - fi - - # Disable monitor power saving - if command -v xrandr &> /dev/null; then - DISPLAY=:0 xrandr --output HDMI-1 --power-profile performance 2>/dev/null || true + if [ "$DISPLAY_SERVER" = "wayland" ]; then + # Wayland-specific power management + + # Method 1: Use wlr-randr for Wayland compositors (if available) + if command -v wlr-randr &> /dev/null; then + wlr-randr --output HDMI-A-1 --on 2>/dev/null || true + fi + + # Method 2: Prevent idle using systemd-inhibit + if command -v systemd-inhibit &> /dev/null; then + # This is already running, but refresh the lock + systemctl --user restart plasma-ksmserver.service 2>/dev/null || true + fi + + # Method 3: Use wlopm (Wayland output power management) + if command -v wlopm &> /dev/null; then + wlopm --on \* 2>/dev/null || true + fi + + # Method 4: Simulate activity via input (works on Wayland) + if command -v ydotool &> /dev/null; then + ydotool mousemove -x 1 -y 1 2>/dev/null || true + ydotool mousemove -x -1 -y -1 2>/dev/null || true + fi + + # Method 5: GNOME/KDE Wayland idle inhibit + if command -v gnome-session-inhibit &> /dev/null; then + # Already inhibited by running process + true + fi + + else + # X11-specific power management (original code) + if command -v xset &> /dev/null; then + DISPLAY=:0 xset s off 2>/dev/null + DISPLAY=:0 xset -dpms 2>/dev/null + DISPLAY=:0 xset dpms force on 2>/dev/null + DISPLAY=:0 xset s reset 2>/dev/null + fi + + # Move mouse to trigger activity + if command -v xdotool &> /dev/null; then + DISPLAY=:0 xdotool mousemove_relative 1 1 2>/dev/null + DISPLAY=:0 xdotool mousemove_relative -1 -1 2>/dev/null + fi + + # Disable monitor power saving + if command -v xrandr &> /dev/null; then + DISPLAY=:0 xrandr --output HDMI-1 --power-profile performance 2>/dev/null || true + fi fi sleep $DISPLAY_TIMEOUT diff --git a/.player_heartbeat b/.player_heartbeat deleted file mode 100644 index 5735d75..0000000 --- a/.player_heartbeat +++ /dev/null @@ -1 +0,0 @@ -1768675283.8000998 \ No newline at end of file diff --git a/.start-player-cron.sh b/.start-player-cron.sh index 4c9459b..0060d02 100755 --- a/.start-player-cron.sh +++ b/.start-player-cron.sh @@ -1,6 +1,6 @@ #!/bin/bash # Wait for desktop environment to be ready -sleep 10 +sleep 15 # Start the player cd "/home/pi/Desktop/Kiwy-Signage" && bash start.sh