Skip to content

Add per-model tray icon color customization#59

Open
watatatata810 wants to merge 1 commit into
CodeZeno:mainfrom
watatatata810:feature/tray-icon-colors
Open

Add per-model tray icon color customization#59
watatatata810 wants to merge 1 commit into
CodeZeno:mainfrom
watatatata810:feature/tray-icon-colors

Conversation

@watatatata810

Copy link
Copy Markdown

Summary

  • Tray badge colors are currently fixed per model (Claude/Codex/Antigravity) and can be hard to distinguish depending on the user's taskbar theme/contrast needs.
  • Adds a per-model "Icon Colors" submenu in the tray context menu, letting users pick a custom background + text color for each visible model via the native Windows color picker (ChooseColorW), with a "Reset to Default" to restore the original gradient/branding colors.
  • Custom colors are opt-in and persisted in settings.json; when not set, behavior is unchanged from the current gradient-based coloring.

Implementation notes

  • IconColorOverride { background, text } threads through tray_icon::create_icon/add/update/sync; when present it replaces the usage-based fill/text/outline colors with the flat user-chosen colors (no staged/gradient coloring for overridden icons, per design intent — just a direct override).
  • Settings persistence follows the existing SettingsFile/AppState pattern (hex-encoded strings, #[serde(default)] for backward compatibility with older settings.json files).
  • Localization: added 7 new Strings fields across all 10 locales. English and Japanese are hand-translated; the other 8 are best-effort/machine-quality translations — native-speaker review welcome before merge.
  • Uses the windows crate's Win32_UI_Controls_Dialogs feature (no new external dependency) for the native color picker, with a WM_INITDIALOG hook to relabel each dialog's title bar ("Background Color" / "Text Color") so users can tell the two prompts apart.

Test plan

  • cargo build and cargo clippy clean (no new warnings)
  • Manually verified on Windows 11: menu appears only for currently-enabled models, color picker flow (background then text) applies immediately to the tray icon, settings persist across restart, "Reset to Default" restores original coloring, cancelling either dialog leaves settings unchanged
  • Verified no regression in existing features (update frequency, model visibility toggle, language switching, start with Windows, reset position, show widget)

Tray badge colors were fixed and hard to see in some environments.
Users can now pick a custom background/text color per model (Claude
Code, Codex, Antigravity) via the tray context menu, backed by the
native Windows color picker, with a Reset to Default option.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant