diff --git a/README.md b/README.md index 69f48f8..8af6fa0 100644 --- a/README.md +++ b/README.md @@ -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. diff --git a/assets/fonts/ducksans/README.md b/assets/fonts/ducksans/README.md index 0a63c40..d5790d3 100644 --- a/assets/fonts/ducksans/README.md +++ b/assets/fonts/ducksans/README.md @@ -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`. diff --git a/assets/kde/veilor-default.kdeglobals b/assets/kde/veilor-default.kdeglobals index aa74a01..56d14bb 100644 --- a/assets/kde/veilor-default.kdeglobals +++ b/assets/kde/veilor-default.kdeglobals @@ -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 diff --git a/kickstart/veilor-os.ks b/kickstart/veilor-os.ks index faf4860..805fa95 100644 --- a/kickstart/veilor-os.ks +++ b/kickstart/veilor-os.ks @@ -75,6 +75,7 @@ NetworkManager-wifi # fonts fontconfig freetype +fira-code-fonts # remove fluff -cups diff --git a/scripts/kde-theme-apply.sh b/scripts/kde-theme-apply.sh index 245b5d1..fc79809 100755 --- a/scripts/kde-theme-apply.sh +++ b/scripts/kde-theme-apply.sh @@ -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' + + monospace + Fira Code + sans-serif - DuckSans + Fira Code system-ui - DuckSans + Fira Code 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"