diff --git a/flake.lock b/flake.lock index 057e8f12..59fc9966 100644 --- a/flake.lock +++ b/flake.lock @@ -45,6 +45,28 @@ "type": "github" } }, + "devshell": { + "inputs": { + "flake-utils": "flake-utils", + "nixpkgs": [ + "nixvim", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1717408969, + "narHash": "sha256-Q0OEFqe35fZbbRPPRdrjTUUChKVhhWXz3T9ZSKmaoVY=", + "owner": "numtide", + "repo": "devshell", + "rev": "1ebbe68d57457c8cae98145410b164b5477761f4", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "devshell", + "type": "github" + } + }, "disko": { "inputs": { "nixpkgs": [ @@ -65,6 +87,124 @@ "type": "github" } }, + "flake-compat": { + "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_2": { + "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-parts": { + "inputs": { + "nixpkgs-lib": [ + "nixvim", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1717285511, + "narHash": "sha256-iKzJcpdXih14qYVcZ9QC9XuZYnPc6T8YImb6dX166kw=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "2a55567fcf15b1b1c7ed712a2c6fadaec7412ea8", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, + "flake-utils": { + "inputs": { + "systems": "systems_4" + }, + "locked": { + "lastModified": 1701680307, + "narHash": "sha256-kAuep2h5ajznlPMD9rnQyffWG8EM/C73lejGofXvdM8=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "4022d587cbbfd70fe950c1e2083a02621806a725", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "git-hooks": { + "inputs": { + "flake-compat": "flake-compat_2", + "gitignore": "gitignore", + "nixpkgs": [ + "nixvim", + "nixpkgs" + ], + "nixpkgs-stable": [ + "nixvim", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1718879355, + "narHash": "sha256-RTyqP4fBX2MdhNuMP+fnR3lIwbdtXhyj7w7fwtvgspc=", + "owner": "cachix", + "repo": "git-hooks.nix", + "rev": "8cd35b9496d21a6c55164d8547d9d5280162b07a", + "type": "github" + }, + "original": { + "owner": "cachix", + "repo": "git-hooks.nix", + "type": "github" + } + }, + "gitignore": { + "inputs": { + "nixpkgs": [ + "nixvim", + "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" + } + }, "home-manager": { "inputs": { "nixpkgs": [ @@ -107,6 +247,28 @@ "type": "github" } }, + "home-manager_3": { + "inputs": { + "nixpkgs": [ + "nixvim", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1718530513, + "narHash": "sha256-BmO8d0r+BVlwWtMLQEYnwmngqdXIuyFzMwvmTcLMee8=", + "owner": "nix-community", + "repo": "home-manager", + "rev": "a1fddf0967c33754271761d91a3d921772b30d0e", + "type": "github" + }, + "original": { + "owner": "nix-community", + "ref": "release-24.05", + "repo": "home-manager", + "type": "github" + } + }, "hyprcursor": { "inputs": { "hyprlang": [ @@ -289,6 +451,27 @@ "type": "github" } }, + "nix-darwin": { + "inputs": { + "nixpkgs": [ + "nixvim", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1718662658, + "narHash": "sha256-AKG7BsqtVWDlefgzyKz7vjaKTLi4+bmTSBhowbQoZtM=", + "owner": "lnl7", + "repo": "nix-darwin", + "rev": "29b3096a6e283d7e6779187244cb2a3942239fdf", + "type": "github" + }, + "original": { + "owner": "lnl7", + "repo": "nix-darwin", + "type": "github" + } + }, "nixpkgs": { "locked": { "lastModified": 1718530797, @@ -337,6 +520,34 @@ "type": "github" } }, + "nixvim": { + "inputs": { + "devshell": "devshell", + "flake-compat": "flake-compat", + "flake-parts": "flake-parts", + "git-hooks": "git-hooks", + "home-manager": "home-manager_3", + "nix-darwin": "nix-darwin", + "nixpkgs": [ + "nixpkgs" + ], + "treefmt-nix": "treefmt-nix" + }, + "locked": { + "lastModified": 1718966331, + "narHash": "sha256-JKc3awrDQhdYT9LUAVgt74rFVcSrZ+VgNTsWLo2Kp24=", + "owner": "nix-community", + "repo": "nixvim", + "rev": "1cd17226d5c75d20df2ebb754c3fc60ccc735a25", + "type": "github" + }, + "original": { + "owner": "nix-community", + "ref": "nixos-24.05", + "repo": "nixvim", + "type": "github" + } + }, "root": { "inputs": { "agenix": "agenix", @@ -345,7 +556,8 @@ "hyprland": "hyprland", "iio-hyprland": "iio-hyprland", "nixpkgs": "nixpkgs_2", - "nixpkgsUnstable": "nixpkgsUnstable" + "nixpkgsUnstable": "nixpkgsUnstable", + "nixvim": "nixvim" } }, "systems": { @@ -393,6 +605,42 @@ "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" + } + }, + "treefmt-nix": { + "inputs": { + "nixpkgs": [ + "nixvim", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1718522839, + "narHash": "sha256-ULzoKzEaBOiLRtjeY3YoGFJMwWSKRYOic6VNw2UyTls=", + "owner": "numtide", + "repo": "treefmt-nix", + "rev": "68eb1dc333ce82d0ab0c0357363ea17c31ea1f81", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "treefmt-nix", + "type": "github" + } + }, "xdph": { "inputs": { "hyprland-protocols": "hyprland-protocols", diff --git a/flake.nix b/flake.nix index 46b6f222..d9c4c68a 100644 --- a/flake.nix +++ b/flake.nix @@ -2,6 +2,9 @@ description = "Aly's NixOS flake."; inputs = { + nixpkgs.url = "github:nixos/nixpkgs/nixos-24.05"; + nixpkgsUnstable.url = "github:nixos/nixpkgs/nixos-unstable"; + agenix = { url = "github:ryantm/agenix"; inputs.nixpkgs.follows = "nixpkgs"; @@ -13,6 +16,12 @@ inputs.nixpkgs.follows = "nixpkgs"; }; + ## Motion sensor and auto-rotate for Hyprland. + iio-hyprland = { + url = "github:JeanSchoeller/iio-hyprland"; + inputs.nixpkgs.follows = "nixpkgsUnstable"; + }; + # Stable home-manager, synced with latest stable nixpkgs. home-manager = { url = "github:nix-community/home-manager/release-24.05"; @@ -22,17 +31,10 @@ # Latest hyprland from git. hyprland.url = "git+https://github.com/hyprwm/Hyprland?submodules=1"; - ## Motion sensor and auto-rotate for Hyprland. - iio-hyprland = { - url = "github:JeanSchoeller/iio-hyprland"; - inputs.nixpkgs.follows = "nixpkgsUnstable"; + nixvim = { + url = "github:nix-community/nixvim/nixos-24.05"; + inputs.nixpkgs.follows = "nixpkgs"; }; - - # Latest stable NixOS release. - nixpkgs.url = "github:nixos/nixpkgs/nixos-24.05"; - - # Unstable NixOS. - nixpkgsUnstable.url = "github:nixos/nixpkgs/nixos-unstable"; }; nixConfig = { @@ -104,8 +106,23 @@ ./hosts/${host} inputs.agenix.nixosModules.default inputs.disko.nixosModules.disko + inputs.nixvim.nixosModules.nixvim inputs.home-manager.nixosModules.home-manager self.nixosModules.default + { + home-manager = { + backupFileExtension = "backup"; + + sharedModules = [ + inputs.agenix.homeManagerModules.default + inputs.nixvim.homeManagerModules.nixvim + self.homeManagerModules.default + ]; + + useGlobalPkgs = true; + useUserPackages = true; + }; + } ]; } ); diff --git a/homeManagerModules/apps/neovim/default.nix b/homeManagerModules/apps/neovim/default.nix index 53870b71..2cbcf5c9 100644 --- a/homeManagerModules/apps/neovim/default.nix +++ b/homeManagerModules/apps/neovim/default.nix @@ -5,10 +5,23 @@ ... }: { config = lib.mkIf config.alyraffauf.apps.neovim.enable { - programs.neovim = { + programs.nixvim = { enable = true; viAlias = true; vimAlias = true; + + colorschemes.catppuccin = { + enable = true; + settings.flavor = "frappe"; + }; + + plugins = { + lightline.enable = true; + markdown-preview.enable = true; + neo-tree.enable = true; + neogit.enable = true; + nix.enable = true; + }; }; }; } diff --git a/homeManagerModules/options.nix b/homeManagerModules/options.nix index c9d76d4f..a53ce23d 100644 --- a/homeManagerModules/options.nix +++ b/homeManagerModules/options.nix @@ -173,7 +173,7 @@ }; package = lib.mkOption { description = "Default terminal editor package."; - default = config.programs.neovim.package; + default = config.programs.nixvim.package; type = lib.types.package; }; }; diff --git a/nixosModules/users/default.nix b/nixosModules/users/default.nix index e6f57ef9..79540f33 100644 --- a/nixosModules/users/default.nix +++ b/nixosModules/users/default.nix @@ -12,12 +12,5 @@ ./morgan ]; - home-manager = { - backupFileExtension = "backup"; - sharedModules = [self.homeManagerModules.default]; - useGlobalPkgs = true; - useUserPackages = true; - }; - users.mutableUsers = false; }