{ lib, config, ... }: let cfg = config.presets.base.tree; in { options.presets.base.tree = { enable = lib.mkEnableOption "file tree"; }; config = lib.mkIf cfg.enable { keymaps = [ { key = "ft"; action = ":Neotree toggle"; } ]; plugins = { neo-tree = { enable = true; filesystem = { useLibuvFileWatcher = true; followCurrentFile.enabled = true; filteredItems.visible = true; }; popupBorderStyle = "rounded"; eventHandlers.file_opened = # lua '' function() require('neo-tree').close_all() end ''; }; which-key.registrations."f".t = "Tree"; }; }; }