Appearance (code font)
DevCentr uses a dedicated monospace face for the integrated terminal and other code panels. UI chrome stays on the normal UI font.
Choices
| Face | Role |
|---|---|
Default. No ligatures — better for tables, grids, and judging column alignment (Nu |
|
Supported alternate. Good coding face; ligatures optional at the OS/editor level, but DevCentr asks for the Mono family name as installed. |
|
Ligature-first coding mono. Not the terminal default; available when you want ligatures in editor workflows outside table-heavy panels. |
|
Parametric high-density mono. Supported alternate for users who prefer Iosevka’s width/spacing model. |
|
GitHub Monaspace (Neon) |
GitHub Next superfamily; Appearance stores Monaspace Neon as the primary cut. Install may register Argon, Radon, Krypton, or Xenon — any Monaspace variant counts as installed. |
Do not default to Cascadia Code (ligatures) for DevCentr terminals. Mono is the recommendation.
In the app
-
Open Appearance in the top bar.
-
Pick one of the five monospace faces above.
-
Preview the face in the editable sample below the radios; type to judge legibility (
0O,1lI, short D snippet). -
Toggle Show ligature demo line to show or hide
!= === → |>under the main preview. dlangui does not enable OpenType ligatures — the toggle is preview-only; terminal and editor ligatures follow OS/editor settings. Persisted ascodeFontLigaturesinui-settings.json. -
If the face is missing, Appearance warns you and offers Install selected font when
scriptbookis onPATH(runs the matchingexamples/fonts/install-*.cmkplaybook againstequivalence-rules-cli). Preview and install status refresh when the Scriptbook process finishes — no need to close the dialog. -
Optionally set repository terminal shell preference (
autoprefers Nushell whennuis onPATH) and Env refresh: inject and run. -
Save. Stored in
~/.dev-center/ui-settings.jsonascodeFontFace,codeFontLigatures,terminalShell, andenvRefreshAutoRun.
New terminal command blocks pick up the face immediately. Reopen panels that were already open if they still show the old face. The Auto-run checkbox on the terminal env chrome also persists envRefreshAutoRun.
Fallbacks if the chosen face is missing: the other recommended monos, then Consolas, then Courier New.
Install (Scriptbook)
Do not paste a host-specific winget line into this spec. PlayTime binds cli.install from equivalence-rules-cli.
| Face | Playbook in dev-centr/scriptbook |
|---|---|
Cascadia Mono |
|
JetBrains Mono |
|
Fira Code |
|
Iosevka |
|
GitHub Monaspace |
|
JetBrains Mono Nerd Font (glyph layer) has a playbook in the same folder but is not an Appearance radio — Nerd Fonts patches are a separate layer.
Today: Appearance Install selected font when scriptbook is on PATH — spawns scriptbook run … --catalog …/equivalence-rules-cli/catalog/tools.sdl with a platform --format (choco on Windows, brew on macOS, nix when available). Playbook and catalog resolve from the code hive or cached equivalence-rules-cli under ~/.dev-center. Button disabled with tooltip when scriptbook or paths are missing. After install completes, Appearance re-enumerates OS fonts and refreshes preview/status in place.
Preview
The Appearance dialog includes an editable monospace preview wearing the selected face:
-
Pangram line plus a short D sample (from team-docs font-lock). Typing updates immediately; radio changes re-apply the face.
-
Optional ligature demo line (
!= === → |>) controlled by Show ligature demo line. Cascadia Mono stays ligature-off by family choice; Fira Code and Monaspace are ligature-capable cuts but the preview still renders separate glyphs unless the host stack enables features elsewhere. -
If the face is not installed, a warning appears. Do not treat Consolas fallback as a preview of JetBrains Mono.
What this dialog is not
Appearance picks fonts for this app’s terminal and code panels. That is a settings dialog, not a font manager for the operating system or for web projects.
| Thing | Status | Why not in Appearance |
|---|---|---|
Full font manager app (Suitcase-style) |
Later, separate |
A manager for thousands of faces on the OS is a different product. We will extract a lockfile/library when we need project-wide font pins. |
Fontsource npm UI |
Later, different screen |
Fontsource is for web projects (self-host woff2 in the repo). Appearance installs OS fonts for DevCentr. |
Nerd Font as a radio next to JetBrains Mono |
Later, separate toggle |
Nerd Fonts patches an existing mono and adds icons; it is not a new typeface. |
Proprietary / Google Sans / Netflix Sans picker |
Never in DevCentr chrome |
Licensed commercial faces. Documented as examples. We do not ship or scrape the files. |
Real ligatures in the preview widget |
Blocked on toolkit |
dlangui EditBox does not apply OpenType ligatures. The checkbox only shows or hides a demo line. |
Roadmap (resume order): optional Nerd Font toggle; project Fontsource lock as its own library (DevCentr first client); clearer Install UX when Scriptbook is missing; more Windows winget catalog methods. Never: scraper hubs, vendoring commissioned fonts, a Suitcase clone branded as DevCentr.
Outside DevCentr
Strong recommendation for editors and terminal hosts used with Dev-Centr workflows:
-
Prefer Cascadia Mono (or JetBrains Mono) in Windows Terminal / Cursor / VS Code for terminal and editor monospace.
-
See Recommended Tools.