mirror of
https://github.com/nix-community/home-manager
synced 2024-11-26 21:19:45 +01:00
rofi: modes option
Adds `programs.rofi.modes` option. For the tiny convenience of supporting the custom mode syntax.
This commit is contained in:
parent
a46e702093
commit
e3d18bf7bf
3 changed files with 39 additions and 3 deletions
|
@ -99,6 +99,10 @@ let
|
||||||
else
|
else
|
||||||
cfg.theme;
|
cfg.theme;
|
||||||
|
|
||||||
|
modes =
|
||||||
|
map (mode: if isString mode then mode else "${mode.name}:${mode.path}")
|
||||||
|
cfg.modes;
|
||||||
|
|
||||||
in {
|
in {
|
||||||
options.programs.rofi = {
|
options.programs.rofi = {
|
||||||
enable = mkEnableOption
|
enable = mkEnableOption
|
||||||
|
@ -222,11 +226,34 @@ in {
|
||||||
description = "Path where to put generated configuration file.";
|
description = "Path where to put generated configuration file.";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
modes = mkOption {
|
||||||
|
default = null;
|
||||||
|
example = literalExpression ''
|
||||||
|
[
|
||||||
|
"drun"
|
||||||
|
"emoji"
|
||||||
|
"ssh"
|
||||||
|
{
|
||||||
|
name = "whatnot";
|
||||||
|
path = lib.getExe pkgs.rofi-whatnot;
|
||||||
|
}
|
||||||
|
]
|
||||||
|
'';
|
||||||
|
type = with types;
|
||||||
|
nullOr (listOf (either string (submodule {
|
||||||
|
options = {
|
||||||
|
name = mkOption { type = string; };
|
||||||
|
path = mkOption { type = string; };
|
||||||
|
};
|
||||||
|
})));
|
||||||
|
description = "Modes to enable. For custom modes see `man 5 rofi-script`.";
|
||||||
|
};
|
||||||
|
|
||||||
extraConfig = mkOption {
|
extraConfig = mkOption {
|
||||||
default = { };
|
default = { };
|
||||||
example = literalExpression ''
|
example = literalExpression ''
|
||||||
{
|
{
|
||||||
modi = "drun,emoji,ssh";
|
show-icons = true;
|
||||||
kb-primary-paste = "Control+V,Shift+Insert";
|
kb-primary-paste = "Control+V,Shift+Insert";
|
||||||
kb-secondary-paste = "Control+v,Insert";
|
kb-secondary-paste = "Control+v,Insert";
|
||||||
}
|
}
|
||||||
|
@ -274,6 +301,7 @@ in {
|
||||||
|
|
||||||
home.file."${cfg.configPath}".text = toRasi {
|
home.file."${cfg.configPath}".text = toRasi {
|
||||||
configuration = ({
|
configuration = ({
|
||||||
|
inherit modes;
|
||||||
font = cfg.font;
|
font = cfg.font;
|
||||||
terminal = cfg.terminal;
|
terminal = cfg.terminal;
|
||||||
cycle = cfg.cycle;
|
cycle = cfg.cycle;
|
||||||
|
|
|
@ -4,7 +4,7 @@ font: "Droid Sans Mono 14";
|
||||||
kb-primary-paste: "Control+V,Shift+Insert";
|
kb-primary-paste: "Control+V,Shift+Insert";
|
||||||
kb-secondary-paste: "Control+v,Insert";
|
kb-secondary-paste: "Control+v,Insert";
|
||||||
location: 0;
|
location: 0;
|
||||||
modi: "drun,emoji,ssh";
|
modes: [ "drun","emoji","ssh","foo:bar" ];
|
||||||
terminal: "/some/path";
|
terminal: "/some/path";
|
||||||
xoffset: 0;
|
xoffset: 0;
|
||||||
yoffset: 0;
|
yoffset: 0;
|
||||||
|
|
|
@ -9,13 +9,21 @@ with lib;
|
||||||
font = "Droid Sans Mono 14";
|
font = "Droid Sans Mono 14";
|
||||||
terminal = "/some/path";
|
terminal = "/some/path";
|
||||||
cycle = false;
|
cycle = false;
|
||||||
|
modes = [
|
||||||
|
"drun"
|
||||||
|
"emoji"
|
||||||
|
"ssh"
|
||||||
|
{
|
||||||
|
name = "foo";
|
||||||
|
path = "bar";
|
||||||
|
}
|
||||||
|
];
|
||||||
window = {
|
window = {
|
||||||
background = "background";
|
background = "background";
|
||||||
border = "border";
|
border = "border";
|
||||||
separator = "separator";
|
separator = "separator";
|
||||||
};
|
};
|
||||||
extraConfig = {
|
extraConfig = {
|
||||||
modi = "drun,emoji,ssh";
|
|
||||||
kb-primary-paste = "Control+V,Shift+Insert";
|
kb-primary-paste = "Control+V,Shift+Insert";
|
||||||
kb-secondary-paste = "Control+v,Insert";
|
kb-secondary-paste = "Control+v,Insert";
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in a new issue