Conversation
Utopia-V
force-pushed
the
fix/dark-tray-menu-icons
branch
from
August 31, 2026 10:28
ba6510f to
95f33b0
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Context
The tray menu currently always loads the same dark 16×16 PNGs for its menu items. On dark native menus, including Ubuntu 24.04 GNOME, those icons have very low contrast even though the menu text remains readable. This is the same underlying problem described in #740.
YesPlayMusic already resolves an Auto/Light/Dark color for its tray icon. This change uses the same resolved color when the menu is created. For a light-colored icon, it converts the existing monochrome PNG in memory with Electron's
NativeImageAPI. Electron 13 uses premultiplied alpha for these bitmaps, so the RGB channels are set to the pixel's alpha value to preserve smooth edges.The change is limited to icon construction in
src/electron/tray.js; the existing Linux and Windows tray menu state handling remains intact.Testing
src/electron/tray.jsNativeImageround-trip probe covering all eight tray menu icon assetselectron:build --dirA pristine
masterbuild is currently blocked earlier by an existing Prettier error insrc/views/settings.vue. For the full local build only, that pre-existing import was formatted temporarily and then restored; it is not included in this PR.