{ pkgs, config, extraInfo, ... }: { imports = [ ./hardware.nix ]; deployment.targetHost = null; boot.binfmt.emulatedSystems = [ "aarch64-linux" ]; # Custom udev rules for Nucleo's stlink interface services.udev.extraRules = '' ATTRS{idVendor}=="0483", ATTRS{idProduct}=="374b",MODE="660",GROUP="dialout",TAG+="uaccess" ATTRS{idVendor}=="0483", ATTRS{idProduct}=="3748",MODE="660",GROUP="dialout",TAG+="uaccess" ''; # Nix nixpkgs.config.allowUnfree = true; # System secrets sops = { gnupg.sshKeyPaths = [ ]; age = { sshKeyPaths = [ ]; keyFile = "/var/lib/sops-nix/key.txt"; }; defaultSopsFile = ./secrets/secrets.yaml; secrets.wg0_private = { }; }; # Wireguard networking.wg-quick.interfaces.wg0 = { address = [ "10.100.0.4/8" ]; dns = [ "10.100.0.1" ]; listenPort = 51820; privateKeyFile = config.sops.secrets.wg0_private.path; peers = [ { # Rock Pro 64 publicKey = "XVmG3/rNsCqc8KCmOx3+UUn9DJOnJ40Uxid5JGdChR4="; endpoint = "${extraInfo.wireguard.rockProEndpoint}:51820"; allowedIPs = [ "10.100.0.1" ]; persistentKeepalive = 25; } ]; }; # User config my.users = { dala = { description = "Dala"; groups = [ "docker" "wheel" "video" "audio" "seat" "keys" "lp" "dialout" "network" ]; uid = 1000; shell = pkgs.fish; hmConfig = { pkgs, ... }: { programs.helix.enable = true; home.packages = with pkgs; [ (cutter.withPlugins (plugins: with plugins; [ rz-ghidra ])) ]; my.desktop.sway.monitors = [ { name = "Iiyama North America PL2470H 0x0000047B"; resolution = "1920x1080@165.003Hz"; position = "1920 0"; defaultWorkspace = 1; } { name = "Iiyama North America PL2530H 1154392601941"; resolution = "1920x1080@74.973Hz"; position = "0 0"; defaultWorkspace = 2; } ]; nixpkgs.config.allowUnfree = true; my.development.tools.embedded.enable = true; my.development.tools.networking.enable = true; my.games.wine.enable = true; }; }; }; }