docs: #114 ships as document-only; record 2026-07-17 triage rulings
All checks were successful
Check / eval (push) Successful in 3m50s
All checks were successful
Check / eval (push) Successful in 3m50s
Live triage with Bernardo. #114 (greeter ignores per-device layouts): ruled document-only — a kernel VT has exactly one keymap, so tuigreet structurally cannot honour settings.keyboard.devices. README gets the "Greeter keyboard layout" note after the home.nix options table, RECOVERY.md §2 a one-line pointer for the password-rejected case, ROADMAP's #145 cross-ref updated, BACKLOG entry deleted. Also recorded: #120 stays deferred (cachix likely first step when promoted); #134 decided — Nomarchy carries nixpkgs-unstable, unstable.* via overlay, home-scope only — rewritten into NEXT; #143 upstream check (rofi#2317 still open, no response) noted in the item. Verification: V0 — docs and backlog only, prose reviewed in place. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -125,7 +125,30 @@ cost for an annoyance with a free workaround (glance before you press Enter).
|
||||
**This item is now a watch, not work:** the only thing to do is check
|
||||
rofi#2317, and take the fix when a release carries it. If it is still open at
|
||||
the next lock bump, that is fine — nothing here rots meanwhile.
|
||||
*Last checked 2026-07-17: open, no maintainer response, no linked PR.*
|
||||
|
||||
### 134. `unstable.<pkg>` in the downstream — decided, build it
|
||||
|
||||
**Decided 2026-07-17 (Bernardo): Nomarchy carries the channel.** Add a
|
||||
`nixpkgs-unstable` input to the distro flake and expose it through
|
||||
`overlays.default` as an `unstable` attrset, so
|
||||
`home.packages = [ unstable.lmstudio ];` just works — downstream stays one
|
||||
locked input and `nomarchy-pull` still moves it. Scope is **home packages
|
||||
only**; no `unstable.*` surface in system.nix, no `stable.` synonym for now.
|
||||
The input rides in the eval unconditionally (an unused input still locks +
|
||||
fetches — accepted). Original diagnosis stands: `mkFlake` has no overlay
|
||||
seam and `homeConfigurations` uses mkFlake's own `pkgs`, so nothing short of
|
||||
the distro carrying the channel keeps the user out of `fetchTarball` pinning.
|
||||
|
||||
Costs accepted with the ruling, to be stated in docs, not hidden: lock bumps
|
||||
now move two channels (VERIFICATION §5 full-checklist applies to both); a
|
||||
user who reaches for `unstable.` pays a second stdenv/glibc in their closure
|
||||
(measured: lmstudio shares only ~690 of ~3.7–4k paths); and nothing upstream
|
||||
tests pinned-Nomarchy + unstable-app together — the README needs an explicit
|
||||
"you own this combination" paragraph. Ship with a commented example in
|
||||
`templates/downstream/home.nix` (opt-in convention) and a README table note.
|
||||
Pass = flake check green + a V1 build of the template HM closure with one
|
||||
`unstable.` package enabled. Related: #133.
|
||||
|
||||
## LATER
|
||||
|
||||
@@ -367,58 +390,6 @@ Pass = a second, documented ISO target that is *substantially* smaller (state
|
||||
the measured number, both ISOs built from one tree), installs successfully with
|
||||
a network in a QEMU run, says clearly at boot that it needs one, and leaves the
|
||||
offline ISO's behaviour untouched (`checks.*` for the offline path stay green).
|
||||
### 134. `unstable.<pkg>` in the downstream — a newer app without a second flake
|
||||
|
||||
Bernardo 2026-07-15, wanting a newer LM Studio (pinned 0.4.15-2 vs unstable
|
||||
0.4.19-2) and disliking the only path that works today. There is **no seam**:
|
||||
`mkFlake` takes `src`/`username`/`hardwareProfile`/`system` only, and
|
||||
`homeConfigurations` is built from mkFlake's own `pkgs` (`inherit pkgs`), so a
|
||||
`nixpkgs.overlays` in system.nix cannot reach a home package. The user is left
|
||||
hand-pinning a `fetchTarball` rev+sha256 in home.nix (verified working) — a
|
||||
second pin with no lock, which is exactly the Nix expertise the distro exists
|
||||
to spare them. Sketch: `home.packages = [ unstable.lmstudio ];`, and maybe
|
||||
`stable.` as an explicit synonym for today's bare `pkgs`.
|
||||
|
||||
The shape that keeps the promises: Nomarchy carries the `nixpkgs-unstable`
|
||||
input **itself** and exposes it through `overlays.default` as an `unstable`
|
||||
attrset, so downstream stays **one input**, stays locked, and `nomarchy-pull`
|
||||
still moves it. Cost/questions to settle before building:
|
||||
- Lock churn: every lock bump now moves two channels, and the full-checklist
|
||||
rule (VERIFICATION §5) applies to both.
|
||||
- Duplication: measured — pinned vs unstable lmstudio build closures share
|
||||
only 690 of ~3.7–4k paths (separate stdenv bootstrap). Opt-in per package,
|
||||
but a user who reaches for it pays a second glibc/stack in the closure.
|
||||
- "Tested together upstream" weakens by construction: nothing validates
|
||||
pinned-Nomarchy + unstable-app. Needs an explicit, documented "you own this
|
||||
combination" line, not silence.
|
||||
- Does `unstable` belong in the eval by default, or only when referenced?
|
||||
(An unused input still locks + fetches.)
|
||||
- Scope: home packages only, or system.nix too?
|
||||
|
||||
Alternative if that is too much surface: give `mkFlake` an `overlays ? []`
|
||||
param (one-line seam, user still owns their own input/pin — cheaper for us,
|
||||
still expert-only for them). Related: #133.
|
||||
|
||||
### 114. Greeter ignores per-device keyboard layouts
|
||||
|
||||
Found by Bernardo 2026-07-14: logging out while docked lands on tuigreet,
|
||||
where his external keyboard (remembered as `us` via
|
||||
`settings.keyboard.devices`) types the session layout `gb` — so the password
|
||||
prompt fights him. Not a regression and not docking-related: per-device
|
||||
layouts are applied with `hyprctl keyword device[<name>]:kb_layout`, which
|
||||
only exists inside a running Hyprland session, while tuigreet draws on a
|
||||
kernel VT whose single keymap comes from `console.useXkbConfig` ←
|
||||
`services.xserver.xkb.layout`. A VT structurally cannot do per-device
|
||||
layouts, so this is a design gap, not a bug to patch. Options, cheapest
|
||||
first: (a) document it and stop there; (b) a greeter layout-cycle key
|
||||
(tuigreet has no such feature — would need the keymap swapped under it);
|
||||
(c) host tuigreet inside a small Wayland compositor (cage/labwc), which
|
||||
*does* get per-device XKB and would let the greeter honour the same
|
||||
in-flake state the session uses — real work, and it changes the greeter's
|
||||
whole rendering path (`modules/nixos/greeter.nix` themes tuigreet through
|
||||
the 16 ANSI console slots, so (c) is not a drop-in). Worth deciding whether
|
||||
the greeter is meant to be layout-aware at all before costing it.
|
||||
|
||||
- **NVIDIA first-class options** — **deferred past v1** (Bernardo
|
||||
2026-07-10). Keep #59 commented install guidance; no
|
||||
`nomarchy.hardware.nvidia.*` until a hybrid maintainer + queue.
|
||||
@@ -451,6 +422,17 @@ Standing calls: browser = Chromium; power = PPD.
|
||||
Open calls only Bernardo can make; agents add options/evidence but never
|
||||
decide. **Resolved** entries stay for history; agents treat them as closed.
|
||||
|
||||
### Resolved (2026-07-17)
|
||||
|
||||
- **#120 netinstall** — stays deferred in PROPOSED (re-affirmed). When it
|
||||
is promoted, a public binary cache (cachix) is the likely first step.
|
||||
- **#134 unstable packages** — build it: Nomarchy carries the
|
||||
`nixpkgs-unstable` input, `unstable.*` via the overlay, home-scope only.
|
||||
Moved to NEXT with the full decided shape.
|
||||
- **#114 greeter layouts** — document only: a VT has one keymap by design,
|
||||
so tuigreet cannot honour per-device layouts. Shipped as the README
|
||||
"Greeter keyboard layout" note + a RECOVERY.md pointer; entry deleted.
|
||||
|
||||
### Resolved (2026-07-10)
|
||||
|
||||
- **Docs site vs Markdown-in-repo** — **markdown in-repo for now**
|
||||
|
||||
@@ -19,6 +19,20 @@ Template:
|
||||
|
||||
---
|
||||
|
||||
## 2026-07-17 — Live triage with Bernardo: #114 ships as docs; rulings on #120/#134; #143 checked
|
||||
- **Task:** Bernardo triaged PROPOSED in-session: #148/#147/hardware-hints
|
||||
promoted (in flight as separate commits), #120 re-affirmed deferred, #134
|
||||
decided (Nomarchy carries unstable, home-scope) → NEXT, #114 = document only.
|
||||
- **Did:** README "Greeter keyboard layout" note + RECOVERY.md §2 pointer
|
||||
(#114); BACKLOG: #114 deleted, #134 rewritten into NEXT with the decided
|
||||
shape, Resolved-2026-07-17 block added; ROADMAP #145 cross-ref updated;
|
||||
rofi#2317 checked — still open, noted under #143.
|
||||
- **Verified:** V0 (docs/backlog only; prose reviewed in place).
|
||||
- **Pending:** #148 fix, #147 doctor drift check, hardware hints — this
|
||||
session; #127 boot -4 forensics (the incident is likely the *unclean* boot
|
||||
end at Jul 15 10:54:22, not the 12:51 window) being re-ground.
|
||||
- **Next suggestion:** build #134; close out #127 with the corrected timeline.
|
||||
|
||||
## 2026-07-16 — RETRACTION: the #127 diagnosis was as wrong as the test it replaced
|
||||
- **Task:** Bernardo said "do #147 first, then #146". Both dissolved under
|
||||
investigation, and taking them apart disproved the #127 *cause* I had shipped
|
||||
|
||||
Reference in New Issue
Block a user