dotfiles/provision/nixos/hosts/kestrel/configuration.nix

104 lines
2.5 KiB
Nix
Raw Normal View History

2023-07-10 17:52:34 -07:00
{ config, pkgs, user, lib, ... }:
{
2023-10-07 09:33:26 -07:00
imports = [
../../modules
];
2023-07-10 17:52:34 -07:00
nix = {
package = pkgs.nixFlakes;
extraOptions = "experimental-features = nix-command flakes";
settings.auto-optimise-store = true;
gc = {
automatic = true;
dates = "weekly";
options = "--delete-older-than 7d";
};
};
# Add non-free packages
nixpkgs.config.allowUnfree = true;
nixpkgs.overlays = import ../../lib/overlays.nix;
# Use zen kernel
boot.kernelPackages = pkgs.linuxPackages_zen;
# Hardware options
hardware.bluetooth.enable = true;
hardware.sensor.iio.enable = true;
hardware.opengl.enable = true;
hardware.opengl.driSupport = true;
hardware.opengl.driSupport32Bit = true;
# Use the systemd-boot EFI boot loader.
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true;
# Set networking options
networking.hostName = "kestrel";
2023-07-23 14:34:39 -07:00
networking.firewall.checkReversePath = "loose";
2023-08-21 21:05:02 -07:00
networking.firewall.enable = false;
2023-07-10 17:52:34 -07:00
# Set your time zone.
time.timeZone = "America/Los_Angeles";
i18n.defaultLocale = "en_US.UTF-8";
# Add fonts
fonts.fonts = with pkgs; [
nerdfonts
];
2023-07-11 21:17:48 -07:00
# Enable virtualisation
2023-07-10 17:52:34 -07:00
virtualisation.docker.enable = true;
virtualisation.docker.storageDriver = "btrfs";
2023-07-11 21:17:48 -07:00
# Define user account.
2023-07-10 17:52:34 -07:00
users.users.${user} = {
isNormalUser = true;
2023-10-07 02:16:26 -07:00
extraGroups = [ "dialout" "wheel" "docker" "libvirtd" ]; # Enable sudo for the user.
2023-07-10 17:52:34 -07:00
};
# List packages installed in system profile.
environment.systemPackages = with pkgs; [
# One-off stable packages
] ++ [
# One-off unstable packages
];
2023-07-10 17:52:34 -07:00
# Enable modules
modules = {
2023-09-12 21:34:40 -07:00
desktop = {
sway.enable = true;
2023-07-10 17:52:34 -07:00
};
devel = {
engineering.enable = true;
2023-09-17 17:04:49 -07:00
notes.enable = true;
2023-09-17 21:41:32 -07:00
python.enable = true;
tooling.enable = true;
2023-07-10 17:52:34 -07:00
};
gaming = {
steam.enable = true;
};
2023-09-12 21:34:40 -07:00
services = {
jellyfin.enable = false;
2023-09-17 21:41:32 -07:00
peripherals.enable = true;
2023-09-12 21:34:40 -07:00
samba-client.enable = true;
syncthing.enable = true;
2023-09-17 21:41:32 -07:00
virt-manager.enable = true;
2023-09-12 21:34:40 -07:00
};
system = {
ssh.enable = true;
2023-09-17 21:41:32 -07:00
terminal.enable = true;
wireguard-client = {
enable = true;
privateKeyFile = "/home/${user}/.wireguard/kestrel";
address = [ "192.168.2.3/24" ];
publicKey = "bd7bbZOngl/FTdBlnbIhgCLNf6yx5X8WjiRB7E1NEQQ=";
endpoint = "66.218.43.87";
};
2023-07-10 17:52:34 -07:00
};
};
2023-09-12 21:34:40 -07:00
# Did you read the comment?
system.stateVersion = "23.05";
2023-07-10 17:52:34 -07:00
}