From f3810a9fdd6bf81488cc5db05ad8f917e75c24df Mon Sep 17 00:00:00 2001 From: Rick Peters Date: Fri, 2 Oct 2026 10:52:04 +0200 Subject: [PATCH] fix: the SteamOS theme drops the blank Discover pin from the taskbar (also on the first login of an ISO install) --- CHANGELOG.md | 1 + TECHNICAL.md | 4 +++- lib/first-login.sh | 9 ++++----- lib/vapor-theme.sh | 29 ++++++++++++++++++++++------- 4 files changed, 30 insertions(+), 13 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5e8ee0e..5959270 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,7 @@ one per merged pull request. ## 2.11.0 - 2026-10-01 - `5da1833` **feat: "Start Steam silently" sub-option: under the SteamOS conversion (`silent`, opt-in now: it was always on before; an existing one is moved from its systemd unit to the autostart entry by the "update") and under Gaming on NVIDIA (`nvsilent`, opt-in, not together with Big Picture); the SteamOS one is called "Start Steam silently in desktop mode" and is always shown, also on a Steam Machine; it is Steam's own autostart entry (`~/.config/autostart/steam.desktop`), so Steam's setting "Run Steam when my computer starts" follows it** +- **fix: the SteamOS theme no longer leaves a blank Discover pin in the taskbar (Plasma's default taskbar pins Discover, which CachyOS doesn't install); the taskbar gets CachyOS's own pins (System Settings, files, browser), also on the ISO's first login** - **feat: "Steam Deck/Machine icons" (`glyphs`) is a sub-option of the SteamOS conversion, like "Start Steam silently in desktop mode": it only changes gaming mode** ## 2.10.0 - 2026-10-01 diff --git a/TECHNICAL.md b/TECHNICAL.md index b5b47a1..dc3f370 100644 --- a/TECHNICAL.md +++ b/TECHNICAL.md @@ -539,7 +539,9 @@ steamify.sh --defaults --list # what --defaults can se item this PC can't use (e.g. `vram` without a VRAM region) is left off with a warning. `--boot desktop` needs `gaming`. Unknown options, ids, `boot` or `bios` in the list: exit code 1 before anything changes. What needs a -Plasma session waits for the first login (`lib/first-login.sh`). +Plasma session waits for the first login (`lib/first-login.sh`). The same step (and the online theme path) replaces Plasma's default taskbar pins, which include Discover +(not installed on CachyOS: a blank icon), by CachyOS's own (`taskbar_drop_discover` in `lib/vapor-theme.sh`; skipped when Discover is +installed or the taskbar already has its own `launchers`). With `Relogin=true`, a gamescope session that fails to start is restarted immediately, which can turn into a loop - see diff --git a/lib/first-login.sh b/lib/first-login.sh index 055b68b..47eb9d3 100644 --- a/lib/first-login.sh +++ b/lib/first-login.sh @@ -31,10 +31,9 @@ first_login_run() { [[ -n "$(plasma_applets org.kde.plasma.kickoff)" ]] && break sleep 2 done - if single_status; then - stop_plasmashell_for_edit - single_launcher - restart_plasmashell_if_stopped - fi + stop_plasmashell_for_edit + taskbar_drop_discover + single_status && single_launcher + restart_plasmashell_if_stopped return 0 } diff --git a/lib/vapor-theme.sh b/lib/vapor-theme.sh index 1974c4b..d9b688a 100644 --- a/lib/vapor-theme.sh +++ b/lib/vapor-theme.sh @@ -106,17 +106,32 @@ theme_enable() { # SteamOS panel, launcher icon and wallpaper. It needs plasmashell up. lookandfeeltool -a "$VAPOR_LOOKANDFEEL" --resetLayout >/dev/null 2>&1 || { err "lookandfeeltool failed."; return 1; } - # The new layout has a new launcher, without single user's settings. - if single_status; then - sleep 3 - stop_plasmashell_for_edit - single_launcher - restart_plasmashell_if_stopped - fi + # The new layout has a new launcher, without single user's settings, and the default taskbar pins. + sleep 3 + stop_plasmashell_for_edit + taskbar_drop_discover + single_status && single_launcher + restart_plasmashell_if_stopped extras_enable || warn "SteamOS desktop extras not installed (see above); the theme itself is on." ok "Vapor theme active." } +taskbar_drop_discover() { + # Plasma's default taskbar pins Discover, which CachyOS doesn't install: the pin shows as a + # blank icon. Pin what CachyOS's own layout pins (/etc/skel) instead. Not when Discover is + # installed, and only on a taskbar that still has the default pins (no launchers key). + # Edit only while plasmashell is stopped. + [[ -e /usr/share/applications/org.kde.discover.desktop ]] && return 0 + local applet grp + for applet in $(plasma_applets org.kde.plasma.icontasks); do + grp="Containments|${applet%%:*}|Applets|${applet#*:}|Configuration|General" + [[ -n "$(kreadconfig6 --file plasma-org.kde.plasma.desktop-appletsrc --group Containments --group "${applet%%:*}" \ + --group Applets --group "${applet#*:}" --group Configuration --group General --key launchers)" ]] && continue + kset theme plasma-org.kde.plasma.desktop-appletsrc "$grp" launchers \ + 'applications:systemsettings.desktop,preferred://filemanager,preferred://browser' + done +} + theme_disable() { extras_disable info "Restoring the previous desktop look and layout..."