diff --git a/files/config/nvim/.vimrc b/files/config/nvim/.vimrc
deleted file mode 100644
index 93a7db0..0000000
--- a/files/config/nvim/.vimrc
+++ /dev/null
@@ -1,64 +0,0 @@
-" Load plugins
-filetype plugin indent on
-
-" Search
-set ignorecase
-set smartcase
-
-" Tab completion
-set wildmode=list:longest,full
-set wildignore=*.swp,*.o,*.so,*.exe,*.dll
-
-" Tab settings
-set ts=2
-set sw=2
-set expandtab
-
-" Hud
-set termguicolors
-syntax on
-"set colorcolumn=80
-set cursorline
-set fillchars=vert:\│
-set hidden
-set list
-set listchars=tab:»·,trail:·
-set nofoldenable
-set nowrap
-set number
-set relativenumber
-set ruler
-set scrolloff=3
-
-" Tags
-set tags=./tags;/,tags;/
-
-" Backup Directories
-set backupdir=~/.config/nvim/backups,.
-set directory=~/.config/nvim/swaps,.
-if exists('&undodir')
-  set undodir=~/.config/nvim/undo,.
-endif
-
-let mapleader=','
-let maplocalleader=','
-
-" Jump key
-nnoremap ` '
-nnoremap ' `
-
-" Change pane
-nnoremap <C-h> <C-w>h
-nnoremap <C-j> <C-w>j
-nnoremap <C-k> <C-w>k
-nnoremap <C-l> <C-w>l
-
-" Turn off search highlight
-nnoremap <localleader>/ :nohlsearch<CR>
-
-" Trim trailing whitespace
-nnoremap <localleader>tw m`:%s/\s\+$//e<CR>:nohlsearch<CR>``
-
-" Fancy macros
-nnoremap Q @q
-vnoremap Q :norm @q<cr>
diff --git a/files/config/nvim/init.lua b/files/config/nvim/init.lua
deleted file mode 100644
index 9aa1759..0000000
--- a/files/config/nvim/init.lua
+++ /dev/null
@@ -1,64 +0,0 @@
--- Load .vimrc
-vim.cmd([[runtime .vimrc]])
-
-vim.g.root_spec = { { ".git", ".jj", "lua" }, "lsp", "cwd" }
-
-vim.o.autochdir = true
-vim.o.fillchars = "stl: ,stlnc: ,eob:░"
-vim.o.list = false
-vim.o.scrolloff = 7
-vim.o.splitkeep = "screen"
-vim.o.updatetime = 50
-vim.o.timeout = true
-vim.o.timeoutlen = 10
-
--- Neovim specific settings
-vim.o.icm = "split"
--- vim.o.cia = 'kind,abbr,menu' wait for nightly to drop
-vim.o.foldtext = "v:lua.vim.treesitter.foldtext()"
-
-vim.opt.foldmethod = "expr"
-vim.opt.foldexpr = "nvim_treesitter#foldexpr()"
-
-vim.o.showmode = false
-
--- Use rg
-vim.o.grepprg = [[rg --glob "!.git" --no-heading --vimgrep --follow $*]]
-vim.opt.grepformat = vim.opt.grepformat ^ { "%f:%l:%c:%m" }
-
-vim.fn.sign_define(
-	"DiagnosticSignError",
-	{ text = "", hl = "DiagnosticSignError", texthl = "DiagnosticSignError", culhl = "DiagnosticSignErrorLine" }
-)
-vim.fn.sign_define(
-	"DiagnosticSignWarn",
-	{ text = "", hl = "DiagnosticSignWarn", texthl = "DiagnosticSignWarn", culhl = "DiagnosticSignWarnLine" }
-)
-vim.fn.sign_define(
-	"DiagnosticSignInfo",
-	{ text = "", hl = "DiagnosticSignInfo", texthl = "DiagnosticSignInfo", culhl = "DiagnosticSignInfoLine" }
-)
-vim.fn.sign_define(
-	"DiagnosticSignHint",
-	{ text = "", hl = "DiagnosticSignHint", texthl = "DiagnosticSignHint", culhl = "DiagnosticSignHintLine" }
-)
-
--- Make <Tab> work for snippets
-vim.keymap.set({ "i", "s" }, "<Tab>", function()
-	if vim.snippet.active({ direction = 1 }) then
-		return "<cmd>lua vim.snippet.jump(1)<cr>"
-	else
-		return "<Tab>"
-	end
-end, { expr = true })
-
--- Covenience macros
--- fix ellipsis: "..." -> "…"
-vim.keymap.set(
-	"n",
-	"<leader>fe",
-	"mc:%s,\\.\\.\\.,…,g<CR>:nohlsearch<CR>`c",
-	{ noremap = true, silent = true, desc = "... -> …" }
-)
--- fix spelling: just an easier finger roll on 40% keyboard
-vim.keymap.set("n", "<leader>fs", "1z=", { noremap = true, silent = true, desc = "Fix spelling under cursor" })
diff --git a/flake.lock b/flake.lock
index 865246b..1d1dad0 100644
--- a/flake.lock
+++ b/flake.lock
@@ -29,11 +29,11 @@
         "zig": "zig"
       },
       "locked": {
-        "lastModified": 1730568249,
-        "narHash": "sha256-+yyQ2ORHK61Q69mu9/fILlHmrPd3Es8zUTnqlwiMy3o=",
+        "lastModified": 1730688195,
+        "narHash": "sha256-wXK1/gOImxv0vHpUc9qgno1AY8c64j17/UFIiT7zH1g=",
         "ref": "refs/heads/main",
-        "rev": "d47df211b03894427592851b0be3b528ff8221ff",
-        "revCount": 7864,
+        "rev": "737dc0896dc266a98c889e122b5c900636e589c9",
+        "revCount": 7874,
         "type": "git",
         "url": "ssh://git@github.com/ghostty-org/ghostty"
       },
