{ lib, inputs, config, pkgs, ... }:
let
    serverIP = "192.168.1.2";
in {
    imports = [
        (import ../Common/default.nix { inherit inputs pkgs; })
        (import ../Common/nvidia.nix { inherit inputs pkgs config; })
        (import ../Common/desktop.nix { inherit inputs pkgs config; })
        (import ../Common/nfs.nix { inherit pkgs serverIP; })
    ];

    networking.wg-quick.interfaces = {
        wg0 = {
            address = [ "10.0.0.8/24" "	2a02:a03f:83ad:2101::8/128" ];
            dns = [ "10.0.0.1" "fdc9:281f:04d7:9ee9::1" ];
            privateKeyFile = "/home/user/.secrets/Wireguard/Asturia.key";
            listenPort = 51820;
            peers = [{
                publicKey = "/9ppjm3yeD0duDvxrqgcHscHmftXko+0s2RbivNEy2c=";
                allowedIPs = [ "10.0.0.1/8" ];
                endpoint = "192.168.1.1:13231";
            }];
        };
    };

    # Programs & Services
    programs.gnupg.agent.enable = true;
    services.sunshine = {
        enable = true;
        autoStart = true;
        capSysAdmin = true;
        openFirewall = true;
    };
    programs.steam = {
        enable = true;
        gamescopeSession.enable = true;
    };
    fileSystems."/mnt/host" = {
        device = "host";
        fsType = "virtiofs";
    };
}
