From 455169b53705bae960a8944f851cff754a801ede Mon Sep 17 00:00:00 2001 From: tracer Date: Mon, 30 Mar 2026 23:47:46 +0200 Subject: [PATCH] Add nvim-tree configuration --- karabiner/karabiner.json | 5 ++- nvim/lua/tracer/plugins.lua | 16 +++++++- nvim/lua/tracer/plugins/nvim-tree.lua | 53 +++++++++++++++++++++++++++ 3 files changed, 72 insertions(+), 2 deletions(-) create mode 100644 nvim/lua/tracer/plugins/nvim-tree.lua diff --git a/karabiner/karabiner.json b/karabiner/karabiner.json index 21762a2..162182a 100644 --- a/karabiner/karabiner.json +++ b/karabiner/karabiner.json @@ -77,7 +77,10 @@ }, "to": [ { - "shell_command": "/Applications/kitty.app/Contents/MacOS/kitty --single-instance" + "key_code": "vk_none" + }, + { + "shell_command": "/Applications/kitty.app/Contents/MacOS/kitty --single-instance --directory ~" } ], "type": "basic" diff --git a/nvim/lua/tracer/plugins.lua b/nvim/lua/tracer/plugins.lua index a7f3a86..cf26f3a 100644 --- a/nvim/lua/tracer/plugins.lua +++ b/nvim/lua/tracer/plugins.lua @@ -1,3 +1,6 @@ +vim.g.loaded_netrw = 1 +vim.g.loaded_netrwPlugin = 1 + local ensure_packer = function() local fn = vim.fn local install_path = fn.stdpath("data") .. "/site/pack/packer/start/packer.nvim" @@ -110,7 +113,7 @@ require("packer").startup(function(use) "nvim-telescope/telescope.nvim", requires = { "nvim-lua/plenary.nvim", - "kyazdani42/nvim-web-devicons", + "nvim-tree/nvim-web-devicons", "nvim-telescope/telescope-live-grep-args.nvim", { "nvim-telescope/telescope-fzf-native.nvim", run = "make" }, }, @@ -119,6 +122,17 @@ require("packer").startup(function(use) end, }) + -- File tree sidebar for project-style navigation. + use({ + "nvim-tree/nvim-tree.lua", + requires = { + "nvim-tree/nvim-web-devicons", + }, + config = function() + require("tracer.plugins.nvim-tree") + end, + }) + -- Automatically set up your configuration after cloning packer.nvim -- Put this at the end after all plugins if packer_bootstrap then diff --git a/nvim/lua/tracer/plugins/nvim-tree.lua b/nvim/lua/tracer/plugins/nvim-tree.lua new file mode 100644 index 0000000..d6d9d61 --- /dev/null +++ b/nvim/lua/tracer/plugins/nvim-tree.lua @@ -0,0 +1,53 @@ +require("nvim-tree").setup({ + git = { + enable = false, + }, + hijack_cursor = true, + sync_root_with_cwd = false, + update_focused_file = { + enable = true, + update_root = false, + }, + view = { + width = 36, + preserve_window_proportions = true, + }, + renderer = { + group_empty = true, + icons = { + show = { + folder_arrow = false, + }, + }, + indent_markers = { + enable = true, + }, + }, + filters = { + dotfiles = false, + }, + actions = { + open_file = { + resize_window = true, + }, + }, +}) + +vim.keymap.set("n", "e", "NvimTreeToggle", { silent = true }) +vim.keymap.set("n", "t", ":NvimTreeFindFileToggle") + +local project_tree_group = vim.api.nvim_create_augroup("tracer_project_tree", { clear = true }) + +vim.api.nvim_create_autocmd("VimEnter", { + group = project_tree_group, + callback = function(data) + if vim.fn.argc() ~= 1 or vim.fn.isdirectory(data.file) ~= 1 then + return + end + + vim.cmd.cd(data.file) + vim.cmd.enew() + vim.cmd.bwipeout(data.buf) + require("nvim-tree.api").tree.open() + end, +})