Skip to content

Commit

Permalink
tofi: add module
Browse files Browse the repository at this point in the history
  • Loading branch information
henrisota authored and rycee committed Apr 19, 2024
1 parent f3506ba commit 8ff7bb3
Show file tree
Hide file tree
Showing 8 changed files with 120 additions and 0 deletions.
6 changes: 6 additions & 0 deletions modules/lib/maintainers.nix
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,12 @@
githubId = 32838899;
name = "Daniel Wagenknecht";
};
henrisota = {
email = "[email protected]";
github = "henrisota";
githubId = "56848082";
name = "Henri Sota";
};
jack5079 = {
name = "Jack W.";
email = "[email protected]";
Expand Down
8 changes: 8 additions & 0 deletions modules/misc/news.nix
Original file line number Diff line number Diff line change
Expand Up @@ -1483,6 +1483,14 @@ in {
A new module is available: 'programs.fd'.
'';
}

{
time = "2024-04-19T09:23:52+00:00";
condition = hostPlatform.isLinux;
message = ''
A new module is available: 'programs.tofi'.
'';
}
];
};
}
1 change: 1 addition & 0 deletions modules/modules.nix
Original file line number Diff line number Diff line change
Expand Up @@ -228,6 +228,7 @@ let
./programs/tiny.nix
./programs/tmate.nix
./programs/tmux.nix
./programs/tofi.nix
./programs/topgrade.nix
./programs/translate-shell.nix
./programs/urxvt.nix
Expand Down
63 changes: 63 additions & 0 deletions modules/programs/tofi.nix
Original file line number Diff line number Diff line change
@@ -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}
'';
};
};
}
1 change: 1 addition & 0 deletions tests/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -207,6 +207,7 @@ in import nmtSrc {
./modules/programs/swayr
./modules/programs/terminator
./modules/programs/thunderbird
./modules/programs/tofi
./modules/programs/waybar
./modules/programs/wlogout
./modules/programs/wofi
Expand Down
12 changes: 12 additions & 0 deletions tests/modules/programs/tofi/basic-configuration.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# Generated by Home Manager.

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%
28 changes: 28 additions & 0 deletions tests/modules/programs/tofi/basic-configuration.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
{ config, pkgs, ... }: {
config = {
programs.tofi = {
enable = true;
package = pkgs.tofi;
settings = {
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%";
};
};

test.stubs.tofi = { };

nmt.script = ''
assertFileExists home-files/.config/tofi/config
assertFileContent home-files/.config/tofi/config \
${./basic-configuration.conf}
'';
};
}
1 change: 1 addition & 0 deletions tests/modules/programs/tofi/default.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{ tofi-basic-configuration = ./basic-configuration.nix; }

0 comments on commit 8ff7bb3

Please sign in to comment.