# Edit this configuration file to define what should be installed on # your system. Help is available in the configuration.nix(5) man page, on # https://search.nixos.org/options and in the NixOS manual (`nixos-help`). { config, lib, pkgs, namespace, ... }: let kernelBundle = pkgs.linuxAndFirmware.latest; in { imports = [ ./boot.nix # ./networking.nix - moved to modules/nixos/network ./services.nix ./sops.nix ]; ${namespace} = { hardware.disko.enable = true; desktop.hyprland.enable = false; user = { name = "matt"; password = "BogieDudie1"; mutableUsers = false; extraGroups = [ "docker" ]; sshKeys = [ "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOTha0FbV1tkpnJr7xVH78S5MetJH+0o2YrEcuvhL692 root@jallen-nas" "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIwoHWOLSTGVif9hAhaMLl0qDA4roIzCNuyR6kyIXDOj admin@jallen-nas" ]; }; network = { hostName = "pi5"; ipv4 = { method = "manual"; gateway = "10.0.1.1"; dns = "10.0.1.1"; }; firewall = { enable = true; allowPing = true; }; }; }; # Configure nixpkgs nixpkgs = { overlays = lib.mkAfter [ (_self: _super: { # This is used in (modulesPath + "/hardware/all-firmware.nix") when at least # enableRedistributableFirmware is enabled # I know no easier way to override this package inherit (kernelBundle) raspberrypiWirelessFirmware; # Some derivations want to use it as an input, # e.g. raspberrypi-dtbs, omxplayer, sd-image-* modules inherit (kernelBundle) raspberrypifw; }) ]; }; system.nixos.tags = let cfg = config.boot.loader.raspberry-pi; in [ "raspberry-pi-${cfg.variant}" cfg.bootloader config.boot.kernelPackages.kernel.version ]; systemd.services.btattach = { before = [ "bluetooth.service" ]; after = [ "dev-ttyAMA0.device" ]; wantedBy = [ "multi-user.target" ]; serviceConfig = { ExecStart = "${pkgs.bluez}/bin/btattach -B /dev/ttyAMA0 -P bcm -S 3000000"; }; }; environment = { systemPackages = with pkgs; [ erofs-utils fex libraspberrypi raspberrypi-eeprom raspberrypifw raspberrypiWirelessFirmware raspberrypi-armstubs squashfuse squashfsTools ]; }; hardware.graphics.enable32Bit = lib.mkForce false; # Root user configuration users.users.root.shell = pkgs.zsh; programs = { kdeconnect.enable = false; }; zramSwap.enable = true; }