feat(terminal): themed Kitty when OpenGL < 4.3 (#95)
All checks were successful
Check / eval (push) Successful in 3m41s

Ghostty needs OpenGL 4.3; older GPUs (Intel HD 4000) top out at 4.2.
Installer probes glxinfo and writes settings.terminal=kitty into
theme-state when below the floor. modules/home/kitty.nix enables Kitty
with the same palette, mono font, and opacity as Ghostty so the fallback
still looks like Nomarchy.

Default machines stay Ghostty-only (no kitty in the HM closure). Doctor
and calendar still invoke Ghostty by class — V3 on Acer for SUPER+Return.

Verified: V0 flake check; installer-safety; HM with terminal=kitty builds
themed kitty.conf + TERMINAL=kitty; default template has no kitty bin.
This commit is contained in:
2026-07-15 09:45:32 +01:00
parent a09399702d
commit 1e648b6c49
12 changed files with 179 additions and 71 deletions

View File

@@ -37,13 +37,24 @@ that generation top out at OpenGL 4.2. No package upgrade on the distro can
turn Ivy Bridge into a 4.3 device. Ghostty is choosing a modern GL baseline
on purpose.
**Until a fallback ships** (BACKLOG **#95** — alternate terminal or probe when
GL &lt; 4.3): machines below OpenGL 4.3 can still **install and run the
desktop**, but SUPER+Return / the default terminal entry will fail until the
user installs another terminal (e.g. kitty) or we ship an automatic fallback.
**Install-time fallback (shipped):** when `nomarchy-install` can probe OpenGL
(via `glxinfo` on the live session) and the version is **&lt; 4.3**, it writes
`settings.terminal = "kitty"` into the machines `theme-state.json`. Kitty is
enabled and **themed from the same JSON** as Ghostty (palette, mono font,
opacity). SUPER+Return then launches Kitty. Ghostty stays installed (doctor /
calendar classed windows still call it — those helpers may still fail on old
GL until a later follow-up).
If the probe fails (no display / headless VM), Ghostty remains the default —
do not guess. Existing installs can set the same by hand:
```json
"settings": { "terminal": "kitty" }
```
then `nomarchy-home` (or `home-manager switch`).
Other Wayland clients vary; Hyprland itself is usually fine on these GPUs.
The Ghostty floor is the one that bit real hardware first.
---

View File

@@ -404,6 +404,12 @@ Design/decision records and a running log of shipped work (items marked
decision rather than a drive-by. Proved to fail: dropping snapshot makes it
name the missing entry. **V3 pending** — that the apps *launch* needs real
hardware (HARDWARE-QUEUE, Acer M5-481T).
- ✓ **Kitty fallback when OpenGL &lt; 4.3 (#95 partial):** Ghostty needs GL 4.3;
Ivy Bridge HD 4000 tops at 4.2 (Acer M5-481T). Installer probes `glxinfo`
and writes `settings.terminal = "kitty"` when below the floor; `kitty.nix`
themes Kitty from the same theme-state as Ghostty (ANSI, mono font,
opacity). Default machines stay Ghostty-only in the HM closure. V3 on Acer
still needed; doctor/calendar still invoke Ghostty by class.
- ✓ **Mime defaults must name a present .desktop (#119):** same bug class as
#94, one key over. `text/plain` pointed at `code.desktop` (vscode), which
the live ISO never ships — GIO skips the missing entry and leaves no