From a741b0936c98808cfd02e22f0b2676fcce3c710a Mon Sep 17 00:00:00 2001 From: Bernardo Magri Date: Thu, 30 Apr 2026 19:50:36 +0100 Subject: [PATCH] fix(menu): theme and background submenus return to parent instead of exiting The menu navigation contract: a submenu invoked directly via keybinding (BACK_TO_EXIT=true, set by go_to_menu when nomarchy-menu is launched with a target argument) should `exit 0` after the user's action; a submenu invoked from a parent menu (BACK_TO_EXIT=false) should call `back_to ` to return where the user came from. back_to() honors both modes. Three submenus violated the contract: - show_theme_menu and show_background_menu shell out to walker's Elephant plugin and don't call back_to. After picking a theme or wallpaper from Main -> Style -> Theme, the script exits silently instead of returning to Style; the user has to relaunch the menu from scratch to change anything else. - show_hardware_menu's cancel branch called show_trigger_menu directly instead of back_to show_trigger_menu, which would have bounced a direct-keybinding caller into Trigger instead of exiting cleanly. Adds the missing back_to call to the two walker-backed submenus (parented to show_style_menu) and converts the hardware cancel branch to back_to. The 16 other show_*_menu functions already conform. Co-Authored-By: Claude Opus 4.7 --- docs/SCRIPTS.md | 4 ++-- features/scripts/utils/nomarchy-menu | 4 +++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/docs/SCRIPTS.md b/docs/SCRIPTS.md index fbd0018..50ba39b 100644 --- a/docs/SCRIPTS.md +++ b/docs/SCRIPTS.md @@ -127,7 +127,7 @@ Phase B (per-batch PRs) refines those into `port-from-omarchy`, | `nomarchy-restart-waybar` | `features/scripts/utils` | core/home/config/nomarchy-skill/SKILL.md,features/scripts/utils/nomarchy-menu, +4 more | `kept` | | | `nomarchy-restart-wifi` | `core/system/scripts` | features/scripts/utils/nomarchy-menu | `kept` | | | `nomarchy-restart-xcompose` | `core/system/scripts` | features/scripts/utils/nomarchy-menu | `kept` | | -| `nomarchy-rollback` | `features/scripts/utils` | installer/disko-golden.nix | `kept` | | +| `nomarchy-rollback` | `features/scripts/utils` | — | `unused?` | | | `nomarchy-setup-dns` | `core/system/scripts` | features/scripts/utils/nomarchy-menu | `kept` | | | `nomarchy-setup-fido2` | `core/system/scripts` | features/scripts/utils/nomarchy-menu | `kept` | | | `nomarchy-setup-fingerprint` | `core/system/scripts` | core/home/config/nomarchy-skill/SKILL.md,features/scripts/utils/nomarchy-menu | `kept` | | @@ -213,7 +213,7 @@ Tokens grepped from `core/`, `features/`, `themes/`, `installer/`, `hosts/`, `bi | `nomarchy-installer` | features/scripts/utils/nomarchy-build-iso,README.md | `missing` | | `nomarchy-launch` | core/home/config/nomarchy/default/hypr/bindings/clipboard.conf,core/home/config/nomarchy/default/hypr/bindings/utilities.conf, +24 more | `missing` | | `nomarchy-live` | features/scripts/utils/nomarchy-build-live-iso,features/scripts/utils/nomarchy-on-boot, +1 more | `missing` | -| `nomarchy-luks` | installer/disko-btrfs-multi.nix,installer/disko-golden.nix, +1 more | `missing` | +| `nomarchy-luks` | installer/disko-config.nix,installer/install.sh | `missing` | | `nomarchy-menu-rows` | bin/utils/nomarchy-docs-scripts,features/scripts/utils/nomarchy-docs-scripts | `missing` | | `nomarchy-nopasswd` | core/system/scripts/nomarchy-sudo-passwordless-toggle | `missing` | | `nomarchy-nopasswd-expire` | core/system/scripts/nomarchy-sudo-passwordless-toggle | `missing` | diff --git a/features/scripts/utils/nomarchy-menu b/features/scripts/utils/nomarchy-menu index da17c15..013753d 100755 --- a/features/scripts/utils/nomarchy-menu +++ b/features/scripts/utils/nomarchy-menu @@ -161,7 +161,7 @@ show_toggle_menu() { show_hardware_menu() { case $(menu "Toggle" " Hybrid GPU") in *"Hybrid GPU"*) present_terminal nomarchy-toggle-hybrid-gpu ;; - *) show_trigger_menu ;; + *) back_to show_trigger_menu ;; esac } @@ -179,10 +179,12 @@ show_style_menu() { show_theme_menu() { nomarchy-launch-walker -m menus:nomarchythemes --width 800 --minheight 400 + back_to show_style_menu } show_background_menu() { nomarchy-launch-walker -m menus:nomarchyBackgroundSelector --width 800 --minheight 400 + back_to show_style_menu } show_font_menu() {