nixos/flake.nix

128 lines
3.3 KiB
Nix

{
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];
};
};
};
}