This repository has been archived on 2023-08-08. You can view files and clone it, but cannot push or open issues or pull requests.
nil/hosts/nil.nix
2022-08-11 20:44:29 -04:00

111 lines
3.5 KiB
Nix
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# This is nil.
# Nil is my current personal machine. It is a AMD Thinkpad T14 G2 with the follow specs;
#
# Onboard Memory: 16 GB DDR4 3200MHz (Soldered) Note: This can support another stick of RAM.
# Wireless: Realtek 8852AE 802.11AX (2 x 2) & Bluetooth® 5.2
# Processor: AMD Ryzen™ 5 Pro 5650U Processor (2.30 GHz, up to 4.20 GHz Max Boost, 6 Cores, 12 Threads, 16 MB Cache)
# Graphic Card: Integrated AMD Radeon™ Graphics
# Battery: 3 Cell Li-Polymer 50Wh
# Camera: IR & 720p HD
# SSD: 128 GB PCIe SSD
# Keyboard: US English
# System Expansion Slots: Smart Card Reader
# TPM Setting: Enabled Discrete TPM2.0
# Display: 14.0" FHD (1920 x 1080) IPS, anti-glare, touchscreen with Privacy Guard, 500 nits
#
# Its formatted as follows
# NAME TYPE MOUNTPOINT
# nvme0n1 disk
# ├─nvme0n1p1 part /boot
# └─nvme0n1p2 part
# └─crypt crypt /dev/mapper/root
# └─partitions lvm
# ├─swap swap /dev/partitions/swap
# └─lvm_root lvm /dev/partitions/lvm_root
# └─rpool zpool
# ├─rpool/root zfs
# ├─rpool/root/nixos zfs /
# └─rpool/home zfs /home
{ config, lib, pkgs, modulesPath, ... }:
{
imports = [
../profiles/laptop.nix
(modulesPath + "/installer/scan/not-detected.nix")
];
this.system = {
zfs.enable = true;
yubikey.enable = true;
};
networking = {
# This is required for the zfs module as well. Must be unique. Run the following head -c4 /dev/urandom | od -A none -t x4
hostId = "a7a1c3f5";
hostName = "nil"; # Define your hostname.
# The global useDHCP flag is deprecated, therefore explicitly set to false here.
# Per-interface useDHCP will be mandatory in the future, so this generated config
# replicates the default behaviour.
useDHCP = false;
interfaces = {
enp2s0f0.useDHCP = true;
enp5s0.useDHCP = true;
wlp3s0.useDHCP = true;
};
};
hardware.firmware = [ pkgs.rtw89-firmware ];
boot = {
initrd = {
availableKernelModules = [
"nvme"
"vfat"
"xhci_pci"
"usbhid"
"usb_storage"
"sd_mod"
"sdhci_pci"
"cryptd"
];
kernelModules = [ "dm-snapshot" ];
};
kernelModules = [ "kvm-amd" ];
# Need for https://github.com/NixOS/nixpkgs/issues/177844
kernelPackages = lib.mkIf (lib.versionOlder pkgs.linux.version "5.16")
pkgs.linuxPackages_latest;
supportedFilesystems = [ "zfs" ];
};
boot.initrd.luks.devices."crypt" = {
device = "/dev/disk/by-partlabel/crypt";
preLVM = true;
};
fileSystems = {
"/" = {
device = "rpool/root/nixos";
fsType = "zfs";
};
"/home" = {
device = "rpool/home";
fsType = "zfs";
};
"/boot" = {
device = "/dev/disk/by-partlabel/boot";
fsType = "vfat";
};
};
swapDevices = [{ device = "/dev/partitions/swap"; }];
# This value determines the NixOS release from which the default
# settings for stateful data, like file locations and database versions
# on your system were taken. Its perfectly fine and recommended to leave
# this value at the release version of the first install of this system.
# Before changing this value read the documentation for this option
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
system.stateVersion = "22.05"; # Did you read the comment?
}