{ 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; age.secrets = { wg0Private.file = ../../secrets/london-wg0.age; personalMailPwd = { file = ../../secrets/personal-mail.age; owner = config.users.users.dala.name; group = config.users.users.dala.group; }; publicMailPwd = { file = ../../secrets/public-mail.age; owner = config.users.users.dala.name; group = config.users.users.dala.group; }; }; # Wireguard networking.wg-quick.interfaces.wg0 = { address = [ "10.100.0.4/8" ]; dns = [ "10.100.0.1" ]; listenPort = 51820; privateKeyFile = config.age.secrets.wg0Private.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; 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; my.games.steam.enable = true; my.games.minecraft.enable = true; my.communications.mail.accounts."perso".mailPasswdEval = "${pkgs.coreutils}/bin/cat ${config.age.secrets.personalMailPwd.path}"; my.communications.mail.accounts."public".mailPasswdEval = "${pkgs.coreutils}/bin/cat ${config.age.secrets.publicMailPwd.path}"; }; }; }; }