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

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

    # AMD CPU & GPU
    boot.initrd.kernelModules = [ "amdgpu" ];
    services.logind.extraConfig = ''HandlePowerKey=suspend'';

    # Virtualization
    virtualisation.libvirtd.enable = true;
    virtualisation.spiceUSBRedirection.enable = true;
    programs.virt-manager.enable = true;
    users.users.user.extraGroups = [ "libvirtd" ];

    # services.ollama = {
    #     enable = true;
    # };

    # hardware.graphics.extraPackages = with pkgs; [
    #     rocmPackages.clr.icd
    # ];
    # systemd.tmpfiles.rules = [
    #     "L+    /opt/rocm/hip   -    -    -     -    ${pkgs.rocmPackages.clr}"
    # ];

    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";
            }];
        };
    };

    networking.bridges = {
        "br0" = {
            interfaces = [ "enp5s0" ];
        };
    };
    networking.interfaces.br0.useDHCP = lib.mkDefault true;
    networking.interfaces.wlan0.useDHCP = lib.mkDefault true;
    boot.kernel.sysctl."net.ipv6.conf.enp5s0.disable_ipv6" = true;

    networking.wireless.iwd.enable = true;
    networking.wireless.iwd.settings = {
        IPv6 = {
            Enabled = true;
        };
        Settings = {
            AutoConnect = true;
        };
    };


    # Programs & Services
    programs.gnupg.agent.enable = true;
    services.sunshine = {
        enable = true;
        autoStart = false;
        capSysAdmin = true;
        openFirewall = true;
    };
}