diff --git a/.github/workflows/bundle.yml b/.github/workflows/bundle.yml index 99a4132..c093a50 100644 --- a/.github/workflows/bundle.yml +++ b/.github/workflows/bundle.yml @@ -34,7 +34,7 @@ jobs: .github/tools/bundle.sh dist/steamify.sh # The app: sources, not the single-file build (its backend mode runs # steamify.sh from its own folder). - tar -czf dist/steamify-app.tar.gz steamify.sh lib patches services ui assets/steam-gaming-settings.svg LICENSE.md + tar -czf dist/steamify-app.tar.gz steamify.sh lib patches services ui assets/steam-gaming-settings.svg assets/steam-gaming-settings.png LICENSE.md cp ui/steamify-app.sh dist/steamify-app.sh - name: Check @@ -119,7 +119,7 @@ jobs: ## Changes in v$VERSION $changes" - gh release create "v$VERSION" dist/steamify.sh dist/steamify-app.sh dist/steamify-app.tar.gz assets/steam-gaming-settings.svg \ + gh release create "v$VERSION" dist/steamify.sh dist/steamify-app.sh dist/steamify-app.tar.gz assets/steam-gaming-settings.svg assets/steam-gaming-settings.png \ --target "$GITHUB_SHA" --title "Steamify CachyOS v$VERSION" --notes "$notes" --latest # "latest" follows the newest version tag, for the older install URL @@ -132,7 +132,7 @@ jobs: else gh release create latest --title "Steamify CachyOS - latest (v$VERSION)" --notes "$latest_notes" --latest=false fi - gh release upload latest dist/steamify.sh dist/steamify-app.sh dist/steamify-app.tar.gz assets/steam-gaming-settings.svg --clobber + gh release upload latest dist/steamify.sh dist/steamify-app.sh dist/steamify-app.tar.gz assets/steam-gaming-settings.svg assets/steam-gaming-settings.png --clobber # The mirror (Gitea) publishes its own release per version too, the same way: never overwrites one, # notes from the changelog. gh can't talk to Gitea: its API for the check, a Gitea release action to @@ -191,6 +191,7 @@ jobs: dist/steamify-app.sh dist/steamify-app.tar.gz assets/steam-gaming-settings.svg + assets/steam-gaming-settings.png # A new version starts the Steamify ISO's release of the ISO repo: its iso-1-github-tag.yml (always run from # master) names the ISO after the newest Steamify release, tags it, and the Gitea mirror builds and attaches the ISO. diff --git a/CHANGELOG.md b/CHANGELOG.md index b1868d0..badde38 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,7 @@ one per merged pull request. - `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** - **feat: after the GNOME theme is applied in a GNOME session, the app's done screen has "Restart GNOME" (GNOME Shell on Wayland can't restart in place, and the dock, extensions and Settings panel only show after a new login): with GDM autologin (the SteamOS conversion) Steamify's relogin helper logs the user straight back into the session they were in (without changing the session gaming mode's boot goes back to), else it is a plain logout (`gnome-session-quit`)** - **fix: the app on a desktop (a window, however large, also fullscreen) keeps the desktop's own scale instead of blowing its 1280x720 layout up to the screen's height (twice as big on a 1440p or ultrawide monitor): the layout fills the window at the scale of GNOME or KDE, and only a window smaller than 1280x720 shrinks it. The TV mode (`--fullscreen`, gamescope) still scales to the screen** diff --git a/assets/steam-gaming-settings.png b/assets/steam-gaming-settings.png new file mode 100644 index 0000000..96affcd Binary files /dev/null and b/assets/steam-gaming-settings.png differ diff --git a/lib/wizard-shortcut.sh b/lib/wizard-shortcut.sh index 093aaec..7ac2b58 100644 --- a/lib/wizard-shortcut.sh +++ b/lib/wizard-shortcut.sh @@ -110,7 +110,14 @@ EOF # The icon comes with the release; without it, Steam's own icon. local icon=steam tmp tmp="$(mktemp)" - if curl -fsSL --max-time 20 "$WIZARD_RELEASE/steam-gaming-settings.svg" -o "$tmp" && grep -q '/dev/null || true + elif curl -fsSL --max-time 20 "$WIZARD_RELEASE/steam-gaming-settings.svg" -o "$tmp" && grep -q '/dev/null || true + ICON="$ICON_NAME" +else + ICON="$DEST/assets/steam-gaming-settings.svg" +fi grep -q '^X-Steamify-Shortcut=true' "$APPS/io.github.theupriser.Steamify.desktop" 2>/dev/null || cat > "$APPS/io.github.theupriser.Steamify.desktop" << EOF [Desktop Entry] @@ -69,7 +80,7 @@ Type=Application Name=Steamify CachyOS Comment=Turn this PC into a SteamOS-style console Exec=$DEST/ui/steamify-ui -Icon=$DEST/assets/steam-gaming-settings.svg +Icon=$ICON Terminal=false Categories=Game;Settings; StartupWMClass=io.github.theupriser.Steamify