@@ -64,11 +64,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1730490306,
-        "narHash": "sha256-AvCVDswOUM9D368HxYD25RsSKp+5o0L0/JHADjLoD38=",
+        "lastModified": 1730633670,
+        "narHash": "sha256-ZFJqIXpvVKvzOVFKWNRDyIyAo+GYdmEPaYi1bZB6uf0=",
         "owner": "nix-community",
         "repo": "home-manager",
-        "rev": "1743615b61c7285976f85b303a36cdf88a556503",
+        "rev": "8f6ca7855d409aeebe2a582c6fd6b6a8d0bf5661",
         "type": "github"
       },
       "original": {
@@ -79,11 +79,11 @@
     },
     "nixpkgs": {
       "locked": {
-        "lastModified": 1730200266,
-        "narHash": "sha256-l253w0XMT8nWHGXuXqyiIC/bMvh1VRszGXgdpQlfhvU=",
+        "lastModified": 1730531603,
+        "narHash": "sha256-Dqg6si5CqIzm87sp57j5nTaeBbWhHFaVyG7V6L8k3lY=",
         "owner": "nixos",
         "repo": "nixpkgs",
-        "rev": "807e9154dcb16384b1b765ebe9cd2bba2ac287fd",
+        "rev": "7ffd9ae656aec493492b44d0ddfb28e79a1ea25d",
         "type": "github"
       },
       "original": {
diff --git a/home/common/nvim/default.nix b/home/common/nvim/default.nix
index 91d22e5..ac0578f 100644
--- a/home/common/nvim/default.nix
+++ b/home/common/nvim/default.nix
@@ -1,11 +1,5 @@
 { lib, pkgs, ... }:
 {
-  home.file.".config/nvim/.vimrc".source = ../../../files/config/nvim/.vimrc;
-
-  home.activation.mkdirNvimFolders = lib.hm.dag.entryAfter [ "writeBoundary" ] ''
-    mkdir -p $HOME/.config/nvim/backups $HOME/.config/nvim/swaps $HOME/.config/nvim/undo
-  '';
-
   programs.neovim = {
     enable        = true;
     defaultEditor = true;
@@ -15,7 +9,7 @@
     withPython3   = false;
     withRuby      = false;
 
-    extraLuaConfig = lib.fileContents ../../../files/config/nvim/init.lua;
+    extraLuaConfig = lib.fileContents ./init.lua;
     extraPackages = with pkgs; [
       black
       go
@@ -121,5 +115,4 @@
       }
     ];
   };
-
 }
diff --git a/home/common/nvim/init.lua b/home/common/nvim/init.lua
new file mode 100644
index 0000000..ba179d8
--- /dev/null
+++ b/home/common/nvim/init.lua
@@ -0,0 +1,93 @@
+-- vim.g.mapleader = "<space>"
+vim.g.maplocalleader = ','
+
+-- UI
+
+vim.opt.cursorline = true
+vim.opt.laststatus = 0
+vim.opt.number = true
+vim.opt.relativenumber = true
+vim.opt.ruler = true
+vim.opt.rulerformat = "" -- FIXME: fancify!
+vim.opt.rulerformat = "%36(%5l,%-6(%c%V%) %t%)%*"
+vim.opt.syntax = "on"
+vim.opt.termguicolors = true
+
+-- Search
+vim.opt.ignorecase = true
+vim.opt.smartcase = true
+
+-- Tab completion
+-- vim.opt.wildmode="list:longest,full"
+vim.opt.wildignore="*.swp,*.o,*.so,*.exe,*.dll"
+
+-- Whitespaces
+vim.opt.breakindent = true
+vim.opt.copyindent = true
+vim.opt.expandtab = true
+vim.opt.softtabstop = 2
+vim.opt.shiftround = true
+vim.opt.shiftwidth = 2
+vim.opt.smartindent = true
+vim.opt.tabstop = 2
+vim.opt.wrap = false
+vim.opt.list = true
+vim.opt.listchars="tab:»·,trail:·"
+
+-- Folds
+vim.opt.foldenable = false
+vim.opt.foldtext = "v:lua.vim.treesitter.foldtext()"
+vim.opt.foldmethod = "expr"
+vim.opt.foldexpr = "nvim_treesitter#foldexpr()"
+
+--
+
+vim.o.autochdir = true
+vim.o.fillchars = "stl: ,stlnc: ,eob:░,vert:│"
+vim.o.list = false
+vim.o.scrolloff = 7
+vim.o.splitkeep = "screen"
+vim.o.updatetime = 50
+vim.o.timeout = true
+vim.o.timeoutlen = 10
+vim.o.icm = "split"
+-- vim.o.cia = 'kind,abbr,menu' wait for nightly to drop
+
+vim.o.showmode = false
+
+
+-- Use rg
+vim.o.grepprg = [[rg --glob "!.jj" --glob "!.git" --no-heading --vimgrep --follow $*]]
+vim.opt.grepformat = vim.opt.grepformat ^ { "%f:%l:%c:%m" }
+
+vim.fn.sign_define(
+	"DiagnosticSignError",
+	{ text = "", hl = "DiagnosticSignError", texthl = "DiagnosticSignError", culhl = "DiagnosticSignErrorLine" }
+)
+vim.fn.sign_define(
+	"DiagnosticSignWarn",
+	{ text = "", hl = "DiagnosticSignWarn", texthl = "DiagnosticSignWarn", culhl = "DiagnosticSignWarnLine" }
+)
+vim.fn.sign_define(
+	"DiagnosticSignInfo",
+	{ text = "", hl = "DiagnosticSignInfo", texthl = "DiagnosticSignInfo", culhl = "DiagnosticSignInfoLine" }
+)
+vim.fn.sign_define(
+	"DiagnosticSignHint",
+	{ text = "", hl = "DiagnosticSignHint", texthl = "DiagnosticSignHint", culhl = "DiagnosticSignHintLine" }
+)
+
+-- Make <Tab> work for snippets
+vim.keymap.set({ "i", "s" }, "<Tab>", function()
+	if vim.snippet.active({ direction = 1 }) then
+		return "<cmd>lua vim.snippet.jump(1)<cr>"
+	else
+		return "<Tab>"
+	end
+end, { expr = true })
+
+vim.keymap.set({ "n" }, "<c-/>", "gcc", { remap = true })
+vim.keymap.set({ "v" }, "<c-/>", "gc", { remap = true })
+vim.keymap.set({ "n" }, "<c-_>", "gcc", { remap = true })
+vim.keymap.set({ "v" }, "<c-_>", "gc", { remap = true })
+vim.keymap.set("n", "zz", "zt", { remap = true })
diff --git a/home/common/nvim/mini.lua b/home/common/nvim/mini.lua
index 6d9fb19..cba6c4c 100644
--- a/home/common/nvim/mini.lua
+++ b/home/common/nvim/mini.lua
@@ -9,8 +9,8 @@
           require('mini.extra').setup()
           require('mini.icons').setup()
           require('mini.jump').setup()
-          require('mini.pairs').setup()
-          require('mini.statusline').setup()
+          -- require('mini.pairs').setup()
+          -- require('mini.statusline').setup()
           require('mini.surround').setup()
           require('mini.splitjoin').setup()
 
@@ -43,20 +43,35 @@
             }
           })
 
