me like nix
1{ ... }: {
2 flake.modules.nixos.lenovo-ideapad5 =
3 { pkgs, lib, config, ... }:
4 {
5 networking.hostName = "ideapad5";
6
7 # AMD laptop basics
8 boot.kernelModules = [ "kvm-amd" ];
9 hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
10 boot.kernelParams = [ "amdgpu.abmlevel=0" ];
11
12 # Low-spec laptop tuning: compressed RAM helps avoid swap thrashing.
13 zramSwap = {
14 enable = true;
15 algorithm = "zstd";
16 memoryPercent = 100;
17 };
18 boot.kernel.sysctl."vm.swappiness" = 180;
19
20 # Laptop power management.
21 services.power-profiles-daemon.enable = true;
22 services.fstrim.enable = true;
23
24 # SSH
25 services.openssh = {
26 enable = true;
27 settings = {
28 PasswordAuthentication = false;
29 KbdInteractiveAuthentication = false;
30 PermitRootLogin = "no";
31 AllowUsers = [ "sean" ];
32 };
33 };
34
35 networking.firewall.enable = true;
36
37 system.stateVersion = "25.05";
38 };
39}