Skip to content

Guide an offline first login through terminal network setup - #10644

Open
NickThompson42 wants to merge 1 commit into
omacom:quattrofrom
NickThompson42:network-onboarding-guide
Open

Guide an offline first login through terminal network setup#10644
NickThompson42 wants to merge 1 commit into
omacom:quattrofrom
NickThompson42:network-onboarding-guide

Conversation

@NickThompson42

Copy link
Copy Markdown

The problem

Campus, office, and many guest networks admit only devices whose MAC address has been registered in advance. On those networks the Wi-Fi panel is the wrong first stop: there is nothing to pick until the address has been handed over and cleared, and the panel has nowhere to show it. Today an offline first login sends people straight there, so the failure looks like broken Wi-Fi rather than an unfinished registration step.

The change

install/user/first-run/wifi.sh now opens a terminal guide instead of the panel when the session comes up with no link. The toast that follows reopens the guide rather than the panel; Super + Ctrl + W still opens the panel and is untouched.

The new omarchy-network-onboard prints, in order:

  1. The MAC of every physical interface, skipping kernel-synthesized ones (lo, docker0, veth, bridges) whose addresses a network administrator cannot act on. --macs-only emits interface<TAB>mac for | wl-copy into a registration form.
  2. The nmcli recipes for joining — including hidden networks and the WPA2-Enterprise username/password case that usually accompanies MAC registration. All use --ask, keeping passwords out of shell history and the process list.
  3. Checking and cleanup commands, plus the captive-portal case.

It ends with gum confirm "Open the Wi-Fi panel instead?", guarded on /dev/tty so piped and first-run invocations never block, so nobody is trapped in the terminal.

Also adds Setup > Network > Connection Guide, and updates manual/35-networking.md and docs/file-layout.md.

Testing

New test/shell.d/network-onboard-test.sh, 10 assertions, driven through an OMARCHY_NETWORK_SYSFS_ROOT override following the pattern omarchy-hyprland-reload-guard already uses. It covers the virtual-interface filter, interfaces with no address file, the non-tty path first-run depends on, and a SIGPIPE regression (an early break on the reading side of a pipeline, which pipefail turns into a silent exit 141 once the listing exceeds the pipe buffer).

Both of those were mutation-checked: reintroducing each bug makes the suite fail, so the assertions are not passing vacuously.

Passing locally: ./test/cli (112), network-test (104), menu-test (121), menu-guards-test (18), bin-style-test, first-run-test, and the new file — 368 assertions, no failures.

Not verified: the running-UI check agents/skills/visual-verification.md asks for, and the offline first-boot path end to end, which needs the omarchy-iso acceptance harness rather than a live session. Flagging rather than implying otherwise; happy to run those if you can point me at the expected setup.

A note on scope

This changes the default first-run experience for everyone to serve the registration case. If you would rather not, a smaller version works: keep the toast pointed at the panel and ship only omarchy-network-onboard plus the menu entry, so the guide is discoverable without altering first boot. Glad to cut it back.

🤖 Generated with Claude Code

https://claude.ai/code/session_0119fN5PE8UQM6VUYnFR8dqm

A network that admits only registered MAC addresses cannot be joined from
the Wi-Fi picker: the address has to be handed over and cleared before the
machine can associate, and the picker has nowhere to show it. First login
with no link now opens omarchy-network-onboard in a floating terminal
instead of the panel, and the toast that follows reopens it.

The command prints the MAC of every physical interface, skipping the
kernel-synthesized ones whose addresses a network administrator cannot use,
then the nmcli recipes for joining, including hidden networks and the
WPA2-Enterprise case that usually accompanies MAC registration. It ends by
offering the Wi-Fi panel, so nothing traps a user in the terminal.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0119fN5PE8UQM6VUYnFR8dqm
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