Skip to content

home/desktop-env: swap metis terminal from Ghostty to Foot#56

Merged
dannyfaris merged 1 commit into
mainfrom
bugfix/metis-terminal-foot
May 28, 2026
Merged

home/desktop-env: swap metis terminal from Ghostty to Foot#56
dannyfaris merged 1 commit into
mainfrom
bugfix/metis-terminal-foot

Conversation

@dannyfaris

Copy link
Copy Markdown
Owner

Summary

Course-correction caught while drafting a slice-4 research prompt: ADR-028 named Ghostty as the metis terminal, inherited from the tier3-desktop-deferred stack. 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 → ghostty keybind becomes Mod+Return → foot (tiling-WM canonical for terminal-launch).

Files (11)

Source:

  • home/core/nixos/ghostty.nix deleted; home/core/nixos/foot.nix created.
  • 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.nixfoot.enable = true added to the central Stylix whitelist (inert on non-desktop hosts because Stylix gates on programs.foot.enable).

Docs:

  • docs/decisions/ADR-028-...md — Decision + Implementation references swapped; appended a ## History section with the swap rationale. Line 14's historical tier3-desktop-deferred tag reference preserved verbatim.
  • docs/decisions/README.md, docs/nix-config-prd.md, CLAUDE.md, TODO.md synced.

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.nix Mac-client SSH-rendering posture, and a future home/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-logs green on all three host configs.
  • Peer-reviewed via subagent; three follow-on fixes folded in (Stylix target relocated to shared whitelist, defensive comment about Stylix settings overrides in foot.nix, ADR-028 History file-list trimmed).
  • After slice 4 (metis composition) lands and nh os switch runs on metis: Mod+Return launches 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-composition work. This PR amends bundle contents only; no currently-active host config is touched. nix flake check validates the bundle's structural integrity.

🤖 Generated with Claude Code

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
dannyfaris enabled auto-merge (squash) May 28, 2026 10:58
@dannyfaris
dannyfaris merged commit b76d7f0 into main May 28, 2026
4 checks passed
@dannyfaris
dannyfaris deleted the bugfix/metis-terminal-foot branch May 28, 2026 11:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant