{ config, pkgs, lib, ... }: { # Use the systemd-boot EFI boot loader. boot.kernelPackages = pkgs.linuxPackages_latest; boot.loader.systemd-boot.enable = lib.mkDefault true; boot.loader.efi.canTouchEfiVariables = lib.mkDefault true; # nix flakes compatibility nix = { extraOptions = '' experimental-features = nix-command flakes warn-dirty = false ''; }; # Set time zone. time.timeZone = "Europe/London"; # The global useDHCP flag is deprecated, therefore explicitly set to false here. # Per-interface useDHCP will be mandatory in the future, so this generated config # replicates the default behaviour. networking.useDHCP = false; console = { useXkbConfig = true; }; virtualisation.docker.enable = true; hardware.cpu.intel.updateMicrocode = true; # Define a user account. Don't forget to set a password with ‘passwd’. users.users.daniel = { isNormalUser = true; home = "/home/daniel"; initialPassword = "password"; extraGroups = ["wheel" "networkmanager" "docker" "video" "syncthing"]; shell = pkgs.zsh; }; # List packages installed in system profile. To search, run: # $ nix search wget environment.systemPackages = with pkgs; [ curl fd firefox fzf gcc git htop helix ripgrep wget zsh ]; environment.homeBinInPath = true; environment.variables = { EDITOR = "hx"; }; services = { openssh.enable = true; syncthing = { enable = true; user = "daniel"; dataDir = "/home/daniel"; }; tailscale = { enable = true; }; }; }