tofi: add module
This commit is contained in:
parent
f3506ba86c
commit
8ff7bb3f4d
8 changed files with 120 additions and 0 deletions
63
modules/programs/tofi.nix
Normal file
63
modules/programs/tofi.nix
Normal file
|
|
@ -0,0 +1,63 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
|
||||
cfg = config.programs.tofi;
|
||||
|
||||
in {
|
||||
meta.maintainers = [ hm.maintainers.henrisota ];
|
||||
|
||||
options.programs.tofi = {
|
||||
enable = mkEnableOption "Tofi, a tiny dynamic menu for Wayland";
|
||||
|
||||
package = mkPackageOption pkgs "tofi" { };
|
||||
|
||||
settings = mkOption {
|
||||
type = with types;
|
||||
let primitive = either (either str int) bool;
|
||||
in attrsOf primitive;
|
||||
default = { };
|
||||
example = literalExpression ''
|
||||
{
|
||||
background-color = "#000000";
|
||||
border-width = 0;
|
||||
font = "monospace";
|
||||
height = "100%";
|
||||
num-results = 5;
|
||||
outline-width = 0;
|
||||
padding-left = "35%";
|
||||
padding-top = "35%";
|
||||
result-spacing = 25;
|
||||
width = "100%";
|
||||
}
|
||||
'';
|
||||
description = ''
|
||||
Settings to be written to the Tofi configuration file.
|
||||
|
||||
See <https://github.com/philj56/tofi/blob/master/doc/config>
|
||||
for the full list of options.
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
assertions =
|
||||
[ (hm.assertions.assertPlatform "programs.tofi" pkgs platforms.linux) ];
|
||||
|
||||
home.packages = [ cfg.package ];
|
||||
|
||||
xdg.configFile."tofi/config" = mkIf (cfg.settings != { }) {
|
||||
text = let
|
||||
renderedSettings = generators.toINIWithGlobalSection { } {
|
||||
globalSection = cfg.settings;
|
||||
};
|
||||
in removeSuffix "\n\n" ''
|
||||
# Generated by Home Manager.
|
||||
|
||||
${renderedSettings}
|
||||
'';
|
||||
};
|
||||
};
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue