diff --git a/flake.lock b/flake.lock index b0004cf..a19b836 100644 --- a/flake.lock +++ b/flake.lock @@ -21,6 +21,24 @@ "type": "github" } }, + "ags": { + "inputs": { + "nixpkgs": "nixpkgs_2" + }, + "locked": { + "lastModified": 1718921313, + "narHash": "sha256-TFJah1RW5qnYW7kajjAFPAS5j/0q0R3vz9zPjrRA0Mc=", + "owner": "Aylur", + "repo": "ags", + "rev": "646d5ad073ff7f8b1d50cfbd40f5b8a250fcd59d", + "type": "github" + }, + "original": { + "owner": "Aylur", + "repo": "ags", + "type": "github" + } + }, "anyrun": { "inputs": { "flake-parts": "flake-parts", @@ -203,7 +221,7 @@ }, "devshell": { "inputs": { - "flake-utils": "flake-utils_3", + "flake-utils": "flake-utils_5", "nixpkgs": [ "nixvim", "nixpkgs" @@ -242,11 +260,11 @@ "doomemacs": { "flake": false, "locked": { - "lastModified": 1719819335, - "narHash": "sha256-q23oxbXPg4Fq0TygPI1lIj/IqZmVwl7n4jzjbXncA70=", + "lastModified": 1720224658, + "narHash": "sha256-ugNtDBO92zFbRx7URXdvtzmGJGLPG6tzDC72UOpf9IA=", "owner": "doomemacs", "repo": "doomemacs", - "rev": "5da8304c4620d3b38c4bd6eb61366a83a89c0427", + "rev": "7bb5df4cd4ae3a0916616dd7e50566b3caa9c931", "type": "github" }, "original": { @@ -258,15 +276,15 @@ "emacs-overlay": { "inputs": { "flake-utils": "flake-utils", - "nixpkgs": "nixpkgs_2", + "nixpkgs": "nixpkgs_3", "nixpkgs-stable": "nixpkgs-stable" }, "locked": { - "lastModified": 1719850620, - "narHash": "sha256-n/TlWcW3h7cC6zRjJLjLNk87LtXp4H6Nf0NghdnYlKY=", + "lastModified": 1720256942, + "narHash": "sha256-ohfS5d4yR+zdLTICE78rNJmqL/en0BNPGm5zCK6N0QA=", "owner": "nix-community", "repo": "emacs-overlay", - "rev": "6b14b1346a81aba358b2fe747e9f3de0e205945d", + "rev": "6d9837126e1be779c8f34ed9fdd609e676a1b891", "type": "github" }, "original": { @@ -283,11 +301,11 @@ "rust-analyzer-src": "rust-analyzer-src" }, "locked": { - "lastModified": 1719815435, - "narHash": "sha256-K2xFp142onP35jcx7li10xUxNVEVRWjAdY8DSuR7Naw=", + "lastModified": 1720247208, + "narHash": "sha256-isVgeEPkkRz2Tw3vx0J+HyIvKmwpyY4SNcw7MbKZa/I=", "owner": "nix-community", "repo": "fenix", - "rev": "ebfe2c639111d7e82972a12711206afaeeda2450", + "rev": "27cbad7cc093c5298231b87daa04db9610053651", "type": "github" }, "original": { @@ -297,32 +315,35 @@ } }, "flake-compat": { + "flake": false, "locked": { - "lastModified": 1717312683, - "narHash": "sha256-FrlieJH50AuvagamEvWMIE6D2OAnERuDboFDYAED/dE=", - "owner": "nix-community", + "lastModified": 1673956053, + "narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=", + "owner": "edolstra", "repo": "flake-compat", - "rev": "38fd3954cf65ce6faf3d0d45cd26059e059f07ea", + "rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9", "type": "github" }, "original": { - "owner": "nix-community", + "owner": "edolstra", "repo": "flake-compat", "type": "github" } }, "flake-compat_2": { + "flake": false, "locked": { "lastModified": 1696426674, "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", + "owner": "edolstra", + "repo": "flake-compat", "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", - "revCount": 57, - "type": "tarball", - "url": "https://api.flakehub.com/f/pinned/edolstra/flake-compat/1.0.1/018afb31-abd1-7bff-a5e4-cff7e18efb7a/source.tar.gz" + "type": "github" }, "original": { - "type": "tarball", - "url": "https://flakehub.com/f/edolstra/flake-compat/1.tar.gz" + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" } }, "flake-compat_3": { @@ -342,6 +363,35 @@ } }, "flake-compat_4": { + "locked": { + "lastModified": 1717312683, + "narHash": "sha256-FrlieJH50AuvagamEvWMIE6D2OAnERuDboFDYAED/dE=", + "owner": "nix-community", + "repo": "flake-compat", + "rev": "38fd3954cf65ce6faf3d0d45cd26059e059f07ea", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "flake-compat", + "type": "github" + } + }, + "flake-compat_5": { + "locked": { + "lastModified": 1696426674, + "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", + "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", + "revCount": 57, + "type": "tarball", + "url": "https://api.flakehub.com/f/pinned/edolstra/flake-compat/1.0.1/018afb31-abd1-7bff-a5e4-cff7e18efb7a/source.tar.gz" + }, + "original": { + "type": "tarball", + "url": "https://flakehub.com/f/edolstra/flake-compat/1.tar.gz" + } + }, + "flake-compat_6": { "flake": false, "locked": { "lastModified": 1696426674, @@ -357,7 +407,23 @@ "type": "github" } }, - "flake-compat_5": { + "flake-compat_7": { + "flake": false, + "locked": { + "lastModified": 1696426674, + "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, + "flake-compat_8": { "flake": false, "locked": { "lastModified": 1673956053, @@ -396,17 +462,14 @@ }, "flake-parts_2": { "inputs": { - "nixpkgs-lib": [ - "nixpak", - "nixpkgs" - ] + "nixpkgs-lib": "nixpkgs-lib" }, "locked": { - "lastModified": 1717285511, - "narHash": "sha256-iKzJcpdXih14qYVcZ9QC9XuZYnPc6T8YImb6dX166kw=", + "lastModified": 1715865404, + "narHash": "sha256-/GJvTdTpuDjNn84j82cU6bXztE0MSkdnTWClUCRub78=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "2a55567fcf15b1b1c7ed712a2c6fadaec7412ea8", + "rev": "8dc45382d5206bd292f9c2768b8058a8fd8311d9", "type": "github" }, "original": { @@ -416,6 +479,69 @@ } }, "flake-parts_3": { + "inputs": { + "nixpkgs-lib": [ + "neovim-nightly-overlay", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1719994518, + "narHash": "sha256-pQMhCCHyQGRzdfAkdJ4cIWiw+JNuWsTX7f0ZYSyz0VY=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "9227223f6d922fee3c7b190b2cc238a99527bbb7", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, + "flake-parts_4": { + "inputs": { + "nixpkgs-lib": [ + "neovim-nightly-overlay", + "hercules-ci-effects", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1712014858, + "narHash": "sha256-sB4SWl2lX95bExY2gMFG5HIzvva5AVMJd4Igm+GpZNw=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "9126214d0a59633752a136528f5f3b9aa8565b7d", + "type": "github" + }, + "original": { + "id": "flake-parts", + "type": "indirect" + } + }, + "flake-parts_5": { + "inputs": { + "nixpkgs-lib": [ + "nixpak", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1719994518, + "narHash": "sha256-pQMhCCHyQGRzdfAkdJ4cIWiw+JNuWsTX7f0ZYSyz0VY=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "9227223f6d922fee3c7b190b2cc238a99527bbb7", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, + "flake-parts_6": { "inputs": { "nixpkgs-lib": [ "nixpkgs-wayland", @@ -437,7 +563,7 @@ "type": "github" } }, - "flake-parts_4": { + "flake-parts_7": { "inputs": { "nixpkgs-lib": [ "nixvim", @@ -445,11 +571,11 @@ ] }, "locked": { - "lastModified": 1719745305, - "narHash": "sha256-xwgjVUpqSviudEkpQnioeez1Uo2wzrsMaJKJClh+Bls=", + "lastModified": 1719877454, + "narHash": "sha256-g5N1yyOSsPNiOlFfkuI/wcUjmtah+nxdImJqrSATjOU=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "c3c5ecc05edc7dafba779c6c1a61cd08ac6583e9", + "rev": "4e3583423212f9303aa1a6337f8dffb415920e4f", "type": "github" }, "original": { @@ -458,7 +584,7 @@ "type": "github" } }, - "flake-parts_5": { + "flake-parts_8": { "inputs": { "nixpkgs-lib": [ "schizofox", @@ -479,9 +605,9 @@ "type": "github" } }, - "flake-parts_6": { + "flake-parts_9": { "inputs": { - "nixpkgs-lib": "nixpkgs-lib_2" + "nixpkgs-lib": "nixpkgs-lib_3" }, "locked": { "lastModified": 1698882062, @@ -534,8 +660,41 @@ } }, "flake-utils_3": { + "locked": { + "lastModified": 1659877975, + "narHash": "sha256-zllb8aq3YO3h8B/U0/J1WBgAL8EX5yWf5pMj3G0NAmc=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "c0e246b9b83f637f4681389ecabcb2681b4f3af0", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_4": { "inputs": { - "systems": "systems_6" + "systems": "systems_7" + }, + "locked": { + "lastModified": 1710146030, + "narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_5": { + "inputs": { + "systems": "systems_8" }, "locked": { "lastModified": 1701680307, @@ -551,9 +710,9 @@ "type": "github" } }, - "flake-utils_4": { + "flake-utils_6": { "inputs": { - "systems": "systems_8" + "systems": "systems_10" }, "locked": { "lastModified": 1685518550, @@ -589,6 +748,33 @@ "inputs": { "flake-compat": "flake-compat_3", "gitignore": "gitignore", + "nixpkgs": [ + "neovim-nightly-overlay", + "nixpkgs" + ], + "nixpkgs-stable": [ + "neovim-nightly-overlay", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1719259945, + "narHash": "sha256-F1h+XIsGKT9TkGO3omxDLEb/9jOOsI6NnzsXFsZhry4=", + "owner": "cachix", + "repo": "git-hooks.nix", + "rev": "0ff4381bbb8f7a52ca4a851660fc7a437a4c6e07", + "type": "github" + }, + "original": { + "owner": "cachix", + "repo": "git-hooks.nix", + "type": "github" + } + }, + "git-hooks_2": { + "inputs": { + "flake-compat": "flake-compat_6", + "gitignore": "gitignore_2", "nixpkgs": [ "nixvim", "nixpkgs" @@ -613,6 +799,28 @@ } }, "gitignore": { + "inputs": { + "nixpkgs": [ + "neovim-nightly-overlay", + "git-hooks", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1709087332, + "narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=", + "owner": "hercules-ci", + "repo": "gitignore.nix", + "rev": "637db329424fd7e46cf4185293b9cc8c88c95394", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "gitignore.nix", + "type": "github" + } + }, + "gitignore_2": { "inputs": { "nixpkgs": [ "nixvim", @@ -652,6 +860,28 @@ } }, "hercules-ci-effects": { + "inputs": { + "flake-parts": "flake-parts_4", + "nixpkgs": [ + "neovim-nightly-overlay", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1719226092, + "narHash": "sha256-YNkUMcCUCpnULp40g+svYsaH1RbSEj6s4WdZY/SHe38=", + "owner": "hercules-ci", + "repo": "hercules-ci-effects", + "rev": "11e4b8dc112e2f485d7c97e1cee77f9958f498f5", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "hercules-ci-effects", + "type": "github" + } + }, + "hercules-ci-effects_2": { "inputs": { "flake-parts": [ "nixpak", @@ -704,11 +934,11 @@ ] }, "locked": { - "lastModified": 1719827439, - "narHash": "sha256-tneHOIv1lEavZ0vQ+rgz67LPNCgOZVByYki3OkSshFU=", + "lastModified": 1720188602, + "narHash": "sha256-lC3byBmhVZFzWl/dCic8+cKUEEAXAswWOYjq4paFmbo=", "owner": "nix-community", "repo": "home-manager", - "rev": "59ce796b2563e19821361abbe2067c3bb4143a7d", + "rev": "e3582e5151498bc4d757e8361431ace8529e7bb7", "type": "github" }, "original": { @@ -725,11 +955,11 @@ ] }, "locked": { - "lastModified": 1719677234, - "narHash": "sha256-qO9WZsj/0E6zcK4Ht1y/iJ8XfwbBzq7xdqhBh44OP/M=", + "lastModified": 1719827439, + "narHash": "sha256-tneHOIv1lEavZ0vQ+rgz67LPNCgOZVByYki3OkSshFU=", "owner": "nix-community", "repo": "home-manager", - "rev": "36317d4d38887f7629876b0e43c8d9593c5cc48d", + "rev": "59ce796b2563e19821361abbe2067c3bb4143a7d", "type": "github" }, "original": { @@ -815,16 +1045,16 @@ "hyprlang": "hyprlang", "hyprutils": "hyprutils", "hyprwayland-scanner": "hyprwayland-scanner", - "nixpkgs": "nixpkgs_3", + "nixpkgs": "nixpkgs_4", "systems": "systems_4", "xdph": "xdph" }, "locked": { - "lastModified": 1719786368, - "narHash": "sha256-fpVk3CajFQ4hcTuoU9njw/btPrAV92f8+WawVy8XvcE=", + "lastModified": 1720213509, + "narHash": "sha256-aPYf8Jnu1fMgMYMgQnH433/Fcqfky1Z5ZuzCkNKcR1U=", "ref": "refs/heads/main", - "rev": "d7ea1b7785f31e9fd6477490309721a19a835592", - "revCount": 4900, + "rev": "cc98594c3aed0b542e03818371a4636f549f80e1", + "revCount": 4908, "submodules": true, "type": "git", "url": "https://github.com/hyprwm/Hyprland" @@ -973,8 +1203,8 @@ }, "lib-aggregate": { "inputs": { - "flake-utils": "flake-utils_2", - "nixpkgs-lib": "nixpkgs-lib" + "flake-utils": "flake-utils_4", + "nixpkgs-lib": "nixpkgs-lib_2" }, "locked": { "lastModified": 1719749459, @@ -990,6 +1220,218 @@ "type": "github" } }, + "naersk": { + "inputs": { + "nixpkgs": [ + "neovim-flake", + "rnix-lsp", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1655042882, + "narHash": "sha256-9BX8Fuez5YJlN7cdPO63InoyBy7dm3VlJkkmTt6fS1A=", + "owner": "nix-community", + "repo": "naersk", + "rev": "cddffb5aa211f50c4b8750adbec0bbbdfb26bb9f", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "naersk", + "type": "github" + } + }, + "neovim-flake": { + "inputs": { + "flake-parts": "flake-parts_2", + "flake-utils": "flake-utils_2", + "nil": "nil", + "nixpkgs": [ + "nixpkgs" + ], + "nmd": "nmd", + "plugin-alpha-nvim": "plugin-alpha-nvim", + "plugin-bufdelete-nvim": "plugin-bufdelete-nvim", + "plugin-catppuccin": "plugin-catppuccin", + "plugin-ccc": "plugin-ccc", + "plugin-cellular-automaton": "plugin-cellular-automaton", + "plugin-chatgpt": "plugin-chatgpt", + "plugin-cheatsheet-nvim": "plugin-cheatsheet-nvim", + "plugin-cinnamon-nvim": "plugin-cinnamon-nvim", + "plugin-cmp-buffer": "plugin-cmp-buffer", + "plugin-cmp-nvim-lsp": "plugin-cmp-nvim-lsp", + "plugin-cmp-path": "plugin-cmp-path", + "plugin-cmp-treesitter": "plugin-cmp-treesitter", + "plugin-cmp-vsnip": "plugin-cmp-vsnip", + "plugin-codewindow-nvim": "plugin-codewindow-nvim", + "plugin-comment-nvim": "plugin-comment-nvim", + "plugin-copilot-cmp": "plugin-copilot-cmp", + "plugin-copilot-lua": "plugin-copilot-lua", + "plugin-crates-nvim": "plugin-crates-nvim", + "plugin-dashboard-nvim": "plugin-dashboard-nvim", + "plugin-diffview-nvim": "plugin-diffview-nvim", + "plugin-dracula": "plugin-dracula", + "plugin-dressing-nvim": "plugin-dressing-nvim", + "plugin-elixir-tools": "plugin-elixir-tools", + "plugin-fidget-nvim": "plugin-fidget-nvim", + "plugin-flutter-tools": "plugin-flutter-tools", + "plugin-gesture-nvim": "plugin-gesture-nvim", + "plugin-gitsigns-nvim": "plugin-gitsigns-nvim", + "plugin-glow-nvim": "plugin-glow-nvim", + "plugin-gruvbox": "plugin-gruvbox", + "plugin-highlight-undo": "plugin-highlight-undo", + "plugin-hop-nvim": "plugin-hop-nvim", + "plugin-icon-picker-nvim": "plugin-icon-picker-nvim", + "plugin-image-nvim": "plugin-image-nvim", + "plugin-indent-blankline": "plugin-indent-blankline", + "plugin-leap-nvim": "plugin-leap-nvim", + "plugin-lsp-lines": "plugin-lsp-lines", + "plugin-lsp-signature": "plugin-lsp-signature", + "plugin-lspkind": "plugin-lspkind", + "plugin-lspsaga": "plugin-lspsaga", + "plugin-lualine": "plugin-lualine", + "plugin-mind-nvim": "plugin-mind-nvim", + "plugin-minimap-vim": "plugin-minimap-vim", + "plugin-modes-nvim": "plugin-modes-nvim", + "plugin-neocord": "plugin-neocord", + "plugin-neodev-nvim": "plugin-neodev-nvim", + "plugin-noice-nvim": "plugin-noice-nvim", + "plugin-none-ls": "plugin-none-ls", + "plugin-nui-nvim": "plugin-nui-nvim", + "plugin-nvim-autopairs": "plugin-nvim-autopairs", + "plugin-nvim-bufferline-lua": "plugin-nvim-bufferline-lua", + "plugin-nvim-cmp": "plugin-nvim-cmp", + "plugin-nvim-code-action-menu": "plugin-nvim-code-action-menu", + "plugin-nvim-colorizer-lua": "plugin-nvim-colorizer-lua", + "plugin-nvim-cursorline": "plugin-nvim-cursorline", + "plugin-nvim-dap": "plugin-nvim-dap", + "plugin-nvim-dap-go": "plugin-nvim-dap-go", + "plugin-nvim-dap-ui": "plugin-nvim-dap-ui", + "plugin-nvim-docs-view": "plugin-nvim-docs-view", + "plugin-nvim-lightbulb": "plugin-nvim-lightbulb", + "plugin-nvim-lspconfig": "plugin-nvim-lspconfig", + "plugin-nvim-navbuddy": "plugin-nvim-navbuddy", + "plugin-nvim-navic": "plugin-nvim-navic", + "plugin-nvim-neoclip": "plugin-nvim-neoclip", + "plugin-nvim-nio": "plugin-nvim-nio", + "plugin-nvim-notify": "plugin-nvim-notify", + "plugin-nvim-session-manager": "plugin-nvim-session-manager", + "plugin-nvim-surround": "plugin-nvim-surround", + "plugin-nvim-tree-lua": "plugin-nvim-tree-lua", + "plugin-nvim-treesitter-context": "plugin-nvim-treesitter-context", + "plugin-nvim-ts-autotag": "plugin-nvim-ts-autotag", + "plugin-nvim-web-devicons": "plugin-nvim-web-devicons", + "plugin-obsidian-nvim": "plugin-obsidian-nvim", + "plugin-onedark": "plugin-onedark", + "plugin-orgmode-nvim": "plugin-orgmode-nvim", + "plugin-oxocarbon": "plugin-oxocarbon", + "plugin-plenary-nvim": "plugin-plenary-nvim", + "plugin-project-nvim": "plugin-project-nvim", + "plugin-registers": "plugin-registers", + "plugin-rose-pine": "plugin-rose-pine", + "plugin-rust-tools": "plugin-rust-tools", + "plugin-scrollbar-nvim": "plugin-scrollbar-nvim", + "plugin-smartcolumn": "plugin-smartcolumn", + "plugin-sqls-nvim": "plugin-sqls-nvim", + "plugin-tabular": "plugin-tabular", + "plugin-telescope": "plugin-telescope", + "plugin-todo-comments": "plugin-todo-comments", + "plugin-toggleterm-nvim": "plugin-toggleterm-nvim", + "plugin-tokyonight": "plugin-tokyonight", + "plugin-trouble": "plugin-trouble", + "plugin-ts-error-translator": "plugin-ts-error-translator", + "plugin-vim-dirtytalk": "plugin-vim-dirtytalk", + "plugin-vim-fugitive": "plugin-vim-fugitive", + "plugin-vim-illuminate": "plugin-vim-illuminate", + "plugin-vim-markdown": "plugin-vim-markdown", + "plugin-vim-repeat": "plugin-vim-repeat", + "plugin-vim-startify": "plugin-vim-startify", + "plugin-vim-vsnip": "plugin-vim-vsnip", + "plugin-which-key": "plugin-which-key", + "rnix-lsp": "rnix-lsp", + "systems": "systems_6", + "zig": "zig" + }, + "locked": { + "lastModified": 1720032146, + "narHash": "sha256-m+442OenNQB3SAhVWh2WmKVIauv+OFvl8a7U1weW19s=", + "owner": "notashelf", + "repo": "nvf", + "rev": "3f5ed9e979f3048dc7ad07b0e9f0a6546588ce6c", + "type": "github" + }, + "original": { + "owner": "notashelf", + "repo": "nvf", + "type": "github" + } + }, + "neovim-nightly-overlay": { + "inputs": { + "flake-compat": "flake-compat_2", + "flake-parts": "flake-parts_3", + "git-hooks": "git-hooks", + "hercules-ci-effects": "hercules-ci-effects", + "neovim-src": "neovim-src", + "nixpkgs": "nixpkgs_7" + }, + "locked": { + "lastModified": 1720256686, + "narHash": "sha256-ihHXj+fp/BVpc86rCNN+Qbnpg6OrbeI+jxz6VRyzcy0=", + "owner": "nix-community", + "repo": "neovim-nightly-overlay", + "rev": "9822e0611d49ae70278ac20c9d7b68e4797b2fab", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "neovim-nightly-overlay", + "type": "github" + } + }, + "neovim-src": { + "flake": false, + "locked": { + "lastModified": 1720175946, + "narHash": "sha256-9tiW0rkQZGhnNaIP6gWj7N/iTlCLFdD5r37R1jVOs3s=", + "owner": "neovim", + "repo": "neovim", + "rev": "3c53e8f78511d6db9a6c804e5a479ba38c33102d", + "type": "github" + }, + "original": { + "owner": "neovim", + "repo": "neovim", + "type": "github" + } + }, + "nil": { + "inputs": { + "flake-utils": [ + "neovim-flake", + "flake-utils" + ], + "nixpkgs": [ + "neovim-flake", + "nixpkgs" + ], + "rust-overlay": "rust-overlay" + }, + "locked": { + "lastModified": 1714571717, + "narHash": "sha256-o4tqlTzi9kcVub167kTGXgCac9jM3kW4+v9MH/ue4Hk=", + "owner": "oxalica", + "repo": "nil", + "rev": "2f3ed6348bbf1440fcd1ab0411271497a0fbbfa4", + "type": "github" + }, + "original": { + "owner": "oxalica", + "repo": "nil", + "type": "github" + } + }, "nix-darwin": { "inputs": { "nixpkgs": [ @@ -998,11 +1440,11 @@ ] }, "locked": { - "lastModified": 1719128254, - "narHash": "sha256-I7jMpq0CAOZA/i70+HDQO/ulLttyQu/K70cSESiMX7A=", + "lastModified": 1719845423, + "narHash": "sha256-ZLHDmWAsHQQKnmfyhYSHJDlt8Wfjv6SQhl2qek42O7A=", "owner": "lnl7", "repo": "nix-darwin", - "rev": "50581970f37f06a4719001735828519925ef8310", + "rev": "ec12b88104d6c117871fad55e931addac4626756", "type": "github" }, "original": { @@ -1013,9 +1455,9 @@ }, "nix-eval-jobs": { "inputs": { - "flake-parts": "flake-parts_3", + "flake-parts": "flake-parts_6", "nix-github-actions": "nix-github-actions", - "nixpkgs": "nixpkgs_5", + "nixpkgs": "nixpkgs_9", "treefmt-nix": "treefmt-nix" }, "locked": { @@ -1071,18 +1513,18 @@ }, "nixpak": { "inputs": { - "flake-parts": "flake-parts_2", - "hercules-ci-effects": "hercules-ci-effects", + "flake-parts": "flake-parts_5", + "hercules-ci-effects": "hercules-ci-effects_2", "nixpkgs": [ "nixpkgs" ] }, "locked": { - "lastModified": 1719454904, - "narHash": "sha256-/p5EdN8b8XxOihdqw6bTh5zsVR8iecdDB7qXo/jRy+4=", + "lastModified": 1720059538, + "narHash": "sha256-6CTyQ37ywENn59pVEVuYh2HFpX11RcMil8OaGKuoo90=", "owner": "nixpak", "repo": "nixpak", - "rev": "02483947c304279c6861fcd15df9aee8859a5a7b", + "rev": "196d621ef861d285a1e5407ef7ee723e60e2b28c", "type": "github" }, "original": { @@ -1108,6 +1550,18 @@ } }, "nixpkgs-lib": { + "locked": { + "lastModified": 1714640452, + "narHash": "sha256-QBx10+k6JWz6u7VsohfSw8g8hjdBZEf8CFzXH1/1Z94=", + "type": "tarball", + "url": "https://github.com/NixOS/nixpkgs/archive/50eb7ecf4cd0a5756d7275c8ba36790e5bd53e33.tar.gz" + }, + "original": { + "type": "tarball", + "url": "https://github.com/NixOS/nixpkgs/archive/50eb7ecf4cd0a5756d7275c8ba36790e5bd53e33.tar.gz" + } + }, + "nixpkgs-lib_2": { "locked": { "lastModified": 1719708727, "narHash": "sha256-XFNKtyirrGNdehpg7lMNm1skEcBApjqGhaHc/OI95HY=", @@ -1122,7 +1576,7 @@ "type": "github" } }, - "nixpkgs-lib_2": { + "nixpkgs-lib_3": { "locked": { "dir": "lib", "lastModified": 1698611440, @@ -1142,11 +1596,11 @@ }, "nixpkgs-stable": { "locked": { - "lastModified": 1719663039, - "narHash": "sha256-tXlrgAQygNIy49LDVFuPXlWD2zTQV9/F8pfoqwwPJyo=", + "lastModified": 1719957072, + "narHash": "sha256-gvFhEf5nszouwLAkT9nWsDzocUTqLWHuL++dvNjMp9I=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "4a1e673523344f6ccc84b37f4413ad74ea19a119", + "rev": "7144d6241f02d171d25fba3edeaf15e0f2592105", "type": "github" }, "original": { @@ -1158,17 +1612,17 @@ }, "nixpkgs-wayland": { "inputs": { - "flake-compat": "flake-compat", + "flake-compat": "flake-compat_4", "lib-aggregate": "lib-aggregate", "nix-eval-jobs": "nix-eval-jobs", - "nixpkgs": "nixpkgs_6" + "nixpkgs": "nixpkgs_10" }, "locked": { - "lastModified": 1719861366, - "narHash": "sha256-0AoX95NkDRQeCL+m1BDW+FdKVldsb6NF94vlE63q7No=", + "lastModified": 1720254101, + "narHash": "sha256-uLdBJWNxJcq/avc9lSOZ9IbURy+fnRTkApPOkQJhGDY=", "owner": "nix-community", "repo": "nixpkgs-wayland", - "rev": "4cb5b074e41c963724d187c08c58be677154a9b8", + "rev": "3077de42e37d6835fc29196efda76991493c96c9", "type": "github" }, "original": { @@ -1177,77 +1631,13 @@ "type": "github" } }, - "nixpkgs_2": { + "nixpkgs_10": { "locked": { - "lastModified": 1719690277, - "narHash": "sha256-0xSej1g7eP2kaUF+JQp8jdyNmpmCJKRpO12mKl/36Kc=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "2741b4b489b55df32afac57bc4bfd220e8bf617e", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_3": { - "locked": { - "lastModified": 1719075281, - "narHash": "sha256-CyyxvOwFf12I91PBWz43iGT1kjsf5oi6ax7CrvaMyAo=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "a71e967ef3694799d0c418c98332f7ff4cc5f6af", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_4": { - "locked": { - "lastModified": 1719690277, - "narHash": "sha256-0xSej1g7eP2kaUF+JQp8jdyNmpmCJKRpO12mKl/36Kc=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "2741b4b489b55df32afac57bc4bfd220e8bf617e", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_5": { - "locked": { - "lastModified": 1719082008, - "narHash": "sha256-jHJSUH619zBQ6WdC21fFAlDxHErKVDJ5fpN0Hgx4sjs=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "9693852a2070b398ee123a329e68f0dab5526681", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixpkgs-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_6": { - "locked": { - "lastModified": 1719690277, - "narHash": "sha256-0xSej1g7eP2kaUF+JQp8jdyNmpmCJKRpO12mKl/36Kc=", + "lastModified": 1720031269, + "narHash": "sha256-rwz8NJZV+387rnWpTYcXaRNvzUSnnF9aHONoJIYmiUQ=", "owner": "nixos", "repo": "nixpkgs", - "rev": "2741b4b489b55df32afac57bc4bfd220e8bf617e", + "rev": "9f4128e00b0ae8ec65918efeba59db998750ead6", "type": "github" }, "original": { @@ -1257,7 +1647,7 @@ "type": "github" } }, - "nixpkgs_7": { + "nixpkgs_11": { "locked": { "lastModified": 1686020360, "narHash": "sha256-Wee7lIlZ6DIZHHLiNxU5KdYZQl0iprENXa/czzI6Cj4=", @@ -1273,7 +1663,7 @@ "type": "github" } }, - "nixpkgs_8": { + "nixpkgs_12": { "locked": { "lastModified": 1714912032, "narHash": "sha256-clkcOIkg8G4xuJh+1onLG4HPMpbtzdLv4rHxFzgsH9c=", @@ -1289,12 +1679,140 @@ "type": "github" } }, + "nixpkgs_2": { + "locked": { + "lastModified": 1718714799, + "narHash": "sha256-FUZpz9rg3gL8NVPKbqU8ei1VkPLsTIfAJ2fdAf5qjak=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "c00d587b1a1afbf200b1d8f0b0e4ba9deb1c7f0e", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_3": { + "locked": { + "lastModified": 1720031269, + "narHash": "sha256-rwz8NJZV+387rnWpTYcXaRNvzUSnnF9aHONoJIYmiUQ=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "9f4128e00b0ae8ec65918efeba59db998750ead6", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_4": { + "locked": { + "lastModified": 1719075281, + "narHash": "sha256-CyyxvOwFf12I91PBWz43iGT1kjsf5oi6ax7CrvaMyAo=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "a71e967ef3694799d0c418c98332f7ff4cc5f6af", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_5": { + "locked": { + "lastModified": 1656753965, + "narHash": "sha256-BCrB3l0qpJokOnIVc3g2lHiGhnjUi0MoXiw6t1o8H1E=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "0ea7a8f1b939d74e5df8af9a8f7342097cdf69eb", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_6": { + "locked": { + "lastModified": 1702350026, + "narHash": "sha256-A+GNZFZdfl4JdDphYKBJ5Ef1HOiFsP18vQe9mqjmUis=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "9463103069725474698139ab10f17a9d125da859", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-23.05", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_7": { + "locked": { + "lastModified": 1720181791, + "narHash": "sha256-i4vJL12/AdyuQuviMMd1Hk2tsGt02hDNhA0Zj1m16N8=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "4284c2b73c8bce4b46a6adf23e16d9e2ec8da4bb", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_8": { + "locked": { + "lastModified": 1720031269, + "narHash": "sha256-rwz8NJZV+387rnWpTYcXaRNvzUSnnF9aHONoJIYmiUQ=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "9f4128e00b0ae8ec65918efeba59db998750ead6", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_9": { + "locked": { + "lastModified": 1719082008, + "narHash": "sha256-jHJSUH619zBQ6WdC21fFAlDxHErKVDJ5fpN0Hgx4sjs=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "9693852a2070b398ee123a329e68f0dab5526681", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, "nixvim": { "inputs": { "devshell": "devshell", - "flake-compat": "flake-compat_2", - "flake-parts": "flake-parts_4", - "git-hooks": "git-hooks", + "flake-compat": "flake-compat_5", + "flake-parts": "flake-parts_7", + "git-hooks": "git-hooks_2", "home-manager": "home-manager_3", "nix-darwin": "nix-darwin", "nixpkgs": [ @@ -1303,11 +1821,11 @@ "treefmt-nix": "treefmt-nix_2" }, "locked": { - "lastModified": 1719860300, - "narHash": "sha256-ZeF+zI+/53HeS567/mXS2Gw+w8k9FsjRC/TzoVQOpi4=", + "lastModified": 1720262861, + "narHash": "sha256-KMCrvbTAF9mdEv8ZcG6jqMCKmsZH7K5VTRw5Iv57Zl4=", "owner": "nix-community", "repo": "nixvim", - "rev": "079c2c479b5707adf0b03f817be30945c92c15cf", + "rev": "04a255ed7e24b0d54a158de5252e8471ac4c6d8f", "type": "github" }, "original": { @@ -1316,13 +1834,29 @@ "type": "github" } }, + "nmd": { + "flake": false, + "locked": { + "lastModified": 1705050560, + "narHash": "sha256-x3zzcdvhJpodsmdjqB4t5mkVW22V3wqHLOun0KRBzUI=", + "owner": "~rycee", + "repo": "nmd", + "rev": "66d9334933119c36f91a78d565c152a4fdc8d3d3", + "type": "sourcehut" + }, + "original": { + "owner": "~rycee", + "repo": "nmd", + "type": "sourcehut" + } + }, "nur": { "locked": { - "lastModified": 1719858509, - "narHash": "sha256-jtm8ua6/+NxXr9lr9LuTKpWGida1jeOInda0MdXrS+k=", + "lastModified": 1720262786, + "narHash": "sha256-lOw+DePpT6JEzudxzq/yhDqWW9fOga9vrojV2E1DgAs=", "owner": "nix-community", "repo": "NUR", - "rev": "9f3d8cf1bb4a91c5d757dc09198c85344e06ce1a", + "rev": "7907d743f2a29c574db99f3297da264fe5fe7a6e", "type": "github" }, "original": { @@ -1331,9 +1865,1599 @@ "type": "github" } }, + "plugin-alpha-nvim": { + "flake": false, + "locked": { + "lastModified": 1708891191, + "narHash": "sha256-kTVPKZ/e1us/uHfSwFwR38lFYN8EotJq2jKz6xm/eqg=", + "owner": "goolord", + "repo": "alpha-nvim", + "rev": "41283fb402713fc8b327e60907f74e46166f4cfd", + "type": "github" + }, + "original": { + "owner": "goolord", + "repo": "alpha-nvim", + "type": "github" + } + }, + "plugin-bufdelete-nvim": { + "flake": false, + "locked": { + "lastModified": 1708814161, + "narHash": "sha256-ljUNfmpImtxFCS19HC9kFlaLlqaPDltKtnx1+/6Y33U=", + "owner": "famiu", + "repo": "bufdelete.nvim", + "rev": "f6bcea78afb3060b198125256f897040538bcb81", + "type": "github" + }, + "original": { + "owner": "famiu", + "repo": "bufdelete.nvim", + "type": "github" + } + }, + "plugin-catppuccin": { + "flake": false, + "locked": { + "lastModified": 1716704960, + "narHash": "sha256-UDPS+1o8FQGkfqiG4GX4DNUI2pU5hIvagmfnWTKDb44=", + "owner": "catppuccin", + "repo": "nvim", + "rev": "5215ea59df6d0a7e27da9a5cd1165e06d1b04cbe", + "type": "github" + }, + "original": { + "owner": "catppuccin", + "repo": "nvim", + "type": "github" + } + }, + "plugin-ccc": { + "flake": false, + "locked": { + "lastModified": 1714299582, + "narHash": "sha256-QRq9hQF5vLnOTzQGbOWC2ykMdMsQDlDlb6XC17dJG7Q=", + "owner": "uga-rosa", + "repo": "ccc.nvim", + "rev": "f388f1981d222967c741fe9927edf9ba5fa3bcbe", + "type": "github" + }, + "original": { + "owner": "uga-rosa", + "repo": "ccc.nvim", + "type": "github" + } + }, + "plugin-cellular-automaton": { + "flake": false, + "locked": { + "lastModified": 1693589931, + "narHash": "sha256-szbd6m7hH7NFI0UzjWF83xkpSJeUWCbn9c+O8F8S/Fg=", + "owner": "Eandrju", + "repo": "cellular-automaton.nvim", + "rev": "b7d056dab963b5d3f2c560d92937cb51db61cb5b", + "type": "github" + }, + "original": { + "owner": "Eandrju", + "repo": "cellular-automaton.nvim", + "type": "github" + } + }, + "plugin-chatgpt": { + "flake": false, + "locked": { + "lastModified": 1709721561, + "narHash": "sha256-vD3NEsYmPRWlxBSOxyIMIQiJXQXxx0hhsw4zIxxXB3o=", + "owner": "jackMort", + "repo": "ChatGPT.nvim", + "rev": "df53728e05129278d6ea26271ec086aa013bed90", + "type": "github" + }, + "original": { + "owner": "jackMort", + "repo": "ChatGPT.nvim", + "type": "github" + } + }, + "plugin-cheatsheet-nvim": { + "flake": false, + "locked": { + "lastModified": 1640255456, + "narHash": "sha256-TYkGB7cON2t4GwMaR9H1MDG2j3btBv2AR37ade8kqTY=", + "owner": "sudormrfbin", + "repo": "cheatsheet.nvim", + "rev": "9716f9aaa94dd1fd6ce59b5aae0e5f25e2a463ef", + "type": "github" + }, + "original": { + "owner": "sudormrfbin", + "repo": "cheatsheet.nvim", + "type": "github" + } + }, + "plugin-cinnamon-nvim": { + "flake": false, + "locked": { + "lastModified": 1714107684, + "narHash": "sha256-cMP9WRZzevxaWgpILyDh1JwNukm3Jl3JKJYPT2HnFns=", + "owner": "declancm", + "repo": "cinnamon.nvim", + "rev": "a011e84b624cd7b609ea928237505d31b987748a", + "type": "github" + }, + "original": { + "owner": "declancm", + "repo": "cinnamon.nvim", + "type": "github" + } + }, + "plugin-cmp-buffer": { + "flake": false, + "locked": { + "lastModified": 1660101488, + "narHash": "sha256-dG4U7MtnXThoa/PD+qFtCt76MQ14V1wX8GMYcvxEnbM=", + "owner": "hrsh7th", + "repo": "cmp-buffer", + "rev": "3022dbc9166796b644a841a02de8dd1cc1d311fa", + "type": "github" + }, + "original": { + "owner": "hrsh7th", + "repo": "cmp-buffer", + "type": "github" + } + }, + "plugin-cmp-nvim-lsp": { + "flake": false, + "locked": { + "lastModified": 1715931395, + "narHash": "sha256-CT1+Z4XJBVsl/RqvJeGmyitD6x7So0ylXvvef5jh7I8=", + "owner": "hrsh7th", + "repo": "cmp-nvim-lsp", + "rev": "39e2eda76828d88b773cc27a3f61d2ad782c922d", + "type": "github" + }, + "original": { + "owner": "hrsh7th", + "repo": "cmp-nvim-lsp", + "type": "github" + } + }, + "plugin-cmp-path": { + "flake": false, + "locked": { + "lastModified": 1664784283, + "narHash": "sha256-thppiiV3wjIaZnAXmsh7j3DUc6ceSCvGzviwFUnoPaI=", + "owner": "hrsh7th", + "repo": "cmp-path", + "rev": "91ff86cd9c29299a64f968ebb45846c485725f23", + "type": "github" + }, + "original": { + "owner": "hrsh7th", + "repo": "cmp-path", + "type": "github" + } + }, + "plugin-cmp-treesitter": { + "flake": false, + "locked": { + "lastModified": 1715596479, + "narHash": "sha256-8WAk9S+/7vSz7bVHdEzjbKUokU144fvnByIeJ1gAWhU=", + "owner": "ray-x", + "repo": "cmp-treesitter", + "rev": "958fcfa0d8ce46d215e19cc3992c542f576c4123", + "type": "github" + }, + "original": { + "owner": "ray-x", + "repo": "cmp-treesitter", + "type": "github" + } + }, + "plugin-cmp-vsnip": { + "flake": false, + "locked": { + "lastModified": 1669100283, + "narHash": "sha256-2mkN03noOr5vBvRbSb35xZKorSH+8savQNZtgM9+QcM=", + "owner": "hrsh7th", + "repo": "cmp-vsnip", + "rev": "989a8a73c44e926199bfd05fa7a516d51f2d2752", + "type": "github" + }, + "original": { + "owner": "hrsh7th", + "repo": "cmp-vsnip", + "type": "github" + } + }, + "plugin-codewindow-nvim": { + "flake": false, + "locked": { + "lastModified": 1695487629, + "narHash": "sha256-/u2Zjbd9m3/iJU3I3HzFzXWxuvoycwJoIq7UFeHNtKM=", + "owner": "gorbit99", + "repo": "codewindow.nvim", + "rev": "8c8f5ff66e123491c946c04848d744fcdc7cac6c", + "type": "github" + }, + "original": { + "owner": "gorbit99", + "repo": "codewindow.nvim", + "type": "github" + } + }, + "plugin-comment-nvim": { + "flake": false, + "locked": { + "lastModified": 1691409559, + "narHash": "sha256-+dF1ZombrlO6nQggufSb0igXW5zwU++o0W/5ZA07cdc=", + "owner": "numToStr", + "repo": "Comment.nvim", + "rev": "0236521ea582747b58869cb72f70ccfa967d2e89", + "type": "github" + }, + "original": { + "owner": "numToStr", + "repo": "Comment.nvim", + "type": "github" + } + }, + "plugin-copilot-cmp": { + "flake": false, + "locked": { + "lastModified": 1694286652, + "narHash": "sha256-srgNohm/aJpswNJ5+T7p+zi9Jinp9e5FA8/wdk6VRiY=", + "owner": "zbirenbaum", + "repo": "copilot-cmp", + "rev": "72fbaa03695779f8349be3ac54fa8bd77eed3ee3", + "type": "github" + }, + "original": { + "owner": "zbirenbaum", + "repo": "copilot-cmp", + "type": "github" + } + }, + "plugin-copilot-lua": { + "flake": false, + "locked": { + "lastModified": 1709095198, + "narHash": "sha256-JX3sdsnOnjkY7r9fCtC2oauo0PXF3SQ+SHUo8ifBvAc=", + "owner": "zbirenbaum", + "repo": "copilot.lua", + "rev": "f7612f5af4a7d7615babf43ab1e67a2d790c13a6", + "type": "github" + }, + "original": { + "owner": "zbirenbaum", + "repo": "copilot.lua", + "type": "github" + } + }, + "plugin-crates-nvim": { + "flake": false, + "locked": { + "lastModified": 1715690194, + "narHash": "sha256-R1y1OIep4tcFd4mhylZ/A2zdwOmEQtCzuVBOBYu0qUI=", + "owner": "Saecki", + "repo": "crates.nvim", + "rev": "d556c00d60c9421c913ee54ff690df2a34f6264e", + "type": "github" + }, + "original": { + "owner": "Saecki", + "repo": "crates.nvim", + "type": "github" + } + }, + "plugin-dashboard-nvim": { + "flake": false, + "locked": { + "lastModified": 1715952164, + "narHash": "sha256-mLQHRzt9vUJLOO15+u7EaE2FGzIm1Ba7fqwdu5zaTYA=", + "owner": "glepnir", + "repo": "dashboard-nvim", + "rev": "5182c09ac8085dc73b78ad0ea9f5479c9a866fc4", + "type": "github" + }, + "original": { + "owner": "glepnir", + "repo": "dashboard-nvim", + "type": "github" + } + }, + "plugin-diffview-nvim": { + "flake": false, + "locked": { + "lastModified": 1716569036, + "narHash": "sha256-sCrswSN/ERirije4hukg81t+X8sVG6EnG8SPK/P1Bts=", + "owner": "sindrets", + "repo": "diffview.nvim", + "rev": "1ec7b56b959dab18f7030f541c33ae60e18a6f88", + "type": "github" + }, + "original": { + "owner": "sindrets", + "repo": "diffview.nvim", + "type": "github" + } + }, + "plugin-dracula": { + "flake": false, + "locked": { + "lastModified": 1708834650, + "narHash": "sha256-I3rtbJYv1D+kniOLL9hmTF3ucp/qSNewnO2GmYAERko=", + "owner": "Mofiqul", + "repo": "dracula.nvim", + "rev": "8d8bddb8814c3e7e62d80dda65a9876f97eb699c", + "type": "github" + }, + "original": { + "owner": "Mofiqul", + "repo": "dracula.nvim", + "type": "github" + } + }, + "plugin-dressing-nvim": { + "flake": false, + "locked": { + "lastModified": 1716410905, + "narHash": "sha256-AXY1+nA6Q/kWbuwOAqwVdd3QrjkHGVdVMHShvSIfLwM=", + "owner": "stevearc", + "repo": "dressing.nvim", + "rev": "3c38ac861e1b8d4077ff46a779cde17330b29f3a", + "type": "github" + }, + "original": { + "owner": "stevearc", + "repo": "dressing.nvim", + "type": "github" + } + }, + "plugin-elixir-tools": { + "flake": false, + "locked": { + "lastModified": 1716478469, + "narHash": "sha256-ESL/H/l5Yarcuo3MjBplKwox8E6CBxvWrpciyJeaES0=", + "owner": "elixir-tools", + "repo": "elixir-tools.nvim", + "rev": "815cf0b0aab0421f8490199c0dd7442d22a7c1b7", + "type": "github" + }, + "original": { + "owner": "elixir-tools", + "repo": "elixir-tools.nvim", + "type": "github" + } + }, + "plugin-fidget-nvim": { + "flake": false, + "locked": { + "lastModified": 1716093309, + "narHash": "sha256-Gpk/G0ByOAIE8uX4Xr94CvAjJBSJMEOwBuvrhmYYGsg=", + "owner": "j-hui", + "repo": "fidget.nvim", + "rev": "ef99df04a1c53a453602421bc0f756997edc8289", + "type": "github" + }, + "original": { + "owner": "j-hui", + "repo": "fidget.nvim", + "type": "github" + } + }, + "plugin-flutter-tools": { + "flake": false, + "locked": { + "lastModified": 1716114535, + "narHash": "sha256-dRcWCqFHtDMOEGjKji3lxYQZKBhlhss/i51pX6FZxuI=", + "owner": "akinsho", + "repo": "flutter-tools.nvim", + "rev": "990a1349c29f7d474a0cd51355aba773ccc9deea", + "type": "github" + }, + "original": { + "owner": "akinsho", + "repo": "flutter-tools.nvim", + "type": "github" + } + }, + "plugin-gesture-nvim": { + "flake": false, + "locked": { + "lastModified": 1715776261, + "narHash": "sha256-XgF5BTKR5IiELNqYDvOPIGMw3HtkyNd3K5SOGfYFizY=", + "owner": "notomo", + "repo": "gesture.nvim", + "rev": "3750313a40a752629e3e90f3c3e591969fdab388", + "type": "github" + }, + "original": { + "owner": "notomo", + "repo": "gesture.nvim", + "type": "github" + } + }, + "plugin-gitsigns-nvim": { + "flake": false, + "locked": { + "lastModified": 1716453598, + "narHash": "sha256-TTC3uvRsq4v6PBdS/3YAGpyhVt0w3/SGkPE3fu1zW94=", + "owner": "lewis6991", + "repo": "gitsigns.nvim", + "rev": "cdfcd9d39d23c46ae9a040de2c6a8b8bf868746e", + "type": "github" + }, + "original": { + "owner": "lewis6991", + "repo": "gitsigns.nvim", + "type": "github" + } + }, + "plugin-glow-nvim": { + "flake": false, + "locked": { + "lastModified": 1703345545, + "narHash": "sha256-GsNcASzVvY0066kak2nvUY5luzanoBclqcUOsODww8g=", + "owner": "ellisonleao", + "repo": "glow.nvim", + "rev": "238070a686c1da3bccccf1079700eb4b5e19aea4", + "type": "github" + }, + "original": { + "owner": "ellisonleao", + "repo": "glow.nvim", + "type": "github" + } + }, + "plugin-gruvbox": { + "flake": false, + "locked": { + "lastModified": 1716072809, + "narHash": "sha256-BLhZGijGF03UFiyMJ66C1ZLDRqAo1C80ekHcBm1PGoY=", + "owner": "ellisonleao", + "repo": "gruvbox.nvim", + "rev": "96a8ec336fb48a11cefbd57508888361431aac26", + "type": "github" + }, + "original": { + "owner": "ellisonleao", + "repo": "gruvbox.nvim", + "type": "github" + } + }, + "plugin-highlight-undo": { + "flake": false, + "locked": { + "lastModified": 1714982601, + "narHash": "sha256-yGw1SxcUmGQxqKhMb2SJAai07g+rOpEJy2CqIX2h9dM=", + "owner": "tzachar", + "repo": "highlight-undo.nvim", + "rev": "1ea1c79372d7d93c88fd97543880927b7635e3d2", + "type": "github" + }, + "original": { + "owner": "tzachar", + "repo": "highlight-undo.nvim", + "type": "github" + } + }, + "plugin-hop-nvim": { + "flake": false, + "locked": { + "lastModified": 1694283445, + "narHash": "sha256-SnuFeD/lrMxKtpBRPgIwdG0kVF7BWe02PiV7URVDASI=", + "owner": "phaazon", + "repo": "hop.nvim", + "rev": "1a1eceafe54b5081eae4cb91c723abd1d450f34b", + "type": "github" + }, + "original": { + "owner": "phaazon", + "repo": "hop.nvim", + "type": "github" + } + }, + "plugin-icon-picker-nvim": { + "flake": false, + "locked": { + "lastModified": 1704321319, + "narHash": "sha256-VZKsVeSmPR3AA8267Mtd5sSTZl2CAqnbgqceCptgp4w=", + "owner": "ziontee113", + "repo": "icon-picker.nvim", + "rev": "3ee9a0ea9feeef08ae35e40c8be6a2fa2c20f2d3", + "type": "github" + }, + "original": { + "owner": "ziontee113", + "repo": "icon-picker.nvim", + "type": "github" + } + }, + "plugin-image-nvim": { + "flake": false, + "locked": { + "lastModified": 1716308282, + "narHash": "sha256-6nFzUchDQIvaTOv4lZ10q66m/ntU3dgVnlfBRodW+0Y=", + "owner": "3rd", + "repo": "image.nvim", + "rev": "2a618c86d9f8fd9f7895d12b55ec2f31fd14fa05", + "type": "github" + }, + "original": { + "owner": "3rd", + "repo": "image.nvim", + "type": "github" + } + }, + "plugin-indent-blankline": { + "flake": false, + "locked": { + "lastModified": 1716449809, + "narHash": "sha256-K5y0UQAXc0N6+1kqncX2eClpvZb7jlg7GhSerHQVZX0=", + "owner": "lukas-reineke", + "repo": "indent-blankline.nvim", + "rev": "d98f537c3492e87b6dc6c2e3f66ac517528f406f", + "type": "github" + }, + "original": { + "owner": "lukas-reineke", + "repo": "indent-blankline.nvim", + "type": "github" + } + }, + "plugin-leap-nvim": { + "flake": false, + "locked": { + "lastModified": 1716207448, + "narHash": "sha256-O/wN5v8GhlEECBIhJQvWhKcpQrqT7J+BNkd/fIh0TIQ=", + "owner": "ggandor", + "repo": "leap.nvim", + "rev": "8f4d3ab9fe5c906c5745150191831c5ee0a427a0", + "type": "github" + }, + "original": { + "owner": "ggandor", + "repo": "leap.nvim", + "type": "github" + } + }, + "plugin-lsp-lines": { + "flake": false, + "locked": { + "lastModified": 1716108775, + "narHash": "sha256-QsvmPOer7JgO7Y+N/iaNJD7Kmy69gnlV4CeyaQesNvA=", + "owner": "~whynothugo", + "repo": "lsp_lines.nvim", + "rev": "7d9e2748b61bff6ebba6e30adbc7173ccf21c055", + "type": "sourcehut" + }, + "original": { + "owner": "~whynothugo", + "repo": "lsp_lines.nvim", + "type": "sourcehut" + } + }, + "plugin-lsp-signature": { + "flake": false, + "locked": { + "lastModified": 1716637798, + "narHash": "sha256-4Abo4HGwzZtqEHcS9lsQdw+Dsn7tkQoeq5QyfTEEwnA=", + "owner": "ray-x", + "repo": "lsp_signature.nvim", + "rev": "529e8861d0410389f0163a5e5c2199d4a4ef5bf6", + "type": "github" + }, + "original": { + "owner": "ray-x", + "repo": "lsp_signature.nvim", + "type": "github" + } + }, + "plugin-lspkind": { + "flake": false, + "locked": { + "lastModified": 1704982040, + "narHash": "sha256-/QLdBU/Zwmkw1NGuLBD48tvrmIP9d9WHhgcLEQgRTWo=", + "owner": "onsails", + "repo": "lspkind-nvim", + "rev": "1735dd5a5054c1fb7feaf8e8658dbab925f4f0cf", + "type": "github" + }, + "original": { + "owner": "onsails", + "repo": "lspkind-nvim", + "type": "github" + } + }, + "plugin-lspsaga": { + "flake": false, + "locked": { + "lastModified": 1670360222, + "narHash": "sha256-7ENInq3LAPPTdm0Fb7klOc630j8m4LRj1kLZZFYLh68=", + "owner": "tami5", + "repo": "lspsaga.nvim", + "rev": "5faeec9f2508d2d49a66c0ac0d191096b4e3fa81", + "type": "github" + }, + "original": { + "owner": "tami5", + "repo": "lspsaga.nvim", + "type": "github" + } + }, + "plugin-lualine": { + "flake": false, + "locked": { + "lastModified": 1712310396, + "narHash": "sha256-WcH2dWdRDgMkwBQhcgT+Z/ArMdm+VbRhmQftx4t2kNI=", + "owner": "hoob3rt", + "repo": "lualine.nvim", + "rev": "0a5a66803c7407767b799067986b4dc3036e1983", + "type": "github" + }, + "original": { + "owner": "hoob3rt", + "repo": "lualine.nvim", + "type": "github" + } + }, + "plugin-mind-nvim": { + "flake": false, + "locked": { + "lastModified": 1679526071, + "narHash": "sha256-JIhAhQYGLLRucwlhzfckQYU5qjqbHtNH52JlGS5a79w=", + "owner": "phaazon", + "repo": "mind.nvim", + "rev": "002137dd7cf97865ebd01b6a260209d2daf2da66", + "type": "github" + }, + "original": { + "owner": "phaazon", + "repo": "mind.nvim", + "type": "github" + } + }, + "plugin-minimap-vim": { + "flake": false, + "locked": { + "lastModified": 1710689313, + "narHash": "sha256-GR8VAHla5HWry1TAZQv0Xp7iG256vIGeQcBGMxyt310=", + "owner": "wfxr", + "repo": "minimap.vim", + "rev": "395378137e6180762d5b963ca9ad5ac2db5d3283", + "type": "github" + }, + "original": { + "owner": "wfxr", + "repo": "minimap.vim", + "type": "github" + } + }, + "plugin-modes-nvim": { + "flake": false, + "locked": { + "lastModified": 1702245923, + "narHash": "sha256-Kd2hf5obrPvCVLtRcFjLd75byyrB2o3uYCSEMW6IeCc=", + "owner": "mvllow", + "repo": "modes.nvim", + "rev": "4035a46aaabe43faf1b54740575af9dd5bb03809", + "type": "github" + }, + "original": { + "owner": "mvllow", + "repo": "modes.nvim", + "type": "github" + } + }, + "plugin-neocord": { + "flake": false, + "locked": { + "lastModified": 1713923379, + "narHash": "sha256-oVWdnQlgXIMzMiybMq7yR/WfEW+Fm5RmhWx0RWprlfQ=", + "owner": "IogaMaster", + "repo": "neocord", + "rev": "aa7a58023166533da83ca7b11c0d2569e45d7381", + "type": "github" + }, + "original": { + "owner": "IogaMaster", + "repo": "neocord", + "type": "github" + } + }, + "plugin-neodev-nvim": { + "flake": false, + "locked": { + "lastModified": 1711715247, + "narHash": "sha256-mAJOMVN7/xO7ykVNAeTeX+z2A/7yB8zdqlEKHL6Pb74=", + "owner": "folke", + "repo": "neodev.nvim", + "rev": "ce9a2e8eaba5649b553529c5498acb43a6c317cd", + "type": "github" + }, + "original": { + "owner": "folke", + "repo": "neodev.nvim", + "type": "github" + } + }, + "plugin-noice-nvim": { + "flake": false, + "locked": { + "lastModified": 1716502618, + "narHash": "sha256-GrgFjVDIQcCfg5qyO6FnhlGUCrz6rwAFh81yZXUJra4=", + "owner": "folke", + "repo": "noice.nvim", + "rev": "f119045f38792ad5311e5f9be7a879e4c1a95fe0", + "type": "github" + }, + "original": { + "owner": "folke", + "repo": "noice.nvim", + "type": "github" + } + }, + "plugin-none-ls": { + "flake": false, + "locked": { + "lastModified": 1708525772, + "narHash": "sha256-VCDUKiy9C3Bu9suf2bI6XSis1+j01oFC3GFPyQxi74c=", + "owner": "nvimtools", + "repo": "none-ls.nvim", + "rev": "bb680d752cec37949faca7a1f509e2fe67ab418a", + "type": "github" + }, + "original": { + "owner": "nvimtools", + "repo": "none-ls.nvim", + "rev": "bb680d752cec37949faca7a1f509e2fe67ab418a", + "type": "github" + } + }, + "plugin-nui-nvim": { + "flake": false, + "locked": { + "lastModified": 1716019714, + "narHash": "sha256-JRVVRT1CZZTjr58L+gAer7eCg9/fMdAD0YD5ljNwl0Q=", + "owner": "MunifTanjim", + "repo": "nui.nvim", + "rev": "b1b3dcd6ed8f355c78bad3d395ff645be5f8b6ae", + "type": "github" + }, + "original": { + "owner": "MunifTanjim", + "repo": "nui.nvim", + "type": "github" + } + }, + "plugin-nvim-autopairs": { + "flake": false, + "locked": { + "lastModified": 1716158088, + "narHash": "sha256-YEAqjlzVrS/VLrkwGo3L7cNOE1LuyLYlBtkR2HA5oVk=", + "owner": "windwp", + "repo": "nvim-autopairs", + "rev": "c15de7e7981f1111642e7e53799e1211d4606cb9", + "type": "github" + }, + "original": { + "owner": "windwp", + "repo": "nvim-autopairs", + "type": "github" + } + }, + "plugin-nvim-bufferline-lua": { + "flake": false, + "locked": { + "lastModified": 1716555412, + "narHash": "sha256-8PCkY1zrlMrPGnQOb7MjqDXNlkeX46jrT4ScIL+MOwM=", + "owner": "akinsho", + "repo": "nvim-bufferline.lua", + "rev": "99337f63f0a3c3ab9519f3d1da7618ca4f91cffe", + "type": "github" + }, + "original": { + "owner": "akinsho", + "repo": "nvim-bufferline.lua", + "type": "github" + } + }, + "plugin-nvim-cmp": { + "flake": false, + "locked": { + "lastModified": 1715954188, + "narHash": "sha256-GhXfnWqpXFVM7Yi9+qEXHfA6LIMILcMG9pP4VYXuptE=", + "owner": "hrsh7th", + "repo": "nvim-cmp", + "rev": "5260e5e8ecadaf13e6b82cf867a909f54e15fd07", + "type": "github" + }, + "original": { + "owner": "hrsh7th", + "repo": "nvim-cmp", + "type": "github" + } + }, + "plugin-nvim-code-action-menu": { + "flake": false, + "locked": { + "lastModified": 1702287297, + "narHash": "sha256-pY+aP9iBuJhvDZzVEsOHZmnfaq3vUP7TfKEEQrj+Mo8=", + "owner": "weilbith", + "repo": "nvim-code-action-menu", + "rev": "8c7672a4b04d3cc4edd2c484d05b660a9cb34a1b", + "type": "github" + }, + "original": { + "owner": "weilbith", + "repo": "nvim-code-action-menu", + "type": "github" + } + }, + "plugin-nvim-colorizer-lua": { + "flake": false, + "locked": { + "lastModified": 1703321305, + "narHash": "sha256-oKvFN2K+ASlPNwj2rhptR/ErYgo6XKBPhXSZotDdCP0=", + "owner": "NvChad", + "repo": "nvim-colorizer.lua", + "rev": "85855b38011114929f4058efc97af1059ab3e41d", + "type": "github" + }, + "original": { + "owner": "NvChad", + "repo": "nvim-colorizer.lua", + "type": "github" + } + }, + "plugin-nvim-cursorline": { + "flake": false, + "locked": { + "lastModified": 1650034925, + "narHash": "sha256-Uhw65p1KBjs8KsVOmTzuiu3XKclxBob8AVdWEt30C/8=", + "owner": "yamatsum", + "repo": "nvim-cursorline", + "rev": "804f0023692653b2b2368462d67d2a87056947f9", + "type": "github" + }, + "original": { + "owner": "yamatsum", + "repo": "nvim-cursorline", + "type": "github" + } + }, + "plugin-nvim-dap": { + "flake": false, + "locked": { + "lastModified": 1716747841, + "narHash": "sha256-uzivFy0ZNLxAXDqkYNrNy1SSHPRrGv3OLVCNCRDiikU=", + "owner": "mfussenegger", + "repo": "nvim-dap", + "rev": "922ebc75c2fa9305e36402fbd8c984c8638770a0", + "type": "github" + }, + "original": { + "owner": "mfussenegger", + "repo": "nvim-dap", + "type": "github" + } + }, + "plugin-nvim-dap-go": { + "flake": false, + "locked": { + "lastModified": 1716775637, + "narHash": "sha256-B8A+ven18YgePLxAN3Q/j5NFb0FeTHCQak1uzaNDX9c=", + "owner": "leoluz", + "repo": "nvim-dap-go", + "rev": "a0c5a2b991d7e9304a9a032cf177e22a4b0acda1", + "type": "github" + }, + "original": { + "owner": "leoluz", + "repo": "nvim-dap-go", + "type": "github" + } + }, + "plugin-nvim-dap-ui": { + "flake": false, + "locked": { + "lastModified": 1716237606, + "narHash": "sha256-paiyLNzqUq9G3U8qn8yl1AjHJzTTa17exA05QO09nGA=", + "owner": "rcarriga", + "repo": "nvim-dap-ui", + "rev": "334cf3038c4756e6ab999cbac67c847fb654c190", + "type": "github" + }, + "original": { + "owner": "rcarriga", + "repo": "nvim-dap-ui", + "type": "github" + } + }, + "plugin-nvim-docs-view": { + "flake": false, + "locked": { + "lastModified": 1705711563, + "narHash": "sha256-N5PrJKhF6pHkel4EyAllNdEYQRninfSyaAXPbuAiD+s=", + "owner": "amrbashir", + "repo": "nvim-docs-view", + "rev": "78d88bca16f32a430572758677f9246f6d7f7b94", + "type": "github" + }, + "original": { + "owner": "amrbashir", + "repo": "nvim-docs-view", + "type": "github" + } + }, + "plugin-nvim-lightbulb": { + "flake": false, + "locked": { + "lastModified": 1689887436, + "narHash": "sha256-Meoop66jINllnxN6aohuPmU7DEjn64FMq/b8zuy9FEQ=", + "owner": "kosayoda", + "repo": "nvim-lightbulb", + "rev": "8f00b89dd1b1dbde16872bee5fbcee2e58c9b8e9", + "type": "github" + }, + "original": { + "owner": "kosayoda", + "repo": "nvim-lightbulb", + "type": "github" + } + }, + "plugin-nvim-lspconfig": { + "flake": false, + "locked": { + "lastModified": 1716498901, + "narHash": "sha256-PMMqPDnq4Q8gWeKQ2WPE+pOf1R1G61wJ+bAWkHpQlzE=", + "owner": "neovim", + "repo": "nvim-lspconfig", + "rev": "b972e7154bc94ab4ecdbb38c8edbccac36f83996", + "type": "github" + }, + "original": { + "owner": "neovim", + "repo": "nvim-lspconfig", + "type": "github" + } + }, + "plugin-nvim-navbuddy": { + "flake": false, + "locked": { + "lastModified": 1716111817, + "narHash": "sha256-sZ1M27qNbLMHKR4Zu0NfJoBcQxJbhmW7Cx74Acirlww=", + "owner": "SmiteshP", + "repo": "nvim-navbuddy", + "rev": "f22bac988f2dd073601d75ba39ea5636ab6e38cb", + "type": "github" + }, + "original": { + "owner": "SmiteshP", + "repo": "nvim-navbuddy", + "type": "github" + } + }, + "plugin-nvim-navic": { + "flake": false, + "locked": { + "lastModified": 1701345631, + "narHash": "sha256-0p5n/V8Jlj9XyxV/fuMwsbQ7oV5m9H2GqZZEA/njxCQ=", + "owner": "SmiteshP", + "repo": "nvim-navic", + "rev": "8649f694d3e76ee10c19255dece6411c29206a54", + "type": "github" + }, + "original": { + "owner": "SmiteshP", + "repo": "nvim-navic", + "type": "github" + } + }, + "plugin-nvim-neoclip": { + "flake": false, + "locked": { + "lastModified": 1701664728, + "narHash": "sha256-QtqLKdrDGzIiSEo3DZtv0C7wx3KlrcyePoIYdvH6vpk=", + "owner": "AckslD", + "repo": "nvim-neoclip.lua", + "rev": "798cd0592a81c185465db3a091a0ff8a21af60fd", + "type": "github" + }, + "original": { + "owner": "AckslD", + "repo": "nvim-neoclip.lua", + "type": "github" + } + }, + "plugin-nvim-nio": { + "flake": false, + "locked": { + "lastModified": 1716391538, + "narHash": "sha256-UffuTu7mF96LHk0MQRNrsgDyo1QWa/1i5eJKjZkuG8k=", + "owner": "nvim-neotest", + "repo": "nvim-nio", + "rev": "632024157d01e8bc48fd7df6a7de8ffe3fdd4f3a", + "type": "github" + }, + "original": { + "owner": "nvim-neotest", + "repo": "nvim-nio", + "type": "github" + } + }, + "plugin-nvim-notify": { + "flake": false, + "locked": { + "lastModified": 1715959703, + "narHash": "sha256-wxyHwL/uFdp6w32CVHgSOWkzRrIRuFvWh+J2401RAAA=", + "owner": "rcarriga", + "repo": "nvim-notify", + "rev": "d333b6f167900f6d9d42a59005d82919830626bf", + "type": "github" + }, + "original": { + "owner": "rcarriga", + "repo": "nvim-notify", + "type": "github" + } + }, + "plugin-nvim-session-manager": { + "flake": false, + "locked": { + "lastModified": 1716560093, + "narHash": "sha256-A6oHIg8PG84L7QIRpo9WXKzMq4EUe92jQIxObOxpFmg=", + "owner": "Shatur", + "repo": "neovim-session-manager", + "rev": "b552ee8667037be5d0291229279a35af25e515fb", + "type": "github" + }, + "original": { + "owner": "Shatur", + "repo": "neovim-session-manager", + "type": "github" + } + }, + "plugin-nvim-surround": { + "flake": false, + "locked": { + "lastModified": 1715892699, + "narHash": "sha256-Mg60htwXPqNKu+JnexKiKF3Huvr7pBNdvc6f3Kt2FRA=", + "owner": "kylechui", + "repo": "nvim-surround", + "rev": "79aaa42da1f698ed31bcbe7f83081f69dca7ba17", + "type": "github" + }, + "original": { + "owner": "kylechui", + "repo": "nvim-surround", + "type": "github" + } + }, + "plugin-nvim-tree-lua": { + "flake": false, + "locked": { + "lastModified": 1716687243, + "narHash": "sha256-E6J9d0LJMK+Owj/iWbGVZBiVL/NI1xd5P0NNQpUmXj4=", + "owner": "nvim-tree", + "repo": "nvim-tree.lua", + "rev": "517e4fbb9ef3c0986da7047f44b4b91a2400f93c", + "type": "github" + }, + "original": { + "owner": "nvim-tree", + "repo": "nvim-tree.lua", + "type": "github" + } + }, + "plugin-nvim-treesitter-context": { + "flake": false, + "locked": { + "lastModified": 1716388265, + "narHash": "sha256-EY5Si6t7LXcxOP3ubGAAMd3lgbeaCOCIybSKi1Ucx98=", + "owner": "nvim-treesitter", + "repo": "nvim-treesitter-context", + "rev": "f62bfe19e0fbc13ae95649dfb3cf22f4ff85b683", + "type": "github" + }, + "original": { + "owner": "nvim-treesitter", + "repo": "nvim-treesitter-context", + "type": "github" + } + }, + "plugin-nvim-ts-autotag": { + "flake": false, + "locked": { + "lastModified": 1716420040, + "narHash": "sha256-gy6OVR2iH361XMDDo0dqxJsAxo+5nXr3wP42pieeCUg=", + "owner": "windwp", + "repo": "nvim-ts-autotag", + "rev": "8ae54b90e36ef1fc5267214b30c2cbff71525fe4", + "type": "github" + }, + "original": { + "owner": "windwp", + "repo": "nvim-ts-autotag", + "type": "github" + } + }, + "plugin-nvim-web-devicons": { + "flake": false, + "locked": { + "lastModified": 1716609001, + "narHash": "sha256-fmbsnNVZ6nBorBILwPfEgcDDWZCkh9YZH/aC343FxP4=", + "owner": "nvim-tree", + "repo": "nvim-web-devicons", + "rev": "b77921fdc44833c994fdb389d658ccbce5490c16", + "type": "github" + }, + "original": { + "owner": "nvim-tree", + "repo": "nvim-web-devicons", + "type": "github" + } + }, + "plugin-obsidian-nvim": { + "flake": false, + "locked": { + "lastModified": 1716489161, + "narHash": "sha256-R7q3PmDMYQtDTE1JZgQtvArBq55MnvNdcChOsuivSCo=", + "owner": "epwalsh", + "repo": "obsidian.nvim", + "rev": "0890a3f4e1711d98b5aa78bf40d2c5b81ef3c39f", + "type": "github" + }, + "original": { + "owner": "epwalsh", + "repo": "obsidian.nvim", + "type": "github" + } + }, + "plugin-onedark": { + "flake": false, + "locked": { + "lastModified": 1715454207, + "narHash": "sha256-GERMsVNELbeRrKsiPeSKcwNI+bH4C79koTBRtRMGqvc=", + "owner": "navarasu", + "repo": "onedark.nvim", + "rev": "8e4b79b0e6495ddf29552178eceba1e147e6cecf", + "type": "github" + }, + "original": { + "owner": "navarasu", + "repo": "onedark.nvim", + "type": "github" + } + }, + "plugin-orgmode-nvim": { + "flake": false, + "locked": { + "lastModified": 1716750850, + "narHash": "sha256-3xsdklkUuJwUzUieZT6eGIgDZUdVEGeyhxxUe99TOAA=", + "owner": "nvim-orgmode", + "repo": "orgmode", + "rev": "cb3c9bf6caf3411af88a9a1a0b7eb9be57b9741c", + "type": "github" + }, + "original": { + "owner": "nvim-orgmode", + "repo": "orgmode", + "type": "github" + } + }, + "plugin-oxocarbon": { + "flake": false, + "locked": { + "lastModified": 1701119822, + "narHash": "sha256-++JALLPklok9VY2ChOddTYDvDNVadmCeB98jCAJYCZ0=", + "owner": "nyoom-engineering", + "repo": "oxocarbon.nvim", + "rev": "c5846d10cbe4131cc5e32c6d00beaf59cb60f6a2", + "type": "github" + }, + "original": { + "owner": "nyoom-engineering", + "repo": "oxocarbon.nvim", + "type": "github" + } + }, + "plugin-plenary-nvim": { + "flake": false, + "locked": { + "lastModified": 1716230027, + "narHash": "sha256-5Jf2mWFVDofXBcXLbMa417mqlEPWLA+cQIZH/vNEV1g=", + "owner": "nvim-lua", + "repo": "plenary.nvim", + "rev": "a3e3bc82a3f95c5ed0d7201546d5d2c19b20d683", + "type": "github" + }, + "original": { + "owner": "nvim-lua", + "repo": "plenary.nvim", + "type": "github" + } + }, + "plugin-project-nvim": { + "flake": false, + "locked": { + "lastModified": 1680567592, + "narHash": "sha256-avV3wMiDbraxW4mqlEsKy0oeewaRj9Q33K8NzWoaptU=", + "owner": "ahmedkhalf", + "repo": "project.nvim", + "rev": "8c6bad7d22eef1b71144b401c9f74ed01526a4fb", + "type": "github" + }, + "original": { + "owner": "ahmedkhalf", + "repo": "project.nvim", + "type": "github" + } + }, + "plugin-registers": { + "flake": false, + "locked": { + "lastModified": 1703954003, + "narHash": "sha256-/MwIOR7H6ZkH/uLZOcMgg9XOWQB0yYYonbSKl51bXzo=", + "owner": "tversteeg", + "repo": "registers.nvim", + "rev": "22bb98f93a423252fffeb3531f7bc12a3e07b63f", + "type": "github" + }, + "original": { + "owner": "tversteeg", + "repo": "registers.nvim", + "type": "github" + } + }, + "plugin-rose-pine": { + "flake": false, + "locked": { + "lastModified": 1716691958, + "narHash": "sha256-mpBx0R9tR4KrOMO9J0gg2aOeHtiU9zK8xoa7Ebkx0n8=", + "owner": "rose-pine", + "repo": "neovim", + "rev": "87aa437172357ad8f916942bca249ceadc6c68b1", + "type": "github" + }, + "original": { + "owner": "rose-pine", + "repo": "neovim", + "type": "github" + } + }, + "plugin-rust-tools": { + "flake": false, + "locked": { + "lastModified": 1704259376, + "narHash": "sha256-kFane5ze7VDiOzF7jdmXkr50XQsNvdb+a9HQtybEVE0=", + "owner": "simrat39", + "repo": "rust-tools.nvim", + "rev": "676187908a1ce35ffcd727c654ed68d851299d3e", + "type": "github" + }, + "original": { + "owner": "simrat39", + "repo": "rust-tools.nvim", + "type": "github" + } + }, + "plugin-scrollbar-nvim": { + "flake": false, + "locked": { + "lastModified": 1684886154, + "narHash": "sha256-zLBexSxQCn9HPY04a9w/UCJP1F5ShI2X12I9xE9H0cM=", + "owner": "petertriho", + "repo": "nvim-scrollbar", + "rev": "35f99d559041c7c0eff3a41f9093581ceea534e8", + "type": "github" + }, + "original": { + "owner": "petertriho", + "repo": "nvim-scrollbar", + "type": "github" + } + }, + "plugin-smartcolumn": { + "flake": false, + "locked": { + "lastModified": 1710067624, + "narHash": "sha256-DHIeDNUF9n9s14GVeojIwc5QUPwJMYYl3gRvhvO/rdE=", + "owner": "m4xshen", + "repo": "smartcolumn.nvim", + "rev": "cefb17be095ad5526030a21bb2a80553cae09127", + "type": "github" + }, + "original": { + "owner": "m4xshen", + "repo": "smartcolumn.nvim", + "type": "github" + } + }, + "plugin-sqls-nvim": { + "flake": false, + "locked": { + "lastModified": 1684697500, + "narHash": "sha256-jKFut6NZAf/eIeIkY7/2EsjsIhvZQKCKAJzeQ6XSr0s=", + "owner": "nanotee", + "repo": "sqls.nvim", + "rev": "4b1274b5b44c48ce784aac23747192f5d9d26207", + "type": "github" + }, + "original": { + "owner": "nanotee", + "repo": "sqls.nvim", + "type": "github" + } + }, + "plugin-tabular": { + "flake": false, + "locked": { + "lastModified": 1550598128, + "narHash": "sha256-irolBA/m3YIaezl+90h5G+xUOpad+3u44uJqDs4JCUs=", + "owner": "godlygeek", + "repo": "tabular", + "rev": "339091ac4dd1f17e225fe7d57b48aff55f99b23a", + "type": "github" + }, + "original": { + "owner": "godlygeek", + "repo": "tabular", + "type": "github" + } + }, + "plugin-telescope": { + "flake": false, + "locked": { + "lastModified": 1716732931, + "narHash": "sha256-JXdpKfrSvrzpTqy+g9Bg85/vIDTUZfDr+ZhxH8wJDxA=", + "owner": "nvim-telescope", + "repo": "telescope.nvim", + "rev": "349660c0d35da06459ee8589af77de2086b652ce", + "type": "github" + }, + "original": { + "owner": "nvim-telescope", + "repo": "telescope.nvim", + "type": "github" + } + }, + "plugin-todo-comments": { + "flake": false, + "locked": { + "lastModified": 1716400082, + "narHash": "sha256-ZJp0emoHogSdhXPIH74MH4CznxhCmMbO243dqxAZMJo=", + "owner": "folke", + "repo": "todo-comments.nvim", + "rev": "e1549807066947818113a7d7ed48f637e49620d3", + "type": "github" + }, + "original": { + "owner": "folke", + "repo": "todo-comments.nvim", + "type": "github" + } + }, + "plugin-toggleterm-nvim": { + "flake": false, + "locked": { + "lastModified": 1716115307, + "narHash": "sha256-h82zisizLm0FOt4l8lzgC/spFk3R5Gx25A5YgULwW8U=", + "owner": "akinsho", + "repo": "toggleterm.nvim", + "rev": "fee58a0473fd92b28c34f8f724e4918b15ba30a3", + "type": "github" + }, + "original": { + "owner": "akinsho", + "repo": "toggleterm.nvim", + "type": "github" + } + }, + "plugin-tokyonight": { + "flake": false, + "locked": { + "lastModified": 1716732360, + "narHash": "sha256-ZWxK0q8kUYHOk+ykH1m4901trnuHN8O9hkOZR6HdC+Y=", + "owner": "folke", + "repo": "tokyonight.nvim", + "rev": "0fae425aaab04a5f97666bd431b96f2f19c36935", + "type": "github" + }, + "original": { + "owner": "folke", + "repo": "tokyonight.nvim", + "type": "github" + } + }, + "plugin-trouble": { + "flake": false, + "locked": { + "lastModified": 1716133735, + "narHash": "sha256-D3dqI4NRgEG4BCDLQ3ci9lgYxt90XyWDQXlk4/uuR6M=", + "owner": "folke", + "repo": "trouble.nvim", + "rev": "a8264a65a0b894832ea642844f5b7c30112c458f", + "type": "github" + }, + "original": { + "owner": "folke", + "repo": "trouble.nvim", + "type": "github" + } + }, + "plugin-ts-error-translator": { + "flake": false, + "locked": { + "lastModified": 1712269172, + "narHash": "sha256-NJ0qfKvkwZ/0GolAeATlQLyQ7nGN6Z6q3uRqI+73wPk=", + "owner": "dmmulroy", + "repo": "ts-error-translator.nvim", + "rev": "11ae55b28bde02663b5f983f59b0e3fd9c4e845b", + "type": "github" + }, + "original": { + "owner": "dmmulroy", + "repo": "ts-error-translator.nvim", + "type": "github" + } + }, + "plugin-vim-dirtytalk": { + "flake": false, + "locked": { + "lastModified": 1713047519, + "narHash": "sha256-azU5jkv/fD/qDDyCU1bPNXOH6rmbDauG9jDNrtIXc0Y=", + "owner": "psliwka", + "repo": "vim-dirtytalk", + "rev": "aa57ba902b04341a04ff97214360f56856493583", + "type": "github" + }, + "original": { + "owner": "psliwka", + "repo": "vim-dirtytalk", + "type": "github" + } + }, + "plugin-vim-fugitive": { + "flake": false, + "locked": { + "lastModified": 1716130336, + "narHash": "sha256-nyNtb3nsS/zFdSNRyXabcGIabAwgivJIUFB2c62vXmA=", + "owner": "tpope", + "repo": "vim-fugitive", + "rev": "4f59455d2388e113bd510e85b310d15b9228ca0d", + "type": "github" + }, + "original": { + "owner": "tpope", + "repo": "vim-fugitive", + "type": "github" + } + }, + "plugin-vim-illuminate": { + "flake": false, + "locked": { + "lastModified": 1715960194, + "narHash": "sha256-DdJzTHxoOv+vjFymETa2MgXpM/qDwvZjpoo1W8OOBj0=", + "owner": "RRethy", + "repo": "vim-illuminate", + "rev": "5eeb7951fc630682c322e88a9bbdae5c224ff0aa", + "type": "github" + }, + "original": { + "owner": "RRethy", + "repo": "vim-illuminate", + "type": "github" + } + }, + "plugin-vim-markdown": { + "flake": false, + "locked": { + "lastModified": 1709279705, + "narHash": "sha256-eKwWdyvMZ7FV3FvOtqWVD7pulXNnhbEEjHq7MYg1woU=", + "owner": "preservim", + "repo": "vim-markdown", + "rev": "a657e697376909c41475a686eeef7fc7a4972d94", + "type": "github" + }, + "original": { + "owner": "preservim", + "repo": "vim-markdown", + "type": "github" + } + }, + "plugin-vim-repeat": { + "flake": false, + "locked": { + "lastModified": 1611544268, + "narHash": "sha256-8rfZa3uKXB3TRCqaDHZ6DfzNbm7WaYnLvmTNzYtnKHg=", + "owner": "tpope", + "repo": "vim-repeat", + "rev": "24afe922e6a05891756ecf331f39a1f6743d3d5a", + "type": "github" + }, + "original": { + "owner": "tpope", + "repo": "vim-repeat", + "type": "github" + } + }, + "plugin-vim-startify": { + "flake": false, + "locked": { + "lastModified": 1695213983, + "narHash": "sha256-W5N/Dqxf9hSXEEJsrEkXInFwBXNBJe9Dzx9TVS12mPk=", + "owner": "mhinz", + "repo": "vim-startify", + "rev": "4e089dffdad46f3f5593f34362d530e8fe823dcf", + "type": "github" + }, + "original": { + "owner": "mhinz", + "repo": "vim-startify", + "type": "github" + } + }, + "plugin-vim-vsnip": { + "flake": false, + "locked": { + "lastModified": 1704937299, + "narHash": "sha256-gvm6z4pgSULBVPukewRyjwxZ0vZgreQWbG/0kOB1QBo=", + "owner": "hrsh7th", + "repo": "vim-vsnip", + "rev": "02a8e79295c9733434aab4e0e2b8c4b7cea9f3a9", + "type": "github" + }, + "original": { + "owner": "hrsh7th", + "repo": "vim-vsnip", + "type": "github" + } + }, + "plugin-which-key": { + "flake": false, + "locked": { + "lastModified": 1697801635, + "narHash": "sha256-uvghPj/teWrRMm09Gh8iQ/LV2nYJw0lmoiZK6L4+1cY=", + "owner": "folke", + "repo": "which-key.nvim", + "rev": "4433e5ec9a507e5097571ed55c02ea9658fb268a", + "type": "github" + }, + "original": { + "owner": "folke", + "repo": "which-key.nvim", + "type": "github" + } + }, + "rnix-lsp": { + "inputs": { + "naersk": "naersk", + "nixpkgs": "nixpkgs_5", + "utils": "utils" + }, + "locked": { + "lastModified": 1669555118, + "narHash": "sha256-F0s0m62S5bHNVWNHLZD6SeHiLrsDx98VQbRjDyIu+qQ=", + "owner": "nix-community", + "repo": "rnix-lsp", + "rev": "95d40673fe43642e2e1144341e86d0036abd95d9", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "rnix-lsp", + "type": "github" + } + }, "root": { "inputs": { "agenix": "agenix", + "ags": "ags", "anyrun": "anyrun", "doom-emacs-config": "doom-emacs-config", "doomemacs": "doomemacs", @@ -1342,8 +3466,10 @@ "home-manager": "home-manager_2", "hyprland": "hyprland", "hyprland-plugins": "hyprland-plugins", + "neovim-flake": "neovim-flake", + "neovim-nightly-overlay": "neovim-nightly-overlay", "nixpak": "nixpak", - "nixpkgs": "nixpkgs_4", + "nixpkgs": "nixpkgs_8", "nixpkgs-wayland": "nixpkgs-wayland", "nixvim": "nixvim", "nur": "nur", @@ -1356,11 +3482,11 @@ "rust-analyzer-src": { "flake": false, "locked": { - "lastModified": 1719760370, - "narHash": "sha256-fsxAuW6RxKZYjAP3biUC6C4vaYFhDfWv8lp1Tmx3ZCY=", + "lastModified": 1720175310, + "narHash": "sha256-PQG46r17hX06Q1akkuVSeMD1hfiNBENWVlgGn1SF/SE=", "owner": "rust-lang", "repo": "rust-analyzer", - "rev": "ea7fdada6a0940b239ddbde2048a4d7dac1efe1e", + "rev": "f2afcb874e7410121c366ae601660abe327e320b", "type": "github" }, "original": { @@ -1370,10 +3496,37 @@ "type": "github" } }, + "rust-overlay": { + "inputs": { + "flake-utils": [ + "neovim-flake", + "nil", + "flake-utils" + ], + "nixpkgs": [ + "neovim-flake", + "nil", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1714529851, + "narHash": "sha256-YMKJW880f7LHXVRzu93xa6Ek+QLECIu0IRQbXbzZe38=", + "owner": "oxalica", + "repo": "rust-overlay", + "rev": "9ca720fdcf7865385ae3b93ecdf65f1a64cb475e", + "type": "github" + }, + "original": { + "owner": "oxalica", + "repo": "rust-overlay", + "type": "github" + } + }, "schizofox": { "inputs": { - "flake-compat": "flake-compat_4", - "flake-parts": "flake-parts_5", + "flake-compat": "flake-compat_7", + "flake-parts": "flake-parts_8", "home-manager": "home-manager_4", "nixpak": [ "nixpak" @@ -1382,7 +3535,7 @@ "nixpkgs" ], "searx-randomizer": "searx-randomizer", - "systems": "systems_7" + "systems": "systems_9" }, "locked": { "lastModified": 1719058240, @@ -1401,7 +3554,7 @@ "searx-randomizer": { "inputs": { "crane": "crane", - "flake-parts": "flake-parts_6", + "flake-parts": "flake-parts_9", "nixpkgs": [ "schizofox", "nixpkgs" @@ -1423,8 +3576,8 @@ }, "spicetify-nix": { "inputs": { - "flake-utils": "flake-utils_4", - "nixpkgs": "nixpkgs_7" + "flake-utils": "flake-utils_6", + "nixpkgs": "nixpkgs_11" }, "locked": { "lastModified": 1704167711, @@ -1470,10 +3623,10 @@ "base16-kitty": "base16-kitty", "base16-tmux": "base16-tmux", "base16-vim": "base16-vim", - "flake-compat": "flake-compat_5", + "flake-compat": "flake-compat_8", "gnome-shell": "gnome-shell", "home-manager": "home-manager_5", - "nixpkgs": "nixpkgs_8" + "nixpkgs": "nixpkgs_12" }, "locked": { "lastModified": 1719525570, @@ -1504,6 +3657,21 @@ "type": "github" } }, + "systems_10": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, "systems_2": { "locked": { "lastModified": 1689347949, @@ -1581,16 +3749,16 @@ }, "systems_7": { "locked": { - "lastModified": 1689347949, - "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=", + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", "owner": "nix-systems", - "repo": "default-linux", - "rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", "type": "github" }, "original": { "owner": "nix-systems", - "repo": "default-linux", + "repo": "default", "type": "github" } }, @@ -1609,6 +3777,21 @@ "type": "github" } }, + "systems_9": { + "locked": { + "lastModified": 1689347949, + "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=", + "owner": "nix-systems", + "repo": "default-linux", + "rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default-linux", + "type": "github" + } + }, "treefmt-nix": { "inputs": { "nixpkgs": [ @@ -1639,11 +3822,11 @@ ] }, "locked": { - "lastModified": 1719749022, - "narHash": "sha256-ddPKHcqaKCIFSFc/cvxS14goUhCOAwsM1PbMr0ZtHMg=", + "lastModified": 1719887753, + "narHash": "sha256-p0B2r98UtZzRDM5miGRafL4h7TwGRC4DII+XXHDHqek=", "owner": "numtide", "repo": "treefmt-nix", - "rev": "8df5ff62195d4e67e2264df0b7f5e8c9995fd0bd", + "rev": "bdb6355009562d8f9313d9460c0d3860f525bc6c", "type": "github" }, "original": { @@ -1652,6 +3835,21 @@ "type": "github" } }, + "utils": { + "locked": { + "lastModified": 1656928814, + "narHash": "sha256-RIFfgBuKz6Hp89yRr7+NR5tzIAbn52h8vT6vXkYjZoM=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "7e2a3b3dfd9af950a856d66b0a7d01e3c18aa249", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, "xdph": { "inputs": { "hyprland-protocols": "hyprland-protocols", @@ -1681,6 +3879,26 @@ "repo": "xdg-desktop-portal-hyprland", "type": "github" } + }, + "zig": { + "inputs": { + "flake-compat": "flake-compat", + "flake-utils": "flake-utils_3", + "nixpkgs": "nixpkgs_6" + }, + "locked": { + "lastModified": 1716725305, + "narHash": "sha256-LIz08gALt2wlutGXAEhNroEoIuPV5ePQB8LI4WzXcy8=", + "owner": "mitchellh", + "repo": "zig-overlay", + "rev": "93b02a697561ecd438cfa5779727b5a1c300cb4c", + "type": "github" + }, + "original": { + "owner": "mitchellh", + "repo": "zig-overlay", + "type": "github" + } } }, "root": "root", diff --git a/flake.nix b/flake.nix index 683e930..a847827 100644 --- a/flake.nix +++ b/flake.nix @@ -30,12 +30,12 @@ }; # Wayland packages nixpkgs-wayland.url = "github:nix-community/nixpkgs-wayland"; - + neovim-nightly-overlay.url = "github:nix-community/neovim-nightly-overlay"; doomemacs = { url = "github:doomemacs/doomemacs"; flake = false; }; - nvf = { + neovim-flake = { url = "github:notashelf/nvf"; inputs.nixpkgs.follows = "nixpkgs"; }; diff --git a/hosts/default.nix b/hosts/default.nix index 2eca852..d963b97 100644 --- a/hosts/default.nix +++ b/hosts/default.nix @@ -10,7 +10,6 @@ in { ../modules inputs.home-manager.nixosModules.home-manager inputs.agenix.nixosModules.default - inputs.nvf.nixosModules.default inputs.stylix.nixosModules.stylix ]; }; @@ -22,7 +21,6 @@ in { ../modules inputs.home-manager.nixosModules.home-manager inputs.agenix.nixosModules.default - inputs.nvf.nixosModules.default inputs.stylix.nixosModules.stylix ]; }; diff --git a/hosts/vali/hermit/configuration.nix b/hosts/vali/hermit/configuration.nix index 2daf935..a873d4e 100644 --- a/hosts/vali/hermit/configuration.nix +++ b/hosts/vali/hermit/configuration.nix @@ -1,4 +1,4 @@ -{pkgs, ...}: { +{ pkgs, ... }: { # allow unfree packages nixpkgs.config.allowUnfree = true; # Time Zone @@ -8,17 +8,17 @@ console.keyMap = "de"; nix = { settings = { - substituters = ["https://hyprland.cachix.org"]; + substituters = [ "https://hyprland.cachix.org" ]; trusted-public-keys = [ "hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc=" ]; # enable flakes - experimental-features = ["nix-command" "flakes"]; + experimental-features = [ "nix-command" "flakes" ]; # reduce file size used & automatic garbage collector auto-optimise-store = true; }; }; - security.sudo.package = pkgs.sudo.override {withInsults = true;}; + security.sudo.package = pkgs.sudo.override { withInsults = true; }; security.polkit.enable = true; programs.kdeconnect.enable = true; programs.dconf.enable = true; @@ -80,7 +80,8 @@ }; helix.enable = true; kakoune.enable = true; - nixvim.enable = true; + nixvim.enable = false; # broken at the moment +# neovim.enable = true; }; services = { pipewire.enable = true; @@ -90,16 +91,14 @@ stylix = { enable = true; scheme = "${pkgs.base16-schemes}/share/themes/gruvbox-dark-pale.yaml"; - cursor = { - size = 16; - }; + cursor = { size = 16; }; fontsizes = { terminal = 12; popups = 12; }; image = ../../../assets/wallpapers/tiredgod.png; }; - gtk = {enable = true;}; + gtk = { enable = true; }; qt = { enable = true; package = pkgs.kde-gruvbox; diff --git a/modules/editors/default.nix b/modules/editors/default.nix index 15d64e4..96daa3e 100644 --- a/modules/editors/default.nix +++ b/modules/editors/default.nix @@ -1 +1 @@ -_: {imports = [./emacs.nix ./helix.nix ./kakoune.nix ./nixvim];} +_: {imports = [./emacs.nix ./helix.nix ./kakoune.nix ./nixvim/nixvim.nix ./nvf];} diff --git a/modules/editors/nvf/default.nix b/modules/editors/nvf/default.nix index e69de29..03519e8 100644 --- a/modules/editors/nvf/default.nix +++ b/modules/editors/nvf/default.nix @@ -0,0 +1,31 @@ +{ +inputs, +lib, +... +}: let + inherit (builtins) filter map toString elem; + inherit (lib.filesystem) listFilesRecursive; + inherit (lib.strings) hasSuffix; + inherit(lib.lists) concatLists; + + mkNeovimModule ={ + path, + ingoredPaths ? [./nvf.nix], + }: + filter (hasSuffix ".nix") ( + map toString ( + filter (path: path != ./default.nix && !elem path ingoredPaths) (listFilesRecursive path) + ) + ); + + nvf = inputs.neovim-flake; +in { + imports = concatLists [ + # neovim-flake home-manager module + [nvf.homeManagerModules.default] + + # construct this entore directory as a module + # which means all default.nix files will be imported automtically + (mkNeovimModule {path = ./.;}) + ]; + } diff --git a/modules/editors/nvf/lua/autocmds.lua b/modules/editors/nvf/lua/autocmds.lua new file mode 100644 index 0000000..8dcc687 --- /dev/null +++ b/modules/editors/nvf/lua/autocmds.lua @@ -0,0 +1,134 @@ +-- luacheck: ignore +-- alias for vim.api.nvim_create_autocmd +local create_autocmd = vim.api.nvim_create_autocmd +-- alias for vim.api.nvim_create_augroup +local create_augroup = vim.api.nvim_create_augroup + +create_autocmd('BufWritePre', { + pattern = { '/tmp/*', 'COMMIT_EDITMSG', 'MERGE_MSG', '*.tmp', '*.bak' }, + callback = function() + vim.opt_local.undofile = false + end, +}) + +-- Remove whitespaces on save +-- this is normally handled by the formatter +-- but this should help when the formatter +-- is not working or has timed out +-- create_autocmd('BufWritePre', { +-- pattern = '', +-- command = ':%s/\\s\\+$//e', +-- }) + +-- Disable line wrapping & spell checking +-- for the terminal buffer +create_autocmd({ 'FileType' }, { + pattern = { 'toggleterm' }, + callback = function() + vim.opt_local.wrap = false + vim.opt_local.spell = false + end, +}) + +-- Enable spell checking & line wrapping +-- for git commit messages +create_autocmd({ 'FileType' }, { + pattern = { 'gitcommit' }, + callback = function() + vim.opt_local.wrap = true + vim.opt_local.spell = true + end, +}) + +-- Highlight yank after yanking +local highlight_group = create_augroup('YankHighlight', { clear = true }) +create_autocmd({ 'TextYankPost' }, { + pattern = { '*' }, + group = highlight_group, + callback = function() + vim.highlight.on_yank({ higroup = 'Visual', timeout = 200 }) + end, +}) + +-- Close terminal window if process exists with code 0 +create_autocmd('TermClose', { + callback = function() + if not vim.b.no_auto_quit then + vim.defer_fn(function() + if vim.api.nvim_get_current_line() == '[Process exited 0]' then + vim.api.nvim_buf_delete(0, { force = true }) + end + end, 50) + end + end, +}) + +-- Start insert mode automatically +-- when editing a Git commit message +create_augroup('AutoInsert', { clear = true }) +create_autocmd('FileType', { + group = 'AutoInsert', + pattern = 'gitcommit', + command = 'startinsert', +}) + +-- Disable cursorline in insert mode +create_augroup('CursorLine', { clear = true }) +create_autocmd({ 'InsertLeave', 'WinEnter' }, { + group = 'CursorLine', + callback = function() + vim.wo.cursorline = true + end, +}) + +create_autocmd({ 'InsertEnter', 'WinLeave' }, { + group = 'CursorLine', + callback = function() + vim.wo.cursorline = false + end, +}) + +-- Create the necessary directory structure for the file being saved. +create_augroup('AutoMkdir', { clear = true }) +create_autocmd('BufWritePre', { + group = 'AutoMkdir', + callback = function(event) + local file = vim.loop.fs_realpath(event.match) or event.match + vim.fn.mkdir(vim.fn.fnamemodify(file, ':p:h'), 'p') + end, +}) + +-- Adjust the window size when the terminal is resized +create_autocmd('VimResized', { + command = 'wincmd =', +}) + +-- Allow closing certain windows with "q" +-- and remove them from the buffer list +create_augroup('close_with_q', { clear = true }) +create_autocmd('FileType', { + group = 'close_with_q', + pattern = { + 'help', + 'lspinfo', + 'TelescopePrompt', + }, + callback = function(event) + vim.bo[event.buf].buflisted = false + vim.keymap.set('n', 'q', 'close', { buffer = event.buf, silent = true }) + end, +}) + +-- Mark internally when nvim is focused +-- and when it is not +create_autocmd('FocusGained', { + callback = function() + vim.g.nvim_focused = true + end, +}) + +create_autocmd('FocusLost', { + callback = function() + vim.g.nvim_focused = false + end, +}) diff --git a/modules/editors/nvf/lua/core.lua b/modules/editors/nvf/lua/core.lua new file mode 100644 index 0000000..8c95af1 --- /dev/null +++ b/modules/editors/nvf/lua/core.lua @@ -0,0 +1,42 @@ +local opt = vim.opt +local options = { + showmode = false, -- disable the -- STATUS -- line + showtabline = 0, -- never show the tabline + startofline = true, -- motions like "G" also move to the first char + virtualedit = 'block', -- visual-block mode can select beyond end of line + showmatch = true, -- when closing a bracket, briefly flash the matching one + matchtime = 1, -- duration of that flashing n deci-seconds + signcolumn = 'yes:1', -- static width + report = 9001, -- disable "x more/fewer lines" messages + diffopt = opt.diffopt:append('vertical'), -- diff mode: vertical splits + backspace = { 'indent', 'eol', 'start' }, -- backspace through everything in insert mode + hidden = true, -- Enable background buffers + history = 100, -- Remember N lines in history + lazyredraw = false, -- Faster scrolling if enabled, breaks noice + synmaxcol = 240, -- Max column for syntax highlight + updatetime = 250, -- ms to wait for trigger an event + + -- If 0, move cursor line will not scroll window. + -- If 999, cursor line will always be in middle of window. + scrolloff = 0, +} + +-- iterate over the options table and set the options +-- for each key = value pair +for key, value in pairs(options) do + opt[key] = value +end + +if not vim.g.vscode then + opt.timeoutlen = 300 -- Time out on mappings +end + +-- Don't auto-comment new lines automatically +-- that happens when you press enter at the end +-- of a comment line, and comments the next line +-- That's annoying and we don't want it! +-- don't continue comments automagically +-- https://neovim.io/doc/user/options.html#'formatoptions' +opt.formatoptions:remove('c') +opt.formatoptions:remove('r') +opt.formatoptions:remove('o') diff --git a/modules/editors/nvf/lua/display/mouse.lua b/modules/editors/nvf/lua/display/mouse.lua new file mode 100644 index 0000000..d13fed1 --- /dev/null +++ b/modules/editors/nvf/lua/display/mouse.lua @@ -0,0 +1,17 @@ +-- disable the "how to disable mouse" message +-- in right click popups +vim.cmd.aunmenu([[PopUp.How-to\ disable\ mouse]]) +vim.cmd.aunmenu([[PopUp.-1-]]) + +vim.cmd.amenu([[PopUp.Inspect Inspect]]) +vim.cmd.amenu([[PopUp.Telescope Telescope]]) +vim.cmd.amenu([[PopUp.Code\ action lua vim.lsp.buf.code_action()]]) +vim.cmd.amenu([[PopUp.LSP\ Hover lua vim.lsp.buf.hover()]]) + +-- Add a blinking cursor in certain modes. +vim.opt.guicursor = { + 'n-c-v:block-Cursor', + 'i-ci-ve-r-o:blinkwait250-blinkon250-blinkoff250-Cursor', + 'i-ci-ve:ver25-Cursor', + 'r-cr-o:hor20-Cursor', +} diff --git a/modules/editors/nvf/lua/display/numbertoggle.lua b/modules/editors/nvf/lua/display/numbertoggle.lua new file mode 100644 index 0000000..723b663 --- /dev/null +++ b/modules/editors/nvf/lua/display/numbertoggle.lua @@ -0,0 +1,30 @@ +-- alias for vim.api.nvim_create_autocmd +local create_autocmd = vim.api.nvim_create_autocmd +-- alias for vim.api.nvim_create_augroup +local create_augroup = vim.api.nvim_create_augroup + +-- taken from https://github.com/sitiom/nvim-numbertoggle +-- I would much rather avoid fetching yet another plugin for something +-- that should be done locally - and not as a plugin +local augroup = create_augroup('NumberToggle', {}) + +create_autocmd({ 'BufEnter', 'FocusGained', 'InsertLeave', 'CmdlineLeave', 'WinEnter' }, { + pattern = '*', + group = augroup, + callback = function() + if vim.o.nu and vim.api.nvim_get_mode().mode ~= 'i' then + vim.opt.relativenumber = true + end + end, +}) + +create_autocmd({ 'BufLeave', 'FocusLost', 'InsertEnter', 'CmdlineEnter', 'WinLeave' }, { + pattern = '*', + group = augroup, + callback = function() + if vim.o.nu then + vim.opt.relativenumber = false + vim.cmd('redraw') + end + end, +}) diff --git a/modules/editors/nvf/lua/display/split.lua b/modules/editors/nvf/lua/display/split.lua new file mode 100644 index 0000000..101ca5d --- /dev/null +++ b/modules/editors/nvf/lua/display/split.lua @@ -0,0 +1,3 @@ +-- More natural pane splitting +vim.o.splitbelow = true +vim.o.splitright = true diff --git a/modules/editors/nvf/lua/display/ui.lua b/modules/editors/nvf/lua/display/ui.lua new file mode 100644 index 0000000..720dbf4 --- /dev/null +++ b/modules/editors/nvf/lua/display/ui.lua @@ -0,0 +1,93 @@ +local opt = vim.opt + +-- luacheck: ignore +-- When true, all the windows are automatically made the same size after splitting or closing a window. +-- When false, splitting a window will reduce the size of the current window and leave the other windows the same. +opt.equalalways = false +opt.cmdheight = 1 -- Better display for messages +opt.colorcolumn = '+0' -- Align text at 'textwidth' +opt.showtabline = 2 -- Always show the tabs line +opt.helpheight = 0 -- Disable help window resizing +opt.winwidth = 30 -- Minimum width for active window +opt.winminwidth = 1 -- Minimum width for inactive windows +opt.winheight = 1 -- Minimum height for active window +opt.winminheight = 1 -- Minimum height for inactive window +opt.pumheight = 10 -- Maximum number of items to show in the popup menu +opt.winminwidth = 1 -- min width of inactive window +-- opt.pumblend = 100 -- Popup blend, 100 means transparent + +opt.cursorline = true +opt.whichwrap:append('<,>,h,l,[,]') + +opt.list = true +-- haracters to fill the statuslines, vertical separators and special +-- lines in the window.opt.whichwrap:append('<,>,h,l,[,]') +opt.fillchars:append({ + -- replace window border with slightly thicker characters + -- although taking a bit of more space, it helps me better + -- identify the window borders + horiz = '━', + horizup = '┻', + horizdown = '┳', + vert = '┃', + vertleft = '┫', + vertright = '┣', + verthoriz = '╋', + + eob = ' ', -- suppress end of buffer lines (~) + diff = '╱', -- deleted lines of the 'diff' option + + msgsep = '‾', + + -- replace fold chars + fold = ' ', + foldopen = '', + foldclose = '', +}) + +-- List chars that would b shown on all modes +-- better kept simple, because it gets REALLY +-- noisy in an average buffer +local normal_listchars = { + extends = '›', -- Alternatives: … ,» + precedes = '‹', -- Alternatives: … ,« +} + +opt.listchars = normal_listchars + +-- Show listchars while in Insert mode. +local insert_listchars = { + eol = nil, + tab = '▎·', + lead = '·', + space = '·', + trail = '.', + multispace = '… ', + nbsp = '¤', +} + +-- Show listchars while in Insert mode. +vim.api.nvim_create_augroup('InsertModeListChars', { clear = true }) +vim.api.nvim_create_autocmd({ 'InsertEnter', 'InsertLeavePre' }, { + group = 'InsertModeListChars', + pattern = '*', + callback = function(args) + if vim.tbl_contains({ 'quickfix', 'prompt' }, args.match) then + return + end + + if args.event == 'InsertEnter' then + vim.opt_local.listchars = insert_listchars + else + vim.opt_local.listchars = normal_listchars + end + + -- check if ibl is enabled + -- @diagnostic disable-next-line: no-unknown, unused-local + local status_ok, ibl = pcall(require, 'ibl') + if not status_ok then + return + end + require('ibl').debounced_refresh(0) + end, +}) diff --git a/modules/editors/nvf/lua/ft.lua b/modules/editors/nvf/lua/ft.lua new file mode 100644 index 0000000..cc03dc6 --- /dev/null +++ b/modules/editors/nvf/lua/ft.lua @@ -0,0 +1,18 @@ +-- luacheck: ignore +vim.g.markdown_fenced_languages = { 'shell=bash' } + +local file_syntax_map = { + { pattern = '*.rasi', syntax = 'scss' }, + { pattern = 'flake.lock', syntax = 'json' }, + { pattern = '*.ignore', syntax = 'gitignore' }, -- also ignore for fd/ripgrep + { pattern = '*.ojs', syntax = 'javascript' }, + { pattern = '*.astro', syntax = 'astro' }, + { pattern = '*.mdx', syntax = 'mdx' } +} + +for _, elem in ipairs(file_syntax_map) do + vim.api.nvim_create_autocmd({ 'BufNewFile', 'BufRead' }, { + pattern = elem.pattern, + command = 'set syntax=' .. elem.syntax, + }) +end diff --git a/modules/editors/nvf/lua/misc/abbrev.lua b/modules/editors/nvf/lua/misc/abbrev.lua new file mode 100644 index 0000000..893db9f --- /dev/null +++ b/modules/editors/nvf/lua/misc/abbrev.lua @@ -0,0 +1,22 @@ +local cmd = vim.cmd + +-- luacheck: ignore +local abbreviations = { + Wq = 'wq', -- keep making those typos + WQ = 'wq', + Wqa = 'wqa', + W = 'w', + Q = 'q', + Qa = 'qa', + Bd = 'bd', + E = 'e', + q1 = 'q!', -- this is for when I don't want to reach to shift + qa1 = 'qa!', + mk = 'mark', -- make marks faster + st = 'sort', -- sort +} + +-- add more abbreviations +for left, right in pairs(abbreviations) do + cmd.cnoreabbrev(('%s %s'):format(left, right)) +end diff --git a/modules/editors/nvf/lua/misc/autoread.lua b/modules/editors/nvf/lua/misc/autoread.lua new file mode 100644 index 0000000..f503117 --- /dev/null +++ b/modules/editors/nvf/lua/misc/autoread.lua @@ -0,0 +1,13 @@ +-- If the cursor has been idle for some time, check if the current buffer +-- has been modified externally. prompt the user to reload it if has. +local bufnr = vim.api.nvim_get_current_buf() + +-- luacheck: ignore +vim.opt_local.autoread = true +vim.api.nvim_create_autocmd('CursorHold', { + group = vim.api.nvim_create_augroup('Autoread', { clear = true }), + buffer = bufnr, + callback = function() + vim.cmd('silent! checktime') + end, +}) diff --git a/modules/editors/nvf/lua/misc/declutter.lua b/modules/editors/nvf/lua/misc/declutter.lua new file mode 100644 index 0000000..beff291 --- /dev/null +++ b/modules/editors/nvf/lua/misc/declutter.lua @@ -0,0 +1,68 @@ +-- luacheck: ignore +vim.opt.spelllang:append('cjk') -- disable spellchecking for asian characters (VIM algorithm does not support it) + +vim.opt.shortmess = { + t = true, -- truncate file messages at start + A = true, -- ignore annoying swap file messages + o = true, -- file-read message overwrites previous + O = true, -- file-read message overwrites previous + T = true, -- truncate non-file messages in middle + f = true, -- (file x of x) instead of just (x of x + F = true, -- Don't give file info when editing a file, NOTE: this breaks autocommand messages + s = true, + c = true, + W = true, -- Don't show [w] or written when writing +} + +-- Disable nvim intro +vim.opt.shortmess:append('sI') + +-- Some of those are already disasbled in the Neovim wrapper +-- as configured by nvf. I'm just making sure they are disabled +-- here as well. +local disable_distribution_plugins = function() + local disabled_built_ins = { + '2html_plugin', + 'getscript', + 'getscriptPlugin', + 'gzip', + 'logipat', + 'matchit', + 'matchparen', + 'tar', + 'tarPlugin', + 'rrhelper', + 'spellfile_plugin', + 'vimball', + 'vimballPlugin', + 'zip', + 'zipPlugin', + 'tutor', + 'rplugin', + 'synmenu', + 'optwin', + 'compiler', + 'bugreport', + 'ftplugin', + 'netrw', + 'netrwPlugin', + 'netrwSettings', + 'netrwFileHandlers', + -- "skip_ts_context_commentstring_module" + } + + for _, plugin in pairs(disabled_built_ins) do + g['loaded_' .. plugin] = 1 + end +end + +-- https://github.com/neovim/neovim/issues/14090#issuecomment-1177933661 +-- vim.g.do_filetype_lua = 1 +-- vim.g.did_load_filetypes = 0 + +-- Neovim should not be able to load from those paths since +-- we ultimately want to be able to *only* want the nvf config +-- to be the effective one +vim.opt.runtimepath:remove('/etc/xdg/nvim') +vim.opt.runtimepath:remove('/etc/xdg/nvim/after') +vim.opt.runtimepath:remove('/usr/share/vim/vimfiles') diff --git a/modules/editors/nvf/lua/misc/diagnostics.lua b/modules/editors/nvf/lua/misc/diagnostics.lua new file mode 100644 index 0000000..e319647 --- /dev/null +++ b/modules/editors/nvf/lua/misc/diagnostics.lua @@ -0,0 +1,22 @@ +-- Diagnostic settings: +-- see: `:help vim.diagnostic.config` +vim.diagnostic.config({ + update_in_insert = true, + virtual_text = false, + signs = true, + underline = true, + severity_sort = true, + virtual_lines = { + only_current_line = true, + spacing = 2, + }, + + float = { + focusable = false, + style = 'minimal', + border = 'rounded', + source = 'always', + header = '', + prefix = '', + }, +}) diff --git a/modules/editors/nvf/lua/misc/handlers.lua b/modules/editors/nvf/lua/misc/handlers.lua new file mode 100644 index 0000000..e068569 --- /dev/null +++ b/modules/editors/nvf/lua/misc/handlers.lua @@ -0,0 +1,34 @@ +-- luacheck: ignore +local float_options = { + border = 'single', + max_width = math.ceil(vim.api.nvim_win_get_width(0) * 0.6), + max_height = math.ceil(vim.api.nvim_win_get_height(0) * 0.8), +} + +vim.lsp.handlers['textDocument/publishDiagnostics'] = vim.lsp.with(vim.lsp.diagnostic.on_publish_diagnostics, { + virtual_text = true, + signs = false, + underline = true, + update_in_insert = false, + severity_sort = true, +}) + +vim.lsp.handlers['textDocument/show_line_diagnostics'] = vim.lsp.with(vim.lsp.handlers.hover, float_options) + +-- Prevent show notification +-- +vim.lsp.handlers['textDocument/hover'] = function(_, result, ctx, config) + config = config or float_options + config.focus_id = ctx.method + if not result then + return + end + local markdown_lines = vim.lsp.util.convert_input_to_markdown_lines(result.contents) + markdown_lines = vim.lsp.util.trim_empty_lines(markdown_lines) + if vim.tbl_isempty(markdown_lines) then + return + end + return vim.lsp.util.open_floating_preview(markdown_lines, 'markdown', config) +end + +vim.lsp.handlers['textDocument/signatureHelp'] = vim.lsp.with(vim.lsp.handlers.signature_help, float_options) diff --git a/modules/editors/nvf/lua/misc/neovide.lua b/modules/editors/nvf/lua/misc/neovide.lua new file mode 100644 index 0000000..1b8845d --- /dev/null +++ b/modules/editors/nvf/lua/misc/neovide.lua @@ -0,0 +1,30 @@ +if vim.g.neovide then + local vks = vim.keymap.set + + vim.g.neovide_scale_factor = 1.0 + vim.g.minianimate_disable = true + vim.g.neovide_window_blurred = true + vim.g.neovide_transparency = 0.80 + vim.g.neovide_show_border = true + vim.g.neovide_input_macos_alt_is_meta = true + vim.g.neovide_cursor_animate_command_line = false -- noice incompat + vim.g.neovide_cursor_smooth_blink = true + vim.g.neovide_cursor_vfx_mode = 'ripple' + + -- keymaps + vks('v', '', '"+y') -- Copy + vks({ 'n', 'v' }, '', '"+P') -- Paste + vks({ 'i', 'c' }, '', '+') -- Paste + vks('t', '', [["+P]]) -- Paste + vks('n', '', function() + vim.g.neovide_scale_factor = vim.g.neovide_scale_factor * 1.1 + end) + vks('n', '', function() + vim.g.neovide_scale_factor = vim.g.neovide_scale_factor / 1.1 + end) + vks({ 'n', 'v', 't', 'i' }, '', [[tabnext]]) + vks({ 'n', 'v', 't', 'i' }, '', [[tabprev]]) + vks({ 'n', 'v', 't', 'i' }, '', [[tabnext #]]) + vks({ 'n', 'v', 't', 'i' }, '', [[tabnew]]) + vks({ 'n', 'v', 't', 'i' }, '', [[tabclose]]) +end diff --git a/modules/editors/nvf/lua/misc/vscode.lua b/modules/editors/nvf/lua/misc/vscode.lua new file mode 100644 index 0000000..efb1fe7 --- /dev/null +++ b/modules/editors/nvf/lua/misc/vscode.lua @@ -0,0 +1,33 @@ +-- https://github.com/asvetliakov/vscode-neovim#normal-mode-control-keys +-- available by default +-- CTRL-a +-- CTRL-b +-- CTRL-c +-- CTRL-d +-- CTRL-e +-- CTRL-f +-- CTRL-i +-- CTRL-o +-- CTRL-r +-- CTRL-u +-- CTRL-v +-- CTRL-w +-- CTRL-x +-- CTRL-y +-- CTRL-] +-- CTRL-j +-- CTRL-k +-- CTRL-l +-- CTRL-h +-- CTRL-/ + +if vim.g.vscode then + vim.keymap.set('n', 'H', 'Tabprevious', { noremap = true, silent = true }) + vim.keymap.set('n', 'L', 'Tabnext', { noremap = true, silent = true }) + vim.keymap.set( + 'n', + 'p', + "<call VSCodeNotify('workbench.action.quickOpen')>", + { noremap = true, silent = true } + ) +end diff --git a/modules/editors/nvf/lua/plugins/notify.lua b/modules/editors/nvf/lua/plugins/notify.lua new file mode 100644 index 0000000..ff60953 --- /dev/null +++ b/modules/editors/nvf/lua/plugins/notify.lua @@ -0,0 +1,72 @@ +local noice = require('noice') +local no_top_text = { + opts = { + border = { + text = { top = '' }, + }, + }, +} + +-- luacheck: ignore +noice.setup({ + cmdline = { + format = { + cmdline = no_top_text, + filter = no_top_text, + lua = no_top_text, + search_down = no_top_text, + search_up = no_top_text, + }, + }, + + lsp = { + override = { + ['cmp.entry.get_documentation'] = true, + ['vim.lsp.util.convert_input_to_markdown_lines'] = true, + ['vim.lsp.util.stylize_markdown'] = true, + }, + progress = { + enabled = false, + }, + }, + + popupmenu = { + backend = 'cmp', + }, + + routes = { + { + filter = { + event = 'msg_show', + kind = 'search_count', + }, + opts = { skip = true }, + }, + { + -- skip progress messages from noisy servers + filter = { + event = 'lsp', + kind = 'progress', + cond = function(message) + local client = vim.tbl_get(message.opts, 'progress', 'client') + return client == 'ltex' + end, + }, + opts = { skip = true }, + }, + }, + + views = { + cmdline_popup = { + border = { + style = 'single', + }, + }, + confirm = { + border = { + style = 'single', + text = { top = '' }, + }, + }, + }, +}) diff --git a/modules/editors/nvf/mappings/insert.nix b/modules/editors/nvf/mappings/insert.nix new file mode 100644 index 0000000..b674dae --- /dev/null +++ b/modules/editors/nvf/mappings/insert.nix @@ -0,0 +1,9 @@ +{ + programs.neovim-flake.settings.vim.maps = { + insert = { + # vsnip + #"".action = "(vsnip-jump-next)"; + #"".action = "(vsnip-jump-prev)"; + }; + }; +} diff --git a/modules/editors/nvf/mappings/normal.nix b/modules/editors/nvf/mappings/normal.nix new file mode 100644 index 0000000..bb78e93 --- /dev/null +++ b/modules/editors/nvf/mappings/normal.nix @@ -0,0 +1,59 @@ +{ + programs.neovim-flake.settings.vim.maps = { + normal = { + # General + "fd".action = ":lua vim.g.formatsave = not vim.g.formatsave"; + "zt".action = ":let g:default_terminal = v:count1"; + "e".action = ":NvimTreeToggle"; + "ld".action = ":lua vim.diagnostic.setqflist({open = true})"; + "lf".action = ":lua vim.lsp.buf.format()"; + "li".action = ":lua vim.lsp.buf.implementation()"; + + # Diffview + "gdq".action = ":DiffviewClose"; + "gdd".action = ":DiffviewOpen "; + "gdm".action = ":DiffviewOpen"; + "gdh".action = ":DiffviewFileHistory %"; + "gde".action = ":DiffviewToggleFiles"; + + # Git + "gu".action = "Gitsigns undo_stage_hunk"; + "g".action = "Gitsigns preview_hunk"; + "gp".action = "Gitsigns prev_hunk"; + "gn".action = "Gitsigns next_hunk"; + "gP".action = "Gitsigns preview_hunk_inline"; + "gR".action = "Gitsigns reset_buffer"; + "gb".action = "Gitsigns blame_line"; + "gD".action = "Gitsigns diffthis HEAD"; + "gw".action = "Gitsigns toggle_word_diff"; + + # Telescope + "".action = ":Telescope resume"; + "fq".action = ":Telescope quickfix"; + "f/".action = ":Telescope live_grep"; + + # Aerial + "".action = ":AerialToggle"; + + # vsnip + #"".action = "(vsnip-jump-next)"; + #"".action = "(vsnip-jump-prev)"; + }; + + normalVisualOp = { + "gs".action = ":Gitsigns stage_hunk"; + "gr".action = ":Gitsigns reset_hunk"; + "lr".action = "lua vim.lsp.buf.references()"; + + # ssr.nvim + "sr".action = ":lua require('ssr').open()"; + + # Toggleterm + "ct" = { + # action = ":ToggleTermSendVisualLines v:count"; + action = "':ToggleTermSendVisualLines ' . v:count == 0 ? g:default_terminal : v:count"; + expr = true; + }; + }; + }; +} diff --git a/modules/editors/nvf/mappings/select.nix b/modules/editors/nvf/mappings/select.nix new file mode 100644 index 0000000..a8b4a2f --- /dev/null +++ b/modules/editors/nvf/mappings/select.nix @@ -0,0 +1,9 @@ +{ + programs.neovim-flake.settings.vim.maps = { + select = { + # vsnip + #"".action = "(vsnip-jump-next)"; + #"".action = "(vsnip-jump-prev)"; + }; + }; +} diff --git a/modules/editors/nvf/mappings/terminal.nix b/modules/editors/nvf/mappings/terminal.nix new file mode 100644 index 0000000..ecf1799 --- /dev/null +++ b/modules/editors/nvf/mappings/terminal.nix @@ -0,0 +1,7 @@ +{ + programs.neovim-flake.settings.vim.maps = { + terminal = { + "".action = "q"; + }; + }; +} diff --git a/modules/editors/nvf/nvf.nix b/modules/editors/nvf/nvf.nix index 44d3128..84d41ac 100644 --- a/modules/editors/nvf/nvf.nix +++ b/modules/editors/nvf/nvf.nix @@ -1,44 +1,183 @@ -{ - inputs, - lib, - pkgs, - ... -}: { - programs.nvf = { - enable = true; +# Thank your Mr. poz! (https://git.jacekpoz.pl/jacekpoz/niksos) +{ config, inputs, lib, pkgs, ... }: +let + cfg = config.modules.editors.neovim; + inherit (config.modules.other.system) username; - defaultEditor = true; - enableManpages = true; + inherit (lib) mkEnableOption mkIf; +in { + options.modules.editors.neovim.enable = mkEnableOption "neovim"; - settings = { - vim = { - # use neovim-unwrapped from nixpkgs - package = pkgs.neovim-unwrapped; + config = mkIf cfg.enable { + environment.sessionVariables = { EDITOR = "nvim"; }; - viAlias = true; - vimAlias = true; + home-manager.users.${username} = { + imports = [ inputs.neovim-flake.homeManagerModules.default ]; - withNodeJs = false; - withPython3 = false; - withRuby = false; + programs.nvf = { + enable = true; + settings.vim = { + package = + inputs.neovim-nightly-overlay.packages.${pkgs.system}.neovim; + viAlias = false; + vimAlias = false; + enableLuaLoader = true; + scrollOffset = 7; + preventJunkFiles = true; + tabWidth = 4; + autoIndent = false; + cmdHeight = 1; + useSystemClipboard = false; - # Prevent swapfile and backupfile from being created - preventJunkFiles = true; + theme = { + enable = true; + name = "catppuccin"; + style = "mocha"; + transparent = true; + }; - # Make use of the clipboard for default yank and paste operations. Don’t use * and + - useSystemClipboard = true; - spellcheck = { - enable = true; - languages = ["en" "de"]; - }; + maps = { + normal = { + "v" = { + action = "Neotree toggle"; + silent = true; + }; + "m" = { + action = "MarkdownPreviewToggle"; + silent = true; + }; + }; + terminal = { + # get out of terminal mode in toggleterm + "" = { + action = ""; + silent = true; + }; + }; + }; - # Whether to enable the experimental Lua module loader to speed up the start up process - enableLuaLoader = true; - enableEditorconfig = true; + statusline.lualine = { + enable = true; + theme = "catppuccin"; + }; - debugMode = { - enable = false; - logFile = "/tmp/nvim.log"; + extraPlugins = with pkgs.vimPlugins; { + zen-mode.package = zen-mode-nvim; + unicode.package = unicode-vim; + }; + + treesitter = { + enable = true; + fold = true; + context.enable = true; + }; + + autocomplete = { + enable = true; + alwaysComplete = false; + }; + + filetree.nvimTree = { enable = true; }; + + terminal.toggleterm = { + enable = true; + setupOpts.direction = "tab"; + mappings.open = ""; + # TODO shading_factor + # TODO shade_terminals + # TODO size + }; + + git = { + enable = true; + gitsigns = { + enable = true; + # TODO enable / disable all the settings + }; + }; + + lsp = { + enable = true; + lspSignature.enable = true; + lspconfig.enable = true; + mappings = { + addWorkspaceFolder = "wa"; + codeAction = "a"; + format = ""; + goToDeclaration = "gD"; + goToDefinition = "gd"; + hover = "K"; + listImplementations = "gi"; + listReferences = "gr"; + listWorkspaceFolders = "wl"; + nextDiagnostic = "k"; + previousDiagnostic = "j"; + openDiagnosticFloat = "e"; + removeWorkspaceFolder = "wr"; + renameSymbol = "r"; + signatureHelp = ""; + }; + }; + + languages = { + enableDAP = true; + enableExtraDiagnostics = true; + enableFormat = true; + enableLSP = true; + enableTreesitter = true; + + bash.enable = true; + clang = { + enable = true; + cHeader = true; + }; + css.enable = true; + html.enable = true; + java.enable = true; + markdown.enable = true; + nix.enable = true; + ocaml.enable = true; + rust = { + enable = true; + crates.enable = true; + }; + ts.enable = true; + }; + + utility = { + motion.leap.enable = true; + preview.markdownPreview.enable = true; + # TODO settings.theme = "dark"; + surround = { + enable = true; + useVendoredKeybindings = true; + }; + }; + visuals.fidget-nvim.enable = true; + + # TODO laytan/cloak.nvim + + telescope.enable = true; + + comments.comment-nvim.enable = true; + + # TODO learn and add harpoon + + notes = { + todo-comments = { + enable = true; + mappings.telescope = "tt"; + setupOpts.highlight.pattern = ".*<(KEYWORDS)s*"; + }; + orgmode = { + enable = true; + setupOpts = { + org_agenda_files = [ "~/Notes/org" ]; + org_default_notes_file = "~/Notes/org/refile.org"; + }; + treesitter.enable = true; + }; + }; }; }; }; diff --git a/modules/editors/nvf/plugins/extra.nix b/modules/editors/nvf/plugins/extra.nix new file mode 100644 index 0000000..e19f353 --- /dev/null +++ b/modules/editors/nvf/plugins/extra.nix @@ -0,0 +1,141 @@ +{ + self, + pkgs, + ... +}: let + inherit (pkgs.vimPlugins) friendly-snippets aerial-nvim nvim-surround undotree mkdir-nvim ssr-nvim direnv-vim legendary-nvim; + pluginSources = import ./sources {inherit self pkgs;}; +in { + programs.neovim-flake.settings.vim.extraPlugins = { + # plugins that are pulled from nixpkgs + direnv = {package = direnv-vim;}; + friendly-snippets = {package = friendly-snippets;}; + mkdir-nvim = {package = mkdir-nvim;}; + aerial = { + package = aerial-nvim; + setup = "require('aerial').setup {}"; + }; + + nvim-surround = { + package = nvim-surround; + setup = "require('nvim-surround').setup {}"; + }; + + undotree = { + package = undotree; + setup = '' + vim.g.undotree_ShortIndicators = true + vim.g.undotree_TreeVertShape = '│' + ''; + }; + + ssr-nvim = { + package = ssr-nvim; + setup = "require('ssr').setup {}"; + }; + + legendary = { + package = legendary-nvim; + setup = '' + require('legendary').setup {}; + ''; + }; + + # plugins that are built from their sources + regexplainer = {package = pluginSources.regexplainer;}; + vim-nftables = {package = pluginSources.vim-nftables;}; + + data-view = { + package = pluginSources.data-viewer-nvim; + setup = '' + -- open data files in data-viewer.nvim + vim.api.nvim_exec([[ + autocmd BufReadPost,BufNewFile *.sqlite,*.csv,*.tsv DataViewer + ]], false) + + + -- keybinds + vim.api.nvim_set_keymap('n', 'dv', ':DataViewer', {noremap = true}) + vim.api.nvim_set_keymap('n', 'dvn', ':DataViewerNextTable', {noremap = true}) + vim.api.nvim_set_keymap('n', 'dvp', ':DataViewerPrevTable', {noremap = true}) + vim.api.nvim_set_keymap('n', 'dvc', ':DataViewerClose', {noremap = true}) + ''; + }; + + slides-nvim = { + package = pluginSources.slides-nvim; + setup = "require('slides').setup {}"; + }; + + hmts = { + package = pluginSources.hmts; + after = ["treesitter"]; + }; + + smart-splits = { + package = pluginSources.smart-splits; + setup = "require('smart-splits').setup {}"; + }; + + neotab-nvim = { + package = pluginSources.neotab-nvim; + setup = '' + require('neotab').setup { + tabkey = "", + act_as_tab = true, + behavior = "nested", ---@type ntab.behavior + pairs = { ---@type ntab.pair[] + { open = "(", close = ")" }, + { open = "[", close = "]" }, + { open = "{", close = "}" }, + { open = "'", close = "'" }, + { open = '"', close = '"' }, + { open = "`", close = "`" }, + { open = "<", close = ">" }, + }, + exclude = {}, + smart_punctuators = { + enabled = false, + semicolon = { + enabled = false, + ft = { "cs", "c", "cpp", "java" }, + }, + escape = { + enabled = false, + triggers = {}, ---@type table + }, + }, + } + ''; + }; + + specs-nvim = { + package = pluginSources.specs-nvim; + setup = '' + require('specs').setup { + show_jumps = true, + popup = { + delay_ms = 0, + inc_ms = 15, + blend = 15, + width = 10, + winhl = "PMenu", + fader = require('specs').linear_fader, + resizer = require('specs').shrink_resizer + }, + + ignore_filetypes = {'NvimTree', 'undotree'}, + + ignore_buftypes = {nofile = true}, + } + + -- toggle specs using the keybind + vim.api.nvim_set_keymap('n', '', ':lua require("specs").show_specs()', { noremap = true, silent = true }) + + -- bind specs to navigation keys + vim.api.nvim_set_keymap('n', 'n', 'n:lua require("specs").show_specs()', { noremap = true, silent = true }) + vim.api.nvim_set_keymap('n', 'N', 'N:lua require("specs").show_specs()', { noremap = true, silent = true }) + ''; + }; + }; +} diff --git a/modules/editors/nvf/plugins/settings/assistant.nix b/modules/editors/nvf/plugins/settings/assistant.nix new file mode 100644 index 0000000..f1267f8 --- /dev/null +++ b/modules/editors/nvf/plugins/settings/assistant.nix @@ -0,0 +1,8 @@ +{ + programs.neovim-flake.settings.vim = { + assistant.copilot = { + enable = true; + cmp.enable = true; + }; + }; +} diff --git a/modules/editors/nvf/plugins/settings/autocomplete.nix b/modules/editors/nvf/plugins/settings/autocomplete.nix new file mode 100644 index 0000000..61bbd28 --- /dev/null +++ b/modules/editors/nvf/plugins/settings/autocomplete.nix @@ -0,0 +1,16 @@ +{ + programs.neovim-flake.settings.vim = { + autocomplete = { + enable = true; + type = "nvim-cmp"; + mappings = { + # close = ""; + confirm = ""; + next = ""; + previous = ""; + scrollDocsDown = ""; + scrollDocsUp = ""; + }; + }; + }; +} diff --git a/modules/editors/nvf/plugins/settings/autopairs.nix b/modules/editors/nvf/plugins/settings/autopairs.nix new file mode 100644 index 0000000..11286de --- /dev/null +++ b/modules/editors/nvf/plugins/settings/autopairs.nix @@ -0,0 +1,5 @@ +{ + programs.neovim-flake.settings.vim = { + autopairs.enable = true; + }; +} diff --git a/modules/editors/nvf/plugins/settings/binds.nix b/modules/editors/nvf/plugins/settings/binds.nix new file mode 100644 index 0000000..d626547 --- /dev/null +++ b/modules/editors/nvf/plugins/settings/binds.nix @@ -0,0 +1,8 @@ +{ + programs.neovim-flake.settings.vim = { + binds = { + whichKey.enable = true; + cheatsheet.enable = false; + }; + }; +} diff --git a/modules/editors/nvf/plugins/settings/comments.nix b/modules/editors/nvf/plugins/settings/comments.nix new file mode 100644 index 0000000..4f0a7a7 --- /dev/null +++ b/modules/editors/nvf/plugins/settings/comments.nix @@ -0,0 +1,5 @@ +{ + programs.neovim-flake.settings.vim = { + comments.comment-nvim.enable = true; + }; +} diff --git a/modules/editors/nvf/plugins/settings/dashboard.nix b/modules/editors/nvf/plugins/settings/dashboard.nix new file mode 100644 index 0000000..81e8542 --- /dev/null +++ b/modules/editors/nvf/plugins/settings/dashboard.nix @@ -0,0 +1,7 @@ +{ + programs.neovim-flake.settings.vim = { + dashboard = { + alpha.enable = true; + }; + }; +} diff --git a/modules/editors/nvf/plugins/settings/debugger.nix b/modules/editors/nvf/plugins/settings/debugger.nix new file mode 100644 index 0000000..a40e92d --- /dev/null +++ b/modules/editors/nvf/plugins/settings/debugger.nix @@ -0,0 +1,8 @@ +{ + programs.neovim-flake.settings.vim = { + debugger.nvim-dap = { + enable = true; + ui.enable = true; + }; + }; +} diff --git a/modules/editors/nvf/plugins/settings/filetree.nix b/modules/editors/nvf/plugins/settings/filetree.nix new file mode 100644 index 0000000..5128b83 --- /dev/null +++ b/modules/editors/nvf/plugins/settings/filetree.nix @@ -0,0 +1,63 @@ +{ + programs.neovim-flake.settings.vim = { + filetree = { + nvimTree = { + enable = true; + openOnSetup = true; + + mappings = { + toggle = ""; + }; + + setupOpts = { + disable_netrw = true; + update_focused_file.enable = true; + + hijack_unnamed_buffer_when_opening = true; + hijack_cursor = true; + hijack_directories = { + enable = true; + auto_open = true; + }; + + git = { + enable = true; + show_on_dirs = false; + timeout = 500; + }; + + view = { + cursorline = false; + width = 35; + }; + + renderer = { + indent_markers.enable = true; + root_folder_label = false; # inconsistent + + icons = { + modified_placement = "after"; + git_placement = "after"; + show.git = true; + show.modified = true; + }; + }; + + diagnostics.enable = true; + + modified = { + enable = true; + show_on_dirs = false; + show_on_open_dirs = true; + }; + + actions = { + change_dir.enable = false; + change_dir.global = false; + open_file.window_picker.enable = true; + }; + }; + }; + }; + }; +} diff --git a/modules/editors/nvf/plugins/settings/gestures.nix b/modules/editors/nvf/plugins/settings/gestures.nix new file mode 100644 index 0000000..d9e24e8 --- /dev/null +++ b/modules/editors/nvf/plugins/settings/gestures.nix @@ -0,0 +1,5 @@ +{ + programs.neovim-flake.settings.vim = { + gestures.gesture-nvim.enable = false; + }; +} diff --git a/modules/editors/nvf/plugins/settings/git.nix b/modules/editors/nvf/plugins/settings/git.nix new file mode 100644 index 0000000..65895ab --- /dev/null +++ b/modules/editors/nvf/plugins/settings/git.nix @@ -0,0 +1,12 @@ +{ + programs.neovim-flake.settings.vim = { + git = { + enable = true; + vim-fugitive.enable = true; + gitsigns = { + enable = true; + codeActions.enable = false; # no. + }; + }; + }; +} diff --git a/modules/editors/nvf/plugins/settings/languages.nix b/modules/editors/nvf/plugins/settings/languages.nix new file mode 100644 index 0000000..86f9b63 --- /dev/null +++ b/modules/editors/nvf/plugins/settings/languages.nix @@ -0,0 +1,59 @@ +{ + config, + pkgs, + lib, + ... +}: { + programs.neovim-flake.settings.vim = { + languages = { + enableLSP = true; + enableFormat = true; + enableTreesitter = true; + enableExtraDiagnostics = true; + + markdown.enable = true; + nix.enable = true; + html.enable = true; + css.enable = true; + tailwind.enable = true; + ts.enable = true; + go.enable = true; + python.enable = true; + bash.enable = true; + typst.enable = true; + zig.enable = true; + dart.enable = false; + elixir.enable = false; + svelte.enable = false; + sql.enable = false; + java = let + jdtlsCache = "${config.xdg.cacheHome}/jdtls"; + in { + enable = true; + lsp.package = [ + "${lib.getExe pkgs.jdt-language-server}" + "-configuration ${jdtlsCache}/config" + "-data ${jdtlsCache}/workspace" + ]; + }; + + lua = { + enable = true; + lsp.neodev.enable = true; + }; + + rust = { + enable = true; + crates.enable = true; + }; + + clang = { + enable = true; + lsp = { + enable = true; + server = "clangd"; + }; + }; + }; + }; +} diff --git a/modules/editors/nvf/plugins/settings/lsp.nix b/modules/editors/nvf/plugins/settings/lsp.nix new file mode 100644 index 0000000..ae8c807 --- /dev/null +++ b/modules/editors/nvf/plugins/settings/lsp.nix @@ -0,0 +1,15 @@ +{ + programs.neovim-flake.settings.vim = { + lsp = { + formatOnSave = true; + lspkind.enable = true; + lsplines.enable = true; + lightbulb.enable = true; + lspsaga.enable = false; + lspSignature.enable = true; + nvimCodeActionMenu.enable = true; + trouble.enable = false; + nvim-docs-view.enable = true; + }; + }; +} diff --git a/modules/editors/nvf/plugins/settings/minimap.nix b/modules/editors/nvf/plugins/settings/minimap.nix new file mode 100644 index 0000000..42bd866 --- /dev/null +++ b/modules/editors/nvf/plugins/settings/minimap.nix @@ -0,0 +1,9 @@ +{ + programs.neovim-flake.settings.vim = { + minimap = { + # cool for vanity but practically useless on small screens + minimap-vim.enable = false; + codewindow.enable = false; + }; + }; +} diff --git a/modules/editors/nvf/plugins/settings/notes.nix b/modules/editors/nvf/plugins/settings/notes.nix new file mode 100644 index 0000000..2a02e37 --- /dev/null +++ b/modules/editors/nvf/plugins/settings/notes.nix @@ -0,0 +1,9 @@ +{ + programs.neovim-flake.settings.vim = { + notes = { + todo-comments.enable = true; + mind-nvim.enable = false; + obsidian.enable = false; + }; + }; +} diff --git a/modules/editors/nvf/plugins/settings/notify.nix b/modules/editors/nvf/plugins/settings/notify.nix new file mode 100644 index 0000000..040aa7f --- /dev/null +++ b/modules/editors/nvf/plugins/settings/notify.nix @@ -0,0 +1,7 @@ +{ + programs.neovim-flake.settings.vim = { + notify = { + nvim-notify.enable = true; + }; + }; +} diff --git a/modules/editors/nvf/plugins/settings/presence.nix b/modules/editors/nvf/plugins/settings/presence.nix new file mode 100644 index 0000000..83e4dd8 --- /dev/null +++ b/modules/editors/nvf/plugins/settings/presence.nix @@ -0,0 +1,5 @@ +{ + programs.neovim-flake.settings.vim = { + presence.neocord.enable = false; + }; +} diff --git a/modules/editors/nvf/plugins/settings/projects.nix b/modules/editors/nvf/plugins/settings/projects.nix new file mode 100644 index 0000000..9d200d8 --- /dev/null +++ b/modules/editors/nvf/plugins/settings/projects.nix @@ -0,0 +1,22 @@ +{ + programs.neovim-flake.settings.vim = { + projects = { + project-nvim = { + enable = true; + setupOpts = { + manualMode = false; + detectionMethods = ["lsp" "pattern"]; + patterns = [ + ".git" + ".hg" + "Makefile" + "package.json" + "index.*" + ".anchor" + "flake.nix" + ]; + }; + }; + }; + }; +} diff --git a/modules/editors/nvf/plugins/settings/session.nix b/modules/editors/nvf/plugins/settings/session.nix new file mode 100644 index 0000000..a76394d --- /dev/null +++ b/modules/editors/nvf/plugins/settings/session.nix @@ -0,0 +1,8 @@ +{ + programs.neovim-flake.settings.vim = { + session.nvim-session-manager = { + enable = false; + setupOpts.autoload_mode = "Disabled"; # misbehaves with dashboard + }; + }; +} diff --git a/modules/editors/nvf/plugins/settings/statusline.nix b/modules/editors/nvf/plugins/settings/statusline.nix new file mode 100644 index 0000000..1190f35 --- /dev/null +++ b/modules/editors/nvf/plugins/settings/statusline.nix @@ -0,0 +1,10 @@ +{ + programs.neovim-flake.settings.vim = { + statusline = { + lualine = { + enable = true; + theme = "catppuccin"; + }; + }; + }; +} diff --git a/modules/editors/nvf/plugins/settings/tabline.nix b/modules/editors/nvf/plugins/settings/tabline.nix new file mode 100644 index 0000000..5771d16 --- /dev/null +++ b/modules/editors/nvf/plugins/settings/tabline.nix @@ -0,0 +1,7 @@ +{ + programs.neovim-flake.settings.vim = { + tabline = { + nvimBufferline.enable = true; + }; + }; +} diff --git a/modules/editors/nvf/plugins/settings/telescope.nix b/modules/editors/nvf/plugins/settings/telescope.nix new file mode 100644 index 0000000..f96b419 --- /dev/null +++ b/modules/editors/nvf/plugins/settings/telescope.nix @@ -0,0 +1,5 @@ +{ + programs.neovim-flake.settings.vim = { + telescope.enable = true; + }; +} diff --git a/modules/editors/nvf/plugins/settings/template.nix b/modules/editors/nvf/plugins/settings/template.nix new file mode 100644 index 0000000..ecf1b40 --- /dev/null +++ b/modules/editors/nvf/plugins/settings/template.nix @@ -0,0 +1,4 @@ +{ + programs.neovim-flake.settings.vim = { + }; +} diff --git a/modules/editors/nvf/plugins/settings/terminal.nix b/modules/editors/nvf/plugins/settings/terminal.nix new file mode 100644 index 0000000..b53f695 --- /dev/null +++ b/modules/editors/nvf/plugins/settings/terminal.nix @@ -0,0 +1,18 @@ +{ + programs.neovim-flake.settings.vim = { + terminal = { + toggleterm = { + enable = true; + mappings.open = ""; + + setupOpts = { + direction = "tab"; + lazygit = { + enable = true; + direction = "tab"; + }; + }; + }; + }; + }; +} diff --git a/modules/editors/nvf/plugins/settings/theme.nix b/modules/editors/nvf/plugins/settings/theme.nix new file mode 100644 index 0000000..93824f3 --- /dev/null +++ b/modules/editors/nvf/plugins/settings/theme.nix @@ -0,0 +1,10 @@ +{ + programs.neovim-flake.settings.vim = { + theme = { + enable = true; + name = "catppuccin"; + style = "mocha"; + transparent = true; + }; + }; +} diff --git a/modules/editors/nvf/plugins/settings/treesitter.nix b/modules/editors/nvf/plugins/settings/treesitter.nix new file mode 100644 index 0000000..6e74280 --- /dev/null +++ b/modules/editors/nvf/plugins/settings/treesitter.nix @@ -0,0 +1,14 @@ +{pkgs, ...}: { + programs.neovim-flake.settings.vim = { + treesitter = { + fold = true; + context.enable = false; # FIXME: currently broken, I do not know why. + + # extra grammars that will be installed by Nix + grammars = with pkgs.vimPlugins.nvim-treesitter.builtGrammars; [ + regex # for regexplainer + kdl # zellij configurations are in KDL, I want syntax highlighting + ]; + }; + }; +} diff --git a/modules/editors/nvf/plugins/settings/ui.nix b/modules/editors/nvf/plugins/settings/ui.nix new file mode 100644 index 0000000..8edab0c --- /dev/null +++ b/modules/editors/nvf/plugins/settings/ui.nix @@ -0,0 +1,34 @@ +{ + programs.neovim-flake.settings.vim = { + ui = { + noice.enable = true; + colorizer.enable = true; + modes-nvim.enable = false; + illuminate.enable = true; + + breadcrumbs = { + enable = true; + source = "nvim-navic"; + navbuddy.enable = false; + }; + + smartcolumn = { + enable = true; + setupOpts = { + columnAt.languages = { + markdown = [80]; + nix = [150]; + ruby = 110; + java = 120; + go = [130]; + }; + }; + }; + + borders = { + enable = true; + globalStyle = "rounded"; + }; + }; + }; +} diff --git a/modules/editors/nvf/plugins/settings/utility.nix b/modules/editors/nvf/plugins/settings/utility.nix new file mode 100644 index 0000000..3e93a35 --- /dev/null +++ b/modules/editors/nvf/plugins/settings/utility.nix @@ -0,0 +1,24 @@ +{pkgs, ...}: { + programs.neovim-flake.settings.vim = { + utility = { + ccc.enable = true; + icon-picker.enable = true; + diffview-nvim.enable = true; + + vim-wakatime = { + enable = true; + cli-package = pkgs.wakatime-cli; + }; + + motion = { + hop.enable = true; + leap.enable = false; + }; + + preview = { + glow.enable = true; + markdownPreview.enable = true; + }; + }; + }; +} diff --git a/modules/editors/nvf/plugins/settings/visuals.nix b/modules/editors/nvf/plugins/settings/visuals.nix new file mode 100644 index 0000000..9edf972 --- /dev/null +++ b/modules/editors/nvf/plugins/settings/visuals.nix @@ -0,0 +1,34 @@ +{ + programs.neovim-flake.settings.vim = { + visuals = { + enable = true; + nvimWebDevicons.enable = true; + scrollBar.enable = true; + smoothScroll.enable = false; + cellularAutomaton.enable = false; + highlight-undo.enable = true; + + indentBlankline = { + enable = true; + fillChar = null; + eolChar = null; + scope.enabled = true; + }; + + cursorline = { + enable = true; + lineTimeout = 0; + }; + + fidget-nvim = { + enable = true; + setupOpts = { + notification.window = { + winblend = 0; + border = "none"; + }; + }; + }; + }; + }; +} diff --git a/modules/editors/nvf/plugins/sources/default.nix b/modules/editors/nvf/plugins/sources/default.nix new file mode 100644 index 0000000..7438d02 --- /dev/null +++ b/modules/editors/nvf/plugins/sources/default.nix @@ -0,0 +1,87 @@ +{ + self, + pkgs, + ... +}: let + inherit (self) pins; + inherit (pkgs) fetchFromGitHub; + inherit (pkgs.vimUtils) buildVimPlugin; + + sources = { + hmts = buildVimPlugin { + name = "hmts.nvim"; + src = pins."hmts.nvim"; + }; + + smart-splits = buildVimPlugin { + name = "smart-splits"; + src = pins."smart-splits.nvim"; + }; + + slides-nvim = buildVimPlugin { + name = "slides.nvim"; + src = pins."slides.nvim"; + }; + + regexplainer = buildVimPlugin { + name = "nvim-regexplainer"; + src = fetchFromGitHub { + owner = "bennypowers"; + repo = "nvim-regexplainer"; + rev = "4250c8f3c1307876384e70eeedde5149249e154f"; + hash = "sha256-15DLbKtOgUPq4DcF71jFYu31faDn52k3P1x47GL3+b0="; + }; + }; + + specs-nvim = buildVimPlugin { + name = "specs.nvim"; + src = fetchFromGitHub { + owner = "notashelf"; + repo = "specs.nvim"; + rev = "0792aaebf8cbac0c8545c43ad648b98deb83af42"; + hash = "sha256-doHE/3bRuC8lyYxMk927JmwLfiy7aR22+i+BNefEGJ4="; + }; + }; + + deferred-clipboard = buildVimPlugin { + name = "deferred-clipboard"; + src = fetchFromGitHub { + owner = "EtiamNullam"; + repo = "deferred-clipboard.nvim"; + rev = "810a29d166eaa41afc220cc7cd85eeaa3c43b37f"; + hash = "sha256-nanNQEtpjv0YKEkkrPmq/5FPxq+Yj/19cs0Gf7YgKjU="; + }; + }; + + data-viewer-nvim = buildVimPlugin { + name = "data-viewer.nvim"; + src = fetchFromGitHub { + owner = "VidocqH"; + repo = "data-viewer.nvim"; + rev = "40ddf37bb7ab6c04ff9e820812d1539afe691668"; + hash = "sha256-D5hvLhsYski11H9qiDDL2zlZMtYmbpHgpewiWR6C7rE="; + }; + }; + + vim-nftables = buildVimPlugin { + name = "vim-nftables"; + src = fetchFromGitHub { + owner = "awisse"; + repo = "vim-nftables"; + rev = "bc29309080b4c7e1888ffb1a830846be16e5b8e7"; + hash = "sha256-L1x3Hv95t/DBBrLtPBKrqaTbIPor/NhVuEHVIYo/OaA="; + }; + }; + + neotab-nvim = buildVimPlugin { + name = "neotab.nvim"; + src = fetchFromGitHub { + owner = "kawre"; + repo = "neotab.nvim"; + rev = "6c6107dddaa051504e433608f59eca606138269b"; + hash = "sha256-bSFKbjj8fJHdfBzYoQ9l3NU0GAYfdfCbESKbwdbLNSw="; + }; + }; + }; +in + sources diff --git a/modules/editors/nvf/settings.nix b/modules/editors/nvf/settings.nix new file mode 100644 index 0000000..7f02d24 --- /dev/null +++ b/modules/editors/nvf/settings.nix @@ -0,0 +1,100 @@ +# Credity to raf aka Notashelf, link to his repo is in the README.md +{ + inputs, + config, + pkgs, + lib, + ... +}: let + inherit (builtins) filter map toString path isPath throw; + inherit (lib.filesystem) listFilesRecursive; + inherit (lib.strings) hasSuffix fileContents; + inherit (lib.attrsets) genAttrs; + inherit (config.modues.other.system) username; + + nvf = inputs.neovim-flake; + inherit (inputs) neovim-nightly-overlay; + inherit (nvf.lib.nvim.dag) entryBefore entryAnywhere; + + mkRuntimeDir = name: let + finalPath = ./runtime + /${name}; + in + path { + name = "nvim-runtime-${name}"; + path = toString finalPath; + }; +in { + home-manager.users.${username} = { + programs.neovim-flake = { + enable = true; + + defaultEditor = true; + enableManpages = true; + + settings = { + vim = { + # use neovim-unwrapped from nixpkgs + # alternatively, neovim-nightly from the neovim-nightly overlay + # via inputs.neovim-nightly.packages.${pkgs.stdenv.system}.neovim + # package = pkgs.neovim-unwrapped; + package = neovim-nightly-overlay; + + viAlias = true; + vimAlias = true; + + withNodeJs = false; + withPython3 = false; + withRuby = false; + + preventJunkFiles = true; + useSystemClipboard = true; + spellcheck = { + enable = true; + languages = ["en" "de" ]; + }; + + enableLuaLoader = true; + enableEditorconfig = true; + + debugMode = { + enable = false; + logFile = "/tmp/nvim.log"; + }; + + additionalRuntimePaths = [ + (mkRuntimeDir "after") + (mkRuntimeDir "spell") + ]; + + # while I should be doing this in luaConfigRC below + # I have come to realise that spellfile contents are + # actually **not** loaded when luaConfigRC is used. + # as spellfile is a vim thing, this should be fine + configRC.spellfile = entryAnywhere '' + set spellfile=${toString ./spell/runtime/en.utf-8.add} " toString sanitizes the path + ''; + + # additional lua configuration that I can append + # or, to be more precise, randomly inject into + # the lua configuration of my Neovim configuration + # wrapper. this is recursively read from the lua + # directory, so we do not need to use require + luaConfigRC = let + # get the name of each lua file in the lua directory, where setting files reside + # and import tham recursively + configPaths = filter (hasSuffix ".lua") (map toString (listFilesRecursive ./lua)); + + # generates a key-value pair that looks roughly as follows: + # ` = entryAnywhere ''''` + # which is expected by neovim-flake's modified DAG library + luaConfig = genAttrs configPaths (file: + entryBefore ["luaScript"] '' + ${fileContents "${file}"} + ''); + in + luaConfig; + }; + }; + }; + }; +}