fix: make the tray's connected and off states unmistakable #105

Merged
mysticalsoap merged 4 commits from fix/tray-icon-distinction into trunk 2026-08-20 20:02:29 -04:00
Owner

Problem

The off icon was drawn in lavender-greys (#8f8699/#c5bdd1); at 22px in the tray, next to the connected lavender (#9a84d9), the shared purple cast made the two states nearly identical — #102 made the icon switch correctly and it still couldn't be told apart (#104).

Fix

  • aqomui_off.svg: fully neutral greys (#6a6a6a/#a6a6a6), no purple component.
  • New aqomui_connected.svg for the tray's connected state: the mark with a Proton-style green check badge (#2ebc64, white check), knocked out of the letter so a gap separates badge from mark on any panel color. States now differ by shape, not only hue.
  • The badge is a third icon rather than an edit to aqomui.svg, because that icon doubles as the app identity (window/taskbar/launcher via setWindowIcon) and must not claim a connection. connection_established now sets aqomui_connected; setup.py installs the new file.

Verification

Rendered all three at 22px and 48px on dark and light panel backgrounds — connected/off/identity clearly distinct at tray size in both themes. Full suite: 171 passed.

Stacked on #102 (fix/tray-off-icon) — merge that first and this diff reduces to the icon work.

Closes #104

🤖 Generated with Claude Code

**Problem** The off icon was drawn in lavender-greys (`#8f8699`/`#c5bdd1`); at 22px in the tray, next to the connected lavender (`#9a84d9`), the shared purple cast made the two states nearly identical — #102 made the icon *switch* correctly and it still couldn't be told apart (#104). **Fix** - `aqomui_off.svg`: fully neutral greys (`#6a6a6a`/`#a6a6a6`), no purple component. - New `aqomui_connected.svg` for the tray's connected state: the mark with a Proton-style green check badge (`#2ebc64`, white check), knocked out of the letter so a gap separates badge from mark on any panel color. States now differ by shape, not only hue. - The badge is a third icon rather than an edit to `aqomui.svg`, because that icon doubles as the app identity (window/taskbar/launcher via `setWindowIcon`) and must not claim a connection. `connection_established` now sets `aqomui_connected`; setup.py installs the new file. **Verification** Rendered all three at 22px and 48px on dark and light panel backgrounds — connected/off/identity clearly distinct at tray size in both themes. Full suite: 171 passed. Stacked on #102 (`fix/tray-off-icon`) — merge that first and this diff reduces to the icon work. Closes #104 🤖 Generated with [Claude Code](https://claude.com/claude-code)
fix: turn the tray icon off when the tunnel dies on its own
All checks were successful
ci / test (pull_request) Successful in 33s
ci / test (push) Successful in 1m1s
61cd4a5cb5
Only kill() -- the user clicking disconnect -- reset the tray icon, so
openvpn exiting for any other reason (ping-restart exhaustion, a killed
process, a service restart) left a colored tray icon claiming a
connection that no longer existed. tunnel_terminated now resets the
icon, tooltip and tunnel_active itself, guarded on tunnel_active so the
stale termination of a server switch -- where kill() already ran and a
new connection is being established -- leaves the icon alone.

The tooltip also now reports the connected server; it read
"Status: disconnected" forever, since only kill() ever set it.

Closes #69

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
fix: make the tray's connected and off states unmistakable
All checks were successful
ci / test (pull_request) Successful in 1m9s
412411c801
The off icon was drawn in lavender-greys; at 22px next to the connected
lavender the shared purple cast made the two states nearly identical --
the icon switched correctly (#102) and still could not be told apart
(#104). The off mark is now fully neutral grey, and the connected tray
state is a new aqomui_connected.svg: the mark with a green check badge,
knocked out of the letter so a gap separates them on any panel color.

The badge lives on a third icon rather than aqomui.svg because that
icon doubles as the app identity in the window, taskbar and launcher,
which must not claim a connection.

Closes #104

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
fix: lay the check badge over the mark; install icons by glob in PKGBUILD
All checks were successful
ci / test (pull_request) Successful in 31s
16f36f05b4
The badge no longer knocks a chunk out of the letter -- it sits on top,
Proton-style. And the PKGBUILD's hand-written icon list is replaced
with a glob of resources/aqomui*.svg: it already drifted once, missing
the new aqomui_connected.svg while setup.py had it, which left the
tray blank on connect after a rebuild.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
change: enlarge the connected badge to r10
All checks were successful
ci / test (pull_request) Successful in 28s
b689a54d7e
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
change: keep the badge a unit off the canvas edge
All checks were successful
ci / test (pull_request) Successful in 31s
ci / test (push) Successful in 28s
89bfe8972d
Renderers that mask or pad icons shave edge-tight pixels; the badge
had spent the mark's whole margin in its corner.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
mysticalsoap deleted branch fix/tray-icon-distinction 2026-08-20 20:02:29 -04:00
Sign in to join this conversation.
No description provided.