{ lib, pkgs, ... }:

with lib;

{
  imports = [
    ./common.nix
    ./audio
    ./bluetooth
    ./btrfs
    ./desktop
    ./k3s-node
    ./kodi
    ./nfs-mounts
    ./nvidia
    ./printing
    ./rclone-mount
    ./remote-build
    ./spotifyd
    ./users
    ./virtualisation
  ];

  config = {
    i18n.defaultLocale = "en_US.UTF-8";
    i18n.extraLocaleSettings = {
      LC_ADDRESS = "en_US.UTF-8";
      LC_IDENTIFICATION = "en_US.UTF-8";
      LC_MEASUREMENT = "en_US.UTF-8";
      LC_MONETARY = "en_US.UTF-8";
      LC_NAME = "en_US.UTF-8";
      LC_NUMERIC = "en_US.UTF-8";
      LC_PAPER = "en_US.UTF-8";
      LC_TELEPHONE = "en_US.UTF-8";
      LC_TIME = "en_US.UTF-8";
    };

    services.xserver.xkb = {
      layout = "us";
      variant = "";
      options = "caps:escape";
    };

    # Don't go to emergency mode if we aren't able to mount filesystems.
    # This is silly if you have multiple hard drives or partitions
    # configured on a machine and then one goes away intentionally or
    # unintentionally. If the system is already booting, let it continue
    # to try and boot.
    systemd.enableEmergencyMode = false;

    # Enable the OpenSSH daemon.
    services.openssh.enable = true;

    # NixOS-specific gc option (not available on Darwin)
    nix.gc.randomizedDelaySec = "14m";
  };
}
