dotfiles/.config/rofi/themes/settings.rasi
Marty Oehme 199fbdae4d Add rofi theme scaffolding
Themes are structured in two parts: layout and colorschemes. Both can be
set independently from each other. Layouts can make use of anchored
color values (@background, @background-focus,.. look at colorscheme
files for all available values). Colorscheme files then translate the
values into actual colorcodes.

That way, the colorscheme for all layouts can be changed with one
setting, or independently of each other. Layouts try to specify some
often used structures for rofi menus - right now there is a horizontal
list and a fullscreen options selection (which can make use of icon
fonts).

Any global theme changes should be done in settings.rasi. Any global
function changes can still be done in config.rasi. A rofi-powermenu has
been added as an example of using the theming structure. The powermenu
script loads rofi with the powermenu.rasi theme enabled. The powermenu
theme loads the fullscreen options layout, which in turn loads the
vertical list layout, which loads settings, which sets the correct
colors. Idea and original structure from:
https://gitlab.com/vahnrr/rofi-menus
2019-09-05 10:45:32 +02:00

40 lines
1.3 KiB
Text

/**
* Changing this file allows all other theme files to be affected since
* they all get their default settings from here.
* Idea cribbed from: https://gitlab.com/vahnrr/rofi-menus
*
* Structure (what goes where) should be set in specific theme files, which pull from more general layouts/ files
* Color (what has which accent) can be added with colorschemes/ files, and then set globally from here
*
* if a layout needs a *very* specific colorscheme it can also be set in the layouts/theme files
* but try to keep the two separated as much as possible, so we can adjust global options easily from here
*/
@import "colorschemes/gruvbox-dark.rasi"
* {
/* General */
text-font: "Iosevka Nerd Font";
text-font-mono: "Iosevka Nerd Font";
icon-font: "Iosevka Nerd Font";
icon-font-small: "Iosevka Nerd Font";
}
/**
* In case rofi gets started without a specific theme
* try to match the imported theme colors as best we
* can to any general purpose.
*/
* {
background-color: @background;
text-color: @foreground;
font: @text-font;
}
#element {
background-color: @background-nofocus;
text-color: @foreground-nofocus;
}
#element.selected {
background-color: @background-focus;
text-color: @foreground-focus;
}