1
0
Fork 0
mirror of https://github.com/nix-community/home-manager synced 2024-11-30 15:09:46 +01:00
home-manager/tests/modules/programs/lf/all-options.nix
Owen McGrath 2f2a4396c6
lf: add module
Adds 'programs.lf', configuration managment for lf, a terminal file
manager.

PR #1174
2020-04-23 22:41:22 +02:00

86 lines
1.4 KiB
Nix

{ config, lib, pkgs, ... }:
with lib;
let
pvScript = builtins.toFile "pv.sh" "cat $1";
expected = builtins.toFile "settings-expected" ''
set icons
set noignorecase
set ratios "2:2:3"
set tabstop 4
cmd added :echo "foo"
cmd multiline :{{
push gg
echo "bar"
push i
}}
cmd removed
map aa should-be-added
map ab
cmap <c-a> should-be-added
cmap <c-b>
set previewer ${pvScript}
map i ${"$"}${pvScript} "$f" | less -R
# More config...
'';
in {
config = {
programs.lf = {
enable = true;
cmdKeybindings = {
"<c-a>" = "should-be-added";
"<c-b>" = null;
};
commands = {
added = '':echo "foo"'';
removed = null;
multiline = ''
:{{
push gg
echo "bar"
push i
}}'';
};
extraConfig = ''
# More config...
'';
keybindings = {
aa = "should-be-added";
ab = null;
};
previewer = {
keybinding = "i";
source = pvScript;
};
settings = {
ignorecase = false;
icons = true;
tabstop = 4;
ratios = "2:2:3";
};
};
nixpkgs.overlays =
[ (self: super: { lf = pkgs.writeScriptBin "dummy-lf" ""; }) ];
nmt.script = ''
assertFileExists home-files/.config/lf/lfrc
assertFileContent home-files/.config/lf/lfrc ${expected}
'';
};
}