Initial commit with translated description
This commit is contained in:
53
scripts/minimal-desktop.sh
Normal file
53
scripts/minimal-desktop.sh
Normal file
@@ -0,0 +1,53 @@
|
||||
#!/bin/bash
|
||||
# Minimal XFCE desktop without xfdesktop (prevents VNC flickering)
|
||||
# Runs as a watchdog: starts xfwm4+panel, kills xfdesktop if it respawns
|
||||
|
||||
export DISPLAY=:99
|
||||
|
||||
# Wait for X server
|
||||
while ! xdpyinfo -display :99 >/dev/null 2>&1; do
|
||||
sleep 0.5
|
||||
done
|
||||
|
||||
# Kill any existing session/desktop that causes flickering
|
||||
pkill -f xfce4-session 2>/dev/null
|
||||
pkill -f xfdesktop 2>/dev/null
|
||||
sleep 1
|
||||
|
||||
# Set static background (no redraw cycles = no flicker)
|
||||
xsetroot -solid "#2d3436"
|
||||
|
||||
# Disable screen blanking
|
||||
xset s off
|
||||
xset s noblank
|
||||
xset -dpms 2>/dev/null
|
||||
|
||||
# Start window manager (if not running)
|
||||
pgrep -x xfwm4 || xfwm4 &
|
||||
|
||||
# Start panel (if not running)
|
||||
pgrep -x xfce4-panel || xfce4-panel &
|
||||
|
||||
# Watchdog loop: kill flickering processes, respawn essentials
|
||||
while true; do
|
||||
# Kill unwanted processes that cause flickering
|
||||
if pgrep -x xfdesktop >/dev/null; then
|
||||
pkill -f xfdesktop
|
||||
xsetroot -solid "#2d3436"
|
||||
fi
|
||||
if pgrep -x xfce4-session >/dev/null; then
|
||||
pkill -f xfce4-session
|
||||
fi
|
||||
|
||||
# Respawn xfwm4 if it died
|
||||
if ! pgrep -x xfwm4 >/dev/null; then
|
||||
xfwm4 &
|
||||
fi
|
||||
|
||||
# Respawn panel if it died
|
||||
if ! pgrep -x xfce4-panel >/dev/null; then
|
||||
xfce4-panel &
|
||||
fi
|
||||
|
||||
sleep 1
|
||||
done
|
||||
Reference in New Issue
Block a user