fonts: swap DuckSans → Fira Code (Fedora fira-code-fonts, SIL OFL 1.1)
This commit is contained in:
parent
50b9285d02
commit
f1b44bc218
5 changed files with 33 additions and 52 deletions
|
|
@ -15,8 +15,8 @@ install beyond the LUKS passphrase. Boot, set admin password, work.
|
|||
drop zone, kernel sysctl lockdown, NTS-authenticated NTP, DNS-over-TLS.
|
||||
- **3-mode power management** — `veilor-power save | mid | perf`, with
|
||||
AC/battery auto-switching via udev. Backed by tuned profiles.
|
||||
- **DuckSans system font** — variable font, single binary, low cache
|
||||
footprint.
|
||||
- **Fira Code system font** — programming ligatures, monospace
|
||||
consistency across UI + terminal. (DuckSans planned for v0.3.)
|
||||
- **Pure-black KDE color scheme** — `veilor-black` theme system-wide.
|
||||
- **LUKS2 + Secure Boot** — argon2id, aes-xts, btrfs subvolumes, zram swap
|
||||
(no disk swap, no cold-boot leak).
|
||||
|
|
@ -45,5 +45,5 @@ hardware.
|
|||
|
||||
## License
|
||||
|
||||
MIT — see [LICENSE](LICENSE). DuckSans font ships under its own license; see
|
||||
`assets/fonts/ducksans/README.md`.
|
||||
MIT — see [LICENSE](LICENSE). Fira Code ships from Fedora's
|
||||
`fira-code-fonts` package under SIL OFL 1.1.
|
||||
|
|
|
|||
|
|
@ -1,40 +1,15 @@
|
|||
# DuckSans
|
||||
# DuckSans (deferred to v0.3)
|
||||
|
||||
DuckSans is a variable font commissioned by DuckDuckGo from Fontwerk
|
||||
(designer: Christoph Koeberlin, based on the Pangea typeface, 2026).
|
||||
veilor-os v0.1–v0.2 ship **Fira Code** as system font (SIL OFL 1.1,
|
||||
shipped via Fedora `fira-code-fonts` package — no license friction).
|
||||
|
||||
## Why this font
|
||||
DuckSans (Fontwerk for DuckDuckGo, Koeberlin 2026) was the original
|
||||
target font. License terms TBD — likely Fontwerk commercial. Holding
|
||||
off until license verified and `.ttf` either:
|
||||
|
||||
- **Variable font** — single binary covers full weight + width axis.
|
||||
Smaller font cache, less I/O, fewer files for fontconfig to scan.
|
||||
- **Designed for text-heavy UIs** — high readability, good hinting.
|
||||
- **Recognizable but unbranded look** — distinctive without being kitsch.
|
||||
1. Confirmed redistributable → vendor here
|
||||
2. Forbids redistribution → kickstart fetches from authenticated
|
||||
source at build time
|
||||
|
||||
## Vendor instructions
|
||||
|
||||
Drop the font files here:
|
||||
|
||||
```
|
||||
assets/fonts/ducksans/DuckSans-VF.ttf
|
||||
```
|
||||
|
||||
(plus optional italic axis if shipped separately)
|
||||
|
||||
The build pipeline copies this directory to
|
||||
`/usr/share/fonts/ducksans/` in the installed system and runs
|
||||
`fc-cache -f`.
|
||||
|
||||
## License
|
||||
|
||||
DuckSans license terms TBD (Fontwerk commercial license vs SIL OFL).
|
||||
**Do not commit the .ttf to a public repo until license is verified.**
|
||||
|
||||
If license forbids redistribution, the kickstart `%post` should fetch
|
||||
the font from an authenticated source at build time. See
|
||||
`build/build-iso.sh` for the pull point.
|
||||
|
||||
## Fallback
|
||||
|
||||
If DuckSans is not present, fontconfig falls through to the system
|
||||
default sans-serif. veilor-os will still install and run; the system
|
||||
font will just not be DuckSans.
|
||||
Until then this directory is empty. fontconfig falls through to
|
||||
Fira Code via `/etc/fonts/conf.d/55-veilor-firacode.conf`.
|
||||
|
|
|
|||
|
|
@ -3,11 +3,11 @@ ColorScheme=veilor-black
|
|||
Name=veilor black
|
||||
AccentColor=104,107,111
|
||||
LastUsedCustomAccentColor=104,107,111
|
||||
font=DuckSans,11,-1,5,400,0,0,0,0,0,0,0,0,0,0,1
|
||||
fixed=DuckSans Mono,10,-1,5,400,0,0,0,0,0,0,0,0,0,0,1
|
||||
menuFont=DuckSans,11,-1,5,400,0,0,0,0,0,0,0,0,0,0,1
|
||||
smallestReadableFont=DuckSans,9,-1,5,400,0,0,0,0,0,0,0,0,0,0,1
|
||||
toolBarFont=DuckSans,10,-1,5,400,0,0,0,0,0,0,0,0,0,0,1
|
||||
font=Fira Code,11,-1,5,400,0,0,0,0,0,0,0,0,0,0,1
|
||||
fixed=Fira Code,10,-1,5,400,0,0,0,0,0,0,0,0,0,0,1
|
||||
menuFont=Fira Code,11,-1,5,400,0,0,0,0,0,0,0,0,0,0,1
|
||||
smallestReadableFont=Fira Code,9,-1,5,400,0,0,0,0,0,0,0,0,0,0,1
|
||||
toolBarFont=Fira Code,10,-1,5,400,0,0,0,0,0,0,0,0,0,0,1
|
||||
|
||||
[Icons]
|
||||
Theme=breeze-dark
|
||||
|
|
|
|||
|
|
@ -75,6 +75,7 @@ NetworkManager-wifi
|
|||
# fonts
|
||||
fontconfig
|
||||
freetype
|
||||
fira-code-fonts
|
||||
|
||||
# remove fluff
|
||||
-cups
|
||||
|
|
|
|||
|
|
@ -22,25 +22,30 @@ install -d -m 0755 /etc/xdg/kdedefaults
|
|||
install -m 0644 "$REPO/assets/kde/veilor-default.kdeglobals" /etc/xdg/kdedefaults/kdeglobals
|
||||
ok "kdedefaults written"
|
||||
|
||||
# ── DuckSans fontconfig default ──
|
||||
info "Setting DuckSans as default sans-serif"
|
||||
# ── Fira Code fontconfig default (monospace + UI) ──
|
||||
info "Setting Fira Code as default font"
|
||||
rpm -q fira-code-fonts &>/dev/null || dnf install -y fira-code-fonts
|
||||
install -d -m 0755 /etc/fonts/conf.d
|
||||
cat > /etc/fonts/conf.d/55-veilor-ducksans.conf << 'EOF'
|
||||
cat > /etc/fonts/conf.d/55-veilor-firacode.conf << 'EOF'
|
||||
<?xml version="1.0"?>
|
||||
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
|
||||
<fontconfig>
|
||||
<alias>
|
||||
<family>monospace</family>
|
||||
<prefer><family>Fira Code</family></prefer>
|
||||
</alias>
|
||||
<alias>
|
||||
<family>sans-serif</family>
|
||||
<prefer><family>DuckSans</family></prefer>
|
||||
<prefer><family>Fira Code</family></prefer>
|
||||
</alias>
|
||||
<alias>
|
||||
<family>system-ui</family>
|
||||
<prefer><family>DuckSans</family></prefer>
|
||||
<prefer><family>Fira Code</family></prefer>
|
||||
</alias>
|
||||
</fontconfig>
|
||||
EOF
|
||||
fc-cache -f /usr/share/fonts/ducksans 2>/dev/null || true
|
||||
ok "fontconfig: DuckSans = default sans-serif"
|
||||
fc-cache -f 2>/dev/null || true
|
||||
ok "fontconfig: Fira Code = default font"
|
||||
|
||||
# ── /etc/os-release branding ──
|
||||
info "Branding /etc/os-release"
|
||||
|
|
|
|||
Loading…
Reference in a new issue