{ inputs, config, lib, username, hostname, pkgs, ... }: {
  imports = [ 
    inputs.jovian.nixosModules.default
    ./disks.nix
    ../../common/modules/boot.nix
    ../../common/services/tailscale-autoconnect.nix
    ../../common/services/geoclue.nix
  ];
  nixpkgs.config.permittedInsecurePackages = [
    "electron-27.3.11"
  ];
  nixpkgs.config.allowUnfree = true;
  boot.initrd.availableKernelModules = [ "xhci_pci" "nvme" "thunderbolt" "usb_storage" "sd_mod" "rtsx_pci_sdmmc" ];
  boot.initrd.kernelModules = [ ];
  boot.kernelModules = [ "kvm-amd" "acpi_call" ];
  boot.extraModulePackages = with config.boot.kernelPackages; [ acpi_call ];

  networking.useDHCP = lib.mkDefault true;
  powerManagement.cpuFreqGovernor = lib.mkDefault "ondemand";
  hardware.cpu.amd.updateMicrocode =  lib.mkDefault config.hardware.enableRedistributableFirmware;
  hardware.bluetooth.enable = true; # enables support for Bluetooth
  hardware.bluetooth.powerOnBoot = true; # powers up the default Bluetooth controller on boot
  # Set the networking hostname:
  networking.hostName = hostname;

  environment.systemPackages = with pkgs; [
    python3 # decky-loader required 
    jupiter-dock-updater-bin
    jellyfin-media-player
  ];

  jovian = {
    decky-loader = {
      enable = true;
      user = username;
    };
    steam = {
      enable = true;
      autoStart = true; 
      user = username;
      desktopSession = "plasma";
    };
    devices.steamdeck.enable = true;
    hardware.has.amd.gpu = true;
  };  
}