diff --git a/flake.lock b/flake.lock index 6b84846..83ccfd7 100644 --- a/flake.lock +++ b/flake.lock @@ -14,11 +14,11 @@ ] }, "locked": { - "lastModified": 1720546205, - "narHash": "sha256-boCXsjYVxDviyzoEyAk624600f3ZBo/DKtUdvMTpbGY=", + "lastModified": 1718371084, + "narHash": "sha256-abpBi61mg0g+lFFU0zY4C6oP6fBwPzbHPKBGw676xsA=", "owner": "ryantm", "repo": "agenix", - "rev": "de96bd907d5fbc3b14fc33ad37d1b9a3cb15edc6", + "rev": "3a56735779db467538fb2e577eda28a9daacaca6", "type": "github" }, "original": { @@ -73,11 +73,11 @@ ] }, "locked": { - "lastModified": 1719994518, - "narHash": "sha256-pQMhCCHyQGRzdfAkdJ4cIWiw+JNuWsTX7f0ZYSyz0VY=", + "lastModified": 1717285511, + "narHash": "sha256-iKzJcpdXih14qYVcZ9QC9XuZYnPc6T8YImb6dX166kw=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "9227223f6d922fee3c7b190b2cc238a99527bbb7", + "rev": "2a55567fcf15b1b1c7ed712a2c6fadaec7412ea8", "type": "github" }, "original": { @@ -136,11 +136,11 @@ ] }, "locked": { - "lastModified": 1721852138, - "narHash": "sha256-JH8N5uoqoVA6erV4O40VtKKHsnfmhvMGbxMNDLtim5o=", + "lastModified": 1719438532, + "narHash": "sha256-/Vmso2ZMoFE3M7d1MRsQ2K5sR8CVKnrM6t1ys9Xjpz4=", "owner": "nix-community", "repo": "home-manager", - "rev": "304a011325b7ac7b8c9950333cd215a7aa146b0e", + "rev": "1a4f12ae0bda877ec4099b429cf439aad897d7e9", "type": "github" }, "original": { @@ -152,11 +152,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1721743106, - "narHash": "sha256-adRZhFpBTnHiK3XIELA3IBaApz70HwCYfv7xNrHjebA=", + "lastModified": 1719254875, + "narHash": "sha256-ECni+IkwXjusHsm9Sexdtq8weAq/yUyt1TWIemXt3Ko=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "dc14ed91132ee3a26255d01d8fd0c1f5bff27b2f", + "rev": "2893f56de08021cffd9b6b6dfc70fd9ccd51eb60", "type": "github" }, "original": { @@ -168,11 +168,11 @@ }, "nur": { "locked": { - "lastModified": 1721930286, - "narHash": "sha256-IUr/laHRe52MkPlOSflG1GThgQo+ECmAP7O51RxLduI=", + "lastModified": 1719564461, + "narHash": "sha256-wCFs1sf1tPoV3nCG5N5KaakAKm88FyzN6pRdOsOqNZg=", "owner": "nix-community", "repo": "NUR", - "rev": "3ea857d2abb7f3825976cefc50894d35ca55f8c4", + "rev": "7369862c4a8f293f6fde79044369dad7dfc04798", "type": "github" }, "original": { @@ -194,11 +194,11 @@ ] }, "locked": { - "lastModified": 1721042469, - "narHash": "sha256-6FPUl7HVtvRHCCBQne7Ylp4p+dpP3P/OYuzjztZ4s70=", + "lastModified": 1719259945, + "narHash": "sha256-F1h+XIsGKT9TkGO3omxDLEb/9jOOsI6NnzsXFsZhry4=", "owner": "cachix", "repo": "pre-commit-hooks.nix", - "rev": "f451c19376071a90d8c58ab1a953c6e9840527fd", + "rev": "0ff4381bbb8f7a52ca4a851660fc7a437a4c6e07", "type": "github" }, "original": { diff --git a/modules/home/gtk/default.nix b/modules/home/gtk/default.nix index f10087d..62d3f81 100644 --- a/modules/home/gtk/default.nix +++ b/modules/home/gtk/default.nix @@ -21,12 +21,12 @@ in }; iconTheme = { - package = pkgs.gnome-themes-extra; + package = pkgs.gnome.gnome-themes-extra; name = "Adwaita"; }; theme = { - package = pkgs.gnome-themes-extra; + package = pkgs.gnome.gnome-themes-extra; name = "Adwaita"; }; }; diff --git a/modules/home/vim/after/plugin/mappings/misc.lua b/modules/home/vim/after/plugin/mappings/misc.lua index 12dbffc..6aa25a2 100644 --- a/modules/home/vim/after/plugin/mappings/misc.lua +++ b/modules/home/vim/after/plugin/mappings/misc.lua @@ -1,7 +1,7 @@ local wk = require("which-key") local keys = { - { "", "nohls", desc = "Clear search highlight" }, + [""] = { "nohls", "Clear search highlight" }, } -wk.add(keys) +wk.register(keys, { prefix = "" }) diff --git a/modules/home/vim/after/plugin/mappings/unimpaired.lua b/modules/home/vim/after/plugin/mappings/unimpaired.lua index a0336d1..e171d8f 100644 --- a/modules/home/vim/after/plugin/mappings/unimpaired.lua +++ b/modules/home/vim/after/plugin/mappings/unimpaired.lua @@ -3,124 +3,126 @@ local wk = require("which-key") local lsp = require("ambroisie.lsp") local keys = { - -- Previous - { "[", group = "Previous" }, - -- Edition and navigation mappings - { "[", desc = "Insert blank line above" }, - { "[", desc = "Previous location list file" }, - { "[", desc = "Previous quickfix list file" }, - { "[", desc = "Previous tag in preview window" }, - { "[a", desc = "Previous argument" }, - { "[A", desc = "First argument" }, - { "[b", desc = "Previous buffer" }, - { "[B", desc = "First buffer" }, - { "[e", desc = "Exchange previous line" }, - { "[f", desc = "Previous file in directory" }, - { "[l", desc = "Previous location list entry" }, - { "[L", desc = "First Location list entry" }, - { "[n", desc = "Previous conflict marker/diff hunk" }, - { "[p", desc = "Paste line above" }, - { "[P", desc = "Paste line above" }, - { "[q", desc = "Previous quickfix list entry" }, - { "[Q", desc = "First quickfix list entry" }, - { "[t", desc = "Previous matching tag" }, - { "[T", desc = "First matching tag" }, - { "[z", desc = "Previous fold" }, - -- Encoding - { "[C", desc = "C string encode" }, - { "[u", desc = "URL encode" }, - { "[x", desc = "XML encode" }, - { "[y", desc = "C string encode" }, - -- Custom - { "[d", lsp.goto_prev_diagnostic, desc = "Previous diagnostic" }, + -- Edition and navigation mappins + ["["] = { + name = "Previous", + [""] = "Insert blank line above", + [""] = "Previous location list file", + [""] = "Previous quickfix list file", + [""] = "Previous tag in preview window", + a = "Previous argument", + A = "First argument", + b = "Previous buffer", + B = "First buffer", + e = "Exchange previous line", + f = "Previous file in directory", + l = "Previous location list entry", + L = "First Location list entry", + n = "Previous conflict marker/diff hunk", + p = "Paste line above", + P = "Paste line above", + q = "Previous quickfix list entry", + Q = "First quickfix list entry", + t = "Previous matching tag", + T = "First matching tag", + z = "Previous fold", + -- Encoding + C = "C string encode", + u = "URL encode", + x = "XML encode", + y = "C string encode", + -- Custom + d = { lsp.goto_prev_diagnostic, "Previous diagnostic" }, + }, + ["]"] = { + name = "Next", + [""] = "Insert blank line below", + [""] = "Next location list file", + [""] = "Next quickfix list file", + [""] = "Next tag in preview window", + a = "Next argument", + A = "Last argument", + b = "Next buffer", + B = "Last buffer", + e = "Exchange next line", + f = "Next file in directory", + l = "Next location list entry", + L = "Last Location list entry", + n = "Next conflict marker/diff hunk", + p = "Paste line below", + P = "Paste line below", + q = "Next quickfix list entry", + Q = "Last quickfix list entry", + t = "Next matching tag", + T = "Last matching tag", + z = "Next fold", + -- Decoding + C = "C string decode", + u = "URL decode", + x = "XML decode", + y = "C string decode", + -- Custom + d = { lsp.goto_next_diagnostic, "Next diagnostic" }, + }, - -- Next - { "]", group = "Next" }, - -- Edition and navigation mappings - { "]", desc = "Insert blank line below" }, - { "]", desc = "Next location list file" }, - { "]", desc = "Next quickfix list file" }, - { "]", desc = "Next tag in preview window" }, - { "]a", desc = "Next argument" }, - { "]A", desc = "Last argument" }, - { "]b", desc = "Next buffer" }, - { "]B", desc = "Last buffer" }, - { "]e", desc = "Exchange next line" }, - { "]f", desc = "Next file in directory" }, - { "]l", desc = "Next location list entry" }, - { "]L", desc = "Last Location list entry" }, - { "]n", desc = "Next conflict marker/diff hunk" }, - { "]p", desc = "Paste line below" }, - { "]P", desc = "Paste line below" }, - { "]q", desc = "Next quickfix list entry" }, - { "]Q", desc = "Last quickfix list entry" }, - { "]t", desc = "Next matching tag" }, - { "]T", desc = "Last matching tag" }, - { "]z", desc = "Next fold" }, - -- Decoding - { "]C", desc = "C string decode" }, - { "]u", desc = "URL decode" }, - { "]x", desc = "XML decode" }, - { "]y", desc = "C string decode" }, - -- Custom - { "]d", lsp.goto_next_diagnostic, desc = "Next diagnostic" }, - - -- Enable option - { "[o", desc = "Enable option" }, - { "[ob", desc = "Light background" }, - { "[oc", desc = "Cursor line" }, - { "[od", desc = "Diff" }, - { "[of", "FormatEnable", desc = "LSP Formatting" }, - { "[oh", desc = "Search high-lighting" }, - { "[oi", desc = "Case insensitive search" }, - { "[ol", desc = "List mode" }, - { "[on", desc = "Line numbers" }, - { "[or", desc = "Relative line numbers" }, - { "[op", "lwindow", desc = "Location list" }, - { "[oq", "cwindow", desc = "Quickfix list" }, - { "[ou", desc = "Cursor column" }, - { "[ov", desc = "Virtual editing" }, - { "[ow", desc = "Text wrapping" }, - { "[ox", desc = "Cursor line and column" }, - { "[oz", desc = "Spell checking" }, - - -- Disable option - { "]o", desc = "Disable option" }, - { "]ob", desc = "Light background" }, - { "]oc", desc = "Cursor line" }, - { "]od", desc = "Diff" }, - { "]of", "FormatDisable", desc = "LSP Formatting" }, - { "]oh", desc = "Search high-lighting" }, - { "]oi", desc = "Case insensitive search" }, - { "]ol", desc = "List mode" }, - { "]on", desc = "Line numbers" }, - { "]op", "lclose", desc = "Location list" }, - { "]oq", "cclose", desc = "Quickfix list" }, - { "]or", desc = "Relative line numbers" }, - { "]ou", desc = "Cursor column" }, - { "]ov", desc = "Virtual editing" }, - { "]ow", desc = "Text wrapping" }, - { "]ox", desc = "Cursor line and column" }, - { "]oz", desc = "Spell checking" }, - - -- Toggle option - { "yo", group = "Toggle option" }, - { "yob", desc = "Light background" }, - { "yoc", desc = "Cursor line" }, - { "yod", desc = "Diff" }, - { "yof", "FormatToggle", desc = "LSP Formatting" }, - { "yoh", desc = "Search high-lighting" }, - { "yoi", desc = "Case insensitive search" }, - { "yol", desc = "List mode" }, - { "yon", desc = "Line numbers" }, - { "yop", "(qf_loc_toggle)", desc = "Location list" }, - { "yoq", "(qf_qf_toggle)", desc = "Quickfix list" }, - { "yor", desc = "Relative line numbers" }, - { "you", desc = "Cursor column" }, - { "yov", desc = "Virtual editing" }, - { "yow", desc = "Text wrapping" }, - { "yox", desc = "Cursor line and column" }, - { "yoz", desc = "Spell checking" }, + -- Option mappings + ["[o"] = { + name = "Enable option", + b = "Light background", + c = "Cursor line", + d = "Diff", + f = { "FormatEnable", "LSP Formatting" }, + h = "Search high-lighting", + i = "Case insensitive search", + l = "List mode", + n = "Line numbers", + r = "Relative line numbers", + p = { "lwindow", "Location list" }, + q = { "cwindow", "Quickfix list" }, + u = "Cursor column", + v = "Virtual editing", + w = "Text wrapping", + x = "Cursor line and column", + z = "Spell checking", + }, + ["]o"] = { + name = "Disable option", + b = "Light background", + c = "Cursor line", + d = "Diff", + f = { "FormatDisable", "LSP Formatting" }, + h = "Search high-lighting", + i = "Case insensitive search", + l = "List mode", + n = "Line numbers", + p = { "lclose", "Location list" }, + q = { "cclose", "Quickfix list" }, + r = "Relative line numbers", + u = "Cursor column", + v = "Virtual editing", + w = "Text wrapping", + x = "Cursor line and column", + z = "Spell checking", + }, + ["yo"] = { + name = "Toggle option", + b = "Light background", + c = "Cursor line", + d = "Diff", + f = { "FormatToggle", "LSP Formatting" }, + h = "Search high-lighting", + i = "Case insensitive search", + l = "List mode", + n = "Line numbers", + p = { "(qf_loc_toggle)", "Location list" }, + q = { "(qf_qf_toggle)", "Quickfix list" }, + r = "Relative line numbers", + u = "Cursor column", + v = "Virtual editing", + w = "Text wrapping", + x = "Cursor line and column", + z = "Spell checking", + }, } -wk.add(keys) +wk.register(keys) diff --git a/modules/home/vim/lua/ambroisie/lsp.lua b/modules/home/vim/lua/ambroisie/lsp.lua index 1912623..dc47366 100644 --- a/modules/home/vim/lua/ambroisie/lsp.lua +++ b/modules/home/vim/lua/ambroisie/lsp.lua @@ -87,30 +87,31 @@ M.on_attach = function(client, bufnr) end local keys = { - buffer = bufnr, - -- LSP navigation - { "K", vim.lsp.buf.hover, desc = "Show symbol information" }, - { "", vim.lsp.buf.signature_help, desc = "Show signature information" }, - { "gd", vim.lsp.buf.definition, desc = "Go to definition" }, - { "gD", vim.lsp.buf.declaration, desc = "Go to declaration" }, - { "gi", vim.lsp.buf.implementation, desc = "Go to implementation" }, - { "gr", vim.lsp.buf.references, desc = "List all references" }, - -- Code - { "c", group = "Code" }, - { "ca", vim.lsp.buf.code_action, desc = "Code actions" }, - { "cd", cycle_diagnostics_display, desc = "Cycle diagnostics display" }, - { "cD", show_buffer_diagnostics, desc = "Show buffer diagnostics" }, - { "cr", vim.lsp.buf.rename, desc = "Rename symbol" }, - { "cs", vim.lsp.buf.signature_help, desc = "Show signature" }, - { "ct", vim.lsp.buf.type_definition, desc = "Go to type definition" }, - -- Workspace - { "cw", group = "Workspace" }, - { "cwa", vim.lsp.buf.add_workspace_folder, desc = "Add folder to workspace" }, - { "cwl", list_workspace_folders, desc = "List folders in workspace" }, - { "cwr", vim.lsp.buf.remove_workspace_folder, desc = "Remove folder from workspace" }, + K = { vim.lsp.buf.hover, "Show symbol information" }, + [""] = { vim.lsp.buf.signature_help, "Show signature information" }, + ["gd"] = { vim.lsp.buf.definition, "Go to definition" }, + ["gD"] = { vim.lsp.buf.declaration, "Go to declaration" }, + ["gi"] = { vim.lsp.buf.implementation, "Go to implementation" }, + ["gr"] = { vim.lsp.buf.references, "List all references" }, + + ["c"] = { + name = "Code", + a = { vim.lsp.buf.code_action, "Code actions" }, + d = { cycle_diagnostics_display, "Cycle diagnostics display" }, + D = { show_buffer_diagnostics, "Show buffer diagnostics" }, + r = { vim.lsp.buf.rename, "Rename symbol" }, + s = { vim.lsp.buf.signature_help, "Show signature" }, + t = { vim.lsp.buf.type_definition, "Go to type definition" }, + w = { + name = "Workspace", + a = { vim.lsp.buf.add_workspace_folder, "Add folder to workspace" }, + l = { list_workspace_folders, "List folders in workspace" }, + r = { vim.lsp.buf.remove_workspace_folder, "Remove folder from workspace" }, + }, + }, } - wk.add(keys) + wk.register(keys, { buffer = bufnr }) end return M diff --git a/modules/home/vim/plugin/settings/git.lua b/modules/home/vim/plugin/settings/git.lua index b9b92a6..0e3bc5e 100644 --- a/modules/home/vim/plugin/settings/git.lua +++ b/modules/home/vim/plugin/settings/git.lua @@ -34,42 +34,47 @@ gitsigns.setup({ local keys = { -- Navigation - { "[c", utils.partial(nav_hunk, "prev"), desc = "Previous hunk/diff" }, - { "]c", utils.partial(nav_hunk, "next"), desc = "Next hunk/diff" }, + ["[c"] = { utils.partial(nav_hunk, "prev"), "Previous hunk/diff" }, + ["]c"] = { utils.partial(nav_hunk, "next"), "Next hunk/diff" }, + -- Commands - { "g", group = "Git" }, - { "gb", gitsigns.toggle_current_line_blame, desc = "Toggle blame virtual text" }, - { "gd", gitsigns.diffthis, desc = "Diff buffer" }, - { "gD", utils.partial(gitsigns.diffthis, "~"), desc = "Diff buffer against last commit" }, - { "gg", "Git", desc = "Git status" }, - { "gh", gitsigns.toggle_deleted, desc = "Show deleted hunks" }, - { "gL", ":spT:Gllog --follow -- %:p", desc = "Current buffer log" }, - { "gm", "(git-messenger)", desc = "Current line blame" }, - { "gp", gitsigns.preview_hunk, desc = "Preview hunk" }, - { "gr", gitsigns.reset_hunk, desc = "Restore hunk" }, - { "gR", gitsigns.reset_buffer, desc = "Restore buffer" }, - { "gs", gitsigns.stage_hunk, desc = "Stage hunk" }, - { "gS", gitsigns.stage_buffer, desc = "Stage buffer" }, - { "gu", gitsigns.undo_stage_hunk, desc = "Undo stage hunk" }, - { "g[", utils.partial(gitsigns.nav_hunk, "prev"), desc = "Previous hunk" }, - { "g]", utils.partial(gitsigns.nav_hunk, "next"), desc = "Next hunk" }, + ["g"] = { + name = "Git", + -- Actions + b = { gitsigns.toggle_current_line_blame, "Toggle blame virtual text" }, + d = { gitsigns.diffthis, "Diff buffer" }, + D = { utils.partial(gitsigns.diffthis, "~"), "Diff buffer against last commit" }, + g = { "Git", "Git status" }, + h = { gitsigns.toggle_deleted, "Show deleted hunks" }, + L = { ":spT:Gllog --follow -- %:p", "Current buffer log" }, + m = { "(git-messenger)", "Current line blame" }, + p = { gitsigns.preview_hunk, "Preview hunk" }, + r = { gitsigns.reset_hunk, "Restore hunk" }, + R = { gitsigns.reset_buffer, "Restore buffer" }, + s = { gitsigns.stage_hunk, "Stage hunk" }, + S = { gitsigns.stage_buffer, "Stage buffer" }, + u = { gitsigns.undo_stage_hunk, "Undo stage hunk" }, + ["["] = { utils.partial(gitsigns.nav_hunk, "prev"), "Previous hunk" }, + ["]"] = { utils.partial(gitsigns.nav_hunk, "next"), "Next hunk" }, + }, } local objects = { - mode = "o", - { "ih", gitsigns.select_hunk, desc = "Git hunk" }, -} --- Visual -local visual = { - mode = { "x" }, - { "ih", gitsigns.select_hunk, desc = "Git hunk" }, - { "g", group = "Git" }, - { "gp", gitsigns.preview_hunk, desc = "Preview selection" }, - { "gr", make_visual(gitsigns.reset_hunk), desc = "Restore selection" }, - { "gs", make_visual(gitsigns.stage_hunk), desc = "Stage selection" }, - { "gu", gitsigns.undo_stage_hunk, desc = "Undo stage selection" }, + ["ih"] = { gitsigns.select_hunk, "Git hunk" }, } -wk.add(keys) -wk.add(objects) -wk.add(visual) +local visual = { + ["ih"] = { gitsigns.select_hunk, "Git hunk" }, + + ["g"] = { + name = "Git", + p = { gitsigns.preview_hunk, "Preview selection" }, + r = { make_visual(gitsigns.reset_hunk), "Restore selection" }, + s = { make_visual(gitsigns.stage_hunk), "Stage selection" }, + u = { gitsigns.undo_stage_hunk, "Undo stage selection" }, + }, +} + +wk.register(keys, { buffer = bufnr }) +wk.register(objects, { buffer = bufnr, mode = "o" }) +wk.register(visual, { buffer = bufnr, mode = "x" }) diff --git a/modules/home/vim/plugin/settings/oil.lua b/modules/home/vim/plugin/settings/oil.lua index a160725..e4a6716 100644 --- a/modules/home/vim/plugin/settings/oil.lua +++ b/modules/home/vim/plugin/settings/oil.lua @@ -28,7 +28,7 @@ oil.setup({ }) local keys = { - { "-", oil.open, desc = "Open parent directory" }, + ["-"] = { oil.open, "Open parent directory" }, } -wk.add(keys) +wk.register(keys) diff --git a/modules/home/vim/plugin/settings/telescope.lua b/modules/home/vim/plugin/settings/telescope.lua index 1a23928..64cc298 100644 --- a/modules/home/vim/plugin/settings/telescope.lua +++ b/modules/home/vim/plugin/settings/telescope.lua @@ -26,12 +26,14 @@ telescope.load_extension("fzf") telescope.load_extension("lsp_handlers") local keys = { - { "f", group = "Fuzzy finder" }, - { "fb", telescope_builtin.buffers, desc = "Open buffers" }, - { "ff", telescope_builtin.git_files, desc = "Git tracked files" }, - { "fF", telescope_builtin.find_files, desc = "Files" }, - { "fg", telescope_builtin.live_grep, desc = "Grep string" }, - { "fG", telescope_builtin.grep_string, desc = "Grep string under cursor" }, + f = { + name = "Fuzzy finder", + b = { telescope_builtin.buffers, "Open buffers" }, + f = { telescope_builtin.git_files, "Git tracked files" }, + F = { telescope_builtin.find_files, "Files" }, + g = { telescope_builtin.live_grep, "Grep string" }, + G = { telescope_builtin.grep_string, "Grep string under cursor" }, + }, } -wk.add(keys) +wk.register(keys, { prefix = "" }) diff --git a/modules/home/vim/plugin/settings/which-key.lua b/modules/home/vim/plugin/settings/which-key.lua index 81f398f..2edfd70 100644 --- a/modules/home/vim/plugin/settings/which-key.lua +++ b/modules/home/vim/plugin/settings/which-key.lua @@ -1,27 +1,2 @@ local wk = require("which-key") -wk.setup({ - icons = { - -- I don't like icons - mappings = false, - breadcrumb = "»", - separator = "➜", - group = "+", - ellipsis = "…", - keys = { - Up = " ", - Down = " ", - Left = " ", - Right = " ", - C = "", - M = "", - D = "", - S = "", - CR = "", - Esc = " ", - NL = "", - BS = "", - Space = "", - Tab = " ", - }, - }, -}) +wk.setup() diff --git a/modules/nixos/system/packages/default.nix b/modules/nixos/system/packages/default.nix index ebea06f..5c29aa0 100644 --- a/modules/nixos/system/packages/default.nix +++ b/modules/nixos/system/packages/default.nix @@ -14,14 +14,12 @@ in config = lib.mkIf cfg.enable { environment.systemPackages = with pkgs; [ + vim wget ]; programs = { - vim = { - enable = true; - defaultEditor = true; # Modal editing is life - }; + vim.defaultEditor = true; # Modal editing is life zsh = { enable = true; # Use integrations