A ping at hyprland.start answers for a machine that has not finished coming up. Ethernet is still negotiating DHCP, so a working desktop was told to set up Wi-Fi and offered an update it could already have run. Ask NetworkManager instead: -s returns once it has tried every connection it could auto-activate, which is the first moment the answer means anything, and -x then takes that answer as it stands rather than waiting out a timeout that a laptop with nothing to connect to would spend in silence. The update prompt now waits for a connection rather than being phrased around not having one. There is nothing to update against until a link lands, and one usually does land later on the machines that started without it, so the prompt follows the connection whenever it arrives. That wait runs detached. It outlasts first run by design, and the keybindings menu is on screen behind it. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
31 lines
1.1 KiB
Bash
31 lines
1.1 KiB
Bash
notify_update() {
|
|
omarchy-notification-send -u critical -g "Update System" "Click to update the system." \
|
|
--exec "omarchy-launch-floating-terminal-with-presentation omarchy-update"
|
|
}
|
|
|
|
notify_wifi() {
|
|
omarchy-notification-send -u critical -g "Setup Wi-Fi" "Click to configure the wireless network." \
|
|
--exec "omarchy-shell shell toggle omarchy.network"
|
|
}
|
|
|
|
announce_network() {
|
|
# Ethernet is still negotiating DHCP when the session starts, so probing
|
|
# right away calls a working machine offline. NetworkManager reports startup
|
|
# complete once it has tried every connection it could auto-activate, which
|
|
# is the first moment the answer means anything.
|
|
nm-online -q -s -t 30
|
|
|
|
# -x takes that answer as it stands rather than waiting out the timeout, so
|
|
# a laptop with nothing to connect to gets prompted immediately.
|
|
if ! nm-online -q -x -t 30; then
|
|
notify_wifi
|
|
# Nothing to update against until a link lands, so hold that prompt.
|
|
nm-online -q -t 3600 || return
|
|
fi
|
|
|
|
notify_update
|
|
}
|
|
|
|
# Detached, so a slow or absent connection never holds up the rest of first run.
|
|
announce_network &
|