me like nix
1# Edit this configuration file to define what should be installed on
2# your system. Help is available in the configuration.nix(5) man page
3# and in the NixOS manual (accessible by running ‘nixos-help’).
4
5{ pkgs, ... }:
6
7{
8 imports = [
9 # Include the results of the hardware scan.
10 ./hardware-configuration.nix
11 ../common/common.nix
12 ];
13
14 boot.initrd.luks.devices."luks-ee306bda-c450-4a56-b4fe-537899e38e0d" = {
15 device = "/dev/disk/by-uuid/ee306bda-c450-4a56-b4fe-537899e38e0d";
16 bypassWorkqueues = true;
17 };
18 networking.hostName = "framework16"; # Define your hostname.
19
20 # Reduce swap pressure to avoid thrashing through dm-crypt
21 boot.kernel.sysctl."vm.swappiness" = 10;
22
23 # Framework 16 specific configuration
24 # Disable ABM (Active Backlight Management) to maintain color accuracy
25 boot.kernelParams = [ "amdgpu.abmlevel=0" ];
26
27 # Enable QEMU emulation for aarch64 (for building Pi images)
28 boot.binfmt.emulatedSystems = [ "aarch64-linux" ];
29
30 # nixos-raspberrypi binary cache (pre-built Pi 5 kernel, kodi, etc.)
31 nix.settings.extra-substituters = [ "https://nixos-raspberrypi.cachix.org" ];
32 nix.settings.extra-trusted-public-keys = [ "nixos-raspberrypi.cachix.org-1:4iMO9LXa8BqhU+Rpg6LQKiGa2lsNh/j2oiYLNOQ5sPI=" ];
33 nix.settings.trusted-users = [ "root" "sean" ];
34
35 # Use power-profiles-daemon instead of TLP (recommended for AMD Framework)
36 services.power-profiles-daemon.enable = true;
37
38 # Disable keyboard/touchpad wake from suspend (prevents wake in bags)
39 services.udev.extraRules = ''
40 # Framework Laptop 16 - Disable wakeup for internal keyboard to prevent wake in bags
41 ACTION=="add", SUBSYSTEM=="usb", DRIVERS=="usb", ATTRS{idVendor}=="32ac", ATTR{power/wakeup}="disabled"
42 '';
43 # networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
44
45 # Configure network proxy if necessary
46 # networking.proxy.default = "http://user:password@proxy:port/";
47 # networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain";
48
49 # Enable touchpad support (enabled default in most desktopManager).
50 # services.xserver.libinput.enable = true;
51
52 # List packages installed in system profile. To search, run:
53 # $ nix search wget
54 environment.systemPackages = with pkgs; [
55 brightnessctl
56 gdm
57 ];
58
59 # Some programs need SUID wrappers, can be configured further or are
60 # started in user sessions.
61 # programs.mtr.enable = true;
62 # programs.gnupg.agent = {
63 # enable = true;
64 # enableSSHSupport = true;
65 # };
66
67 # List services that you want to enable:
68
69 services.openssh = {
70 enable = true;
71 settings = {
72 PasswordAuthentication = false;
73 KbdInteractiveAuthentication = false;
74 PermitRootLogin = "no";
75 AllowUsers = [ "sean" ];
76 };
77 };
78
79 users.users.sean.openssh.authorizedKeys.keys = [
80 "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDCIqgZ7kedxo+mOW7YG73Vp3zel3h180y3GKvHtRsXfGlpIIvRDy7pgCBQ4AGXYD4y78URQmFohYSAPqCPOPaWcU2un3XG9KvCzEsHmsbskPonitUmCiKvrKkb6oW4jCBtd7AEtBn+AiajAQFtPZ7NN2Df3AmTypvR6Irg7R+nxnfc9NTIHmGvxSDyWcbb4pguL20sctUSqGL6xGh8q/bqhdOThSimM+z9bEUNxK/5rPhwkNniMrp4pJcUrUiAh5/4DiRFG6KT+oeg+/myoz/Z1sPvAs7u/8JDQI4RshRD8Hu0oTkRBN6Hxj478q2SXbeBUZlD6IdjP3RhGpmSecoDdtWqKbpuV3eVRtQtba3KL86GBeV/bugaOdJ1Aud+1SOFJreAAuvxzMMKT+cdQZk6oOPP148DA/No+mDm/2S43lcdCXh79wA6YRAmKQ8jmZxTCtPutrvuZK1rguvvUlEoG/vhdNHh7eDa4Td07V6bjCRPUl8qk/e4M0E3pwsTlZc="
81 "no-touch-required sk-ssh-ed25519@openssh.com AAAAGnNrLXNzaC1lZDI1NTE5QG9wZW5zc2guY29tAAAAILdilHXHdAP/V8Zq28EzHKtLAMMaFPu4+1det2N50QfhAAAABHNzaDo= sean@framework16"
82 ];
83
84 # Open ports in the firewall.
85 # networking.firewall.allowedTCPPorts = [
86 # 3000
87 # ];
88 networking.firewall.allowedUDPPorts = [
89 ];
90 # Or disable the firewall altogether.
91 networking.firewall.enable = false;
92
93 # This value determines the NixOS release from which the default
94 # settings for stateful data, like file locations and database versions
95 # on your system were taken. It‘s perfectly fine and recommended to leave
96 # this value at the release version of the first install of this system.
97 # Before changing this value read the documentation for this option
98 # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
99 system.stateVersion = "25.05"; # Did you read the comment?
100
101}