Single-script builder (nosignal.sh) that turns a stock Arch Linux ISO into a fully-offline installer for a themed Hyprland + caelestia (Quickshell) desktop: matching SDDM greeter, Btrfs/Limine bootable snapshots, chwd-style GPU detection, and a curated "os updates" layer (keybind cheatsheet, settings panels, system polish, on-box management skill). See README.md. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| install-wifi-password-retry.sh | ||
| patch-network-connection.sh | ||
| README.md | ||
wifi-password-retry — recover from a wrong Wi-Fi password
Fixes a stock-Caelestia bug; worth upstreaming.
Symptom
Enter a wrong Wi-Fi password once and you are locked out of that network in the UI:
- The password dialog saves the NetworkManager profile (with the bad PSK) immediately, and only deletes it if the dialog stays open long enough for its ~10-poll failure monitor to fire. Close the popout while it hangs on "Connecting…" — which is what everyone does — and the wrong-PSK profile survives.
- Every later click on that network hits the saved-profile fast path in
utils/NetworkConnection.qml, which activates the profile with a null callback: the auth failure is swallowed, the password dialog never reopens, and there is no forget-network control in the popout. Onlynmcli connection delete "<SSID>"in a terminal gets you out.
Cause
/etc/xdg/quickshell/caelestia/utils/NetworkConnection.qml,
connectToNetwork():
if (hasSavedProfile) {
Nmcli.connectToNetwork(network.ssid, "", network.bssid, null); // <- trap
} else {
// ... needsPassword -> password dialog (correct handling)
}
Fix
patch-network-connection.sh (idempotent, marker
nosignal wifi-password-retry, backup at *.pre-nosignal) replaces the
null callback with one that, on needsPassword:
- stops the pending-connection timers (same cleanup the else-branch does),
Nmcli.forgetNetwork(ssid)— drops the bad profile,- reopens the password dialog (session path for the control center,
onPasswordNeededcallback path for the bar popout).
Fixing this one spot also makes failure mode 1 self-healing: even if a bad profile survives a closed dialog, the next click re-prompts instead of looping silently. Profiles with a correct password are untouched — their activation succeeds and the callback does nothing.
A pacman hook (nosignal-wifi-password-retry.hook) re-applies the patch
after every caelestia-shell upgrade, same mechanism as the updates-panel
patch.
Version pin / drift
Pinned against the NetworkConnection.qml shipped with caelestia-shell
2.0.2. If upstream reshapes the hasSavedProfile branch, the patch
script detects the miss, warns, and leaves stock behaviour in place —
update the regex. If upstream fixes the bug properly, drop this
component and its hook.
Test
- Connect to a WPA network and deliberately enter a wrong password; close the popout while it says "Connecting…".
- Click the same network again → the password dialog must reopen (stock behaviour: silent failure, no dialog, forever).
- Enter the correct password → connects.
- Relogin/reboot → still connected (saved profile now has the good PSK).
No new keybinds; nothing to add to NoSignal-keybindings.md.