From c57ecba5e419124c6a786f9ce70dbfdbf909b3e5 Mon Sep 17 00:00:00 2001 From: Claude Date: Thu, 22 Oct 2026 00:40:23 +0000 Subject: [PATCH] Qt: install qt5-wayland, fall back to xcb so bauh starts bauh (PyQt5) aborted on start with 'Could not find the Qt platform plugin "wayland"': both sessions export QT_QPA_PLATFORM=wayland, and nothing installed qt5-wayland, the Qt5 Wayland platform plugin. post-install now installs qt5-wayland and qt6-wayland, and the variable is 'wayland;xcb' so a Qt app without its Wayland plugin falls back to XWayland instead of aborting. Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01MN4kDREFU6ZpG9wyDPKuhp --- config/hypr/hyprland.lua | 4 +++- config/niri/config.kdl | 4 +++- setup/post-install.sh | 6 ++++-- 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/config/hypr/hyprland.lua b/config/hypr/hyprland.lua index 613d5ca..7c8b7d8 100644 --- a/config/hypr/hyprland.lua +++ b/config/hypr/hyprland.lua @@ -19,7 +19,9 @@ hl.monitor({ -- ── Environment Variables ── hl.env("XCURSOR_SIZE", "24") hl.env("XCURSOR_THEME", "Colloid-cursors") -hl.env("QT_QPA_PLATFORM", "wayland") +-- xcb is the fallback for a Qt app whose wayland plugin is not installed +-- (qt5-wayland for Qt5): with "wayland" alone Qt aborts instead. +hl.env("QT_QPA_PLATFORM", "wayland;xcb") -- qt5ct is a Qt5-only platform theme plugin: Qt6 apps (Quickshell, and so -- Noctalia) never load it and end up on "hicolor" for icons. Noctalia's icon -- theme is therefore pinned separately via QS_ICON_THEME in scripts/stoa-bar.sh, diff --git a/config/niri/config.kdl b/config/niri/config.kdl index 3b210df..715f0a8 100644 --- a/config/niri/config.kdl +++ b/config/niri/config.kdl @@ -50,7 +50,9 @@ input { // niri-session already exports XDG_CURRENT_DESKTOP=niri and // XDG_SESSION_TYPE=wayland, so only the toolkit and theme variables go here. environment { - QT_QPA_PLATFORM "wayland" + // xcb (through xwayland-satellite) is the fallback for a Qt app whose + // wayland plugin is not installed: with "wayland" alone Qt aborts. + QT_QPA_PLATFORM "wayland;xcb" // qt5ct is Qt5-only; Noctalia (Qt6) gets its icon theme from // scripts/stoa-bar.sh — see the same note in hyprland.lua. QT_QPA_PLATFORMTHEME "qt5ct" diff --git a/setup/post-install.sh b/setup/post-install.sh index bad4a8e..c498473 100755 --- a/setup/post-install.sh +++ b/setup/post-install.sh @@ -177,8 +177,10 @@ SHELL_PKGS_QS="noctalia" # Fonts and theme FONT_PKGS="ttf-jetbrains-mono ttf-font-awesome" -# Toolkit unification (Qt = GTK appearance) -THEME_PKGS="qt5ct qt6ct" +# Toolkit unification (Qt = GTK appearance). qt5-wayland/qt6-wayland are +# the Qt platform plugins for a Wayland session; without qt5-wayland a +# Qt5 app (bauh, via PyQt5) aborts on start under QT_QPA_PLATFORM=wayland. +THEME_PKGS="qt5ct qt6ct qt5-wayland qt6-wayland" # Firewall FIREWALL_PKGS="nftables"