109 lines
2.5 KiB
Nix
109 lines
2.5 KiB
Nix
# 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;
|
|
}
|