feat(omarchy): give host actions their own Punktfunk Host menu #481

Merged
enricobuehler merged 1 commits from feat/omarchy-menu-split into main 2026-08-31 19:43:06 +00:00
Owner

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.
enricobuehler added 1 commit 2026-08-31 19:41:20 +00:00
feat(omarchy): give host actions their own Punktfunk Host menu
ci / web (pull_request) Successful in 1m1s
ci / docs-site (pull_request) Successful in 1m5s
ci / bun-nix (pull_request) Successful in 1m11s
macos-host / check (pull_request) Successful in 1m9s
ci / docs-drift (pull_request) Successful in 2m20s
ci / rust-arm64 (pull_request) Successful in 2m39s
windows-client / client (arm64, --no-default-features, aarch64-pc-windows-msvc, C:\t-a64) (pull_request) Successful in 3m44s
android / android (pull_request) Successful in 6m4s
ci / rust (pull_request) Successful in 8m55s
windows-client / client (x64, , x86_64-pc-windows-msvc, C:\t) (pull_request) Successful in 8m28s
01ae7fc034
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 force-pushed feat/omarchy-menu-split from 518022f73e to 01ae7fc034 2026-08-31 19:41:20 +00:00 Compare
enricobuehler changed title from feat(omarchy): split the menu into Punktfunk and Punktfunk Host to feat(omarchy): give host actions their own Punktfunk Host menu 2026-08-31 19:41:29 +00:00
enricobuehler merged commit e02d8190cc into main 2026-08-31 19:43:06 +00:00
enricobuehler deleted branch feat/omarchy-menu-split 2026-08-31 19:43:21 +00:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: unom/punktfunk#481