Ship the per-user config, and recommend a font that exists

Two things anyone installing v0.1.0 would have hit.

The per-user files were listed in install-assets.sh as installed 'by
hand', which meant a clean machine logged in to a bare compositor with
nothing drawn on it and no binding that opened anything. They are now
installed as a skeleton under share/hyprcosmic/skel, laid out exactly as
they sit under ~/.config, and the session copies what is missing at
login. The audit still forces every file under config/ into exactly one
list, so this could not be quietly skipped again.

theme.css, theme.rasi and local.rasi are new and deliberately empty. They
are the relative @imports of style.css and config.rasi, and a missing
@import is fatal to both consumers rather than a warning they skip: GTK
fails the whole stylesheet, and rofi reports the error in place of the
launcher. Every colour they could define already has a default from
palette.css and palette.rasi, so empty is the correct content until
import-theme writes them. style.css's own header has promised 'a sibling
file we create at install time' since it was written; now there is one.

Recommends: nerd-fonts named a package that is in no Fedora repository,
so it could never be satisfied and the font never arrived -- silently,
which is what Recommends does when it cannot resolve. Fedora has no Nerd
Font at all: texlive-inconsolata-nerd-font lands under texmf-dist and
kitty's SymbolsNerdFont under /usr/lib64/kitty, and fontconfig scans
neither. Recommend font(notosansmono) instead, the fallback rules.rasi
already names, and say in the README how to install the glyphs by hand.
This commit is contained in:
2026-08-11 18:15:44 +07:00
parent 0e6dcdc606
commit 111f3ade7b
7 changed files with 169 additions and 31 deletions
+29
View File
@@ -0,0 +1,29 @@
/* Per-machine launcher settings for HyprCosmic.
*
* Empty until `hyprcosmic-conf import-theme --assets` writes it. It exists from
* the first session because config.rasi imports it, and a missing @import is an
* error rofi reports in place of the launcher rather than a warning it skips.
*
* It is the last of the four imports in config.rasi, so anything here wins; it
* is also overwritten by the next import run with --overwrite, so keep hand
* edits somewhere else.
*
* Two things belong in this file and nothing else does: values that name a path
* or a package on this particular machine, which neither /usr/share/hyprcosmic
* nor a HyDE theme file can know. Concretely, that is the icon theme and the
* sidebar image:
*
* configuration {
* icon-theme: "Tela-circle-purple", "Adwaita";
* }
*
* dummywall {
* background-image: url("/home/you/.local/share/wallpapers/hyprcosmic/current", height);
* }
*
* Both are shown commented out rather than set, because a default that named
* an icon theme nobody has installed, or a wallpaper path under someone else's
* home, would be worse than no default at all.
*/
* {}
+16
View File
@@ -0,0 +1,16 @@
/* Step 2 of the import chain in config.rasi: the installed HyDE theme's rofi
* colours.
*
* Empty on purpose, for the same reason as waybar's theme.css: a missing
* @import is an error rofi reports in place of the launcher rather than a
* warning it skips, so config.rasi can only import a file that is guaranteed
* to exist. palette.rasi already defines every name rules.rasi reads, so
* defining nothing here leaves a complete theme rather than an unresolved
* reference.
*
* `hyprcosmic-conf import-theme` overwrites this with the imported theme's
* rofi colours. Hand-written overrides belong in local.rasi, which is imported
* after the rules and is left alone unless --overwrite is passed.
*/
* {}
+18
View File
@@ -0,0 +1,18 @@
/* Step 2 of the import chain in style.css: the installed HyDE theme's
* waybar.theme.
*
* This copy is deliberately empty of rules. It is not a stub waiting to be
* written -- an empty file is the correct content when no theme has been
* imported, and it is what makes the other three steps work:
*
* - A missing @import is fatal in GTK, so style.css cannot name a file that
* might not exist. This one always exists, from the moment the session
* first starts.
* - Every colour the rules consume already has a default from palette.css
* and bridge-hyde.css, so a file that defines nothing leaves a complete
* stylesheet rather than an undefined name.
*
* `hyprcosmic-conf import-theme` overwrites this with the waybar.theme of the
* theme being imported. Anything written here by hand is lost at that point,
* which is why the per-user override belongs in style.css instead.
*/