Skip to content

Laptop Overview

The laptop configuration targets an AMD-based workstation running a tiling Wayland compositor. It prioritises development workflow, battery life, and Secure Boot.

Hardware

ComponentDetail
CPUAMD Ryzen (with kvm-amd module)
GPUAMD Radeon (integrated)
StorageCrucial CT1000P3SSD8 1TB NVMe
FirmwareRedistributable firmware enabled, AMD microcode updates

System Identity

nix
specialArgs = {
  username = "nixos";
  hostname = "laptop";
};

Module Map

The laptop loads 22 modules from flake.nix. Commented-out modules are available but disabled:

ModuleStatusPurpose
boot.nixActiveLanzaboote Secure Boot
kernel.nixActiveCachyOS kernel + sysctl
disko.nixActiveLUKS + ext4 disk layout
network.nixActiveiwd WiFi
packages.nixActiveAll packages
graphics.nixActiveAMD GPU acceleration
pipewire.nixActiveAudio stack
bluetooth.nixActiveBluetooth (power off on boot)
tlp.nixActivePower management
virtualisation.nixActivePodman + KVM
font.nixActiveFont packages
users.nixActiveUser account + autologin
zsh.nixActiveDefault shell
nix.nixActiveNix settings + caches
nh.nixActivenh helper + GC
time.nixActiveTimezone
fstrim.nixActiveWeekly SSD TRIM
configuration.nixActiveSwaylock PAM + dbus
hardware-configuration.nixActiveGenerated hardware config
adb.nixDisabledAndroid Debug Bridge
alsa.nixDisabledDirect ALSA (using PipeWire instead)
tailscale.nixDisabledTailscale VPN

Key Configuration Choices

Passwordless Sudo

The wheel group does not require a password for sudo:

nix
security.sudo.wheelNeedsPassword = false;

Auto-login

The user is automatically logged in on the first boot via getty:

nix
services.getty = {
  autologinOnce = true;
  autologinUser = username;
};

Timezone

nix
time.timeZone = "Europe/Rome";

D-Bus

Uses the newer dbus-broker implementation:

nix
services.dbus.implementation = "broker";