rofi: add support to custom themes
If this commit now it is possible to define a custom theme directly
using Nix, like this:
```nix
{
programs.rofi.theme = {
"*" = {
background-color = "#000000";
border-color = "FFFFFF";
width = 512;
};
listview = {
cycle = true;
};
};
}
```
And this will be converted to the proper rasi format to be used in
rofi.
This commit is contained in:
parent
7313258b45
commit
98d030f723
6 changed files with 156 additions and 32 deletions
6
tests/modules/programs/rofi/custom-theme-config.rasi
Normal file
6
tests/modules/programs/rofi/custom-theme-config.rasi
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
configuration {
|
||||
location: 0;
|
||||
theme: "custom";
|
||||
xoffset: 0;
|
||||
yoffset: 0;
|
||||
}
|
||||
39
tests/modules/programs/rofi/custom-theme.nix
Normal file
39
tests/modules/programs/rofi/custom-theme.nix
Normal file
|
|
@ -0,0 +1,39 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
{
|
||||
config = {
|
||||
programs.rofi = {
|
||||
enable = true;
|
||||
|
||||
theme = with config.lib.formats.rasi; {
|
||||
"*" = {
|
||||
background-color = mkLiteral "#000000";
|
||||
foreground-color = mkLiteral "rgba ( 250, 251, 252, 100 % )";
|
||||
border-color = mkLiteral "#FFFFFF";
|
||||
width = 512;
|
||||
};
|
||||
|
||||
"#textbox-prompt-colon" = {
|
||||
expand = false;
|
||||
str = ":";
|
||||
margin = mkLiteral "0px 0.3em 0em 0em";
|
||||
text-color = mkLiteral "@foreground-color";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
nixpkgs.overlays =
|
||||
[ (self: super: { rofi = pkgs.writeScriptBin "dummy-rofi" ""; }) ];
|
||||
|
||||
nmt.script = ''
|
||||
assertFileContent \
|
||||
home-files/.config/rofi/config.rasi \
|
||||
${./custom-theme-config.rasi}
|
||||
assertFileContent \
|
||||
home-files/.local/share/rofi/themes/custom.rasi \
|
||||
${./custom-theme.rasi}
|
||||
'';
|
||||
};
|
||||
}
|
||||
13
tests/modules/programs/rofi/custom-theme.rasi
Normal file
13
tests/modules/programs/rofi/custom-theme.rasi
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
#textbox-prompt-colon {
|
||||
expand: false;
|
||||
margin: 0px 0.3em 0em 0em;
|
||||
str: ":";
|
||||
text-color: @foreground-color;
|
||||
}
|
||||
|
||||
* {
|
||||
background-color: #000000;
|
||||
border-color: #FFFFFF;
|
||||
foreground-color: rgba ( 250, 251, 252, 100 % );
|
||||
width: 512;
|
||||
}
|
||||
|
|
@ -1,4 +1,5 @@
|
|||
{
|
||||
rofi-valid-config = ./valid-config.nix;
|
||||
rofi-custom-theme = ./custom-theme.nix;
|
||||
rofi-assert-on-both-theme-and-colors = ./assert-on-both-theme-and-colors.nix;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -48,6 +48,9 @@ with lib;
|
|||
};
|
||||
};
|
||||
|
||||
nixpkgs.overlays =
|
||||
[ (self: super: { rofi = pkgs.writeScriptBin "dummy-rofi" ""; }) ];
|
||||
|
||||
nmt.script = ''
|
||||
assertFileContent \
|
||||
home-files/.config/rofi/config.rasi \
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue