Fix: Run Plex under XWayland to stop a blank window

hypr env sets QT_QPA_PLATFORM="wayland;xcb", and under Wayland Plex's
bundled QtWebEngine never loads the web client, so the window stays
blank. Both the PATH wrapper and the .desktop entry now force xcb, as
upstream does, and set XCURSOR_SIZE=24 so the X11 cursor isn't huge.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-14 06:33:12 +01:00
parent b40d4a9fa4
commit 7f0fad5922
2 changed files with 12 additions and 2 deletions

View File

@@ -9,5 +9,10 @@
# ~/.local/share/plex/Logs/Plex.log). This dir is first on $PATH, so it # ~/.local/share/plex/Logs/Plex.log). This dir is first on $PATH, so it
# shadows /usr/bin/Plex for both a terminal launch and the .desktop entry # shadows /usr/bin/Plex for both a terminal launch and the .desktop entry
# (Exec=Plex is PATH-resolved) without touching the global env var. # (Exec=Plex is PATH-resolved) without touching the global env var.
# QT_QPA_PLATFORM: hypr env sets "wayland;xcb"; under Wayland the bundled
# QtWebEngine never runs the web client and the window stays blank.
unset QT_QUICK_CONTROLS_STYLE unset QT_QUICK_CONTROLS_STYLE
export QT_QPA_PLATFORM=xcb
# Unset in the session; without it the X11 cursor in Plex is huge.
export XCURSOR_SIZE=24
exec /opt/plex-desktop/Plex.sh "$@" exec /opt/plex-desktop/Plex.sh "$@"

View File

@@ -3,7 +3,12 @@
# same filename, so this is picked up by app launchers instead automatically # same filename, so this is picked up by app launchers instead automatically
# — no association/mimeapps changes needed). # — no association/mimeapps changes needed).
# #
# Only change from upstream: Exec unsets QT_QUICK_CONTROLS_STYLE and calls # QT_QPA_PLATFORM=xcb is kept from upstream: hypr env sets "wayland;xcb", and
# under Wayland the bundled QtWebEngine never runs the web client (blank
# window, no [Web] lines in Plex.log). XCURSOR_SIZE=24 is also kept from
# upstream: it is unset in the session, so the X11 cursor comes out huge.
#
# Change from upstream: Exec unsets QT_QUICK_CONTROLS_STYLE and calls
# the package's Plex.sh directly, bypassing $PATH entirely. Plex Desktop # the package's Plex.sh directly, bypassing $PATH entirely. Plex Desktop
# bundles its own private Qt/QML runtime that doesn't ship the # bundles its own private Qt/QML runtime that doesn't ship the
# "org.hyprland.style" QQC2 style hypr/core/env.lua sets globally for other # "org.hyprland.style" QQC2 style hypr/core/env.lua sets globally for other
@@ -17,7 +22,7 @@
Type=Application Type=Application
Name=Plex Name=Plex
Comment=Plex client for desktop computers Comment=Plex client for desktop computers
Exec=env -u QT_QUICK_CONTROLS_STYLE /opt/plex-desktop/Plex.sh Exec=env -u QT_QUICK_CONTROLS_STYLE QT_QPA_PLATFORM=xcb XCURSOR_SIZE=24 /opt/plex-desktop/Plex.sh
Icon=tv.plex.PlexDesktop Icon=tv.plex.PlexDesktop
Terminal=false Terminal=false
Categories=AudioVideo;Player;X-Media; Categories=AudioVideo;Player;X-Media;