nixos/flake.nix

115 lines
3 KiB
Nix
Raw Normal View History

2023-06-21 17:41:35 +01:00
{
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";
};
};
2023-06-21 17:41:35 +01:00
outputs = {
self,
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
'';
};
system.autoUpgrade.enable = lib.mkDefault false;
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 {
2023-06-21 21:23:51 +01:00
nixosConfigurations = {
2023-06-22 09:03:42 +01:00
Legion = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
modules = [
home-manager.nixosModules.home-manager
common
2023-06-22 09:03:42 +01:00
./hosts/Legion/configuration.nix
./services/Legion.nix
2023-06-22 09:03:42 +01:00
];
};
2023-06-22 14:31:35 +01:00
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
];
};
2023-06-21 21:23:51 +01:00
N0245 = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
modules = [
home-manager.nixosModules.home-manager
common
hardware-audio
hardware-bluetooth
./hosts/N0245/configuration.nix
./wm/sway.nix
./services/syncthing/N0245.nix
2023-06-21 21:23:51 +01:00
];
};
2023-06-21 17:41:35 +01:00
};
2023-06-21 21:23:51 +01:00
homeConfigurations = {
"tux" = home-manager.lib.homeManagerConfiguration {
pkgs = nixpkgs.legacyPackages."aarch64-darwin";
modules = [./hosts/Monarch/home.nix];
2023-06-21 21:23:51 +01:00
};
"xenia" = home-manager.lib.homeManagerConfiguration {
pkgs = nixpkgs.legacyPackages."aarch64-linux";
modules = [./hosts/Northstar/home.nix];
2023-06-21 21:23:51 +01:00
};
};
2023-06-21 17:41:35 +01:00
};
}