-          require('mini.pick').setup()
+          require('mini.pick').setup({
+            mappings = {
+              move_down = '<tab>'
+            },
+            options = {
+              use_cache = true
+            }
+          })
           MiniPick.registry.files_root = function(local_opts)
-            local root_patterns = { ".jj" }
+            local root_patterns = { ".jj", ".git" }
             local root_dir = vim.fs.dirname(vim.fs.find(root_patterns, { upward = true })[1])
-            local opts = { source = { cwd = root_dir } }
-            local_opts.cwd = root_dir -- nil?
+            local opts = { source = { cwd = root_dir, tool = "rg" } }
+            local_opts.cwd = root_dir
             return MiniPick.builtin.files(local_opts, opts)
           end
-          vim.keymap.set('n', '<space>/', "<cmd>Pick grep_live<cr>", opts("Live Grep"))
-          vim.keymap.set('n', '<space>F', "<cmd>Pick files tool='git'<cr>", opts("Find Files in CWD"))
-          vim.keymap.set('n', '<space>ff', "<cmd>Pick files<cr>", opts("Find Files"))
+          MiniPick.registry.grep_live_root = function(local_opts)
+            local root_patterns = { ".jj", ".git" }
+            local root_dir = vim.fs.dirname(vim.fs.find(root_patterns, { upward = true })[1])
+            local opts = { source = { cwd = root_dir } }
+            local_opts.cwd = root_dir
+            return MiniPick.builtin.grep_live(local_opts, opts)
+          end
+          vim.keymap.set('n', '<space>/', "<cmd>Pick grep_live_root<cr>", opts("Live Grep"))
+          vim.keymap.set('n', '<space>F', "<cmd>Pick files<cr>", opts("Find Files in CWD"))
+          vim.keymap.set('n', '<space>ff', "<cmd>Pick files_root<cr>", opts("Find Files"))
           vim.keymap.set('n', '<space>fr', "<cmd>Pick oldfiles<cr>", opts("Recent Files"))
           vim.keymap.set('n', '<space>b', "<cmd>Pick buffers<cr>", opts("Buffers"))
-          vim.keymap.set('n', '<tab>', "<cmd>Pick buffers<cr>", opts("Buffers"))
+          vim.keymap.set('n', '<space>d', "<cmd>Pick diagnostics<cr>", opts("Diagnostics"))
+          vim.keymap.set('n', '<tab>', "<cmd>Pick buffers include_current=false<cr>", opts("Buffers"))
           vim.keymap.set('n', "<space>'", "<cmd>Pick resume<cr>", opts("Last Picker"))
           vim.keymap.set('n', "<space>g", "<cmd>Pick git_commits<cr>", opts("Git Commits"))
 
diff --git a/home/common/utils.nix b/home/common/utils.nix
index 7d5fd93..0a608da 100644
--- a/home/common/utils.nix
+++ b/home/common/utils.nix
@@ -55,6 +55,8 @@
       arguments = [
         "--glob=!.git/*"
         "--glob=!.jj/*"
+        "--glob=!result/*"
+        "--glob=!target/*"
       ];
     };