diff --git a/hostHelper.nix b/hostHelper.nix index b096499..2bca73c 100644 --- a/hostHelper.nix +++ b/hostHelper.nix @@ -10,15 +10,5 @@ in modules = [ {networking.hostName = hostname;} (./hosts/${hostname}) - - { - # This value determines the NixOS release from which the default - # settings for stateful data, like file locations and database versions - # on your system were taken. It‘s perfectly fine and recommended to leave - # this value at the release version of the first install of this system. - # Before changing this value read the documentation for this option - # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html). - system.stateVersion = hostOptions.stateVersion; # Did you read the comment? - } ]; } diff --git a/hosts/crocoite/default.nix b/hosts/crocoite/default.nix index 0859c5d..4c9d95e 100644 --- a/hosts/crocoite/default.nix +++ b/hosts/crocoite/default.nix @@ -5,6 +5,13 @@ nixos-unstable, ... }: { + # This value determines the NixOS release from which the default + # settings for stateful data, like file locations and database versions + # on your system were taken. It‘s perfectly fine and recommended to leave + # this value at the release version of the first install of this system. + # Before changing this value read the documentation for this option + # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html). + system.stateVersion = "24.05"; # Did you read the comment? #nixpkgs.overlays = [ overlays.unstable-packages ]; nixpkgs = { @@ -26,9 +33,22 @@ # }) ]; + # Configure your nixpkgs instance + config = { + allowUnfree = true; + }; }; + nix = { + settings.experimental-features = ["nix-command" "flakes"]; + # https://lix.systems/ Lix is a modern, delicious implementation of the Nix package manager, + # focused on correctness, usability, and growth – + # and committed to doing right by its community. + package = pkgs.lix; + + channel.enable = false; + }; imports = [ # steam and other stuff seems to depend on perl @@ -57,8 +77,7 @@ ../../modules/wm_and_de ../../modules/pkg_mgrmnt - - ../../system_profiles/defaults.nix + # ../../tests ]; } diff --git a/hosts/game-luanti/default.nix b/hosts/game-luanti/default.nix index 234c358..4966862 100644 --- a/hosts/game-luanti/default.nix +++ b/hosts/game-luanti/default.nix @@ -4,13 +4,38 @@ modulesPath, ... }: { + # This value determines the NixOS release from which the default + # settings for stateful data, like file locations and database versions + # on your system were taken. It‘s perfectly fine and recommended to leave + # this value at the release version of the first install of this system. + # Before changing this value read the documentation for this option + # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html). + system.stateVersion = "25.05"; # Did you read the comment? + nixpkgs.config = { + # Disable if you don't want unfree packages + allowUnfree = true; + }; + nix.settings.experimental-features = ["nix-command" "flakes"]; + + # https://lix.systems/ Lix is a modern, delicious implementation of the Nix package manager, + # focused on correctness, usability, and growth – + # and committed to doing right by its community. + nix.package = pkgs.lix; imports = [ ./hardware-configuration.nix - ../../system_profiles/defaults.nix - ../../system_profiles/mini-container.nix + ../../modules/locale.nix + ../../system_profiles/mini.nix + { + # Enables DHCP on each ethernet and wireless interface. In case of scripted networking + # (the default) this is the recommended approach. When using systemd-networkd it's + # still possible to use this option, but it's recommended to use it in conjunction + # with explicit per-interface declarations with `networking.interfaces..useDHCP`. + networking.useDHCP = lib.mkDefault true; + # networking.interfaces.ens18.useDHCP = lib.mkDefault true; + } ]; } diff --git a/hosts/jitsi/default.nix b/hosts/jitsi/default.nix index f76da0b..326fe5c 100644 --- a/hosts/jitsi/default.nix +++ b/hosts/jitsi/default.nix @@ -4,16 +4,52 @@ modulesPath, ... }: { + #networking.hostName = "jitsi"; # Define your hostname. + # This value determines the NixOS release from which the default + # settings for stateful data, like file locations and database versions + # on your system were taken. It‘s perfectly fine and recommended to leave + # this value at the release version of the first install of this system. + # Before changing this value read the documentation for this option + # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html). + system.stateVersion = "24.11"; # Did you read the comment? + nixpkgs.config = { # Disable if you don't want unfree packages allowUnfree = true; }; + nix.settings.experimental-features = ["nix-command" "flakes"]; + # https://lix.systems/ Lix is a modern, delicious implementation of the Nix package manager, + # focused on correctness, usability, and growth – + # and committed to doing right by its community. + nix.package = pkgs.lix; imports = [ ./hardware-configuration.nix - ../../system_profiles/defaults.nix - ../../system_profiles/mini-container.nix + ../../modules/locale.nix + + (modulesPath + "/profiles/perlless.nix") + (modulesPath + "/profiles/minimal.nix") + { + environment.defaultPackages = []; + boot.kernel.enable = false; + boot.isContainer = true; + nixpkgs.overlays = [(self: super: {})]; + } + { + # Enables DHCP on each ethernet and wireless interface. In case of scripted networking + # (the default) this is the recommended approach. When using systemd-networkd it's + # still possible to use this option, but it's recommended to use it in conjunction + # with explicit per-interface declarations with `networking.interfaces..useDHCP`. + networking.useDHCP = lib.mkDefault true; + # networking.interfaces.ens18.useDHCP = lib.mkDefault true; + } + ]; + disabledModules = [ + (modulesPath + "/profiles/all-hardware.nix") + (modulesPath + "/profiles/base.nix") + # + # ]; } diff --git a/outputs.nix b/outputs.nix index 4fce707..e7e3299 100644 --- a/outputs.nix +++ b/outputs.nix @@ -1,27 +1,27 @@ inArgs: let - lib = inArgs.nixpkgs.lib; - hostHelper = import ./hostHelper.nix inArgs; - # Supported systems for your flake packages, shell, etc. systems = [ #"aarch64-linux" "x86_64-linux" ]; + # This is a function that generates an attribute by calling a function you # pass to it, with each system as an argument forAllSystems = inArgs.nixpkgs.lib.genAttrs systems; + lib = inArgs.nixpkgs.lib; + + hostHelper = import ./hostHelper.nix inArgs; + in { # NixOS configuration entrypoint # Available through 'nixos-rebuild --flake .#your-hostname' + # to add more append // (host_helper example); nixosConfigurations = builtins.mapAttrs (hostName: hostOptions: (hostHelper hostName hostOptions)) { - crocoite = {stateVersion = "24.05";}; - - jitsi = {stateVersion = "24.11";}; - game-luanti = {stateVersion = "25.05"; unstable = true;}; + crocoite = {}; + game-luanti = {unstable = true;}; }; - # Your custom packages # Accessible through 'nix build', 'nix shell', etc #packages = forAllSystems (system: import ./pkgs nixpkgs.legacyPackages.${system}); diff --git a/system_profiles/defaults.nix b/system_profiles/defaults.nix deleted file mode 100644 index 51652c0..0000000 --- a/system_profiles/defaults.nix +++ /dev/null @@ -1,23 +0,0 @@ -{ - lib, - pkgs, - ... -}: { - nix.settings.experimental-features = lib.mkDefault ["nix-command" "flakes"]; - - # Disable if you don't want unfree packages - nixpkgs.config.allowUnfree = lib.mkDefault true; - - nix = { - # https://lix.systems/ Lix is a modern, delicious implementation of the Nix package manager, - # focused on correctness, usability, and growth – - # and committed to doing right by its community. - package = lib.mkDefault pkgs.lix; - - channel.enable = lib.mkDefault false; - }; - - imports = [ - ../modules/locale.nix - ]; -} diff --git a/system_profiles/mini-container.nix b/system_profiles/mini-container.nix index 275ef92..498bbb2 100644 --- a/system_profiles/mini-container.nix +++ b/system_profiles/mini-container.nix @@ -1,13 +1,10 @@ { - lib, - ... -}: { imports = [ ./mini.nix { - boot.isContainer = lib.mkDefault true; - boot.kernel.enable = lib.mkDefault false; + boot.isContainer = true; + boot.kernel.enable = false; } ]; } diff --git a/system_profiles/mini.nix b/system_profiles/mini.nix index 1df7357..70c1639 100644 --- a/system_profiles/mini.nix +++ b/system_profiles/mini.nix @@ -1,5 +1,4 @@ { - lib, modulesPath, ... }: { @@ -8,14 +7,10 @@ (modulesPath + "/profiles/perlless.nix") { - environment.defaultPackages = lib.mkDefault []; - nixpkgs.overlays = lib.mkDefault [(self: super: {})]; - - # Enables DHCP on each ethernet and wireless interface. In case of scripted networking - # (the default) this is the recommended approach. When using systemd-networkd it's - # still possible to use this option, but it's recommended to use it in conjunction - # with explicit per-interface declarations with `networking.interfaces..useDHCP`. - networking.useDHCP = lib.mkDefault true; + boot.isContainer = true; + boot.kernel.enable = false; + environment.defaultPackages = []; + nixpkgs.overlays = [(self: super: {})]; } ];