{ description = "Evie's machine configurations"; inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; home-manager = { url = "github:nix-community/home-manager"; inputs.nixpkgs.follows = "nixpkgs"; }; }; outputs = { self, nixpkgs, home-manager, }: let common-config = {...}: { nix = { settings.experimental-features = ["nix-command" "flakes"]; gc = { automatic = true; dates = "daily"; options = "--delete-older-than 7d"; }; extraOptions = '' keep-outputs = true keep-derivations = true ''; }; nixpkgs.config.allowUnfree = true; networking = { networkmanager.enable = true; firewall.enable = true; }; services.power-profiles-daemon.enable = true; virtualisation.podman.enable = true; programs = { ssh.startAgent = true; dconf.enable = true; fish.enable = true; zsh.enable = true; }; fonts.fontconfig.enable = true; environment.localBinInPath = true; }; locale-en_GB = {...}: { services.xserver = { layout = "gb"; xkbVariant = ""; }; console.keyMap = "uk"; # Set your time zone. time.timeZone = "Europe/London"; # Select internationalisation properties. i18n.defaultLocale = "en_GB.UTF-8"; i18n.extraLocaleSettings = { LC_ADDRESS = "en_GB.UTF-8"; LC_IDENTIFICATION = "en_GB.UTF-8"; LC_MEASUREMENT = "en_GB.UTF-8"; LC_MONETARY = "en_GB.UTF-8"; LC_NAME = "en_GB.UTF-8"; LC_NUMERIC = "en_GB.UTF-8"; LC_PAPER = "en_GB.UTF-8"; LC_TELEPHONE = "en_GB.UTF-8"; LC_TIME = "en_GB.UTF-8"; }; }; audio = {...}: { sound.enable = true; hardware.pulseaudio.enable = false; security.rtkit.enable = true; services.pipewire = { enable = true; alsa.enable = true; alsa.support32Bit = true; pulse.enable = true; }; programs.noisetorch.enable = true; }; bluetooth = {...}: { hardware.bluetooth = { enable = true; powerOnBoot = true; }; }; in { nixosConfigurations = { Legion = nixpkgs.lib.nixosSystem { system = "x86_64-linux"; modules = [ home-manager.nixosModules.home-manager common-config locale-en_GB ./hosts/Legion/configuration.nix ./services/Legion.nix ]; }; N0245 = nixpkgs.lib.nixosSystem { system = "x86_64-linux"; modules = [ home-manager.nixosModules.home-manager common-config locale-en_GB audio bluetooth ./hosts/N0245/configuration.nix ./locales/en_GB.nix ./wm/sway.nix ./services/syncthing/N0245.nix ]; }; }; homeConfigurations = { "tux" = home-manager.lib.homeManagerConfiguration { pkgs = nixpkgs.legacyPackages."aarch64-darwin"; modules = [./hosts/Monarch/home.nix]; }; "xenia" = home-manager.lib.homeManagerConfiguration { pkgs = nixpkgs.legacyPackages."aarch64-linux"; modules = [./hosts/Northstar/home.nix]; }; }; }; }