Files
David Heinemeier HanssonandClaude Fable 5 5232505c12 Don't block the desktop on network-online at boot
graphical.target was gated on network-online.target: cups-browsed orders
itself After=network-online.target and sits in multi-user.target, so the
session waited for NetworkManager-wait-online (DHCP/Wi-Fi association)
before coming up. On the bench VM that was ~140ms, but it's the classic
multi-second boot stall on real Wi-Fi.

Mask NetworkManager-wait-online.service so network-online.target is
reached immediately and nothing in the boot waits for connectivity;
NetworkManager still comes up and cups-browsed browses once the link is
live. Mirrors the existing systemd-networkd-wait-online mask. Enabled at
install (enable-services.sh) and masked on existing installs via
migration.

Verified on a fresh boot: the graphical.target critical chain no longer
passes through network-online.target / NetworkManager-wait-online.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-20 10:34:26 -07:00

16 lines
527 B
Bash

echo "Stop waiting for the network before showing the desktop"
as_root() {
if (( EUID == 0 )); then
"$@"
else
sudo "$@"
fi
}
# graphical.target was gated on network-online.target (cups-browsed orders
# itself after it), so the desktop waited for DHCP/Wi-Fi association at boot.
# Nothing in the session needs to block on the network; mask the wait so
# network-online no longer delays boot. Mirrors the systemd-networkd variant.
as_root systemctl mask NetworkManager-wait-online.service >/dev/null 2>&1 || true