{ pkgs, ... }: { boot = { loader.systemd-boot.enable = true; loader.efi.canTouchEfiVariables = true; kernelPackages = pkgs.linuxPackages_zen; initrd.systemd.enable = true; binfmt.emulatedSystems = [ "aarch64-linux" ]; }; # Temporary files boot.tmp.useTmpfs = true; systemd.services.nix-daemon = { environment.TMPDIR = "/var/tmp"; }; system.switch = { enable = false; enableNg = true; }; services.fstrim.enable = true; services.fwupd.enable = true; time.timeZone = "Europe/Stockholm"; environment.systemPackages = with pkgs; [ btrfs-progs btrfs-snap git glibcLocales qemu_kvm qemu-utils vim zstd ]; # Use fish, but not in /etc/passwd . See https://nixos.wiki/wiki/Fish#Setting_fish_as_your_shell programs.bash = { interactiveShellInit = '' if [[ $(${pkgs.procps}/bin/ps --no-header --pid=$PPID --format=comm) != "fish" && -z ''${BASH_EXECUTION_STRING} ]] then shopt -q login_shell && LOGIN_OPTION='--login' || LOGIN_OPTION="" exec ${pkgs.fish}/bin/fish $LOGIN_OPTION fi ''; shellInit = '' export NIX_LD=$(nix eval --impure --raw --expr 'let pkgs = import {}; NIX_LD = pkgs.lib.fileContents "${pkgs.stdenv.cc}/nix-support/dynamic-linker"; in NIX_LD') ''; }; services.avahi = { nssmdns4 = true; enable = true; ipv4 = true; ipv6 = true; publish = { enable = true; addresses = true; workstation = true; }; }; # Open ports in the firewall. # networking.firewall.allowedTCPPorts = [ ... ]; # networking.firewall.allowedUDPPorts = [ ... ]; # Or disable the firewall altogether. # networking.firewall.enable = false; }