{ inputs, lib, modulesPath, namespace, pkgs, ... }: with lib.${namespace}; let inherit (lib) mkForce; in { imports = with inputs.nixos-hardware.nixosModules; [ (modulesPath + "/installer/scan/not-detected.nix") raspberry-pi-5 ]; raspberry-pi-nix.board = "bcm2711"; hardware = { raspberry-pi = { config = { all = { base-dt-params = { BOOT_UART = { value = 1; enable = true; }; uart_2ndstage = { value = 1; enable = true; }; }; dt-overlays = { disable-bt = { enable = true; params = { }; }; }; }; }; }; }; services.openssh = { enable = true; settings = { PasswordAuthentication = false; KbdInteractiveAuthentication = false; }; }; ${namespace} = { submodules = { basics = enabled; }; apps.cli-apps.helix = { pkg = pkgs.helix; }; system = { boot = { # Raspberry Pi requires a specific bootloader. enable = mkForce false; }; }; user.trustedPublicKeys = [ "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHFrDiO5+vMfD5MimkzN32iw3MnSMLZ0mHvOrHVVmLD0" ]; }; # This value determines the NixOS release from which the default # settings for stateful data, like file locations and database versions # on your system were taken. It‘s perfectly fine and recommended to leave # this value at the release version of the first install of this system. # Before changing this value read the documentation for this option # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html). system.stateVersion = "24.11"; # Did you read the comment? }