# KDE theme + DuckSans + /etc/skel branding audit **Agent 7 of 9-agent wave, 2026-05-05.** ## Catalog: what's currently shipped | Component | Status | Path | |---|---|---| | Color scheme | shipped | `assets/kde/veilor-black.colors` → `/usr/share/color-schemes/` | | System kdeglobals | shipped | `assets/kde/veilor-default.kdeglobals` → `/etc/xdg/kdedefaults/kdeglobals` | | Breeze decoration override | shipped | `assets/kde/breezerc` → `/etc/xdg/breezerc` | | Plasma containment defaults | shipped | written by `30-apply-v03-theme.sh` → `/etc/xdg/kdedefaults/plasma-org.kde.plasma.desktop-appletsrc` | | Wallpaper (PNG+SVG) | shipped | `assets/wallpapers/veilor-black.{png,svg}` → `/usr/share/wallpapers/veilor-black/` | | SDDM theme | shipped (full QML) | `assets/sddm/veilor-black/` → `/usr/share/sddm/themes/veilor-black/` | | SDDM theme activation | shipped | `30-apply-v03-theme.sh` writes `/etc/sddm.conf.d/veilor-theme.conf` (Current=veilor-black) | | Konsole profile + colorscheme | shipped | `assets/konsole/veilor.{profile,colorscheme}` → `/usr/share/konsole/Veilor.*` + `/etc/xdg/konsolerc` | | Plymouth theme | shipped | `assets/plymouth/veilor/` | | os-release branding | shipped | PRETTY_NAME="veilor-os 0.5.27", LOGO=veilor-logo | | Fira Code fontconfig | shipped | `/etc/fonts/conf.d/55-veilor-firacode.conf` | | DuckSans font | DEFERRED — empty dir, README only | | ## Drift inside active configs - `overlay/etc/sddm.conf.d/veilor.conf` sets `[Theme] Current=breeze`. - `30-apply-v03-theme.sh` then writes `/etc/sddm.conf.d/veilor-theme.conf` with `Current=veilor-black`. - SDDM merges alphabetically → `veilor-theme.conf` wins (loads after). - Shipping a `Current=breeze` line in the overlay is misleading drift. ## Specific gaps preventing visual brand consistency 1. **No `/etc/skel/` whatsoever.** `overlay/etc/skel/` does not exist. All KDE config lives in `/etc/xdg/kdedefaults/` and `/etc/xdg/*rc`. Works for fresh boots, but the moment the user clicks anything in System Settings, KDE writes `~/.config/kdeglobals` and silently shadows the system defaults. **Zero per-user seeding** = one click away from losing all branding. 2. **No PRETTY_NAME secondaries.** `/etc/system-release`, `/etc/issue`, `/etc/issue.net`, `/etc/lsb-release` never written. `lsb_release -a` reports Fedora. KDE About dialog uses os-release (OK) but TTY login banner + many user-space tools read `/etc/system-release`. 3. **No `kwinrc` shipped.** Plasma 6 Wayland-specific defaults (TitlebarDoubleClick, Compositor backend, FocusPolicy, animation speed) not seeded. Vanilla Fedora KDE animations + click-to-focus prevail. 4. **No panel layout** (`plasma-org.kde.plasma.desktop-appletsrc` containment for panel). The file written by `30-apply-v03-theme.sh` only seeds `[Containments][1]` (desktop containment) for wallpaper. Actual Plasma panel containment (taskbar, system tray, clock, kickoff icon) is unseeded → users get stock Fedora panel with Fedora-blue kickoff button. 5. **DuckSans deferred but README claims it as the brand font.** `kdeglobals`, Konsole, SDDM all hardcode `Fira Code`. If DuckSans ever ships, ten files need synchronized edits. 6. **`overlay/etc/sddm.conf.d/veilor.conf` says `Current=breeze`** — internal contradiction with script-written `veilor-theme.conf`. Cosmetic but confusing. 7. **`kde-theme-apply.sh` has `warn()` undefined** (line 64) — calls `warn` but only `ok`/`info` defined. If os-release source ever goes missing, script crashes with `command not found`. ## Top 5 `/etc/skel/` additions (highest impact, lowest effort) 1. **`/etc/skel/.config/kdeglobals`** — copy of `assets/kde/veilor-default.kdeglobals`. Single highest-impact file: locks ColorScheme, AccentColor, Font, Icons.Theme, LookAndFeelPackage into the user's first-write file so System Settings interaction won't revert anything to Breeze defaults. 2. **`/etc/skel/.config/konsolerc`** — `[Desktop Entry] DefaultProfile=Veilor.profile` plus `[KonsoleWindow] ShowMenuBarByDefault=false`. Per-user override of system konsolerc; ensures first konsole launch is branded even if user's home pre-exists. 3. **`/etc/skel/.config/kwinrc`** — Plasma 6 Wayland defaults: `[Compositing] AnimationSpeed=0`, `[Windows] FocusPolicy=ClickToFocus`, `[Plugins] blurEnabled=false` (mirrors the no-animations Breeze override). 4. **`/etc/skel/.config/plasma-org.kde.plasma.desktop-appletsrc`** — full containment file with both desktop containment (wallpaper=veilor-black) AND panel containment (kickoff icon = `/usr/share/pixmaps/veilor-logo.svg`, panel height/position). Without this, the taskbar is vanilla Fedora. 5. **`/etc/skel/.local/share/konsole/Veilor.profile`** — local copy so user-local konsole sees the profile in its dropdown without needing `/usr/share/konsole/` walk. Pair with #2. **Bonus near-zero-effort:** write `/etc/system-release`, `/etc/issue`, and `/etc/lsb-release` in `kde-theme-apply.sh` to close the lsb_release/TTY-banner gap. And fix the undefined `warn()` in `kde-theme-apply.sh:64`.