diff --git a/flake.nix b/flake.nix index e7a3933..c897492 100644 --- a/flake.nix +++ b/flake.nix @@ -75,12 +75,7 @@ rec { }; outputs = - { - self, - nixpkgs, - nixpkgs-unstable, - ... - }@inputs: + inputs: inputs.flake-parts.lib.mkFlake { inherit inputs; } { systems = [ "x86_64-linux" @@ -91,7 +86,7 @@ rec { ./lib/flake-module.nix ./hosts/flake-module.nix ./home/flake-module.nix - ./overlays.nix + ./overlays/flake-module.nix ]; flake = { inherit nixConfig; @@ -110,11 +105,6 @@ rec { ... }: { - _module.args.pkgs = import nixpkgs { - inherit system; - config.allowUnfree = true; - }; - devShells.default = pkgs.mkShell { inherit (config.checks.pre-commit) shellHook; }; checks = { diff --git a/home/felschr-server.nix b/home/felschr-server.nix index fbaeeb2..82c0de5 100644 --- a/home/felschr-server.nix +++ b/home/felschr-server.nix @@ -38,11 +38,5 @@ programs.git.defaultProfile = "private"; - xdg.configFile."nixpkgs/config.nix".text = '' - { - allowUnfree = true; - } - ''; - home.stateVersion = "25.05"; } diff --git a/home/felschr-work.nix b/home/felschr-work.nix index db68ce4..43fd5e1 100644 --- a/home/felschr-work.nix +++ b/home/felschr-work.nix @@ -40,12 +40,6 @@ with pkgs; defaultProfile = "work"; }; - xdg.configFile."nixpkgs/config.nix".text = '' - { - allowUnfree = true; - } - ''; - home.packages = with pkgs; [ fh diff --git a/home/felschr.nix b/home/felschr.nix index b9b43b2..49eb332 100644 --- a/home/felschr.nix +++ b/home/felschr.nix @@ -38,12 +38,6 @@ programs.git.defaultProfile = "private"; - xdg.configFile."nixpkgs/config.nix".text = '' - { - allowUnfree = true; - } - ''; - home.packages = with pkgs; [ # system gparted diff --git a/home/flake-module.nix b/home/flake-module.nix index 763fe14..f6b54ac 100644 --- a/home/flake-module.nix +++ b/home/flake-module.nix @@ -1,26 +1,38 @@ { self, inputs, - pkgs, + lib, ... }: let - createHomeConfig = - name: args: - inputs.home-manager.lib.homeManagerConfiguration ( - { - inherit pkgs; - extraSpecialArgs = { inherit inputs; }; - } - // args - ); + mkHomeConfiguration = + { + user, + system, + modules, + }: + inputs.home-manager.lib.homeManagerConfiguration { + pkgs = self.pkgsFor system; + extraSpecialArgs = { inherit inputs; }; + + modules = + (with self.homeModules; [ nixpkgs ]) + ++ [ + { + home.username = user; + home.homeDirectory = "/home/${user}"; + } + ] + ++ modules; + }; in { imports = [ inputs.home-manager.flakeModules.home-manager ]; flake = { homeModules = { + nixpkgs = import ./modules/nixpkgs.nix; git = import ./modules/git.nix; firefox = import ./modules/firefox/firefox.nix; tor-browser = import ./modules/firefox/tor-browser.nix; @@ -32,26 +44,31 @@ in felschr-work = import ./felschr-work.nix; }; homeConfigurations = { - felschr = createHomeConfig { + felschr = mkHomeConfiguration { + user = "felschr"; + system = "x86_64-linux"; modules = [ self.homeModules.git self.homeModules.felschr ]; }; - felschr-server = createHomeConfig { + felschr-server = mkHomeConfiguration { + user = "felschr"; + system = "x86_64-linux"; modules = [ self.homeModules.git self.homeModules.felschr-server ]; }; - felschr-work = createHomeConfig { + felschr-work = mkHomeConfiguration { + user = "felschr"; + system = "x86_64-linux"; modules = [ self.homeModules.git self.homeModules.felschr-work ]; }; }; - # HINT alias for deprecated output - homeManagerModules = self.homeModules; + homeManagerModules = lib.warn "`homeManagerModules` is deprecated. Use `homeModules` instead." self.homeModules; }; } diff --git a/home/modules/nixpkgs.nix b/home/modules/nixpkgs.nix new file mode 100644 index 0000000..de2d9c2 --- /dev/null +++ b/home/modules/nixpkgs.nix @@ -0,0 +1,11 @@ +_: + +{ + nixpkgs.config.allowUnfree = true; + + xdg.configFile."nixpkgs/config.nix".text = '' + { + allowUnfree = true; + } + ''; +} diff --git a/hosts/home-pc/default.nix b/hosts/home-pc/default.nix index 7ff949f..2a26cfd 100644 --- a/hosts/home-pc/default.nix +++ b/hosts/home-pc/default.nix @@ -22,8 +22,6 @@ ../../services/open-webui.nix ]; - nixpkgs.config.allowUnfree = true; - boot.loader.systemd-boot.memtest86.enable = true; # running binaries for other architectures diff --git a/hosts/home-server/default.nix b/hosts/home-server/default.nix index e8a4eda..e947b56 100644 --- a/hosts/home-server/default.nix +++ b/hosts/home-server/default.nix @@ -50,8 +50,6 @@ in age.secrets.cloudflare.file = ../../secrets/cloudflare.age; age.secrets.hostKey.file = ../../secrets/home-server/hostKey.age; - nixpkgs.config.allowUnfree = true; - networking.domain = "home.felschr.com"; networking.firewall.allowedTCPPorts = [ diff --git a/overlays.nix b/overlays.nix deleted file mode 100644 index a317b32..0000000 --- a/overlays.nix +++ /dev/null @@ -1,14 +0,0 @@ -{ inputs, ... }: - -{ - flake = { - overlays.default = final: prev: { - unstable = import inputs.nixpkgs-unstable { - inherit (prev) system; - config.allowUnfree = true; - }; - inherit (inputs.self.packages.${prev.system}) deconz brlaser; - vimPlugins = prev.vimPlugins // final.callPackage ./pkgs/vim-plugins { inherit inputs; }; - }; - }; -} diff --git a/overlays/flake-module.nix b/overlays/flake-module.nix new file mode 100644 index 0000000..93e5b19 --- /dev/null +++ b/overlays/flake-module.nix @@ -0,0 +1,27 @@ +{ self, inputs, ... }: + +{ + flake = { + overlays.default = final: prev: { + unstable = import inputs.nixpkgs-unstable { + inherit (prev) system; + config.allowUnfree = true; + }; + inherit (inputs.self.packages.${prev.system}) deconz brlaser; + vimPlugins = prev.vimPlugins // final.callPackage ../pkgs/vim-plugins { inherit inputs; }; + }; + pkgsFor = + system: + import inputs.nixpkgs { + inherit system; + overlays = [ self.overlays.default ]; + config.allowUnfree = true; + }; + }; + + perSystem = + { system, ... }: + { + _module.args.pkgs = self.pkgsFor system; + }; +} diff --git a/system/nix.nix b/system/nix.nix index 6cdf0c9..3a8a7f5 100644 --- a/system/nix.nix +++ b/system/nix.nix @@ -4,6 +4,8 @@ let inherit (inputs.self.outputs) nixConfig; in { + nixpkgs.config.allowUnfree = true; + nix.gc = { automatic = true; dates = "04:00";