feat(terminal): Kitty only — drop Ghostty (#95)
Some checks failed
Check / eval (push) Has been cancelled

Ghostty's OpenGL 4.3 floor broke the Acer (HD 4000 / 4.2). Dual-terminal
support (default Ghostty + install-time Kitty fallback) was more complexity
than it was worth.

- Remove ghostty.nix / nomarchy.ghostty.enable
- Kitty always installed and themed from theme-state
- Default nomarchy.terminal = kitty; SUPER+Return, doctor, calendar,
  what-changed use kitty --class=com.nomarchy.*
- Drop install-time glxinfo probe and mesa-demos on the installer
- Docs/REQUIREMENTS no longer list OpenGL 4.3 as a terminal floor

Verified: V0 flake check; option-docs; installer-safety; template HM has
kitty, no ghostty; menu/calendar emit classed kitty launches.
This commit is contained in:
2026-07-15 09:51:27 +01:00
parent 1e648b6c49
commit 545e40f4d9
32 changed files with 151 additions and 299 deletions

View File

@@ -27,9 +27,9 @@ in [`docs/ROADMAP.md`](../docs/ROADMAP.md); map in
### Live ISO / install hardware findings — Acer Aspire M5-481T + Dell XPS 9350
Bernardo, real installs 2026-07-1314 (photos of the install end screens and
post-boot sessions). Preserve separation: the installer bake failure, the
flake pin, and the Ghostty GL floor are different root causes even when they
show up on the same machine.
post-boot sessions). Preserve separation: the installer bake failure and the
flake pin are different root causes even when they show up on the same machine.
(Terminal / Ghostty-on-Acer → shipped as Kitty-only, #95.)
### 123. Installer HM pre-activate aborts on dconf / missing XDG_RUNTIME_DIR
@@ -144,26 +144,6 @@ template source. Pass = Chromium launches after installation and HTTP/HTTPS
mime defaults resolve to `chromium-browser.desktop` (and the intended live-ISO
browser posture is explicit).
### 95. Live ISO/install: Ghostty does not open on Acer (old GL) — **install fallback shipped**
**Machine:** Acer Aspire M5-481T only (Intel HD 4000, OpenGL **4.2**). XPS
starts Ghostty fine. Generation ceiling documented in `docs/REQUIREMENTS.md`.
**Shipped (this iteration):** installer probes `glxinfo`; if OpenGL < 4.3,
writes `settings.terminal = "kitty"` into theme-state. `modules/home/kitty.nix`
installs and **themes** Kitty from the same palette/font/opacity as Ghostty.
Default HM keeps Ghostty only (no kitty package). Manual override:
`settings.terminal = "kitty"` or `nomarchy.terminal = "kitty"`.
**Still open:**
- **V3** on the Acer: fresh install (or hand-set terminal + `nomarchy-home`)
→ SUPER+Return opens themed Kitty; Ghostty may still fail if launched by
name (expected).
- Doctor / calendar classed windows still hardcode `ghostty` — may fail on
the same GL floor (separate small follow-up if they matter on old HW).
- Live ISO session on HD 4000 still defaults to Ghostty until install (or a
live-side probe).
### 98. Boreal: button text renders black and is difficult to read
Audit GTK button foreground/background contrast under Boreal, including the
@@ -222,7 +202,7 @@ a staircase.
a real Nomarchy machine.** Chase the *fallback*, not one font's charset; this
was got wrong twice while filing, both times by checking a single font:
- The mono face is **per theme** (`ghostty.nix:22``t.fonts.mono` from the
- The mono face is **per theme** (`kitty.nix``t.fonts.mono` from the
theme JSON), not stylix's default. **Boreal — the default theme and the base
state — is `GeistMono Nerd Font`**; the other 23 themes are `JetBrainsMono
Nerd Font`. Any answer must hold for both.

View File

@@ -22,7 +22,7 @@ confidence, default identity, release bar) live in
ergonomic writer for the flake. Where a toggle can take effect without a
rebuild, it must (`--no-switch` + flip the running service).
4. **Beautiful.** One JSON themes the entire desktop coherently — Hyprland,
Waybar, Ghostty, btop, rofi, GTK/Qt, boot splash, greeter. Every new
Waybar, Kitty, btop, rofi, GTK/Qt, boot splash, greeter. Every new
surface follows the palette. Informative, self-gating Waybar modules
(they hide when irrelevant). No unthemed corner survives contact with
the theme switcher.

View File

@@ -436,12 +436,9 @@ the **T14s** (webcam case).
**without** running `home-manager switch` by hand. **Fail** = still
need the recovery one-liner, or GTK/nm-applet still wrong until a
manual switch (then the bake is still incomplete).
- [ ] **#95 themed Kitty fallback on Acer M5-481T** — after install from an
ISO that probes GL < 4.3 (or set `settings.terminal = "kitty"` +
`nomarchy-home`): SUPER+Return opens **Kitty** with Boreal (or current
theme) colors/font — not unthemed stock. `theme-state.json` should
show `"terminal": "kitty"`. Ghostty may still refuse if launched by
name (expected on HD 4000). XPS / modern-GL machines keep Ghostty.
- [ ] **#95 Kitty-only terminal on Acer M5-481T** — after rebuild/install
from main: SUPER+Return opens **themed Kitty**; System Doctor opens
a floating classed Kitty window. No Ghostty on PATH required.
- [ ] **#124 flake pin after main-ISO install** — on a machine installed
from a **main-built** ISO (post-fix): `~/.nomarchy/flake.nix`
nomarchy input must not re-resolve to a lagging `v1` that lacks

View File

@@ -19,7 +19,19 @@ Template:
---
## 2026-07-15 — #95: themed Kitty when OpenGL < 4.3 (this commit)
## 2026-07-15 — #95 complete: Kitty is the only terminal (this commit)
- **Task:** Bernardo: make kitty default and only option — drop dual-terminal
complexity (Ghostty failed on Acer OpenGL 4.2; fallback was more code).
- **Did:** Removed `ghostty.nix` and `nomarchy.ghostty.enable`. Kitty always
installed + themed; default `nomarchy.terminal = "kitty"`. Doctor, calendar,
what-changed → `kitty --class=com.nomarchy.*`. Dropped install-time GL
probe + mesa-demos. Updated README/REQUIREMENTS/OVERRIDES/TESTING/tools.
- **Verified:** V0 flake check; downstream-template-home builds with kitty,
no ghostty; installer-safety green.
- **Pending:** V3 Acer SUPER+Return + doctor float (HARDWARE-QUEUE).
- **Next suggestion:** #123 (HM pre-activate dconf).
## 2026-07-15 — #95: themed Kitty when OpenGL < 4.3 (superseded above)
- **Task:** Bernardo: when GL &lt; 4.3 automatically add kitty — and theme it.
- **Did:** `modules/home/kitty.nix` themes Kitty from theme-state (same
palette/font/opacity as Ghostty); enables when `nomarchy.terminal` is

View File

@@ -10,14 +10,12 @@ iteration would otherwise rediscover.
- **Doctor float V2:** `THEME=<slug> nix build --impure -f tools/doctor-float.nix`
— softGL Hyprland, `nomarchy-menu doctor`, asserts
`class=com.nomarchy.doctor` + `floating` + centered midpoints +
screenshots. Ghostty *does* start here under softGL (classed one-shot);
size often stays Ghosttys default 800×600 (client geometry wins over
the percent `size` windowrule).
- **theme-shot softGL cannot start Ghostty** — `btop.png` is best-effort
screenshots (Kitty `--class=…`). SoftGL may still struggle with a GPU
terminal; size can ignore percent windowrules if client geometry wins.
- **theme-shot softGL may not start Kitty** — `btop.png` is best-effort
(usually identical to desktop). Guest asserts on
`~/.config/btop/themes/nomarchy.theme` prove baking; the TUI look is
hardware/GL tier (HARDWARE-QUEUE). Doctor float is the counter-example
that a *classed* one-shot Ghostty can still map under softGL.
hardware/GL tier (HARDWARE-QUEUE).
- **Waybar `custom/doctor` tripwire:** status helper must invoke
`nomarchy-doctor` by **absolute store path** (waybar's env can miss
system PATH → `command -v … || exit 0` self-hides forever); empty
@@ -85,9 +83,9 @@ iteration would otherwise rediscover.
(`LIBGL_ALWAYS_SOFTWARE` on virtio-gpu) + `machine.screenshot()` QMP
dump — prototyped 2026-06-19, kept as the fallback for theme previews
(§ Visual theme picker).
- Hyprland/Ghostty need guest GL (`virtio-vga-gl`, `gl=on`) in
interactive QEMU or the session won't start; black screen ≈ missing GL
(docs/TESTING.md § gotchas).
- Hyprland needs guest GL (`virtio-vga-gl`, `gl=on`) in interactive QEMU
or the session won't start; black screen ≈ missing GL
(docs/TESTING.md § gotchas). Kitty is the sole terminal (no Ghostty).
- No KVM = slow, not broken; don't read slowness as failure.
## Known-broken / watchlist

View File

@@ -20,7 +20,7 @@ consumes the palette from the state JSON, never a side file.
## Design responsibilities
1. **Holistic design:** a theme spans Hyprland (borders, shadows,
animations), Waybar, Ghostty, btop, fastfetch, rofi, and wallpaper —
animations), Waybar, Kitty, btop, fastfetch, rofi, and wallpaper —
one coherent identity, no unthemed corner.
2. **Color theory:** create or adapt advanced palettes. Draw inspiration
from established aesthetics (Everforest, Nord, Gruvbox) or r/unixporn