{ config, pkgs, lib, ... }: { # NixOS wants to enable GRUB by default boot.loader.grub.enable = false; # Enables the generation of /boot/extlinux/extlinux.conf boot.loader.generic-extlinux-compatible.enable = true; # A bunch of boot parameters needed for optimal runtime on RPi 3B boot.kernelParams = ["cma=32M"]; boot.loader.raspberryPi = { enable = true; version = 3; uboot.enable = true; firmwareConfig = '' hdmi_force_hotplug=1 ''; }; environment.systemPackages = with pkgs; [ raspberrypi-tools (import ./modules/vim.nix) git tmux htop ]; # File systems configuration for using the installer's partition layout fileSystems = { "/" = { device = "/dev/disk/by-label/NIXOS_SD"; fsType = "ext4"; }; }; # !!! Adding a swap file is optional, but strongly recommended! swapDevices = [ { device = "/swapfile"; size = 1024; } ]; # Configure basic SSH access services.openssh = { enable = true; permitRootLogin = "yes"; }; # Cleanup tmp on startup boot.cleanTmpDir = true; # Set hostname networking.hostName = "zion"; # Create coolneng user users.users.coolneng = { isNormalUser = true; home = "/home/coolneng"; extraGroups = [ "wheel" "lp" "scanner" ]; openssh.authorizedKeys.keys = [ "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDG7JtfAqcbZV28wkNTfSWSqTOo5buH+dyT0w6SlTqq+KFh5DxREB0yGuM1UfjLpyLQ0XI7UbhCwNG28Li4yv/hwPGq63TF1kl+w4sjQKFn4bOUv1NvsfSN3oTamjfYoVsrapCiXqOvZkzEKMF47MSwOfPkqZ6ihU5V3INA0IZbl1Ri+r9MsIzvY76ZHBiF6rVqQJjdXVDbcLMViOrM56FpyK+ICo+uTkErsEbYFwevVTv9memOh778RRPesBobpZjggWOI4HXXxqk35myInYjHve9K4ox6YZMjwnwnEftONr2HyoBBcBNT+wWd1jtYxCoCWQ3vVkn4LGBDOQ3+HKb4rT3JxI66VfFyQWGJPdgJL5/ZNRlBqA7CpAtE7JaR6l7d3mCCoGW2B0atWiEXecwb8dz4CzzYm1r9Wz27L74OtPzUqcV7mQjCVDcnRsY/MtfhzyWzhB3tujVqnRtF3VrFSrm0YXS1ZWG4dltX1cfgud8s8XwwBKcFw5NdCrVxq3nRMNlGcSqbXC+RnrkK/i6ciAriZdXgFrmnBl+6qEmqIO15u2IPvDhnQs18DzRkHnPQegphhHhHix5aaqNbLfSRZNCTQaqE774X+0kuU/RWylI4muIyf4k9x+et4txeU2OC6l0W0LMpbsELzXIRr/ZBFrGHbE7/KLi8HNiAJ0KmAQ== coolneng@monolith" ]; }; # Set vim as default editor programs.vim.defaultEditor = true; # Set timezone and synchronize NTP time.timeZone = "Europe/Brussels"; services.timesyncd.enable = true; # Enable zfs support networking.hostId = "bb26c304"; boot.supportedFilesystems = [ "zfs" ]; boot.zfs.extraPools = [ "vault" ]; # Scrub zpool monthly services.zfs.autoScrub = { enable = true; interval = "monthly"; }; # Auto-upgrade the system and reboot if needed system.autoUpgrade = { enable = true; allowReboot = true; }; # Enable zeroconf services.avahi = { enable = true; nssmdns = true; publish = { enable = true; userServices = true; }; }; # Configure fish shell #programs.fish.enable = true; # Start a tmux session #programs.tmux.enable = true; # Import other configuration modules imports = [ ./modules/printing.nix ./modules/networking.nix ]; }