From d298a2b5e8e4058381b14328a6c7d68a11be9c37 Mon Sep 17 00:00:00 2001 From: teesh3rt Date: Fri, 30 Jan 2026 11:19:46 +0200 Subject: [PATCH] feat: was bored of nano --- flake.lock | 119 +++++++++++++++++++++++++++++++- flake.nix | 5 ++ modules/base/neovim/cmp.nix | 10 +++ modules/base/neovim/lsp.nix | 14 ++++ modules/base/neovim/lualine.nix | 7 ++ modules/base/neovim/neogit.nix | 16 +++++ modules/base/neovim/nvf.nix | 12 ++++ modules/base/neovim/theming.nix | 7 ++ modules/base/stylix/impl.nix | 2 +- 9 files changed, 189 insertions(+), 3 deletions(-) create mode 100644 modules/base/neovim/cmp.nix create mode 100644 modules/base/neovim/lsp.nix create mode 100644 modules/base/neovim/lualine.nix create mode 100644 modules/base/neovim/neogit.nix create mode 100644 modules/base/neovim/nvf.nix create mode 100644 modules/base/neovim/theming.nix diff --git a/flake.lock b/flake.lock index bcb238c..d15453f 100644 --- a/flake.lock +++ b/flake.lock @@ -84,6 +84,22 @@ "type": "github" } }, + "flake-compat": { + "flake": false, + "locked": { + "lastModified": 1751685974, + "narHash": "sha256-NKw96t+BgHIYzHUjkTK95FqYRVKB8DHpVhefWSz/kTw=", + "ref": "refs/heads/main", + "rev": "549f2762aebeff29a2e5ece7a7dc0f955281a1d1", + "revCount": 92, + "type": "git", + "url": "https://git.lix.systems/lix-project/flake-compat.git" + }, + "original": { + "type": "git", + "url": "https://git.lix.systems/lix-project/flake-compat.git" + } + }, "flake-parts": { "inputs": { "nixpkgs-lib": [ @@ -105,6 +121,27 @@ } }, "flake-parts_2": { + "inputs": { + "nixpkgs-lib": [ + "nvf", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1768135262, + "narHash": "sha256-PVvu7OqHBGWN16zSi6tEmPwwHQ4rLPU9Plvs8/1TUBY=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "80daad04eddbbf5a4d883996a73f3f542fa437ac", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, + "flake-parts_3": { "inputs": { "nixpkgs-lib": [ "stylix", @@ -196,6 +233,43 @@ "type": "github" } }, + "mnw": { + "locked": { + "lastModified": 1768701608, + "narHash": "sha256-kSvWF3Xt2HW9hmV5V7i8PqeWJIBUKmuKoHhOgj3Znzs=", + "owner": "Gerg-L", + "repo": "mnw", + "rev": "20d63a8a1ae400557c770052a46a9840e768926b", + "type": "github" + }, + "original": { + "owner": "Gerg-L", + "repo": "mnw", + "type": "github" + } + }, + "ndg": { + "inputs": { + "nixpkgs": [ + "nvf", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1768214250, + "narHash": "sha256-hnBZDQWUxJV3KbtvyGW5BKLO/fAwydrxm5WHCWMQTbw=", + "owner": "feel-co", + "repo": "ndg", + "rev": "a6bd3c1ce2668d096e4fdaaa03ad7f03ba1fbca8", + "type": "github" + }, + "original": { + "owner": "feel-co", + "ref": "refs/tags/v2.6.0", + "repo": "ndg", + "type": "github" + } + }, "nixpkgs": { "locked": { "lastModified": 1769598131, @@ -237,12 +311,38 @@ "type": "github" } }, + "nvf": { + "inputs": { + "flake-compat": "flake-compat", + "flake-parts": "flake-parts_2", + "mnw": "mnw", + "ndg": "ndg", + "nixpkgs": [ + "nixpkgs" + ], + "systems": "systems" + }, + "locked": { + "lastModified": 1769716128, + "narHash": "sha256-CAsiyTNjI0WmtJstw3kGyL7Q1jPCn7AsO6Ms47G+x3w=", + "owner": "notashelf", + "repo": "nvf", + "rev": "866b983c4047b87bcdca6ab3673ed7bd602f0251", + "type": "github" + }, + "original": { + "owner": "notashelf", + "repo": "nvf", + "type": "github" + } + }, "root": { "inputs": { "flake-parts": "flake-parts", "home-manager": "home-manager", "import-tree": "import-tree", "nixpkgs": "nixpkgs", + "nvf": "nvf", "stylix": "stylix" } }, @@ -253,13 +353,13 @@ "base16-helix": "base16-helix", "base16-vim": "base16-vim", "firefox-gnome-theme": "firefox-gnome-theme", - "flake-parts": "flake-parts_2", + "flake-parts": "flake-parts_3", "gnome-shell": "gnome-shell", "nixpkgs": [ "nixpkgs" ], "nur": "nur", - "systems": "systems", + "systems": "systems_2", "tinted-foot": "tinted-foot", "tinted-kitty": "tinted-kitty", "tinted-schemes": "tinted-schemes", @@ -296,6 +396,21 @@ "type": "github" } }, + "systems_2": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, "tinted-foot": { "flake": false, "locked": { diff --git a/flake.nix b/flake.nix index aac9f42..fe5af39 100644 --- a/flake.nix +++ b/flake.nix @@ -14,6 +14,11 @@ stylix.url = "github:nix-community/stylix/release-25.11"; stylix.inputs.nixpkgs.follows = "nixpkgs"; + + nvf = { + url = "github:notashelf/nvf"; + inputs.nixpkgs.follows = "nixpkgs"; + }; }; outputs = inputs@{ flake-parts, ... }: diff --git a/modules/base/neovim/cmp.nix b/modules/base/neovim/cmp.nix new file mode 100644 index 0000000..83f8e88 --- /dev/null +++ b/modules/base/neovim/cmp.nix @@ -0,0 +1,10 @@ +{ ... }: + +{ + flake.modules.generic.neovim = { + vim.autocomplete.blink-cmp = { + enable = true; + friendly-snippets.enable = true; + }; + }; +} diff --git a/modules/base/neovim/lsp.nix b/modules/base/neovim/lsp.nix new file mode 100644 index 0000000..1a41f21 --- /dev/null +++ b/modules/base/neovim/lsp.nix @@ -0,0 +1,14 @@ +{ ... }: + +{ + flake.modules.generic.neovim = { + vim.languages = { + python.enable = true; + rust.enable = true; + nix.enable = true; + clang.enable = true; + }; + + vim.lsp.enable = true; + }; +} diff --git a/modules/base/neovim/lualine.nix b/modules/base/neovim/lualine.nix new file mode 100644 index 0000000..57e1c88 --- /dev/null +++ b/modules/base/neovim/lualine.nix @@ -0,0 +1,7 @@ +{ ... }: + +{ + flake.modules.generic.neovim = { + vim.statusline.lualine.enable = true; + }; +} diff --git a/modules/base/neovim/neogit.nix b/modules/base/neovim/neogit.nix new file mode 100644 index 0000000..c677979 --- /dev/null +++ b/modules/base/neovim/neogit.nix @@ -0,0 +1,16 @@ +{ ... }: + +{ + flake.modules.generic.neovim = { pkgs, ... }: { + vim.lazy.plugins.neogit = { + package = pkgs.vimPlugins.neogit; + + setupModule = "neogit"; + setupOpts = {}; + + keys = [ + { mode = "n"; key = "gg"; action = "Neogit"; } + ]; + }; + }; +} diff --git a/modules/base/neovim/nvf.nix b/modules/base/neovim/nvf.nix new file mode 100644 index 0000000..df5c78e --- /dev/null +++ b/modules/base/neovim/nvf.nix @@ -0,0 +1,12 @@ +{ inputs, config, ... }: + +{ + flake.modules.nixos.base = { + imports = [ inputs.nvf.nixosModules.default ]; + + programs.nvf = { + enable = true; + settings = config.flake.modules.generic.neovim; + }; + }; +} diff --git a/modules/base/neovim/theming.nix b/modules/base/neovim/theming.nix new file mode 100644 index 0000000..250ef31 --- /dev/null +++ b/modules/base/neovim/theming.nix @@ -0,0 +1,7 @@ +{ ... }: + +{ + flake.modules.generic.neovim = { + vim.theme.enable = true; + }; +} diff --git a/modules/base/stylix/impl.nix b/modules/base/stylix/impl.nix index f75475e..8091431 100644 --- a/modules/base/stylix/impl.nix +++ b/modules/base/stylix/impl.nix @@ -7,7 +7,7 @@ stylix = { enable = true; image = ./wallpaper.jpeg; - base16Scheme = "${pkgs.base16-schemes}/share/themes/blueish.yaml"; + base16Scheme = "${pkgs.base16-schemes}/share/themes/catppuccin-mocha.yaml"; polarity = "dark"; }; };