From 35699f170f41147bc92457c1bdbc972b16bc4b2c Mon Sep 17 00:00:00 2001 From: Bernardo Magri Date: Fri, 10 Jul 2026 08:39:47 +0100 Subject: [PATCH] feat(live): #57 Install Nomarchy desktop entry + Tools row MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Always-visible install surface on the live ISO: xdg.desktopEntries (Terminal=true) plus Tools › Install Nomarchy (self-gated on nomarchy-install on PATH). Welcome toast mentions the app. Close #57. Verified: V1 (live eval + HM menu rebuild). V2 pending: ISO smoke. --- agent/BACKLOG.md | 11 +---------- agent/JOURNAL.md | 10 ++++++++++ hosts/live.nix | 16 +++++++++++++++- modules/home/rofi.nix | 9 +++++++++ 4 files changed, 35 insertions(+), 11 deletions(-) diff --git a/agent/BACKLOG.md b/agent/BACKLOG.md index be60c54..9e5e6b3 100644 --- a/agent/BACKLOG.md +++ b/agent/BACKLOG.md @@ -77,15 +77,6 @@ last log lines + `nomarchy-doctor` instead of a raw Nix wall. Likely home: menu rebuild wrapper and/or control-center path. Cost: medium pkgs/menu; V1 + V2 smoke of the failure path (can force a bad eval). -### 57. Live: one always-visible “Install Nomarchy” action -Install is only in: 3s notify-send toast, getty helpLine, and tribal -knowledge of `nomarchy-install`. **One** durable surface on the live -host only: e.g. `xdg.desktopEntries` (Terminal=true) **or** a single -Tools/System menu item that opens a terminal into `nomarchy-install`. -Prefer that over more install-time questions. Also fix stale -`hosts/live.nix` header (“No installer yet”) if still present. Cost: -`live.nix` only; V1 ISO rebuild + V2 smoke. - ### 58. `nomarchy-detect-hw` CLI (post-install re-probe) HARDWARE.md §8. Installer already has pure `nomarchy_detect_hw` stdout protocol (MODULE / NOMARCHY / DETAIL). Ship it as a package on PATH that @@ -201,7 +192,7 @@ nomarchy-menu usage string, secondary docs, always-on pieces → #47.)_ `btop.theme` for the three identity themes still open. Cost: asset capture; V3 visual. -_(Generated Waybar missing identity-bar affordances → **#63**.)_ +_(Generated Waybar missing identity-bar affordances → **#63** ✓ 2026-07-10.)_ - **summer-* CSS under-styles status module states** summer-day/night include modules in selectors but largely lack diff --git a/agent/JOURNAL.md b/agent/JOURNAL.md index 27eb858..961ce69 100644 --- a/agent/JOURNAL.md +++ b/agent/JOURNAL.md @@ -17,6 +17,16 @@ Template: --- +## 2026-07-10 — #57 live Install Nomarchy affordance +- **Task:** NEXT #57 — durable live-ISO install surface (not only toast). +- **Did:** `xdg.desktopEntries.nomarchy-install` (Terminal=true) on live + HM; Tools › Install Nomarchy self-gated on `command -v nomarchy-install`; + welcome toast wording updated. Closed #57. +- **Verified:** **V1** — live config eval exposes entry name/exec; + `downstream-template-home` rebuilds with menu gate. **V2 pending:** + ISO rebuild + smoke that the .desktop appears in the session. +- **Next suggestion:** #58 `nomarchy-detect-hw` CLI. + ## 2026-07-10 — #63 generated Waybar logo + powermenu - **Task:** NEXT #63 — reverse parity: generated bar lacked whole-swap logo → menu and power icon → power menu. diff --git a/hosts/live.nix b/hosts/live.nix index 78f4543..2bd7a6b 100644 --- a/hosts/live.nix +++ b/hosts/live.nix @@ -172,6 +172,20 @@ in # regression). Installed systems keep idle management. nomarchy.idle.enable = false; + # Durable install affordance (BACKLOG #57): always-visible desktop + # entry, not only the 3s toast / getty helpLine / tribal knowledge. + # Tools › Install Nomarchy is self-gated on this package in rofi.nix. + xdg.desktopEntries.nomarchy-install = { + name = "Install Nomarchy"; + genericName = "Installer"; + comment = "Install Nomarchy to this machine's disk"; + exec = "nomarchy-install"; + terminal = true; + icon = "system-software-install"; + categories = [ "System" "Settings" ]; + startupNotify = true; + }; + wayland.windowManager.hyprland.settings = { # QEMU (and some panels) report a tiny "preferred" mode; ask for # the highest resolution instead. @@ -179,7 +193,7 @@ in # Welcome toast once the session is up (concatenated onto the # base exec-once list). exec-once = [ - "sh -c 'sleep 3; notify-send -a Nomarchy \"Welcome to Nomarchy\" \"SUPER+Return terminal · SUPER+T themes · install with nomarchy-install\"'" + "sh -c 'sleep 3; notify-send -a Nomarchy \"Welcome to Nomarchy\" \"SUPER+Return terminal · SUPER+T themes · Install Nomarchy app or nomarchy-install\"'" ]; }; }; diff --git a/modules/home/rofi.nix b/modules/home/rofi.nix index 401421b..c31260e 100644 --- a/modules/home/rofi.nix +++ b/modules/home/rofi.nix @@ -750,6 +750,10 @@ ${themeRows} # Tools submenu — utilities you invoke. Each leaf is also reachable # directly (SUPER+CTRL+); this just keeps the root short. choice=$( { + # Live ISO only: nomarchy-install is systemPackages on the live + # host (BACKLOG #57). Installed systems never ship the package. + command -v nomarchy-install >/dev/null 2>&1 \ + && row "Install Nomarchy" system-software-install row "Calculator${menuHint "calc"}" accessories-calculator row "Clipboard${menuHint "clipboard"}" edit-paste row "Emoji${menuHint "emoji"}" face-smile-big @@ -762,6 +766,11 @@ ${themeRows} } | rofi -dmenu -show-icons -markup-rows -p Tools) || exit 0 case "$choice" in "$BACK") exec "$0" ;; + *"Install Nomarchy"*) + command -v nomarchy-install >/dev/null 2>&1 \ + && exec ${cfg.terminal} -e nomarchy-install + notify-send "Install" "nomarchy-install is not on PATH (live ISO only)." + exit 0 ;; *Calc*) exec "$0" calc ;; *Clipboard*) exec "$0" clipboard ;; *Emoji*) exec "$0" emoji ;;