aboutsummaryrefslogtreecommitdiffstats
path: root/openspec/specs/fonts
diff options
context:
space:
mode:
authorGravatar Tom van der Lee <tom@vanderlee.com>2026-09-24 13:34:58 +0000
committerGravatar Tom van der Lee <tom@vanderlee.com>2026-09-24 13:34:58 +0000
commita70a7e5ed46e6671a64c94698f70ceb210eff7cd (patch)
treee8050b592a7d1f6b5d2cdd66ab052b5e9a31659b /openspec/specs/fonts
parent096e82ca45a5360b4b2dd084e0fb1a937a227a69 (diff)
downloaddesktop-flake-a70a7e5ed46e6671a64c94698f70ceb210eff7cd.tar.gz
desktop-flake-a70a7e5ed46e6671a64c94698f70ceb210eff7cd.tar.bz2
desktop-flake-a70a7e5ed46e6671a64c94698f70ceb210eff7cd.zip
Provision the JetBrains Mono Nerd Font via the shared home profile
Ghostty and Neovim both render glyphs (statusline icons, file-tree icons) that need a Nerd Font, and no font was previously provisioned at all. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Diffstat (limited to 'openspec/specs/fonts')
-rw-r--r--openspec/specs/fonts/spec.md28
1 files changed, 28 insertions, 0 deletions
diff --git a/openspec/specs/fonts/spec.md b/openspec/specs/fonts/spec.md
new file mode 100644
index 0000000..2b0f9ea
--- /dev/null
+++ b/openspec/specs/fonts/spec.md
@@ -0,0 +1,28 @@
1# fonts Specification
2
3## Purpose
4
5Provisions typefaces through the shared home-manager profile, starting with the JetBrains Mono Nerd Font, so that glyph-dependent terminal and editor UIs render correctly wherever that profile is activated.
6
7## Requirements
8
9### Requirement: JetBrains Mono Nerd Font is provisioned via the shared home profile
10The shared home-manager profile SHALL include the JetBrains Mono Nerd Font as a package, available wherever that profile is activated and the underlying package supports the current system.
11
12#### Scenario: Font available after activation
13- **WHEN** the shared home profile is activated on a system for which the JetBrains Mono Nerd Font package is supported
14- **THEN** the font is installed and resolvable by name by font-aware applications, without any additional manual installation step
15
16### Requirement: The font package is skipped, not failed, on unsupported systems
17On a system for which the JetBrains Mono Nerd Font package has no supported build, the package SHALL be omitted from the provisioned package set rather than causing profile evaluation or activation to fail.
18
19#### Scenario: Unsupported system excluded without failure
20- **WHEN** the shared home profile is evaluated on a system for which the JetBrains Mono Nerd Font package has no supported build
21- **THEN** the font package is excluded from the provisioned set and the rest of the profile evaluates and activates successfully
22
23### Requirement: The font is discoverable by fontconfig-based applications
24On a Linux activation of the shared home profile, fontconfig SHALL be configured to discover fonts installed through the profile's packages, so that fontconfig-based applications (including the terminal and editor provisioned elsewhere in this profile) can resolve the JetBrains Mono Nerd Font by name.
25
26#### Scenario: Font resolvable via fontconfig after activation
27- **WHEN** the shared home profile is activated on a Linux system, whether standalone or as part of a NixOS host
28- **THEN** a fontconfig-based application can enumerate and select the JetBrains Mono Nerd Font by name without additional manual font-cache configuration