From 641d97f7931c579b1d2e07e41dfa294ee2b0107b Mon Sep 17 00:00:00 2001 From: Nikolaos Karaolidis Date: Wed, 27 Aug 2025 10:29:05 +0000 Subject: [PATCH] Add nvf Signed-off-by: Nikolaos Karaolidis --- flake.lock | 46 ++++++ flake.nix | 103 +++++++----- .../configs/user/console/neovim/default.nix | 148 ++++++++++++++++-- .../configs/user/console/yazi/default.nix | 2 +- 4 files changed, 238 insertions(+), 61 deletions(-) diff --git a/flake.lock b/flake.lock index c6cd118..5bf2cec 100644 --- a/flake.lock +++ b/flake.lock @@ -248,6 +248,21 @@ "url": "https://git.karaolidis.com/karaolidis/nix-lib.git" } }, + "mnw": { + "locked": { + "lastModified": 1748710831, + "narHash": "sha256-eZu2yH3Y2eA9DD3naKWy/sTxYS5rPK2hO7vj8tvUCSU=", + "owner": "Gerg-L", + "repo": "mnw", + "rev": "cff958a4e050f8d917a6ff3a5624bc4681c6187d", + "type": "github" + }, + "original": { + "owner": "Gerg-L", + "repo": "mnw", + "type": "github" + } + }, "nixos-wsl": { "inputs": { "flake-compat": [ @@ -326,6 +341,36 @@ "type": "github" } }, + "nvf": { + "inputs": { + "flake-compat": [ + "flake-compat" + ], + "flake-parts": [ + "flake-parts" + ], + "mnw": "mnw", + "nixpkgs": [ + "nixpkgs" + ], + "systems": [ + "systems" + ] + }, + "locked": { + "lastModified": 1755463179, + "narHash": "sha256-5Ggb1Mhf7ZlRgGi2puCa2PvWs6KbMnWBlW6KW7Vf79Y=", + "owner": "NotAShelf", + "repo": "nvf", + "rev": "03833118267ad32226b014b360692bdce9d6e082", + "type": "github" + }, + "original": { + "owner": "NotAShelf", + "repo": "nvf", + "type": "github" + } + }, "nvidia-patch": { "inputs": { "nixpkgs": [ @@ -405,6 +450,7 @@ "nixos-wsl": "nixos-wsl", "nixpkgs": "nixpkgs", "nur": "nur", + "nvf": "nvf", "nvidia-patch": "nvidia-patch", "quadlet-nix": "quadlet-nix", "sas": "sas", diff --git a/flake.nix b/flake.nix index 189d8fb..5f0f4fa 100644 --- a/flake.nix +++ b/flake.nix @@ -1,5 +1,6 @@ { inputs = { + # Configuration nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; home-manager = { @@ -7,13 +8,63 @@ inputs.nixpkgs.follows = "nixpkgs"; }; - disko = { - url = "github:nix-community/disko/latest"; + # Packages + nur = { + url = "github:nix-community/NUR"; + inputs = { + nixpkgs.follows = "nixpkgs"; + flake-parts.follows = "flake-parts"; + }; + }; + + # DevOps + sops-nix = { + url = "github:Mic92/sops-nix"; inputs.nixpkgs.follows = "nixpkgs"; }; - sops-nix = { - url = "github:Mic92/sops-nix"; + treefmt-nix = { + url = "github:numtide/treefmt-nix"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + + flake-input-patcher = { + url = "github:jfly/flake-input-patcher"; + inputs = { + nixpkgs.follows = "nixpkgs"; + systems.follows = "systems"; + }; + }; + + # Personal + lib = { + # FIXME: https://github.com/NixOS/nix/issues/12281 + url = "git+https://git.karaolidis.com/karaolidis/nix-lib.git"; + inputs = { + nixpkgs.follows = "nixpkgs"; + treefmt-nix.follows = "treefmt-nix"; + }; + }; + + sas = { + # FIXME: https://github.com/NixOS/nix/issues/12281 + url = "git+ssh://git@karaolidis.com/karaolidis/nix-sas.git"; + inputs = { + nixpkgs.follows = "nixpkgs"; + lib.follows = "lib"; + treefmt-nix.follows = "treefmt-nix"; + }; + }; + + secrets = { + # FIXME: https://github.com/NixOS/nix/issues/12281 + url = "git+ssh://git@karaolidis.com/karaolidis/nix-secrets.git"; + flake = false; + }; + + # Hardware + disko = { + url = "github:nix-community/disko/latest"; inputs.nixpkgs.follows = "nixpkgs"; }; @@ -34,48 +85,13 @@ }; }; - # FIXME: https://github.com/NixOS/nix/issues/12281 - lib = { - url = "git+https://git.karaolidis.com/karaolidis/nix-lib.git"; - inputs = { - nixpkgs.follows = "nixpkgs"; - treefmt-nix.follows = "treefmt-nix"; - }; - }; - - # FIXME: https://github.com/NixOS/nix/issues/12281 - sas = { - url = "git+ssh://git@karaolidis.com/karaolidis/nix-sas.git"; - inputs = { - nixpkgs.follows = "nixpkgs"; - lib.follows = "lib"; - treefmt-nix.follows = "treefmt-nix"; - }; - }; - - # FIXME: https://github.com/NixOS/nix/issues/12281 - secrets = { - url = "git+ssh://git@karaolidis.com/karaolidis/nix-secrets.git"; - flake = false; - }; - - nur = { - url = "github:nix-community/NUR"; + # Applications + nvf = { + url = "github:NotAShelf/nvf"; inputs = { nixpkgs.follows = "nixpkgs"; + flake-compat.follows = "flake-compat"; flake-parts.follows = "flake-parts"; - }; - }; - - treefmt-nix = { - url = "github:numtide/treefmt-nix"; - inputs.nixpkgs.follows = "nixpkgs"; - }; - - flake-input-patcher = { - url = "github:jfly/flake-input-patcher"; - inputs = { - nixpkgs.follows = "nixpkgs"; systems.follows = "systems"; }; }; @@ -111,6 +127,7 @@ }; }; + # Transitive Dependencies systems.url = "github:nix-systems/default"; flake-parts.url = "github:hercules-ci/flake-parts"; diff --git a/hosts/common/configs/user/console/neovim/default.nix b/hosts/common/configs/user/console/neovim/default.nix index c5e0151..b47fab4 100644 --- a/hosts/common/configs/user/console/neovim/default.nix +++ b/hosts/common/configs/user/console/neovim/default.nix @@ -1,22 +1,136 @@ { user, home }: -{ ... }: +{ inputs, ... }: { - home-manager.users.${user}.programs = { - neovim = { - enable = true; - defaultEditor = true; - viAlias = true; - vimAlias = true; - vimdiffAlias = true; - extraConfig = '' - set tabstop=2 - set shiftwidth=2 - set expandtab - set smartindent - set mouse= - ''; - }; + home-manager.users.${user} = { + imports = [ inputs.nvf.homeManagerModules.default ]; - zsh.p10k.extraRightPromptElements = [ "vim_shell" ]; + programs = { + nvf = { + enable = true; + defaultEditor = true; + + settings = { + vim = { + enableLuaLoader = true; + + viAlias = true; + vimAlias = true; + + binds = { + cheatsheet.enable = true; + hardtime-nvim.enable = true; + whichKey.enable = true; + }; + + clipboard = { + enable = true; + providers.wl-copy.enable = true; + }; + + comments = { + comment-nvim.enable = true; + }; + + filetree = { + neo-tree = { + enable = true; + }; + }; + + git = { + enable = true; + gitsigns.enable = true; + }; + + languages = { + enableDAP = true; + enableFormat = true; + enableTreesitter = true; + enableExtraDiagnostics = true; + + assembly.enable = true; + bash.enable = true; + clang.enable = true; + csharp.enable = true; + css.enable = true; + go.enable = true; + html.enable = true; + java.enable = true; + lua.enable = true; + markdown.enable = true; + nix = { + enable = true; + format.type = "nixfmt"; + }; + php.enable = true; + python.enable = true; + rust.enable = true; + sql.enable = true; + svelte.enable = true; + ts.enable = true; + yaml.enable = true; + }; + + lsp = { + enable = true; + formatOnSave = true; + nvim-docs-view.enable = true; + otter-nvim.enable = true; + trouble.enable = true; + }; + + notify = { + nvim-notify.enable = true; + }; + + options = { + tabstop = 2; + shiftwidth = 2; + expandtab = true; + smartindent = true; + }; + + searchCase = "smart"; + + telescope = { + enable = true; + }; + + terminal = { + toggleterm = { + enable = true; + }; + }; + + treesitter = { + enable = true; + context.enable = true; + fold = true; + textobjects.enable = true; + }; + + ui = { + colorizer.enable = true; + }; + + undoFile.enable = true; + + utility = { + motion = { + precognition.enable = true; + }; + }; + + visuals = { + indent-blankline.enable = true; + nvim-cursorline.enable = true; + nvim-web-devicons.enable = true; + }; + }; + }; + }; + + zsh.p10k.extraRightPromptElements = [ "vim_shell" ]; + }; }; } diff --git a/hosts/common/configs/user/console/yazi/default.nix b/hosts/common/configs/user/console/yazi/default.nix index 2791ca8..fd953ca 100644 --- a/hosts/common/configs/user/console/yazi/default.nix +++ b/hosts/common/configs/user/console/yazi/default.nix @@ -23,7 +23,7 @@ in opener = { edit = [ { - run = "${hmConfig.programs.neovim.finalPackage}/bin/nvim \"$@\""; + run = "${hmConfig.programs.nvf.finalPackage}/bin/nvim \"$@\""; desc = "nvim"; block = true; }