{ inputs, config, pkgs, ... }:

{
  # AMD CPU
  boot.blacklistedKernelModules = [ "k10temp" ];
  boot.extraModulePackages = [ config.boot.kernelPackages.zenpower ];
  boot.kernelModules = [ "zenpower amd_pstate=active" ];

  # AMD CPU & GPU
  boot.initrd.kernelModules = [ "amdgpu" ];
  services.pcscd.enable = true;
  services.udev.packages = [ pkgs.yubikey-personalization ];
  services.logind.extraConfig = ''HandlePowerKey=suspend'';

  # Calendar
  programs.dconf.enable = true;
  services.gnome.evolution-data-server.enable = true;
  services.gnome.gnome-online-accounts.enable = true;
  services.gnome.gnome-keyring.enable = true;
  environment.systemPackages = with pkgs; [ wireguard-tools ];
  # Add the server using gnome-online-accounts:
  # nix-shell -p gnome.gnome-control-center --run "gnome-control-center"
  # Just add the main webdav server and gnome-calendar will automatically pick up all available calendars.

  networking.wg-quick.interfaces = {
    wg0 = {
      address = [ "10.0.0.10/24" "	2a02:a03f:83ad:2101::2/128" ];
      dns = [ "10.0.0.1" "fdc9:281f:04d7:9ee9::1" ];
      privateKeyFile = "/home/user/.secrets/Wireguard/Kell.key";
      listenPort = 51820;
      peers = [{
        publicKey = "/9ppjm3yeD0duDvxrqgcHscHmftXko+0s2RbivNEy2c=";
        allowedIPs = [ "10.0.0.1/8" ];
        endpoint = "192.168.1.1:13231";
      }];
    };
  };
  fileSystems."/home/server" = {
    device = "192.168.1.2:/home/server";
    fsType = "nfs";
    options = [ "x-systemd.automount" "noauto" ];
  };
  fileSystems."/home/user/Workspace" = {
    device = "192.168.1.2:/home/server/Workspace";
    fsType = "nfs";
    options = [ "x-systemd.automount" "noauto" ];
  };
  fileSystems."/home/user/Documents" = {
    device = "192.168.1.2:/home/server/Storage/Thomas/Documents";
    fsType = "nfs";
    options = [ "x-systemd.automount" "noauto" ];
  };
  fileSystems."/home/user/Pictures" = {
    device = "192.168.1.2:/home/server/Storage/Thomas/Pictures";
    fsType = "nfs";
    options = [ "x-systemd.automount" "noauto" ];
  };
  fileSystems."/home/user/Videos" = {
    device = "192.168.1.2:/home/server/Storage/Thomas/Videos";
    fsType = "nfs";
    options = [ "x-systemd.automount" "noauto" ];
  };
}
