diff --git a/config/default.nix b/config/default.nix index 41bb13f..0d49d84 100644 --- a/config/default.nix +++ b/config/default.nix @@ -18,6 +18,7 @@ # UI plugins ./plugins/ui/lualine.nix + ./plugins/ui/nvim-tree.nix ./plugins/ui/web-devicons.nix ./plugins/ui/whichkey.nix diff --git a/config/plugins/editor/sessions.nix b/config/plugins/editor/sessions.nix index 4230e55..a439794 100644 --- a/config/plugins/editor/sessions.nix +++ b/config/plugins/editor/sessions.nix @@ -1,6 +1,25 @@ -{ ... }: { +{...}: { plugins.auto-session = { enable = true; + + # fix: nvim-tree / auto-session + settings = { + log_level = "error"; + pre_save_cmds = [ + "NvimTreeClose" + ]; + post_save_cmds = [ + "NvimTreeOpen" + ]; + post_open_cmds = [ + "NvimTreeOpen" + ]; + post_restore_cmds = [ + "NvimTreeOpen" + ]; + cwd_change_handling = true; + }; + # https://github.com/zwhitchcox/auto-session-nvim-tree }; keymaps = [ diff --git a/config/plugins/ui/nvim-tree.nix b/config/plugins/ui/nvim-tree.nix new file mode 100644 index 0000000..e283662 --- /dev/null +++ b/config/plugins/ui/nvim-tree.nix @@ -0,0 +1,38 @@ +{...}: { + plugins.nvim-tree = { + enable = true; + + # Configure nvim-tree + extraOptions = { + # Set width of nvim-tree + view = { + width = 38; + }; + + # Hide dotfiles + filters = { + dotfiles = true; + }; + + # fix: nvim-tree / auto-session + sync_root_with_cwd = true; + actions = { + change_dir = { + global = true; + }; + }; + # https://github.com/zwhitchcox/auto-session-nvim-tree + }; + }; + + keymaps = [ + { + mode = ["n"]; + key = "e"; + action = "NvimTreeFocus"; + options = { + desc = "Focus NvimTree"; + }; + } + ]; +}