diff --git a/modules/programs/broot.nix b/modules/programs/broot.nix index 72b2c6ea1..37d8b29c1 100644 --- a/modules/programs/broot.nix +++ b/modules/programs/broot.nix @@ -11,6 +11,7 @@ let brootConf = { verbs = cfg.verbs; skin = cfg.skin; + modal = cfg.modal; }; in { @@ -43,6 +44,8 @@ in { ''; }; + modal = mkEnableOption "modal (vim) mode"; + verbs = mkOption { type = with types; listOf (attrsOf (either bool str)); default = [ diff --git a/tests/default.nix b/tests/default.nix index 161b4897a..43f3b9f40 100644 --- a/tests/default.nix +++ b/tests/default.nix @@ -46,6 +46,7 @@ import nmt { ./modules/programs/autojump ./modules/programs/bash ./modules/programs/bat + ./modules/programs/broot ./modules/programs/browserpass ./modules/programs/dircolors ./modules/programs/direnv diff --git a/tests/modules/programs/broot/broot.nix b/tests/modules/programs/broot/broot.nix new file mode 100644 index 000000000..88b13974b --- /dev/null +++ b/tests/modules/programs/broot/broot.nix @@ -0,0 +1,43 @@ +{ config, lib, pkgs, ... }: + +with lib; + +{ + config = { + programs.broot = { + enable = true; + modal = true; + }; + + nixpkgs.overlays = + [ (self: super: { broot = pkgs.writeScriptBin "dummy" ""; }) ]; + + nmt.script = '' + assertFileExists home-files/.config/broot/conf.toml + assertFileContent home-files/.config/broot/conf.toml ${ + pkgs.writeText "broot.expected" '' + modal = true + + [[verbs]] + execution = ":parent" + invocation = "p" + + [[verbs]] + execution = "$EDITOR {file}" + invocation = "edit" + shortcut = "e" + + [[verbs]] + execution = "$EDITOR {directory}/{subpath}" + invocation = "create {subpath}" + + [[verbs]] + execution = "less {file}" + invocation = "view" + + [skin] + '' + } + ''; + }; +} diff --git a/tests/modules/programs/broot/default.nix b/tests/modules/programs/broot/default.nix new file mode 100644 index 000000000..4f991f68b --- /dev/null +++ b/tests/modules/programs/broot/default.nix @@ -0,0 +1 @@ +{ broot = ./broot.nix; }