feat(menu): Back on every submenu + working snapshot fallback
Two menu improvements. Back everywhere: every list menu now ends with a "↩ Back" entry that returns one level up — power, theme, power-profile, clipboard, files, capture, not just Tools/System — so you no longer have to Esc out and reopen to back up. A `back` helper + a shared `BACK` label keep it uniform; matched exactly so it can't collide with clipboard/filename content. Esc still quits instantly. Snapshot fallback: btrfs-assistant 2.2 segfaults on 26.05 (libbtrfsutil ABI), so `nomarchy-menu snapshot` now launches nomarchy-snapshots instead — a keyboard-driven snapper browser/restore. snapper is root-only here and rofi can't run as root under Wayland, so it runs in a terminal via sudo (one password prompt) and uses fzf to pick: browse/diff (read-only), restore files (undochange), or roll back (root config only), each behind a typed-`yes` confirmation — safer than a one-click rofi rollback. btrfs-assistant stays installed for when nixpkgs fixes it. Verified: flake check clean; home generation builds and the menu passes bash -n with all Back + snapshot wiring; nomarchy-snapshots passes shellcheck (writeShellApplication) in a snapper-enabled system build. Pending an on-machine check of the restore/rollback paths. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -51,6 +51,11 @@ how to override it. Items marked ✓ are shipped.
|
||||
one-off — any new feature that earns a menu entry must be placed in the
|
||||
right submenu (don't let the root creep back to a flat list), with its
|
||||
direct `SUPER+CTRL+<mnemonic>` bind and self-gating as applicable.
|
||||
- ✓ **Back everywhere:** every list menu now ends with a `↩ Back` entry that
|
||||
returns one level up (power/theme/power-profile/clipboard/files/capture,
|
||||
not just Tools/System), so you never have to Esc out and reopen. A `back`
|
||||
helper + a shared `BACK` label keep it uniform; matched exactly so it can't
|
||||
collide with clipboard/filename content. Esc still quits instantly.
|
||||
- ✓ **Menu modules from rofi plugins:** the old `calc` flow committed the
|
||||
expression blind (result only in the *next* menu's `-mesg`) and `qalc -t`
|
||||
misparsed common phrasings (`15% of 200` → `rem(15, 1 B)`, the natural-
|
||||
@@ -454,11 +459,19 @@ how to override it. Items marked ✓ are shipped.
|
||||
artifact and will crash on hardware too). The menu wiring is correct and
|
||||
the app is installed, but the GUI doesn't open. The snapshot *backend*
|
||||
(the actual snapshots) is unaffected. Fix path: a nixpkgs override aligning
|
||||
its libbtrfsutil, or wait for an upstream bump; meanwhile the menu entry
|
||||
is a no-op when the binary crashes. Fallback if it lingers: a rofi-based
|
||||
snapshot menu (no btrfs-assistant dependency).
|
||||
- Remaining (optional): a keyboard-driven rofi browse for quick glances;
|
||||
boot-from-snapshot needs a systemd-boot equivalent of grub-btrfs.
|
||||
its libbtrfsutil, or wait for an upstream bump. ✓ **Fallback shipped:**
|
||||
the menu now launches `nomarchy-snapshots` (system-side, gated on
|
||||
`nomarchy.system.snapper`) instead — a keyboard-driven snapper
|
||||
browser/restore with no btrfs-assistant dependency. snapper is root-only
|
||||
here (no `ALLOW_USERS`) and rofi can't run as root under Wayland, so it
|
||||
runs in a terminal via `sudo` (one password prompt) and uses `fzf` to pick:
|
||||
browse/diff (read-only), restore files (`undochange`), or roll back (root
|
||||
config only) — each behind a typed-`yes` confirmation, which is *safer*
|
||||
than the fat-fingerable one-click rofi rollback this entry originally
|
||||
avoided. btrfs-assistant stays installed for when nixpkgs fixes it.
|
||||
**Pending an on-machine check of the restore/rollback paths.**
|
||||
- Remaining (optional): boot-from-snapshot needs a systemd-boot equivalent
|
||||
of grub-btrfs.
|
||||
- **Update awareness:** updates are manual today (`sys-update`/`home-update`);
|
||||
add a Waybar indicator / notification when flake inputs are stale or a new
|
||||
nixpkgs rev is available (optionally with a pending-change count). Augments,
|
||||
|
||||
Reference in New Issue
Block a user