Преглед на файлове

Fix XFCE Desktop/Panel closure

penta преди 4 седмици
родител
ревизия
86ce5ad63a
променени са 1 файла, в които са добавени 26 реда и са изтрити 54 реда
  1. 26 54
      scripts/gaming-mode-enter

+ 26 - 54
scripts/gaming-mode-enter

@@ -6,71 +6,43 @@ SCRIPT_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd)"
 LOG_FILE="${SCRIPT_DIR}/gaming-mode.log"
 
 log() {
-    printf '[%s] [ENTER] %s\n' "$(date '+%Y-%m-%d %H:%M:%S')" "$*" >> "${LOG_FILE}"
+    printf '[%s] [ENTER] %s\n' \
+        "$(date '+%Y-%m-%d %H:%M:%S')" \
+        "$*" >> "${LOG_FILE}"
 }
 
-import_xfce_environment() {
-    local session_pid
-    local entry
+export DISPLAY="${DISPLAY:-:20.0}"
 
-    session_pid="$(pgrep -u "$(id -u)" -x xfce4-session | head -n 1 || true)"
+log "Entering gaming mode"
 
-    if [[ -n "${session_pid}" && -r "/proc/${session_pid}/environ" ]]; then
-        while IFS= read -r -d '' entry; do
-            case "${entry}" in
-                DISPLAY=*|XAUTHORITY=*|DBUS_SESSION_BUS_ADDRESS=*|XDG_RUNTIME_DIR=*)
-                    export "${entry}"
-                    ;;
-            esac
-        done < "/proc/${session_pid}/environ"
-    fi
-}
-
-log "Starting gaming-mode-enter"
-
-import_xfce_environment
-
-export DISPLAY="${DISPLAY:-:20}"
-
-STATE_DIR="${XDG_RUNTIME_DIR:-/tmp}/sunshine-gaming-mode"
-STATE_FILE="${STATE_DIR}/xfce-state"
-
-mkdir -p "${STATE_DIR}"
-
-desktop_was_running=0
-panel_was_running=0
+#
+# Minimiser toutes les fenêtres actuellement ouvertes.
+#
+if command -v wmctrl >/dev/null 2>&1; then
+    log "Minimizing existing windows"
 
-if pgrep -u "$(id -u)" -x xfdesktop >/dev/null 2>&1; then
-    desktop_was_running=1
+    while read -r wid _; do
+        [[ -n "${wid}" ]] || continue
 
-    log "Stopping xfdesktop..."
-    timeout 2s xfdesktop --quit >/dev/null 2>&1 || \
-        log "xfdesktop --quit timed out or returned an error"
-
-    log "xfdesktop step completed"
+        wmctrl -i -r "${wid}" -b add,hidden >/dev/null 2>&1 || true
+    done < <(wmctrl -l)
+else
+    log "WARNING: wmctrl not found"
 fi
 
-if pgrep -u "$(id -u)" -x xfce4-panel >/dev/null 2>&1; then
-    panel_was_running=1
-
-    log "Stopping xfce4-panel..."
-    timeout 2s xfce4-panel -q >/dev/null 2>&1 || \
-        log "xfce4-panel -q timed out or returned an error"
-
-    log "xfce4-panel step completed"
+#
+# Masquer les éléments du bureau XFCE.
+#
+if pgrep -x xfdesktop >/dev/null 2>&1; then
+    log "Stopping xfdesktop"
+    pkill -TERM -x xfdesktop || true
 fi
 
-if command -v xsetroot >/dev/null 2>&1; then
-    log "Setting root background to black"
-
-    timeout 2s xsetroot -solid black >/dev/null 2>&1 || \
-        log "xsetroot timed out or returned an error"
+if pgrep -x xfce4-panel >/dev/null 2>&1; then
+    log "Stopping xfce4-panel"
+    pkill -TERM -x xfce4-panel || true
 fi
 
-cat > "${STATE_FILE}" <<EOF
-desktop=${desktop_was_running}
-panel=${panel_was_running}
-EOF
-
 log "Gaming mode enabled"
+
 exit 0