diff options
| author | Christophe Besson <cbesson@gmail.com> | 2026-09-05 00:15:55 +0200 |
|---|---|---|
| committer | Christophe Besson <cbesson@gmail.com> | 2026-09-05 13:32:26 +0200 |
| commit | b3362e6b25bc77dfe94f4c088a865e6fd2be2601 (patch) | |
| tree | f783bdab2e3d9b5a5aa3465b049fa73e8fd1d478 /packages/meshbay-node/src/meshbay_node/roots.py | |
| parent | 89ed51e9b7ea38bd4475ce3a234f8c783b3d9b09 (diff) | |
| download | meshbay-b3362e6b25bc77dfe94f4c088a865e6fd2be2601.tar.gz | |
feat(client): tray menu starts and stops the node, and a clearer icon
The first icon was an arrow dropping into a receptacle, which is the download
glyph -- a vertical stem above a container reads that way whatever the context.
Replaced with a window folding a chevron into itself: no stem, and the frame
says which object is being minimised. Applied to both the nav button and the
panel indicator, which carried the same wrong shape.
The menu now offers Start or Stop for the node daemon, chosen from its actual
state and shown only when there is a daemon to act on: `supported && installed`,
so a machine with no node installed gets no entry rather than a control that
fails when used. `restart` is the start verb -- systemd's restart starts a
stopped unit, and there is no separate one to call.
The three service handlers become named functions so the tray drives exactly
what the Node page drives, instead of a second copy of the systemctl and Task
Scheduler branches. A read of the state that throws is treated as no control
at all.
The menu is rebuilt on a 5s timer while an indicator exists, and again straight
after an action. libappindicator has no "menu is about to open" event, so a menu
built once would show a stale Start/Stop for the life of the process; `systemctl
--user show` costs a few milliseconds.
Locales: tray.start_node / tray.stop_node in all ten.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DtfG7z6wHWj8RKHCvxQtY1
Diffstat (limited to 'packages/meshbay-node/src/meshbay_node/roots.py')
0 files changed, 0 insertions, 0 deletions