User feedback after living with the merged menu on the testbox: everything sat under one "Punktfunk" root — client and host combined — and several rows wore glyphs that didn't say anything (Status literally had an empty icon; the root, the connect rows, and the old "Open console" all shared or misused the monitor glyph).
The merged submenu was a deliberate design when only the host wrote rows; with the client installed by default (#477) it became a grab bag mixing "connect to a host" with "administer this host". The split follows the naming the desktop entries already use:
Punktfunk (client, root id punktfunk, unchanged): Open Punktfunk, Game console, one connect row per saved host, wake rows. Written by punktfunk-client --omarchy-menu.
Punktfunk Host (host, new root id punktfunk-host): Open web console, Pair a device, Devices waiting, Paired devices, Stop the session, Status, Restart the host. Written by punktfunk-omarchy setup.
No child ids collide anymore by construction, and each block's marker region and owner tool stay as they were — an old host block is replaced wholesale by the next setup run, and the client block regenerates on its next hosts-store sync.
Glyphs were chosen empirically: candidate rows were written into the testbox's menu file and rendered with omarchy menu summon on 4.0.2's shell before being committed — the server mark for the host root, lan-connect for connect rows, apps-grid for the client app, information for Status, a real stop glyph for Stop. Screenshots in the session; every glyph verified drawing, none inherited by guesswork.
Verification: packaging/linux/omarchy/selftest.sh (ids updated) and check-docs-drift.sh pass; cargo test -p pf-client-core omarchy_menu compiled and passed (5/5) on the Omarchy box itself, since the module is Linux-gated and xcheck doesn't cover this crate. Docs: the setup table's client-menu row now names both submenus.
User feedback after living with the merged menu on the testbox: everything sat under one "Punktfunk" root — client and host combined — and several rows wore glyphs that didn't say anything (Status literally had an **empty** icon; the root, the connect rows, and the old "Open console" all shared or misused the monitor glyph).
The merged submenu was a deliberate design when only the host wrote rows; with the client installed by default (#477) it became a grab bag mixing "connect to a host" with "administer this host". The split follows the naming the desktop entries already use:
- **Punktfunk** (client, root id `punktfunk`, unchanged): Open Punktfunk, Game console, one connect row per saved host, wake rows. Written by `punktfunk-client --omarchy-menu`.
- **Punktfunk Host** (host, new root id `punktfunk-host`): Open web console, Pair a device, Devices waiting, Paired devices, Stop the session, Status, Restart the host. Written by `punktfunk-omarchy setup`.
No child ids collide anymore by construction, and each block's marker region and owner tool stay as they were — an old host block is replaced wholesale by the next `setup` run, and the client block regenerates on its next hosts-store sync.
Glyphs were chosen empirically: candidate rows were written into the testbox's menu file and rendered with `omarchy menu summon` on 4.0.2's shell before being committed — the server mark for the host root, lan-connect for connect rows, apps-grid for the client app, information for Status, a real stop glyph for Stop. Screenshots in the session; every glyph verified drawing, none inherited by guesswork.
Verification: `packaging/linux/omarchy/selftest.sh` (ids updated) and `check-docs-drift.sh` pass; `cargo test -p pf-client-core omarchy_menu` compiled and passed (5/5) on the Omarchy box itself, since the module is Linux-gated and `xcheck` doesn't cover this crate. Docs: the setup table's client-menu row now names both submenus.
One merged submenu predates the client being installed by default;
with both directions live it mixed "connect to a host" with
"administer this host" in a single grab bag. The host block moves to
its own punktfunk-host root, named the way the desktop entries
already are; the client keeps the punktfunk root. The glyph set is
reworked against what 4.0.2's shell verifiably renders — Status had
an EMPTY icon, three rows shared the monitor glyph.
enricobuehler
changed title from feat(omarchy): split the menu into Punktfunk and Punktfunk Host to feat(omarchy): give host actions their own Punktfunk Host menu2026-08-31 19:41:29 +00:00
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
User feedback after living with the merged menu on the testbox: everything sat under one "Punktfunk" root — client and host combined — and several rows wore glyphs that didn't say anything (Status literally had an empty icon; the root, the connect rows, and the old "Open console" all shared or misused the monitor glyph).
The merged submenu was a deliberate design when only the host wrote rows; with the client installed by default (#477) it became a grab bag mixing "connect to a host" with "administer this host". The split follows the naming the desktop entries already use:
punktfunk, unchanged): Open Punktfunk, Game console, one connect row per saved host, wake rows. Written bypunktfunk-client --omarchy-menu.punktfunk-host): Open web console, Pair a device, Devices waiting, Paired devices, Stop the session, Status, Restart the host. Written bypunktfunk-omarchy setup.No child ids collide anymore by construction, and each block's marker region and owner tool stay as they were — an old host block is replaced wholesale by the next
setuprun, and the client block regenerates on its next hosts-store sync.Glyphs were chosen empirically: candidate rows were written into the testbox's menu file and rendered with
omarchy menu summonon 4.0.2's shell before being committed — the server mark for the host root, lan-connect for connect rows, apps-grid for the client app, information for Status, a real stop glyph for Stop. Screenshots in the session; every glyph verified drawing, none inherited by guesswork.Verification:
packaging/linux/omarchy/selftest.sh(ids updated) andcheck-docs-drift.shpass;cargo test -p pf-client-core omarchy_menucompiled and passed (5/5) on the Omarchy box itself, since the module is Linux-gated andxcheckdoesn't cover this crate. Docs: the setup table's client-menu row now names both submenus.518022f73eto01ae7fc034feat(omarchy): split the menu into Punktfunk and Punktfunk Hostto feat(omarchy): give host actions their own Punktfunk Host menu