Skip to content

fix(desktop): standard Linux AppImage icons for AppImageLauncher#2332

Closed
mwolson wants to merge 1 commit intopingdotgg:mainfrom
mwolson:fix/linux-appimage-hicolor-icons
Closed

fix(desktop): standard Linux AppImage icons for AppImageLauncher#2332
mwolson wants to merge 1 commit intopingdotgg:mainfrom
mwolson:fix/linux-appimage-hicolor-icons

Conversation

@mwolson
Copy link
Copy Markdown
Contributor

@mwolson mwolson commented Apr 24, 2026

What Changed

  • Generate standard Linux hicolor icon sizes for AppImage builds from the selected desktop icon source.
  • Point the Linux electron-builder config at the generated icon directory instead of a single source PNG.
  • Install ImageMagick in the Linux release workflow when it is not already available.

Why

Closes #2331.

AppImageLauncher and Linux desktop shells can fail to show an integrated AppImage icon when the package only contains the large source icon. Shipping the usual hicolor app icon sizes gives desktop icon lookup a standard path such as usr/share/icons/hicolor/512x512/apps/t3code.png.

This keeps the source assets small and generates the resized Linux icons at package time instead of committing generated PNGs.

Related prior art: #838 looked at runtime AppImage icon lookup. This PR fixes the packaged AppImage icon-theme entries instead.

Checklist

  • This PR is small and focused
  • I explained what changed and why
  • I included before/after screenshots for any UI changes: N/A, packaging-only change
  • I included a video for animation/interaction changes: N/A

Validation


Note

Medium Risk
Changes Linux packaging to generate and ship a multi-size icon theme and adds an ImageMagick build dependency, which could cause Linux release builds to fail or produce incorrect icons if tooling/config is off.

Overview
Linux AppImage packaging now generates a standard set of hicolor-sized app icons (16–512) during build-desktop-artifact, using ImageMagick (magick with convert fallback) and failing with a clear error if neither is available.

Electron-builder’s Linux config is switched from a single icon.png to the staged icons/ directory so the produced AppImage includes the multi-size icon set, and the release workflow installs ImageMagick on Linux runners when needed.

Reviewed by Cursor Bugbot for commit d5fce53. Bugbot is set up for automated code reviews on this repo. Configure here.

Note

Generate standard multi-size icons for Linux AppImage builds

  • Adds stageLinuxIconSize in build-desktop-artifact.ts to resize the source PNG to standard Linux icon sizes (16–512px) using ImageMagick (magick or convert), with a clear error if neither is available.
  • Updates the Electron builder icon config for Linux from icon.png to the generated icons directory so the packaged AppImage includes all sizes.
  • Updates the release.yml CI workflow to install ImageMagick on Linux runners when neither magick nor convert is present.
  • Risk: introduces a hard build-time dependency on ImageMagick; builds will fail with an explicit error if it is missing and cannot be auto-installed.

Macroscope summarized d5fce53.

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Apr 24, 2026

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: 3ff1cd55-412f-4905-b833-0106959d3467

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Tip

💬 Introducing Slack Agent: The best way for teams to turn conversations into code.

Slack Agent is built on CodeRabbit's deep understanding of your code, so your team can collaborate across the entire SDLC without losing context.

  • Generate code and open pull requests
  • Plan features and break down work
  • Investigate incidents and troubleshoot customer tickets together
  • Automate recurring tasks and respond to alerts with triggers
  • Summarize progress and report instantly

Built for teams:

  • Shared memory across your entire org—no repeating context
  • Per-thread sandboxes to safely plan and execute work
  • Governance built-in—scoped access, auditability, and budget controls

One agent for your entire SDLC. Right inside Slack.

👉 Get started


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actions github-actions Bot added size:M 30-99 changed lines (additions + deletions). vouch:unvouched PR author is not yet trusted in the VOUCHED list. labels Apr 24, 2026
@macroscopeapp
Copy link
Copy Markdown
Contributor

macroscopeapp Bot commented Apr 24, 2026

Approvability

Verdict: Approved

Build-only changes that add Linux icon generation using ImageMagick during the desktop artifact build process. No runtime application code is modified - this only affects how AppImage packages are assembled with properly-sized icons.

You can customize Macroscope's approvability policy. Learn more.

@mwolson mwolson changed the title fix(desktop): include standard Linux AppImage icons fix(desktop): standard Linux AppImage icons for AppImageLauncher Apr 25, 2026
@mwolson mwolson force-pushed the fix/linux-appimage-hicolor-icons branch from 353fee9 to a9ba65d Compare April 29, 2026 21:19
@mwolson mwolson force-pushed the fix/linux-appimage-hicolor-icons branch from a9ba65d to d5fce53 Compare May 5, 2026 01:56
@mwolson
Copy link
Copy Markdown
Contributor Author

mwolson commented May 6, 2026

Superseded by #2538.

While validating this under Niri, I found a second AppImage integration issue in the same flow: remote environment setup needed a launcher-level `--password-store=gnome-libsecret` workaround so Electron would use an encrypted Linux secret store.

I moved the AppImage icon fix from this PR into the new combined PR and added the secret-store fix there, with validation from a real Niri AppImage launch and a two-machine remote environment connection. Closing this narrower PR so review can happen in one place.

@mwolson mwolson closed this May 6, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:M 30-99 changed lines (additions + deletions). vouch:unvouched PR author is not yet trusted in the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug]: AppImage installed by AppImageLauncher lacks usable Linux desktop icon

1 participant