{ modulesPath, lib, nixos-hardware, pkgs, ... }: { imports = [ (modulesPath + "/installer/scan/not-detected.nix") nixos-hardware.nixosModules.raspberry-pi-4 ]; boot = { initrd = { availableKernelModules = [ "xhci_pci" ]; }; loader = { generic-extlinux-compatible.enable = true; }; }; fileSystems."/" = { device = "/dev/disk/by-uuid/44444444-4444-4444-8888-888888888888"; fsType = "ext4"; }; fileSystems."/mnt/share" = { device = "//192.168.88.251/public"; fsType = "cifs"; options = let # this line prevents hanging on network split automount_opts = "x-systemd.automount,noauto,x-systemd.idle-timeout=60,x-systemd.device-timeout=5s,x-systemd.mount-timeout=5s"; in ["${automount_opts},credentials=/etc/nixos/smb-secrets"]; }; hardware.raspberry-pi."4".fkms-3d.enable = true; networking = { useDHCP = lib.mkDefault true; }; powerManagement.cpuFreqGovernor = "ondemand"; services.gnome.gnome-keyring.enable = true; programs.sway = { enable = true; wrapperFeatures.gtk = true; }; security.polkit.enable = true; services.greetd = { enable = true; settings = { default_session = { command = "${pkgs.greetd.tuigreet}/bin/tuigreet --time --cmd sway"; user = "greeter"; }; }; }; fonts = { fontDir.enable = true; packages = with pkgs; [ noto-fonts noto-fonts-cjk noto-fonts-emoji font-awesome source-han-sans source-han-sans-japanese source-han-serif-japanese ]; fontconfig.defaultFonts = { serif = [ "Noto Serif" "Source Han Serif" ]; sansSerif = [ "Noto Sans" "Source Han Sans" ]; }; }; environment.systemPackages = with pkgs; [ grim # screenshot functionality slurp # screenshot functionality wl-clipboard # wl-copy and wl-paste for copy/paste from stdin / stdout mako # notification system developed by swaywm maintainer kitty firefox-devedition prismlauncher cifs-utils ]; xdg = { sounds.enable = true; mime.enable = true; menus.enable = true; icons.enable = true; autostart.enable = true; portal = { enable = true; extraPortals = with pkgs; [ xdg-desktop-portal ]; }; }; i18n = { defaultLocale = "en_NZ.UTF-8"; extraLocaleSettings = { LC_ADDRESS = "de_DE.UTF-8"; LC_IDENTIFICATION = "de_DE.UTF-8"; LC_MEASUREMENT = "de_DE.UTF-8"; LC_MONETARY = "de_DE.UTF-8"; LC_NAME = "de_DE.UTF-8"; LC_NUMERIC = "de_DE.UTF-8"; LC_PAPER = "de_DE.UTF-8"; LC_TELEPHONE = "de_DE.UTF-8"; LC_TIME = "de_DE.UTF-8"; LC_CTYPE = "de_DE.UTF-8"; LC_COLLATE = "de_DE.UTF-8"; LC_MESSAGES = "en_NZ.UTF-8"; }; }; environment.variables = { LOG_ICONS = "true"; }; services = { xserver = { xkb.layout = "de"; }; }; console = { enable = true; keyMap = "de"; }; }