Files
hyprcosmic/config/rofi/palette.rasi
T
gitops 1d3252aabd Give rofi a theme, in four layers
`rofi -show drun` came up unstyled. Three separate reasons, all of them
invisible: `import-theme` wrote ~/.config/rofi/theme.rasi, but rofi only ever
auto-loads config.rasi and nothing imported theme.rasi; theme.rasi holds a
HyDE palette and nothing else, no widget geometry at all; and no layout was
shipped anywhere for it to colour.

The layering mirrors what config/waybar already does, for the same reason --
a theme supplies colours, and the layout has to survive being handed a theme
that defines only some of them:

  1. palette.rasi   defaults, under the exact names HyDE themes use
  2. theme.rasi     the installed theme's rofi.theme, written by cosmic-conf
  3. rules.rasi     geometry and layout, with no colour literals at all
  4. local.rasi     per-machine paths: sidebar wallpaper, icon theme

Later imports win, so a theme recolours the launcher without rules.rasi
knowing a theme exists, and a machine points at its own wallpaper without
either of them knowing the path. Unlike waybar there is no bridge step: a HyDE
rofi.theme defines the names rules.rasi already references.

1 and 3 are shared and go under /usr/share/hyprcosmic/rofi. 2 and 4 must be
per-user, and config.rasi with them: it imports those two relatively, and rofi
resolves a relative @import against the importing file's directory.

rules.rasi is HyDE's style_1 with three deliberate departures, documented in
its header. HyDE computes the border width, radius and font in rofilaunch.sh
before invoking rofi; there is no launcher script here -- the keybinding runs
`rofi -show drun` bare -- so those are baked in. The sidebar image moves to
local.rasi because HyDE's ~/.cache/hyde/wall.thmb does not exist outside HyDE.
And dummywall gets `background-color: @main-bg` rather than transparent, so a
machine with no wallpaper set shows a panel instead of a hole.

The display-* labels are Nerd Font glyphs copied byte-for-byte out of
style_1.rasi. They are Private Use Area codepoints and do not survive being
retyped; verified as U+F303, U+F120, U+F07B, U+F2D0, each followed by a thin
space, and confirmed present in JetBrainsMono Nerd Font via
`fc-list :charset=`.

Verified with `rofi -dump-theme` and `-dump-config`: both exit 0 with empty
stderr, and the merged dump shows the Tokyo Night theme's main-bg beating the
palette default.
2026-08-10 11:47:43 +07:00

32 lines
1.2 KiB
Plaintext

/* Default colours for the HyprCosmic launcher.
*
* Only one name set is needed here, unlike waybar's palette.css. A HyDE theme's
* rofi.theme is a list of exactly these names -- main-bg, select-fg and so on --
* and rules.rasi references the same names directly, so there is nothing to
* bridge between. Importing a theme after this file simply re-points them.
*
* Defining them here is what makes a missing theme harmless: rules.rasi always
* resolves against something, so an unthemed launcher renders with these values
* instead of every widget falling back to rofi's stock grey.
*
* Values are Tokyo Night, matching cosmic-conf's own defaults.
*/
* {
/* Window and text. main-br is the window border, main-ex an accent HyDE
* uses for secondary text; rofi themes vary in how much of it they set. */
main-bg: #1a1b26e6;
main-fg: #c0caf5ff;
main-br: #bb9af7ff;
main-ex: #7dcfffff;
/* The highlighted row. */
select-bg: #7aa2f7ff;
select-fg: #1a1b26ff;
/* Named by HyDE's themes but unused by this layout. Defined so a theme that
* sets them parses, and so one that does not still resolves. */
separatorcolor: transparent;
border-color: transparent;
}