Default the x11 headless desktop to GNOME (Openbox still opt-in)
Bare Openbox rendered only a blank slate root — usable but not the desktop wanted. Make the X11/NVENC capture path render a full GNOME session by default, with Openbox available via HEADLESS_DESKTOP=openbox for minimal/low-power hosts. - files/headless-desktop-gnome.service: full Ubuntu GNOME session forced onto the X11 path (XDG_SESSION_TYPE=x11, no dbus-run-session so it shares the systemd user bus). Renamed the Openbox unit to headless-desktop-openbox.service. - lib/headless.sh: HEADLESS_DESKTOP (default gnome) selects the unit template + the packages to install (gnome-session/gnome-shell vs openbox/xsetroot). - install.sh: step message + usage document HEADLESS_DESKTOP. - status.sh: the :0 desktop check now reports which desktop is running (reads _NET_WM_NAME off the supporting-wm-check window, e.g. "GNOME Shell"). - docs: TROUBLESHOOTING §13 + FOLLOWUPS P3 updated for the GNOME default and the openbox toggle. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
27
files/headless-desktop-openbox.service
Normal file
27
files/headless-desktop-openbox.service
Normal file
@@ -0,0 +1,27 @@
|
||||
[Unit]
|
||||
Description=Openbox session on the headless Xorg (gives Sunshine something to capture)
|
||||
# Without a window manager/desktop running on :0, Sunshine's x11 capture grabs
|
||||
# an empty black X root window — pairing, NVENC, and input all work but the
|
||||
# client sees only black. This unit renders a session onto :0 so the stream
|
||||
# shows an actual desktop. Only relevant to the X11/NVENC capture backend
|
||||
# (capture = x11); the wlr backend's compositor renders for itself.
|
||||
Requires=xorg-headless.service
|
||||
After=xorg-headless.service
|
||||
PartOf=graphical-session.target
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
Environment=DISPLAY=:0
|
||||
# Wait for the X server to accept connections before launching the WM.
|
||||
ExecStartPre=/bin/sh -c 'for i in $(seq 1 20); do xset -display :0 -q >/dev/null 2>&1 && exit 0; sleep 0.5; done; exit 1'
|
||||
ExecStart=/usr/bin/openbox-session
|
||||
# Paint a solid root so a connecting client sees an obvious (non-black) desktop.
|
||||
# Leading '-' = best-effort; a missing xsetroot must not fail the unit.
|
||||
ExecStartPost=-/usr/bin/xsetroot -display :0 -solid "#2e3440"
|
||||
Restart=on-failure
|
||||
RestartSec=2s
|
||||
|
||||
[Install]
|
||||
# Lingering user manager reaches default.target without a graphical login,
|
||||
# matching the headless-boot drop-in pattern used for Sunshine.
|
||||
WantedBy=default.target
|
||||
Reference in New Issue
Block a user