home/desktop-env: swap metis terminal from Ghostty to Foot#56
Merged
Conversation
ADR-028 named Ghostty as the metis terminal — inherited from the `tier3-desktop-deferred` stack and carried unexamined into the current decision. Operator's actual intent is Foot on Linux desktop hosts, with Ghostty reserved for macOS clients. Caught while drafting slice-4 research, before slice 4 itself landed. Source-side surgery: - `home/core/nixos/ghostty.nix` deleted. - `home/core/nixos/foot.nix` created (programs.foot.enable + a comment block flagging Stylix's hardcoded dpi-aware = "no" and the programs.foot.settings override-conflict path for future reference). - `home/core/nixos/niri.nix` keybind swap: `Mod+T → ghostty` → `Mod+Return → foot`. The key change is adjacent — `Mod+Return` is the tiling-WM canonical for terminal-launch (i3/sway). - `home/core/nixos/bundles/desktop-env.nix` import list + comments updated. - `home/core/nixos/dms.nix` one comment reference updated. - `home/core/shared/bundles/theming.nix` gains `foot.enable = true` in the central Stylix-target whitelist (preserves the single-source-of-truth for "where does Stylix theming live"). Inert on non-desktop hosts because Stylix gates the target on `programs.foot.enable`. Docs-side surgery: - ADR-028 Decision + Implementation references updated; appended a `## History` section documenting the swap and rationale (Foot is Wayland-native, lighter, aligned with niri's wlroots/smithay lineage; Ghostty retained for macOS clients via the unchanged `modules/core/shared/ghostty-terminfo.nix` Mac-client-rendering posture and a future `home/core/darwin/` Ghostty module for the mac-mini onboarding epic #11). Line 14's `tier3-desktop-deferred` tag reference is preserved verbatim — historical, not current. - `docs/decisions/README.md` ADR-028 index row. - `docs/nix-config-prd.md`, `CLAUDE.md`, `TODO.md` synced. `nix flake check` green. Peer-reviewed; three follow-on fixes folded back in: Stylix-target location moved from leaf module to shared theming bundle (preserving the explicit-whitelist pattern); foot.nix gains a defensive comment about Stylix's settings overrides; the ADR-028 History "files touched" list trimmed (git already records that). Bundle isn't composed into metis yet — that's slice 4 work. This PR amends bundle contents only; no currently-active host config changes. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
dannyfaris
enabled auto-merge (squash)
May 28, 2026 10:58
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Course-correction caught while drafting a slice-4 research prompt: ADR-028 named Ghostty as the metis terminal, inherited from the
tier3-desktop-deferredstack. Operator's actual intent is Foot on Linux desktop, Ghostty on macOS clients only. Slice 3 (the desktop-env scaffold, #44/#55) had landed with Ghostty; slice 4 had not, so the surgery is bounded.Adjacent change:
Mod+T → ghosttykeybind becomesMod+Return → foot(tiling-WM canonical for terminal-launch).Files (11)
Source:
home/core/nixos/ghostty.nixdeleted;home/core/nixos/foot.nixcreated.home/core/nixos/niri.nix— keybind + binary swap.home/core/nixos/bundles/desktop-env.nix— imports list + comments.home/core/nixos/dms.nix— one comment reference.home/core/shared/bundles/theming.nix—foot.enable = trueadded to the central Stylix whitelist (inert on non-desktop hosts because Stylix gates onprograms.foot.enable).Docs:
docs/decisions/ADR-028-...md— Decision + Implementation references swapped; appended a## Historysection with the swap rationale. Line 14's historicaltier3-desktop-deferredtag reference preserved verbatim.docs/decisions/README.md,docs/nix-config-prd.md,CLAUDE.md,TODO.mdsynced.Rationale (per ADR-028 History)
Foot is Wayland-native, lighter weight, and aligned with niri's wlroots/smithay lineage. Ghostty is retained for macOS clients via the unchanged
modules/core/shared/ghostty-terminfo.nixMac-client SSH-rendering posture, and a futurehome/core/darwin/module will install the Ghostty binary on mac-mini/mba (per epic #11). The Linux/Darwin split is now: Linux desktop = Foot; macOS client = Ghostty.Test plan
nix flake check --print-build-logsgreen on all three host configs.foot.nix, ADR-028 History file-list trimmed).nh os switchruns on metis:Mod+Returnlaunches Foot, Foot renders in metis palette via Stylix.Scope note
Bundle is not composed into metis yet — that's the upcoming
desktop-env/04-metis-compositionwork. This PR amends bundle contents only; no currently-active host config is touched.nix flake checkvalidates the bundle's structural integrity.🤖 Generated with Claude Code