+24
-6
home/emily/cli/yazi/default.nix
+24
-6
home/emily/cli/yazi/default.nix
···
1
1
{ config, lib, pkgs, ... }:
2
2
let
3
3
inherit (lib.trivial) importTOML;
4
+
inherit (lib) stringToCharacters;
5
+
inherit (builtins) elemAt;
4
6
in
5
7
{
6
8
programs.yazi = {
···
13
15
'';
14
16
settings = importTOML ./yazi.toml;
15
17
16
-
keymap = {
17
-
mgr.prepend_keymap = [
18
-
{
19
-
run = "cd ${config.xdg.userDirs.pictures}";
20
-
on = [ "g" "p" ]; }
21
-
];
18
+
keymap = let
19
+
genKeymapEntry = runCommand: keymapString:
20
+
{
21
+
run = "${runCommand}";
22
+
on = stringToCharacters keymapString;
23
+
};
24
+
directoryJump = targetDirectory: shortcut:
25
+
genKeymapEntry "cd ${targetDirectory}" shortcut;
26
+
in {
27
+
mgr.prepend_keymap = let
28
+
makeJumps = list:
29
+
map (a: directoryJump (elemAt a 0) (elemAt a 1)) list;
30
+
in [
31
+
# (directoryJump config.xdg.userDirs.pictures "gp")
32
+
# (directoryJump config.xdg.userDirs.videos "gv")
33
+
] ++ makeJumps (with config.xdg; [
34
+
[userDirs.pictures "gp"]
35
+
[userDirs.videos "gv"]
36
+
[userDirs.music "gm"]
37
+
[userDirs.documents "gD"]
38
+
["/home/emily/dev" "gw"]
39
+
]);
22
40
};
23
41
};
24
42
home.shellAliases = {