feat: Restart question on quit is "Restart now? [Y/n]"

When a restart is needed, q asks with yes as the default; n goes back to the menu and the next q asks again. Ctrl+C quits without restarting; scripted input that runs out never restarts.
This commit is contained in:
theupriser committed 2026-09-24 12:55:51 +02:00
1 parent 176f27b44f
commit cda7dbe49f
4 files changed
+39 -20

No files matched your search

+4 -2
View File
@@ -147,8 +147,10 @@ gamescope and the Plasma desktop. Primary target: the Valve Steam Machine
device check, never flashes) and a faked version (dev-env
`BIOS_VERSION=F7F0107 ./run.sh --fremont`).
- The entry point loops: menu, run, "back to the menu" (or `[m]`/`[r]` when a
restart is needed), until `q`; the restart question is asked once at the
end. Scripted input that runs out ends the loop like `q`.
restart is needed), until `q`. When a restart is needed, `q` asks "Restart
now? [Y/n]" (`quit_prompt`): `n` goes back to the menu, the next `q` asks
again. Scripted input that runs out quits without restarting (never
restart on EOF: `ask_yn` would take its default).
- Steamify shortcut (`launcher`): the icon runs `curl | bash` of
`releases/latest/download/steamify.sh` in Konsole, so it's
always the newest release. Its icon, `assets/steam-gaming-settings.svg`
+5 -1
View File
@@ -7,11 +7,15 @@ one per merged pull request.
## 0.9.1 - 2026-09-24
- **fix: LED driver for every kernel on a fresh install**
- `2e107e5` **fix: LED driver for every kernel on a fresh install**
- The DKMS override was written to `/etc/dkms` before `dkms` was installed,
when that folder doesn't exist yet, so it silently failed and the build
for other kernels (e.g. LTS) failed as in 0.6. The folder is created first
now, and a failed write stops with an error.
- **feat: Restart question on quit is "Restart now? [Y/n]"**
- When something needs a restart, `q` asks with yes as the default; `n` goes
back to the menu and the next `q` asks again. Ctrl+C quits without
restarting; scripted input that runs out never restarts.
## 0.9.0 - 2026-09-24 (#9)
+3 -1
View File
@@ -80,7 +80,9 @@ to restart (needed for changes to how the PC starts).
After each run the menu comes back with the new state, so you can change more
in one go; quit with **q**. When something needs a restart, you choose
between going back to the menu and restarting now; quitting asks once more.
between going back to the menu and restarting now. Quitting then asks
"Restart now? [Y/n]": **n** takes you back to the menu (and the next **q**
asks again); Ctrl+C quits without restarting.
Run it again whenever you like - to change your choices, to turn things off
again, or after a CachyOS update (press `a` in the menu to re-apply
+27 -16
View File
@@ -78,13 +78,36 @@ after_run() {
done
}
quit_prompt() {
# On q: when something needs a restart, offer it (default yes); "n" goes
# back to the menu, and the next q asks again. Returns 0 to show the menu
# again, 1 to quit (nothing to restart, or input ended in scripted runs).
local reply
restart_needed || return 1
echo
if [[ -n "${BIOS_NEEDS_RESTART:-}" ]]; then
warn "The BIOS update is written during the next restart. Keep the power on and"
warn "don't touch the machine until it has fully started again, even if the screen stays black."
else
info "The changes take effect after a restart."
fi
read -rp "$(echo -e "${c_bold}Restart now?${c_reset} [Y/n] (n = back to the menu, Ctrl+C = quit without restarting) ")" reply || return 1
case "$reply" in
""|y|Y) restart_now ;;
esac
return 0
}
# Menu loop: after each run the menu comes back with the new state, until
# the user quits; the restart question comes then, once, for everything.
RESTART_FOR_LOGIN=false
SUDO_KEEPALIVE=false
while true; do
detect_components
run_menu || break
if ! run_menu; then
quit_prompt && continue
break
fi
plan_changes
if [[ ${#TO_DISABLE[@]} -eq 0 && ${#TO_ENABLE[@]} -eq 0 ]]; then
@@ -130,21 +153,9 @@ while true; do
done
echo
# A staged BIOS update is written during the restart.
if [[ -n "${BIOS_NEEDS_RESTART:-}" ]]; then
warn "The BIOS update is written during the next restart. Keep the power on and"
warn "don't touch the machine until it has fully started again, even if the screen stays black."
if ask_yn "Restart now to install the BIOS update?" n; then
restart_now
else
info "The BIOS update installs at your next restart."
fi
elif [[ "$RESTART_FOR_LOGIN" == true ]]; then
if ask_yn "Restart now so the changes take effect?" n; then
restart_now
else
info "Restart whenever you're ready."
fi
if restart_needed; then
# Only reached when input ended (scripted runs): never restart then.
info "Not restarted; the changes take effect after a restart."
else
info "Bye."
fi