mirror of
https://github.com/feschber/lan-mouse.git
synced 2026-05-15 06:06:07 -06:00
[PR #416] [CLOSED] macOS: fix missing symbolic icons and improve app icon #410
Labels
No labels
Xorg
documentation
enhancement
macos
pull-request
question
windows
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: github-starred/lan-mouse#410
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
📋 Pull Request Information
Original PR: https://github.com/feschber/lan-mouse/pull/416
Author: @jondkinney
Created: 4/23/2026
Status: ❌ Closed
Base:
main← Head:macos-icon-fixes📝 Commits (2)
2122750bundle Adwaita symbolic icons in gresourcef095fb5makeicns.sh: produce Big Sur+ style macOS app icon📊 Changes
15 files changed (+141 additions, -13 deletions)
View changed files
➕
lan-mouse-gtk/resources/icons/scalable/actions/edit-copy-symbolic.svg(+4 -0)➕
lan-mouse-gtk/resources/icons/scalable/actions/edit-delete-symbolic.svg(+4 -0)➕
lan-mouse-gtk/resources/icons/scalable/actions/emblem-ok-symbolic.svg(+4 -0)➕
lan-mouse-gtk/resources/icons/scalable/actions/list-add-symbolic.svg(+4 -0)➕
lan-mouse-gtk/resources/icons/scalable/actions/object-rotate-right-symbolic.svg(+4 -0)➕
lan-mouse-gtk/resources/icons/scalable/actions/object-select-symbolic.svg(+4 -0)➕
lan-mouse-gtk/resources/icons/scalable/actions/open-menu-symbolic.svg(+8 -0)➕
lan-mouse-gtk/resources/icons/scalable/actions/process-stop-symbolic.svg(+4 -0)➕
lan-mouse-gtk/resources/icons/scalable/devices/auth-fingerprint-symbolic.svg(+4 -0)➕
lan-mouse-gtk/resources/icons/scalable/devices/network-wired-symbolic.svg(+4 -0)➕
lan-mouse-gtk/resources/icons/scalable/places/user-trash-symbolic.svg(+8 -0)➕
lan-mouse-gtk/resources/icons/scalable/status/dialog-warning-symbolic.svg(+4 -0)➕
lan-mouse-gtk/resources/icons/scalable/status/network-wired-disconnected-symbolic.svg(+7 -0)📝
lan-mouse-gtk/resources/resources.gresource.xml(+18 -0)📝
scripts/makeicns.sh(+60 -13)📄 Description
Summary
Two macOS-specific fixes:
Symbolic icons render as "image-missing" placeholders. The GTK frontend references Adwaita symbolic icon names (
edit-copy-symbolic,auth-fingerprint-symbolic,network-wired-symbolic,dialog-warning-symbolic, etc.) but the Adwaita icon theme isn't installed on macOS by default. Bundlingadwaita-icon-themevia Homebrew doesn't reliably fix it either — an.applaunched from Finder inherits a minimalXDG_DATA_DIRSthat doesn't include/opt/homebrew/share, so GTK can't find the theme at runtime.Fix: bundle the needed symbolic SVGs directly into the embedded gresource under the standard
scalable/{actions,devices,places,status}/hicolor layout. The existingIconTheme::add_resource_path("/de/feschber/LanMouse/icons")call already tells GTK to search this prefix, so no Rust changes are needed. This makes the app self-contained on macOS with no runtime dependency on a system icon theme.Dock/Finder app icon looks oversized and square. The existing
makeicns.shproduced a 1024×1024 icon with no squircle background and no transparent padding, so macOS rendered it noticeably larger than first-party apps and without the rounded-square shape users expect.Fix: rewrite the script to follow Apple's Big Sur+ icon template — 1024 canvas, 824 white squircle centered with 100px transparent padding, artwork rendered at 560 centered inside the squircle, ~22.5% corner radius. Use
rsvg-convertto rasterize the SVG reliably (ImageMagick crops this particular SVG) then composite onto the squircle.After changes - in the Dock:
Test plan
scripts/makeicns.shproduces a validtarget/icon.icns; bundled app icon appears in the Dock/Finder with proper squircle shape and sizing consistent with other macOS apps.makeicns.shis only invoked from the two macOS jobs in.github/workflows/release.yml, and the gresource addition is pure data (new files + XML entries, no code changes).🤖 Generated with Claude Code
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.