Personal Nix setup
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

Remove which-key.nvim

+135 -130
+20 -3
flake.lock
··· 312 312 "type": "github" 313 313 } 314 314 }, 315 + "mini-nvim": { 316 + "flake": false, 317 + "locked": { 318 + "lastModified": 1725702691, 319 + "narHash": "sha256-x4hefKKUaV+9dkYPy7SSmFl9lXgoQg3N938EhgiYdv0=", 320 + "owner": "echasnovski", 321 + "repo": "mini.nvim", 322 + "rev": "8413efde2546be4dec9ea424bc6af346a14dffbe", 323 + "type": "github" 324 + }, 325 + "original": { 326 + "owner": "echasnovski", 327 + "repo": "mini.nvim", 328 + "type": "github" 329 + } 330 + }, 315 331 "nixos-hardware": { 316 332 "locked": { 317 333 "lastModified": 1723310128, ··· 484 500 "hardline-nvim": "hardline-nvim", 485 501 "lir-nvim": "lir-nvim", 486 502 "lspkind-nvim": "lspkind-nvim", 503 + "mini-nvim": "mini-nvim", 487 504 "nixpkgs": [ 488 505 "nixpkgs" 489 506 ], ··· 509 526 "which-key-nvim": "which-key-nvim" 510 527 }, 511 528 "locked": { 512 - "lastModified": 1725580703, 513 - "narHash": "sha256-nSgTVm3H7mjJvcldheROoP2Eg9KwHiUOo8zFKEyiXAQ=", 529 + "lastModified": 1725715693, 530 + "narHash": "sha256-pKAt+vv2oORIwxblMhGIZJzmKp2eMx5BAUz49KN7YP0=", 514 531 "owner": "kitten", 515 532 "repo": "system-nvim-plugins.nix", 516 - "rev": "cdce266713971844cf5e25a1219f3e566a26e026", 533 + "rev": "a1bd2931f7d0d6812d98d67a1319a32e2327ca04", 517 534 "type": "github" 518 535 }, 519 536 "original": {
+4 -2
modules/nvim/default.nix
··· 4 4 inherit (import ../../lib/colors.nix inputs) colors mkVimHardlineColors; 5 5 inherit (import ./theme.nix inputs) my-theme; 6 6 7 + importContents = /*lua*/ '' 8 + ''; 9 + 7 10 initContents = " 8 - \nlua <<EOF\n" + '' 11 + \nlua <<EOF\n" + /* lua */ '' 9 12 nix_bins = { 10 13 tsserver = '${pkgs.typescript-language-server}/bin/typescript-language-server', 11 14 eslintls = '${pkgs.vscode-langservers-extracted}/bin/vscode-eslint-language-server', ··· 47 50 popup-nvim 48 51 trouble-nvim 49 52 dressing-nvim 50 - which-key-nvim 51 53 oil-nvim 52 54 53 55 nvim-cmp
+111 -125
modules/nvim/init.lua
··· 159 159 160 160 -- unmap special keys 161 161 local key_opt = { noremap = true, silent = true } 162 - vim.api.nvim_set_keymap('', '<Space>', '<nop>', key_opt) 163 - vim.api.nvim_set_keymap('', '<F1>', '<nop>', key_opt) 164 - vim.api.nvim_set_keymap('i', '<F1>', '<nop>', key_opt) 162 + 163 + vim.keymap.set('', '<Space>', '<nop>', { noremap = true, silent = true }) 164 + vim.keymap.set('', '<F1>', '<nop>', { noremap = true, silent = true }) 165 165 166 166 -- period command in visual mode 167 - vim.api.nvim_set_keymap('x', '.', ':norm.<CR>', key_opt) 167 + vim.keymap.set('x', '.', '<cmd>norm .<cr>', { noremap = true, silent = true }) 168 168 169 169 -- match ctrl-c to escape 170 - vim.api.nvim_set_keymap('', '<c-c>', '<ESC>', key_opt) 171 - vim.api.nvim_set_keymap('!', '<c-c>', '<ESC>', key_opt) 170 + vim.keymap.set('', '<c-c>', '<esc>', { noremap = true, silent = true }) 171 + vim.keymap.set('!', '<c-c>', '<esc>', { noremap = true, silent = true }) 172 172 173 173 -- window controls 174 - vim.api.nvim_set_keymap('', '<c-w>,', ':vsp<CR>', key_opt) 175 - vim.api.nvim_set_keymap('', '<c-w>.', ':sp<CR>', key_opt) 174 + vim.keymap.set('', '<c-w>,', ':vsp<cr>', { noremap = true, silent = true }) 175 + vim.keymap.set('', '<c-w>.', ':sp<cr>', { noremap = true, silent = true }) 176 176 177 177 -- remap semicolon to colon 178 - vim.api.nvim_set_keymap('n', ';', ':', { noremap = true }) 178 + vim.keymap.set('n', ';', ':', { noremap = true, silent = true }) 179 179 180 180 -- destructive x-commands 181 - vim.api.nvim_set_keymap('', 'X', '"_d', key_opt) 182 - vim.api.nvim_set_keymap('n', 'XX', '"_dd', key_opt) 183 - vim.api.nvim_set_keymap('v', 'x', '"_d', key_opt) 184 - vim.api.nvim_set_keymap('n', 'x', 'v"_d', key_opt) 181 + vim.keymap.set('', 'X', '"_d', { noremap = true, silent = true }) 182 + vim.keymap.set('n', 'XX', '"_dd', { noremap = true, silent = true }) 183 + vim.keymap.set('v', 'x', '"_d', { noremap = true, silent = true }) 184 + vim.keymap.set('n', 'x', 'v"_d', { noremap = true, silent = true }) 185 185 186 186 -- clipboard controls 187 - vim.api.nvim_set_keymap('x', 'Y', '"+y', key_opt) 188 - vim.api.nvim_set_keymap('x', '<M-c>', '"+y', key_opt) 189 - vim.api.nvim_set_keymap('x', '<M-v>', '"+p', key_opt) 190 - vim.api.nvim_set_keymap('n', '<M-v>', '"+P', key_opt) 187 + vim.keymap.set('x', 'Y', '"+y', { noremap = true, silent = true }) 188 + vim.keymap.set('x', '<m-c>', '"+y', { noremap = true, silent = true }) 189 + vim.keymap.set('x', '<m-v>', '"+p', { noremap = true, silent = true }) 190 + vim.keymap.set('n', '<m-v>', '"+P', { noremap = true, silent = true }) 191 191 192 192 -- indentation in visual mode 193 - vim.api.nvim_set_keymap('v', '<', '<gv', key_opt) 194 - vim.api.nvim_set_keymap('v', '>', '>gv', key_opt) 193 + vim.keymap.set('v', '<', '<gv', { noremap = true, silent = true }) 194 + vim.keymap.set('v', '>', '>gv', { noremap = true, silent = true }) 195 195 196 196 -- swap visual gj, gk, with jk 197 - vim.api.nvim_set_keymap('n', 'j', [[v:count == 0 ? 'gj' : 'j']], { noremap = true, silent = true, expr = true }) 198 - vim.api.nvim_set_keymap('n', 'k', [[v:count == 0 ? 'gk' : 'k']], { noremap = true, silent = true, expr = true }) 199 - vim.api.nvim_set_keymap('x', 'j', [[v:count == 0 ? 'gj' : 'j']], { noremap = true, silent = true, expr = true }) 200 - vim.api.nvim_set_keymap('x', 'k', [[v:count == 0 ? 'gk' : 'k']], { noremap = true, silent = true, expr = true }) 197 + vim.keymap.set({'n', 'x'}, 'j', [[v:count == 0 ? 'gj' : 'j']], { noremap = true, silent = true, expr = true }) 198 + vim.keymap.set({'n', 'x'}, 'k', [[v:count == 0 ? 'gk' : 'k']], { noremap = true, silent = true, expr = true}) 201 199 202 200 -- macros per line 203 - vim.api.nvim_set_keymap('v', '@', ':<C-u>execute ":\'<,\'>normal @".nr2char(getchar())<CR>', key_opt) 201 + vim.keymap.set('v', '@', ':<C-u>execute ":\'<,\'>normal @".nr2char(getchar())<CR>', { noremap = true, silent = true }) 202 + 203 + -- fold controls 204 + vim.keymap.set('n', '<bar>', '<cmd>norm zc<cr>', { noremap = true, silent = true }) 205 + vim.keymap.set('n', '<bslash>', '<cmd>norm za<cr>', { noremap = true, silent = true }) 204 206 205 207 -- set space as leader 206 208 vim.g.mapleader = ' ' 207 209 vim.g.maplocalleader = ' ' 208 210 209 - -- which-key 210 - local key = require('which-key') 211 - 212 - key.setup { 213 - icons = { 214 - breadcrumb = " ", 215 - separator = "→", 216 - group = "+", 217 - }, 218 - popup_mappings = { 219 - scroll_down = '<c-f>', 220 - scroll_up = '<c-d>', 221 - }, 222 - } 223 - 224 - key.register({ 225 - -- buffer shortcuts 226 - ["<leader>h"] = { "<cmd>bp<cr>", "Previous Buffer" }, 227 - ["<leader>l"] = { "<cmd>bn<cr>", "Next Buffer" }, 228 - ["<leader>j"] = { "<cmd>enew<cr>", "New Buffer" }, 229 - ["<leader>j"] = { "<cmd>bp <bar> bd #<cr>", "Close Buffer" }, 230 - -- fold controls 231 - ["<bar>"] = { "<cmd>normal zc<cr>", "Close Fold" }, 232 - ["<bslash>"] = { "<cmd>normal za<cr>", "Open Fold" }, 233 - -- file explorer 234 - ["-"] = { require('oil').open, "Open File Explorer" }, 235 - -- highlights 236 - ["<C-e>"] = { function() print(vim.inspect(vim.treesitter.get_captures_at_cursor(0))) end, "Output TS capture" }, 237 - }) 211 + -- buffer controls 212 + vim.keymap.set('n', '<leader>h', '<cmd>bp<cr>', { desc = 'Previous Buffer' }) 213 + vim.keymap.set('n', '<leader>l', '<cmd>bn<cr>', { desc = 'Next Buffer' }) 214 + vim.keymap.set('n', '<leader>j', '<cmd>enew<cr>', { desc = 'New Buffer' }) 215 + vim.keymap.set('n', '<leader>k', '<cmd>bp <bar> bd #<cr>', { desc = 'Close Buffer' }) 238 216 239 217 -- golden_size 240 218 local function ignore_trouble_window() ··· 286 264 }, 287 265 } 288 266 289 - -- global leader keybindings 290 - local telescope_builtins = require('telescope.builtin') 291 - local telescope_themes = require('telescope.themes') 267 + vim.keymap.set('n', '<leader>b', function() 268 + require('telescope.builtin').buffers() 269 + end, { desc = 'Workspace Search' }) 270 + 271 + vim.keymap.set('n', '<leader>f', function() 272 + require('telescope.builtin').live_grep() 273 + end, { desc = 'Workspace Search' }) 292 274 293 - local function project_files() 275 + vim.keymap.set('n', '<leader>n', function() 276 + require('telescope.builtin').lsp_document_symbols( 277 + require('telescope.themes').get_ivy({ 278 + ignore_symbols = { 'variable', 'constant', 'property' }, 279 + }) 280 + ) 281 + end, { desc = 'Document Symbols' }) 282 + 283 + vim.keymap.set('n', '<leader>N', function() 284 + require('telescope.builtin').lsp_dynamic_workspace_symbols( 285 + require('telescope.themes').get_ivy({ 286 + ignore_symbols = { 'variable', 'constant', 'property' }, 287 + }) 288 + ) 289 + end, { desc = 'Workspace Symbols' }) 290 + 291 + vim.keymap.set('n', '<leader>o', function() 292 + local telescope_builtins = require('telescope.builtin') 294 293 vim.fn.system('git rev-parse --is-inside-work-tree') 295 294 if vim.v.shell_error == 0 then 296 295 telescope_builtins.git_files() 297 296 else 298 297 telescope_builtins.find_files() 299 298 end 300 - end 301 - 302 - local function document_symbols() 303 - telescope_builtins.lsp_document_symbols(telescope_themes.get_ivy({ 304 - ignore_symbols = { 'variable', 'constant', 'property' }, 305 - })) 306 - end 307 - 308 - local function workspace_symbols(opts) 309 - telescope_builtins.lsp_dynamic_workspace_symbols(telescope_themes.get_ivy({ 310 - ignore_symbols = { 'variable', 'constant', 'property' }, 311 - })) 312 - end 313 - 314 - key.register({ 315 - ["<leader>q"] = { "<cmd>Trouble qflist toggle<cr>", "Quickfix List" }, 316 - ["<leader>p"] = { "<cmd>Trouble loclist toggle<cr>", "Location List" }, 317 - ["<leader>d"] = { "<cmd>Trouble diagnostics toggle filter.buf=0<cr>", "Document Diagnostics" }, 318 - ["<leader>D"] = { "<cmd>Trouble diagnostics toggle<cr>", "Workspace Diagnostics" }, 319 - ["<leader>o"] = { project_files, "Search Files in Workspace" }, 320 - ["<leader>f"] = { telescope_builtins.live_grep, "Search in Files" }, 321 - ["<leader>n"] = { document_symbols, "Document Symbols" }, 322 - ["<leader>N"] = { workspace_symbols, "Workspace Symbols" }, 323 - ["<leader>b"] = { telescope_builtins.buffers, "Search for Buffer" }, 324 - }) 299 + end, { desc = 'Workspace Files' }) 325 300 326 301 -- define signs 327 302 vim.fn.sign_define("DiagnosticSignError", { text = "●", texthl = "DiagnosticSignError" }) ··· 347 322 severity_sort = true, 348 323 }, 349 324 }) 325 + 326 + vim.keymap.set('n', 'gk', vim.diagnostic.open_float, { desc = 'Show Diagnostic' }) 327 + vim.keymap.set('n', '[d', vim.diagnostic.goto_prev, { desc = 'Previous Diagnostic' }) 328 + vim.keymap.set('n', ']d', vim.diagnostic.goto_next, { desc = 'Next Diagnostic' }) 350 329 351 330 -- customise hover window size 352 331 vim.lsp.handlers["textDocument/hover"] = vim.lsp.with(vim.lsp.handlers.hover, { ··· 382 361 return vim.api.nvim_buf_get_var(buf, 'lsp:keys_attached') 383 362 end) ~= true then 384 363 vim.api.nvim_buf_set_var(buf, 'lsp:keys_attached', true) 385 - key.register({ 386 - g = { 387 - d = { vim.lsp.buf.definition, "Go to Definition" }, 388 - D = { vim.lsp.buf.declaration, "Go to Declaration" }, 389 - y = { vim.lsp.buf.type_definition, "Go to Type Definition" }, 390 - i = { vim.lsp.buf.implementation, "Go to Implementation" }, 391 - r = { "<cmd>Trouble lsp toggle<cr>", "Show References" }, 392 - N = { vim.lsp.buf.rename, "Rename" }, 393 - f = { vim.lsp.buf.code_action, "Code Action" }, 394 - k = { vim.diagnostic.open_float, "Show Diagnostic" }, 395 - }, 396 - K = { vim.lsp.buf.hover, "Hover" }, 397 - ["C-k"] = { vim.lsp.buf.signature_help, "Signature Help" }, 398 - ["[d"] = { vim.diagnostic.goto_prev, "Previous Diagnostic "}, 399 - ["]d"] = { vim.diagnostic.goto_prev, "Next Diagnostic "}, 400 - }, { buffer = buf }) 364 + 365 + vim.keymap.set('n', 'gd', vim.lsp.buf.definition, { desc = 'Go to definition', buffer = buf }) 366 + vim.keymap.set('n', 'gD', vim.lsp.buf.declaration, { desc = 'Go to declaration', buffer = buf }) 367 + vim.keymap.set('n', 'gy', vim.lsp.buf.type_definition, { desc = 'Go to type definition', buffer = buf }) 368 + vim.keymap.set('n', 'gi', vim.lsp.buf.implementation, { desc = 'Go to implementation', buffer = buf }) 369 + vim.keymap.set('n', 'gn', vim.lsp.buf.rename, { desc = 'Rename', buffer = buf }) 370 + vim.keymap.set('n', 'gf', vim.lsp.buf.code_action, { desc = 'Code Actions', buffer = buf }) 371 + vim.keymap.set('n', 'gr', '<cmd>Trouble lsp open<cr>', { desc = 'Show references', buffer = buf }) 372 + vim.keymap.set('n', 'K', vim.lsp.buf.hover, { buffer = buf }) 373 + vim.keymap.set('n', '<C-k>', vim.lsp.buf.signature_help, { buffer = buf }) 374 + vim.keymap.set('n', '<C-k>', vim.lsp.buf.signature_help, { buffer = buf }) 401 375 end 402 376 end 403 377 ··· 573 547 }, 574 548 } 575 549 550 + vim.keymap.set('n', '<c-e', function() 551 + print(vim.inspect(vim.treesitter.get_captures_at_cursor(0))) 552 + end, { desc = 'Output Treesitter Token' }) 553 + 576 554 -- lspkind 577 555 require('lspkind').init { 578 556 mode = 'symbol_text', 579 557 preset = 'codicons', 580 558 } 581 559 560 + -- file browser 582 561 require("oil").setup({ 583 562 default_file_explorer = true, 584 563 delete_to_trash = false, ··· 627 606 ssh = { border = 'none', }, 628 607 keymaps_help = { border = 'none' }, 629 608 }) 609 + 610 + vim.keymap.set('n', '-', require('oil').open, { noremap = true, silent = true }) 630 611 631 612 -- hide sticky commands 632 613 vim.api.nvim_create_autocmd({ 'CursorHold' }, { ··· 780 761 on_attach = function(buf) 781 762 local actions = require('gitsigns.actions') 782 763 783 - key.register({ 784 - ["]c"] = { actions.next_hunk, "Next Git Hunk" }, 785 - ["[c"] = { actions.next_hunk, "Previous Git Hunk" }, 786 - g = { 787 - b = { function() actions.blame_line({ full = true }) end, "Blame Line" }, 788 - B = { actions.blame, "Blame Buffer" }, 789 - h = { function() actions.preview_hunk(true) end, "Show Git Hunk" }, 790 - s = { actions.stage_hunk, "Stage Git Hunk" }, 791 - S = { actions.undo_stage_hunk, "Unstage Git Hunk" }, 792 - t = { actions.diffthis, "Diff against HEAD" }, 793 - T = { function() actions.diffthis('~') end, "Diff against HEAD~1" }, 794 - }, 795 - }, { buffer = buf }) 796 - 797 - key.register({ 798 - ["ih"] = { 799 - "<cmd><c-u>lua require('gitsigns.actions').select_hunk()<cr>", 800 - "Select Git Hunk" 801 - }, 802 - }, { buffer = buf, mode = "o" }) 803 - 804 - key.register({ 805 - ["ih"] = { 806 - "<cmd><c-u>lua require('gitsigns.actions').select_hunk()<cr>", 807 - "Select Git Hunk" 808 - } 809 - }, { buffer = buf, mode = "x" }) 764 + vim.keymap.set('n', ']c', function() 765 + require('gitsigns.actions').next_hunk() 766 + end, { desc = 'Next Git Hunk', buffer = buf }) 767 + vim.keymap.set('n', '[c', function() 768 + require('gitsigns.actions').next_hunk() 769 + end, { desc = 'Previous Git Hunk', buffer = buf }) 770 + vim.keymap.set('n', 'gb', function() 771 + require('gitsigns.actions').blame_line({ full = true }) 772 + end, { desc = 'Blame Line', buffer = buf }) 773 + vim.keymap.set('n', 'gB', function() 774 + require('gitsigns.actions').blame() 775 + end, { desc = 'Blame Buffer', buffer = buf }) 776 + vim.keymap.set('n', 'gh', function() 777 + require('gitsigns.actions').preview_hunk(true) 778 + end, { desc = 'Show Git Hunk', buffer = buf }) 779 + vim.keymap.set('n', 'gs', function() 780 + require('gitsigns.actions').stage_hunk() 781 + end, { desc = 'Stage Git Hunk', buffer = buf }) 782 + vim.keymap.set('n', 'gS', function() 783 + require('gitsigns.actions').stage_hunk() 784 + end, { desc = 'Unstage Git Hunk', buffer = buf }) 785 + vim.keymap.set('n', 'gt', function() 786 + require('gitsigns.actions').diffthis() 787 + end, { desc = 'Diff against HEAD', buffer = buf }) 788 + vim.keymap.set('n', 'gT', function() 789 + require('gitsigns.actions').diffthis('~') 790 + end, { desc = 'Diff against HEAD~1', buffer = buf }) 810 791 end, 811 792 } 812 793 ··· 935 916 vim.opt_local.linebreak = true 936 917 end, 937 918 }) 919 + 920 + vim.keymap.set('n', '<leader>q', '<cmd>Trouble qflist open<cr>', { desc = 'Quickfix list' }) 921 + vim.keymap.set('n', '<leader>p', '<cmd>Trouble loclist open<cr>', { desc = 'Location list' }) 922 + vim.keymap.set('n', '<leader>d', '<cmd>Trouble diagnostics open filter.buf=0<cr>', { desc = 'Document Diagnostics' }) 923 + vim.keymap.set('n', '<leader>D', '<cmd>Trouble diagnostics open<cr>', { desc = 'Workspace Diagnostics' }) 938 924 939 925 -- dressing 940 926 require('dressing').setup {