feat(terminal): themed Kitty when OpenGL < 4.3 (#95)
All checks were successful
Check / eval (push) Successful in 3m41s
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:
@@ -144,66 +144,25 @@ 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 + two log shapes)
|
||||
### 95. Live ISO/install: Ghostty does not open on Acer (old GL) — **install fallback shipped**
|
||||
|
||||
**Machine:** Acer Aspire M5-481T only. **Dell XPS 9350 starts Ghostty fine**
|
||||
(Bernardo clarified 2026-07-15 — do not treat XPS as a Ghostty failure).
|
||||
**Machine:** Acer Aspire M5-481T only (Intel HD 4000, OpenGL **4.2**). XPS
|
||||
starts Ghostty fine. Generation ceiling documented in `docs/REQUIREMENTS.md`.
|
||||
|
||||
**Why this hardware fails:** the Aspire is Ivy Bridge–class (**Intel HD
|
||||
4000**, ~2012). Mesa’s max for that GPU is **OpenGL 4.2**; Ghostty requires
|
||||
**4.3**. That is a **generation ceiling**, not a missing package — no
|
||||
Nomarchy or Mesa tweak can make HD 4000 report 4.3 honestly. Documented in
|
||||
`docs/REQUIREMENTS.md`. The product response is a fallback terminal (or
|
||||
probe), not “fix Intel drivers.”
|
||||
**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"`.
|
||||
|
||||
On the Acer, Bernardo installed **kitty** by hand (worked) and launched
|
||||
Ghostty from that shell twice — **same box, two lifecycle points, two log
|
||||
shapes**:
|
||||
|
||||
**1 — Before Home Manager was properly built** (partial first boot after
|
||||
#123 bake failure). Explicit GPU floor:
|
||||
|
||||
```
|
||||
info(opengl): loaded OpenGL 4.2
|
||||
warning(opengl): OpenGL version is too old. Ghostty requires OpenGL 4.3
|
||||
warning(gtk_ghostty_surface): failed to initialize surface
|
||||
err=error.OpenGLOutdated
|
||||
warning(gtk_ghostty_surface): surface failed to initialize
|
||||
err=error.SurfaceError
|
||||
```
|
||||
|
||||
**2 — After home was built** (full HM generation). Silent-ish exit:
|
||||
|
||||
```
|
||||
warning(gtk_ghostty_application): setting GDK_DEBUG=
|
||||
warning(gtk_ghostty_application): setting GDK_DISABLE=gles-api,vulkan
|
||||
~ 9s )
|
||||
```
|
||||
|
||||
No `info(opengl):` line, no `OpenGLOutdated`, no `SurfaceError` — process
|
||||
ends after ~9s with only the two `GDK_*` warnings. Same Ghostty 1.3.1, same
|
||||
machine; the difference is **session/config state after HM**, not a second
|
||||
GPU. Likely still the GL 4.2 floor (or the same surface path) with different
|
||||
verbosity once the full Ghostty/GTK/Stylix config is in place — confirm
|
||||
before inventing a second root cause. Re-run post-HM with extra logging
|
||||
(`GDK_DEBUG`, Ghostty verbosity, `WAYLAND_DEBUG=1`) if the quiet path is
|
||||
still opaque.
|
||||
|
||||
**Product impact:** default terminal is Ghostty (`nomarchy.terminal`), so on
|
||||
this class of GPU SUPER+Return and the launcher entry are dead. Kitty as a
|
||||
manual workaround proved the session/Wayland path is fine.
|
||||
|
||||
**Fix direction:** treat the **GL ≥ 4.3 requirement** as the primary Acer
|
||||
blocker (soft-fallback, alternate default terminal when GL < 4.3, or
|
||||
installer/hardware probe that swaps the default). Do not leave SUPER+Return
|
||||
bound to a terminal that cannot map a surface. Optionally make the post-HM
|
||||
failure mode print the OpenGL reason again so the quiet log is not a
|
||||
support trap.
|
||||
|
||||
**Pass:** on the Acer (or a GL 4.2 / softGL stand-in), SUPER+Return opens a
|
||||
usable terminal without hand-editing `home.packages`; modern-GL machines
|
||||
(including the XPS) still get themed Ghostty by default. V2 softGL may cover
|
||||
the floor; V3 on the Acer is the real check.
|
||||
**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
|
||||
|
||||
|
||||
@@ -436,12 +436,12 @@ 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 Ghostty on Acer M5-481T only** — XPS is fine (clarified
|
||||
2026-07-15). On the Acer after the fix: SUPER+Return opens a usable
|
||||
terminal without hand-adding kitty. Today both attempts fail: (1)
|
||||
pre-HM → explicit `OpenGL 4.2` / `OpenGLOutdated`; (2) post-HM →
|
||||
quiet exit after `GDK_DISABLE=gles-api,vulkan`. Confirm post-fix
|
||||
both lifecycle points open a window. Modern-GL default remains Ghostty.
|
||||
- [ ] **#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.
|
||||
- [ ] **#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
|
||||
|
||||
@@ -19,6 +19,19 @@ Template:
|
||||
|
||||
---
|
||||
|
||||
## 2026-07-15 — #95: themed Kitty when OpenGL < 4.3 (this commit)
|
||||
- **Task:** Bernardo: when GL < 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
|
||||
kitty or `nomarchy.kitty.enable`. Installer runs `glxinfo` (mesa-demos on
|
||||
PATH) and, if OpenGL < 4.3, writes `settings.terminal = "kitty"` (+
|
||||
`terminalReason`) into theme-state. Docs/REQUIREMENTS + README rows.
|
||||
- **Verified:** V0 flake check; HM gen with `settings.terminal=kitty` builds
|
||||
— kitty.conf has Boreal colors, `TERMINAL=kitty`, Hyprland `$terminal=kitty`;
|
||||
default template HM has ghostty and **no** kitty package.
|
||||
- **Pending:** V3 Acer install; doctor/calendar still hardcode ghostty.
|
||||
- **Next suggestion:** #123 (HM pre-activate dconf) — still highest install pain.
|
||||
|
||||
## 2026-07-15 — docs/REQUIREMENTS.md (OpenGL floor + disk planning)
|
||||
- **Task:** Bernardo: why Acer lacks OpenGL 4.3; start documenting minimum
|
||||
system requirements including storage (Nix store + snapshots).
|
||||
|
||||
Reference in New Issue
Block a user