mirror of
https://github.com/outbackdingo/hyprcosmic.git
synced 2026-08-25 14:53:21 +00:00
`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.
51 lines
2.2 KiB
Plaintext
51 lines
2.2 KiB
Plaintext
/* rofi configuration and theme entry point for a HyprCosmic session.
|
|
*
|
|
* Below the configuration block this file is only an import list, because the
|
|
* order is the whole design:
|
|
*
|
|
* 1. palette.rasi default colours, under the names HyDE themes use
|
|
* 2. theme.rasi the installed HyDE theme's rofi.theme, if any
|
|
* 3. rules.rasi geometry and layout; no colour literals at all
|
|
* 4. local.rasi per-machine bits: the sidebar wallpaper, the icon theme
|
|
*
|
|
* Imports are read strictly in sequence and a later definition of a property
|
|
* wins over an earlier one. That is what lets step 2 recolour the launcher
|
|
* without step 3 knowing a theme exists, and step 4 point at a wallpaper
|
|
* without either of them knowing the path.
|
|
*
|
|
* There is no bridge step, unlike waybar: a HyDE rofi.theme defines exactly the
|
|
* names rules.rasi already references, so nothing needs mapping.
|
|
*
|
|
* Steps 2 and 4 are relative imports, which rofi resolves against the directory
|
|
* of the importing file. That is why this file belongs at
|
|
* ~/.config/rofi/config.rasi rather than under /usr/share: both are per-user.
|
|
* It is also the only name rofi loads on its own, so `rofi -show drun` from a
|
|
* keybinding picks all of this up with no arguments and no launcher script.
|
|
*
|
|
* Both relative imports must exist. A missing @import is an error rofi reports
|
|
* in place of the launcher, not a warning it skips, so `cosmic-conf` writes
|
|
* theme.rasi and local.rasi even when there is nothing to put in them -- empty,
|
|
* in which case the defaults from step 1 stand.
|
|
*/
|
|
|
|
configuration {
|
|
modi: "drun,run,window,filebrowser";
|
|
show-icons: true;
|
|
|
|
/* Nerd Font glyphs, as HyDE's style_1 has them: apps, terminal, files,
|
|
* windows. They render as tofu without a Nerd Font installed; see the font
|
|
* list in rules.rasi. */
|
|
display-drun: " ";
|
|
display-run: " ";
|
|
display-filebrowser: " ";
|
|
display-window: " ";
|
|
|
|
drun-display-format: "{name}";
|
|
window-format: "{w}{t}";
|
|
}
|
|
|
|
@import "/usr/share/hyprcosmic/rofi/palette.rasi"
|
|
@import "theme.rasi"
|
|
@import "/usr/share/hyprcosmic/rofi/rules.rasi"
|
|
@import "local.rasi"
|