After the cancel-branch sweep, the remaining UX inconsistency was in action branches: changing one setting kicked the user out of the menu, forcing a relaunch to change the next. Brought 16 actions across 5 submenus into the same return-to-self pattern theme/background got. Classification rule applied: - Quick-state actions (toggle, set, restart-service - finishes in milliseconds, no window opens) -> back_to <self>, so the user can chain "toggle nightlight, then toggle gaps, then restart waybar" without rerunning nomarchy-menu each time. - Window-opening actions (editor, floating terminal, audio/wifi/bt launcher, browser, hyprpicker overlay, screenshot, screenrecord, share dialogs, lock/shutdown/logout) stay as one-shot exits - re-popping the menu over the new window would be visual noise. Submenus changed: - show_toggle_menu (8 toggles): screensaver, nightlight, idle, top bar, workspace layout, window gaps, 1-window ratio, display scaling. - show_setup_power_menu: powerprofilesctl set returns; cancel still goes up to show_setup_menu (different destinations on each branch, so the if/else stays). - show_font_menu: nomarchy-font-set returns; cancel still goes up. - show_setup_system_menu: the suspend toggle (quick) returns; hibernate enable/disable (terminal) still exit. - show_update_process_menu (5 service restarts): hypridle, hyprsunset, swayosd, walker, waybar. For dynamically-rendered menus (show_setup_system_menu rebuilds its options each invocation based on current state) this also gives free visual feedback - the toggle's label flips between "Enable Suspend" and "Disable Suspend" when the menu re-renders. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
12 KiB
Executable File
12 KiB
Executable File