diff --git a/CHANGELOG.md b/CHANGELOG.md index 77515d5..f963015 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,7 @@ one per merged pull request. - **feat: GNOME support (the "SteamOS theme for GNOME" option, GDM session switching, the GNOME launcher/notifier/tray behaviour): the Vapor colors, the Steam Deck wallpaper, Ubuntu Dock, Tiling Assistant, Desktop Icons NG, AppIndicator and Steamify's own Vapor shell extension, with Switch to Desktop remembering KDE or GNOME. Prototype work since 2.12.0: `5dfc916`, `fc28ea4`, `ae12c1b`, `2b84e6a`, `c5b59d9`, `62a30e6`, `039f269`, `12eb562`, `c7f5f51`, `7904833`, `ce1aa1b`, `ab3b581`, `eaa3f28`, `4221ae6`, `8432f63`, `09ef0b1`, `68342e7`, `0e0bf57`, `7a84b0d`, `dbaeaa1`** - `2ca288d` **fix: the NVIDIA gaming mode setup no longer fails with "the patched gamescope doesn't start" on a gamescope that works: the smoke test judged gamescope's exit status through a pipe into `grep -q` under `pipefail`, so gamescope's crash on the closed pipe (or a hung shutdown) counted as a failed test, intermittently, for the CPU-specific and the generic build alike (seen on an RTX 5080). The test now reads gamescope's output from a file and kills a hung shutdown (`timeout -k`)** - `645b331` **feat: the GNOME theme installs GNOME Settings with the "GNOME Desktop" panel (dock, desktop icons, tiling) as a prebuilt package, downloaded from the `settings` release of steamify-gnome-theme (built by GitHub Actions on current Arch, rebuilt weekly) and checked against its `.sha256`; a failure keeps the stock Settings. Turning the theme off puts the stock `gnome-control-center` back. Installs with the GNOME theme on re-apply it (feature version 2.13.0)** +- **fix: the app's logo (an SVG) shows on a fresh install: `pyside6` doesn't depend on `qt6-svg`, Qt's SVG plugin, so without it the header logo was empty and the window had no icon of its own; it is installed with PySide6 (the app's installer, the launcher, the update notifier)** - **fix: the app's icon shows in GNOME's dock on a fresh install: GNOME couldn't draw the SVG (a blank icon: "Could not load a pixbuf from icon theme"), by path or by name. The app's installer and the launcher put a 256x256 PNG (`assets/steam-gaming-settings.png`, a release file next to the SVG) in the user's icon theme and the launchers refer to it by name; the SVG stays as the fallback for releases without the PNG** ## 2.12.0 - 2026-10-13 diff --git a/lib/update-notifier.sh b/lib/update-notifier.sh index 5f3c3fb..783a23f 100644 --- a/lib/update-notifier.sh +++ b/lib/update-notifier.sh @@ -30,6 +30,8 @@ notify_enable() { info "Adding update notifications..." # PySide6 for the tray icon, notify-send for the notification's buttons. python3 -c 'import PySide6.QtWidgets' 2>/dev/null || missing+=(pyside6) + # (Its icons are SVGs, and Qt needs its SVG plugin for those.) + pacman -Q qt6-svg >/dev/null 2>&1 || missing+=(qt6-svg) command -v notify-send >/dev/null || missing+=(libnotify) if ((${#missing[@]})); then sudo pacman -S --needed --noconfirm "${missing[@]}" || diff --git a/lib/wizard-shortcut.sh b/lib/wizard-shortcut.sh index 7983a2b..7ac2b58 100644 --- a/lib/wizard-shortcut.sh +++ b/lib/wizard-shortcut.sh @@ -96,7 +96,7 @@ EOF #!/bin/bash # Installed by Steamify CachyOS: start the newest release of its app. set -o pipefail -if [[ "\${1:-}" != --in-terminal ]] && ! python3 -c 'import PySide6.QtQml' 2>/dev/null; then +if [[ "\${1:-}" != --in-terminal ]] && { ! python3 -c 'import PySide6.QtQml' 2>/dev/null || ! pacman -Q qt6-svg >/dev/null 2>&1; }; then exec $terminal "\$0" --in-terminal fi if ! curl -fsSL --max-time 30 "$WIZARD_APP_URL" | bash; then diff --git a/ui/steamify-app.sh b/ui/steamify-app.sh index 76b5cdd..1db4cf3 100755 --- a/ui/steamify-app.sh +++ b/ui/steamify-app.sh @@ -47,10 +47,14 @@ rm -rf "$DEST.new"; mv "$tmp/app" "$DEST.new" rm -rf "$DEST"; mv "$DEST.new" "$DEST" say "Installed to $DEST ($(grep -m1 -oP '^VERSION=\K.*' "$DEST/steamify.sh"))." -if ! python3 -c 'import PySide6.QtQml' 2>/dev/null; then - say "The app needs PySide6 (Qt for Python); installing it..." +missing=() +python3 -c 'import PySide6.QtQml' 2>/dev/null || missing+=(pyside6) +# The app's logo is an SVG: Qt needs its SVG plugin for it, and pyside6 doesn't pull it in. +pacman -Q qt6-svg >/dev/null 2>&1 || missing+=(qt6-svg) +if ((${#missing[@]})); then + say "The app needs ${missing[*]} (Qt for Python and its SVG support); installing..." # Piped in via curl, stdin isn't the terminal: sudo asks on it anyway. - sudo pacman -S --needed --noconfirm pyside6