{ 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"; }; wallpapers.url = "git+https://git.xenia.me.uk/xenia/wallpapers.git"; }; outputs = inputs @ { nixpkgs, home-manager, ... }: let common = {lib, ...}: { 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; home-manager = { useGlobalPkgs = true; useUserPackages = false; }; networking.networkmanager.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; }; hardware-audio = {pkgs, ...}: { # Enable sound with pipewire. 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; }; hardware-bluetooth = { hardware.bluetooth = { enable = true; powerOnBoot = true; }; }; in { nixosConfigurations = { Legion = nixpkgs.lib.nixosSystem { system = "x86_64-linux"; modules = [ home-manager.nixosModules.home-manager common ./hosts/Legion/configuration.nix ./services/Legion.nix ]; }; Vanguard = nixpkgs.lib.nixosSystem { system = "x86_64-linux"; modules = [ home-manager.nixosModules.home-manager common hardware-audio hardware-bluetooth ./hosts/Vanguard/configuration.nix ./wm/sway.nix ./services/sshd ]; }; N0245 = nixpkgs.lib.nixosSystem { system = "x86_64-linux"; specialArgs = inputs; modules = [ home-manager.nixosModules.home-manager common hardware-audio hardware-bluetooth ./hosts/N0245/configuration.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]; }; }; }; }