nixvim/config/filemanager.nix

74 lines
1.8 KiB
Nix

{ helpers, ... }:
{
plugins.neo-tree = {
enable = true;
window.mappings."h".__raw = ''
function(state)
local node = state.tree:get_node()
if node.type == "directory" and node:is_expanded() then
require("neo-tree.sources.filesystem").toggle_directory(state, node)
else
require("neo-tree.ui.renderer").focus_node(state, node:get_parent_id())
end
end
'';
window.mappings."l".__raw = ''
function(state)
local node = state.tree:get_node()
if node.type == "directory" then
if not node:is_expanded() then
require("neo-tree.sources.filesystem").toggle_directory(state, node)
elseif node:has_children() then
require("neo-tree.ui.renderer").focus_node(state, node:get_child_ids()[1])
end
end
end
'';
window.mappings."<space>" = "";
};
plugins.yazi = {
enable = true;
};
dependencies.yazi.enable = true;
keymaps = [
{
mode = [ "n" ];
key = "<leader>e";
action = helpers.mkRaw ''
function()
require("neo-tree.command").execute({ toggle = true })
end
'';
options = {
desc = "Toggle Neo-Tree";
};
}
{
mode = [ "n" ];
key = "<leader>cw";
action = "<cmd>Yazi cwd<cr>";
options = {
desc = "Open the file manager in nvim's working directory";
};
}
{
mode = [ "n" ];
key = "<c-up>";
action = "<cmd>Yazi toggle<cr>";
options = {
desc = "Resume the last yazi session";
};
}
{
mode = [ "n" ];
key = "<leader>y";
action = "<cmd>Yazi<cr>";
options = {
desc = "Open yazi at the current file";
};
}
];
}