From ac3b75b018422b80f8bf31a65b65766a56f1d54b Mon Sep 17 00:00:00 2001 From: Bernardo Magri Date: Fri, 10 Jul 2026 14:37:52 +0100 Subject: [PATCH] feat(template): ship Chromium by default; record product decisions MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - home.packages: chromium active; mime → chromium-browser.desktop - Decisions: markdown docs stay in-repo; PPD default confirmed - Formatter + zram still open (explained in session, not closed) V0: flake check --no-build green. --- agent/BACKLOG.md | 59 +++++++++++------------------------ agent/HARDWARE-QUEUE.md | 8 ++--- docs/ROADMAP.md | 3 +- modules/home/mime.nix | 13 ++++---- templates/downstream/home.nix | 4 +-- 5 files changed, 32 insertions(+), 55 deletions(-) diff --git a/agent/BACKLOG.md b/agent/BACKLOG.md index e274141..d9a7079 100644 --- a/agent/BACKLOG.md +++ b/agent/BACKLOG.md @@ -115,51 +115,30 @@ _(Identity taste retunes + hand `btop.theme` for white/vantablack/lumon/ ### v1.0 pointer See **VISION**. Open PROPOSED: NVIDIA wrappers deferred past v1; IR -portal (b)/(c) hardware. +portal (b)/(c) hardware. Browser default = Chromium; power = PPD. ## Decisions `[human]` Open calls only Bernardo can make; agents add options/evidence but never -decide. +decide. **Resolved** entries stay for history; agents treat them as closed. + +### Resolved (2026-07-10) + +- **Docs site vs Markdown-in-repo** — **markdown in-repo for now** + (`docs/`, README). A rendered docs site is FUTURE if wanted. +- **Default browser** — **ship Chromium** in + `templates/downstream/home.nix`; mime → `chromium-browser.desktop`. + Opt out: delete the line / override mime. +- **Default power backend** — **keep PPD** (`nomarchy.system.power.backend` + default). TLP remains the one-line opt-in. Rationale: stability + live + profile API for menu/Waybar; Omarchy’s TLP experiment reverted. + +### Still open - **Formatter adoption:** repo deliberately has none; `nixfmt-rfc-style` would flatten the aligned hand-formatting of ~33 files. Adopt or - declare never? -- **Docs site vs Markdown-in-repo** (from the docs-review item). - -- **zram swap:** faster under pressure and pairs with NOW#3, but it - interacts with the hibernation-swapfile story (resume device/priority - ordering) — adopt, adopt-with-hibernation-guard, or skip? -- **Default browser:** the template comments Firefox out. The shipped - mime defaults (item 8, done) point `text/html`/http(s) at - `firefox.desktop` as *inert* entries — they activate the moment - Firefox is installed and are skipped otherwise, so the remaining call - is only: ship a browser active in the suite, or stay - browserless-by-default? - -- **Default power backend — PPD vs TLP:** (raised by Bernardo 2026-07-08: - would TLP be more power-efficient, and should it be the default?) - TLP does get more *idle* battery life, but only from device-level knobs - PPD deliberately omits — PCIe ASPM, disk/NVMe link PM, USB autosuspend, - runtime PM — which are the same knobs behind NVMe/USB flakiness that - pillar 1 (rock-stable, never fight your machine) guards against. - **Evidence (2026-07-08):** no credible hard-watt benchmarks exist — TLP's - own maintainer declines to quote any ("measure on your hardware") and says - PPD's power-saver gives *similar* savings under load; TLP's edge is - idle-only (linrunner.de/tlp/faq/ppd.html — PPD covers a *subset* of TLP, - "no settings to reduce consumption when the CPU is idle"). Our sibling - distro **Omarchy** ran this exact experiment — a "replace Power Profiles - with TLP for battery" guide — and the author **reverted to PPD** ("more - headaches and weird issues"); Omarchy shipped PPD auto-switching instead - (basecamp/omarchy#3907). PPD 3.4.0 now does AC/battery auto-switching, - closing part of TLP's UX gap. **Cost of TLP-default:** TLP has no live - D-Bus profile API, so the `powermgmt` menu + Waybar profile indicator + - low-battery auto power-saver (all `powerprofilesctl`) would need a rework — - it's not a one-line backend swap. **Agent rec (evidence, not a decision): - keep PPD default;** chase battery via targeted low-risk tweaks (PCIe ASPM - policy, battery-side EPP, the charge *start* threshold, PPD auto-switching) - and keep TLP the documented one-line opt-in it already is - (`nomarchy.system.power.backend = "tlp"`). Options: (i) status quo + - targeted tweaks [rec]; (ii) TLP default (reworks the profile UX); - (iii) nothing. + declare never? (See reply in session: Nix-source style only, not runtime.) +- **zram swap:** faster under pressure, but interacts with the + hibernation-swapfile story (resume device/priority). Adopt, + adopt-with-hibernation-guard, or skip? diff --git a/agent/HARDWARE-QUEUE.md b/agent/HARDWARE-QUEUE.md index 1af6cf2..201d0a7 100644 --- a/agent/HARDWARE-QUEUE.md +++ b/agent/HARDWARE-QUEUE.md @@ -143,12 +143,10 @@ that run; leftover open items still need a pass.* snapshot flow, "boot an older generation (how)" fires an instruction notification. - [ ] **Open-a-file smoke (viewers + mime defaults, item 8)** — after - `home-update`: from yazi/Thunar, open a PDF (→ zathura, themed to + `nomarchy-home`: from yazi/Thunar, open a PDF (→ zathura, themed to the palette), an image (→ imv, NOT GIMP), a video (→ mpv); - `xdg-open .` on a directory → Thunar. With no browser installed, - clicking a link must still fall through to *something sane* (the - firefox.desktop entries are inert); if you've uncommented a - browser, links go there. + `xdg-open .` on a directory → Thunar; a link → **Chromium** + (`chromium-browser.desktop` — template default as of 2026-07-10). - [ ] **Update awareness** — with `nomarchy.updates.enable`, let the timer fire (or start the unit): indicator appears only when inputs are behind, notification only on count growth, click opens the upgrade diff --git a/docs/ROADMAP.md b/docs/ROADMAP.md index 795c510..b18525d 100644 --- a/docs/ROADMAP.md +++ b/docs/ROADMAP.md @@ -287,7 +287,8 @@ Design/decision records and a running log of shipped work (items marked `libreoffice-fresh`, `vscode`, `gimp`, `inkscape` — ships *active* in the downstream `templates/downstream/home.nix` `home.packages`, with the heavier opt-ins (`texliveFull` — multi-GB; `texliveMedium` is lighter — plus - browser/email) commented just below. **Decision: no `nomarchy.apps.*` option + browser/email) commented just below — **Chromium is active by default** + (2026-07-10); other browsers stay commented. **Decision: no `nomarchy.apps.*` option surface.** Unlike `nomarchy.services.*` (real config behind each toggle — systemd units, subuid ranges, the Flathub oneshot), a bare package install has nothing behind the toggle: `mkIf x { environment.systemPackages = [p]; }` diff --git a/modules/home/mime.nix b/modules/home/mime.nix index c2905b3..47db7c7 100644 --- a/modules/home/mime.nix +++ b/modules/home/mime.nix @@ -50,13 +50,12 @@ lib.mkIf config.nomarchy.mime.enable { # The system-side Thunar (nomarchy.system.fileManager). "inode/directory" = "thunar.desktop"; - # The template ships no browser by default (open Decision) — these - # are inert until one is installed; firefox is the template's first - # suggestion. A different browser registers its own handler and - # wins once these entries stay dead. - "text/html" = "firefox.desktop"; - "x-scheme-handler/http" = "firefox.desktop"; - "x-scheme-handler/https" = "firefox.desktop"; + # Template ships chromium (chromium-browser.desktop). Entry is + # skipped by GIO if the package is deleted; install another browser + # and/or override these keys to retarget. + "text/html" = "chromium-browser.desktop"; + "x-scheme-handler/http" = "chromium-browser.desktop"; + "x-scheme-handler/https" = "chromium-browser.desktop"; }; }; } diff --git a/templates/downstream/home.nix b/templates/downstream/home.nix index 7292cc3..252eff6 100644 --- a/templates/downstream/home.nix +++ b/templates/downstream/home.nix @@ -81,6 +81,7 @@ home.packages = with pkgs; [ libreoffice-fresh # office suite (documents, sheets, slides) vscode # code editor (unfree; allowUnfree is on) + chromium # web browser (mime defaults → chromium-browser.desktop) gimp # raster image editor inkscape # vector graphics mpv # media player @@ -88,9 +89,8 @@ # pwvucontrol + calcurse ship with the Waybar module (volume right-click / clock) # ── More apps — uncomment to add ───────────────────────────────── - # Web browsers + # Web browsers (chromium ships above — swap/delete freely) # firefox - # chromium # ungoogled-chromium # brave # (unfree) # google-chrome # (unfree)