diff --git a/flake.lock b/flake.lock index 4723329..cf50b5e 100644 --- a/flake.lock +++ b/flake.lock @@ -181,6 +181,27 @@ } }, "flake-parts": { + "inputs": { + "nixpkgs-lib": [ + "nixvim", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1754487366, + "narHash": "sha256-pHYj8gUBapuUzKV/kN/tR3Zvqc7o6gdFB9XKXIp1SQ8=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "af66ad14b28a127c5c0f3bbb298218fc63528a18", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, + "flake-parts_2": { "inputs": { "nixpkgs-lib": [ "stylix", @@ -219,6 +240,24 @@ "type": "github" } }, + "flake-utils_2": { + "inputs": { + "systems": "systems_3" + }, + "locked": { + "lastModified": 1731533236, + "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, "fromYaml": { "flake": false, "locked": { @@ -399,6 +438,34 @@ "type": "github" } }, + "ixx": { + "inputs": { + "flake-utils": [ + "nixvim", + "nuschtosSearch", + "flake-utils" + ], + "nixpkgs": [ + "nixvim", + "nuschtosSearch", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1748294338, + "narHash": "sha256-FVO01jdmUNArzBS7NmaktLdGA5qA3lUMJ4B7a05Iynw=", + "owner": "NuschtOS", + "repo": "ixx", + "rev": "cc5f390f7caf265461d4aab37e98d2292ebbdb85", + "type": "github" + }, + "original": { + "owner": "NuschtOS", + "ref": "v0.0.8", + "repo": "ixx", + "type": "github" + } + }, "nix-flatpak": { "locked": { "lastModified": 1751276396, @@ -520,6 +587,43 @@ "type": "github" } }, + "nixpkgs_4": { + "locked": { + "lastModified": 1754393734, + "narHash": "sha256-fbnmAwTQkuXHKBlcL5Nq1sMAzd3GFqCOQgEQw6Hy0Ak=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "a683adc19ff5228af548c6539dbc3440509bfed3", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixvim": { + "inputs": { + "flake-parts": "flake-parts", + "nixpkgs": "nixpkgs_4", + "nuschtosSearch": "nuschtosSearch", + "systems": "systems_4" + }, + "locked": { + "lastModified": 1755095763, + "narHash": "sha256-cFwtMaONA4uKYk/rBrmFvIAQieZxZytoprzIblTn1HA=", + "owner": "nix-community", + "repo": "nixvim", + "rev": "ecc7880e00a2a735074243d8a664a931d73beace", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "nixvim", + "type": "github" + } + }, "nur": { "inputs": { "flake-parts": [ @@ -546,6 +650,29 @@ "type": "github" } }, + "nuschtosSearch": { + "inputs": { + "flake-utils": "flake-utils_2", + "ixx": "ixx", + "nixpkgs": [ + "nixvim", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1754301638, + "narHash": "sha256-aRgzcPDd2axHFOuMlPLuzmDptUM2JU8mUL3jfgbBeyc=", + "owner": "NuschtOS", + "repo": "search", + "rev": "a60091045273484c040a91f5c229ba298f8ecc27", + "type": "github" + }, + "original": { + "owner": "NuschtOS", + "repo": "search", + "type": "github" + } + }, "root": { "inputs": { "agenix": "agenix", @@ -557,6 +684,7 @@ "nixos-cli": "nixos-cli", "nixpkgs": "nixpkgs_3", "nixpkgs-stable": "nixpkgs-stable", + "nixvim": "nixvim", "stylix": "stylix" } }, @@ -590,7 +718,7 @@ "base16-vim": "base16-vim", "firefox-gnome-theme": "firefox-gnome-theme", "flake-compat": "flake-compat_2", - "flake-parts": "flake-parts", + "flake-parts": "flake-parts_2", "git-hooks": "git-hooks", "gnome-shell": "gnome-shell", "home-manager": "home-manager_3", @@ -598,7 +726,7 @@ "nixpkgs" ], "nur": "nur", - "systems": "systems_3", + "systems": "systems_5", "tinted-foot": "tinted-foot", "tinted-kitty": "tinted-kitty", "tinted-schemes": "tinted-schemes", @@ -664,6 +792,36 @@ "type": "github" } }, + "systems_4": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "systems_5": { + "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 9b13d69..f2c0c6f 100644 --- a/flake.nix +++ b/flake.nix @@ -34,6 +34,8 @@ nix-flatpak.url = "github:gmodena/nix-flatpak/main"; impermanence.url = "github:nix-community/impermanence"; + + nixvim.url = "github:nix-community/nixvim"; }; outputs = @@ -49,6 +51,7 @@ nixos-cli, nix-flatpak, impermanence, + nixvim, ... }: let @@ -92,6 +95,7 @@ impermanence.nixosModules.impermanence nix-flatpak.nixosModules.nix-flatpak stylix.nixosModules.stylix + nixvim.nixosModules.nixvim nixos-cli.nixosModules.nixos-cli { nixpkgs.overlays = [ diff --git a/hosts/modules/programs.nix b/hosts/modules/programs.nix index b79042d..f4d57eb 100644 --- a/hosts/modules/programs.nix +++ b/hosts/modules/programs.nix @@ -14,7 +14,7 @@ ### Dev Tools ### agenix git - helix + evil-helix ### System Utilities ### btop nixos-firewall-tool @@ -28,9 +28,6 @@ neofetch = "${pkgs.fastfetch}/bin/fastfetch"; tree = "ls --tree"; syscleanup = "sudo nix-collect-garbage -d; sudo /run/current-system/bin/switch-to-configuration boot"; - vi = "${pkgs.evil-helix}/bin/hx"; - vim = "${pkgs.evil-helix}/bin/hx"; - nvim = "${pkgs.evil-helix}/bin/hx"; }; }; diff --git a/hosts/modules/users.nix b/hosts/modules/users.nix index e463781..1522631 100644 --- a/hosts/modules/users.nix +++ b/hosts/modules/users.nix @@ -39,6 +39,9 @@ user = import ../../users/user.nix; root = import ../../users/root.nix; }; + sharedModules = [ + inputs.nixvim.homeModules.nixvim + ]; extraSpecialArgs = { inherit hostType; inherit inputs; diff --git a/users/modules/programs.nix b/users/modules/programs.nix index 0bcb875..f70e144 100644 --- a/users/modules/programs.nix +++ b/users/modules/programs.nix @@ -1,5 +1,4 @@ { - config, hostType, lib, pkgs, @@ -10,12 +9,6 @@ config = lib.mkMerge [ # Common configuration { - home = { - sessionVariables = { - EDITOR = "hx"; - }; - }; - programs = { bash = { enable = true; @@ -45,6 +38,13 @@ }; }; + nixvim = { + enable = true; + defaultEditor = true; + enableMan = false; + enablePrintInit = false; + }; + fish = { enable = true; functions.fish_greeting = ""; @@ -88,15 +88,7 @@ # Workstation specific configuration (lib.mkIf hostType.isWorkstation { - programs.rio = { - enable = true; - settings = { - window = { - width = 1121; - height = 633; - }; - }; - }; + programs.nixvim.clipboard.providers.wl-copy.enable = true; }) ]; } diff --git a/users/modules/user/programs.nix b/users/modules/user/programs.nix index a024663..625b553 100644 --- a/users/modules/user/programs.nix +++ b/users/modules/user/programs.nix @@ -30,6 +30,17 @@ ]; }; + nixvim.plugins = { + treesitter.enable = true; + multicursors.enable = true; + lspconfig.enable = true; + cmp.enable = true; + which-key.enable = true; + telescope.enable = true; + undotree.enable = true; + web-devicons.enable = true; + }; + password-store.enable = true; direnv = { @@ -127,6 +138,16 @@ pkgs.obs-studio-plugins.obs-pipewire-audio-capture ]; }; + + rio = { + enable = true; + settings = { + window = { + width = 1121; + height = 633; + }; + }; + }; }; }) ];