diff --git a/flake.nix b/flake.nix index 8999b11..ab2a1e1 100644 --- a/flake.nix +++ b/flake.nix @@ -3,59 +3,46 @@ inputs = { # Nix - master.url = "github:nixos/nixpkgs"; - nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable"; - stable.url = "github:nixos/nixpkgs/nixos-23.05"; - - flake-utils.url = "github:numtide/flake-utils"; - flake-parts.url = "github:hercules-ci/flake-parts"; - devshell.url = "github:numtide/devshell"; - agenix.inputs.nixpkgs.follows = "nixpkgs"; agenix.url = "github:ryantm/agenix"; - + devshell.url = "github:numtide/devshell"; + disko.url = "github:nix-community/disko"; + flake-parts.url = "github:hercules-ci/flake-parts"; + flake-utils.url = "github:numtide/flake-utils"; home-manager.inputs.nixpkgs.follows = "nixpkgs"; home-manager.url = "github:nix-community/home-manager"; - - pre-commit-hooks.url = "github:cachix/pre-commit-hooks.nix"; - - nix-super.url = "github:privatevoid-net/nix-super"; - nix-super.inputs.nixpkgs.follows = "stable"; - - rofi-wayland.url = "github:lbonn/rofi/wayland"; - rofi-wayland.flake = false; - - disko.url = "github:nix-community/disko"; impermanence.url = "github:nix-community/impermanence"; + master.url = "github:nixos/nixpkgs"; + nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable"; + pre-commit-hooks.url = "github:cachix/pre-commit-hooks.nix"; + stable.url = "github:nixos/nixpkgs/nixos-23.05"; + + # Programs + nix-super.inputs.nixpkgs.follows = "stable"; + nix-super.url = "github:privatevoid-net/nix-super"; + rofi-wayland.flake = false; + rofi-wayland.url = "github:lbonn/rofi/wayland"; + timers.url = "git+https://gitea.moritzboeh.me/moritz/timers.git"; # Neovim - neovim-nightly-overlay.url = "github:nix-community/neovim-nightly-overlay"; - - smartcolumn-nvim.flake = false; - smartcolumn-nvim.url = "github:m4xshen/smartcolumn.nvim"; - - telekasten-nvim.flake = false; - telekasten-nvim.url = "github:renerocksai/telekasten.nvim"; - - telescope-nvim.flake = false; - telescope-nvim.url = "github:nvim-telescope/telescope.nvim"; - - nvim-treesitter.flake = false; - nvim-treesitter.url = "github:nvim-treesitter/nvim-treesitter/v0.9.1"; # NOTE: to fix weird latest issues - - hmts-nvim.flake = false; - hmts-nvim.url = "github:calops/hmts.nvim"; - actions-preview-nvim.flake = false; actions-preview-nvim.url = "github:aznhe21/actions-preview.nvim"; - + hmts-nvim.flake = false; + hmts-nvim.url = "github:calops/hmts.nvim"; + neovim-nightly-overlay.url = "github:nix-community/neovim-nightly-overlay"; nix-lazy-nvim.url = "git+https://git.moritzboeh.me/moritz/NixLazy.nvim"; - - nvim-puppeteer.flake = false; - nvim-puppeteer.url = "github:chrisgrieser/nvim-puppeteer"; - nvim-lspconfig.flake = false; nvim-lspconfig.url = "github:neovim/nvim-lspconfig"; + nvim-puppeteer.flake = false; + nvim-puppeteer.url = "github:chrisgrieser/nvim-puppeteer"; + nvim-treesitter.flake = false; + nvim-treesitter.url = "github:nvim-treesitter/nvim-treesitter/v0.9.1"; # NOTE: to fix weird latest issues + smartcolumn-nvim.flake = false; + smartcolumn-nvim.url = "github:m4xshen/smartcolumn.nvim"; + telekasten-nvim.flake = false; + telekasten-nvim.url = "github:renerocksai/telekasten.nvim"; + telescope-nvim.flake = false; + telescope-nvim.url = "github:nvim-telescope/telescope.nvim"; # Hyprland hypr-contrib.url = "github:hyprwm/contrib"; @@ -69,8 +56,6 @@ # Firefox user.js arkenfox-userjs.url = "github:arkenfox/user.js"; arkenfox-userjs.flake = false; - - timers.url = "git+https://gitea.moritzboeh.me/moritz/timers.git"; }; outputs = inputs@{ self, flake-parts, ... }: @@ -78,27 +63,26 @@ defaultOverlays = [ inputs.hypr-contrib.overlays.default inputs.neovim-nightly-overlay.overlay - self.overlay + self.overlays.default + ]; + + finalOverlays = defaultOverlays ++ [ + ( + _: prev: { + master = import inputs.master { + inherit (prev) system; + overlays = defaultOverlays; + }; + stable = import inputs.stable { + inherit (prev) system; + overlays = defaultOverlays; + }; + } + ) ]; - finalOverlays = - defaultOverlays ++ [ - ( - _: prev: { - master = import inputs.master { - inherit (prev) system; - overlays = defaultOverlays; - }; - stable = import inputs.stable { - inherit (prev) system; - overlays = defaultOverlays; - }; - } - ) - ]; in flake-parts.lib.mkFlake { inherit inputs; } { imports = [ - inputs.flake-parts.flakeModules.easyOverlay inputs.pre-commit-hooks.flakeModule inputs.devshell.flakeModule ]; @@ -163,49 +147,48 @@ packages = self.lib.filterAttrs (_: self.lib.isDerivation) - (self.overlay pkgs pkgs); + (self.overlays.default pkgs pkgs); }; flake = { lib = inputs.nixpkgs.lib.extend (self: _: { my = import ./lib { lib = self; }; }); - overlay = import ./overlays { + overlays.default = import ./overlays { inherit inputs; inherit (self) lib; }; nixosConfigurations = self.lib.my.mapModules - (path: - self.lib.nixosSystem { - inherit (self) lib; - specialArgs = { - inherit inputs self; - }; - modules = - [ - ./modules - { - nixpkgs = { - overlays = finalOverlays; - config.allowUnfree = true; - }; - } - inputs.home-manager.nixosModule - { - home-manager = { - useGlobalPkgs = true; - useUserPackages = true; - extraSpecialArgs = { inherit inputs self; }; - sharedModules = [ inputs.nix-lazy-nvim.homeManagerModules.default ]; - }; - } - inputs.agenix.nixosModules.age - inputs.disko.nixosModules.default - inputs.impermanence.nixosModules.impermanence - ] - ++ [ path ]; - }) + (path: self.lib.nixosSystem { + inherit (self) lib; + specialArgs = { + inherit inputs self; + }; + modules = + [ + ./modules + { + nixpkgs = { + overlays = finalOverlays; + config.allowUnfree = true; + }; + } + { + home-manager = { + useGlobalPkgs = true; + useUserPackages = true; + extraSpecialArgs = { inherit inputs self; }; + sharedModules = [ inputs.nix-lazy-nvim.homeManagerModules.default ]; + }; + } + inputs.agenix.nixosModules.age + inputs.disko.nixosModules.default + inputs.home-manager.nixosModule + inputs.impermanence.nixosModules.impermanence + path + ]; + }) ./hosts; }; };