{ inputs
, outputs
, pkgs
, ...
}: {
  imports = [
    inputs.hardware.nixosModules.common-cpu-amd-pstate
    inputs.hardware.nixosModules.common-gpu-nvidia-nonprime
    inputs.hardware.nixosModules.common-pc-ssd

    ./hardware-configuration.nix

    ../common/global
    ../common/optional/desktop/awesome.nix
    ../common/optional/desktop/hyprland.nix

    ../common/optional/systemd-boot.nix
    ../common/optional/wireshark.nix
    ../common/optional/kde-connect.nix
    ../common/optional/gnome-keyring.nix
    ../common/optional/adb.nix
    ../common/optional/docker.nix
    ../common/optional/gaming/gamemode.nix
    ../common/optional/gaming/steam.nix
    ../common/optional/desktop/japanese.nix
    ../common/optional/udisks.nix
    ../common/optional/fhs-compat.nix
    ../common/optional/stylix.nix
  ];

  nixpkgs = {
    overlays = [
      outputs.overlays.additions
      outputs.overlays.modifications
      outputs.overlays.unstable-packages
    ];

    config = {
      allowUnfree = true;
      firefox.enablePlasmaBrowserIntegration = true;
      segger-jlink.acceptLicense = true;
      permittedInsecurePackages = [ "segger-jlink-qt4-796s" "dotnet-runtime-6.0.36" "dotnet-sdk-wrapped-6.0.428" "dotnet-sdk-6.0.428" ];
    };
  };

  networking.hostName = "adalbert";

  services.udev.packages = [ inputs.heliox-cli.packages.x86_64-linux.default pkgs.segger-jlink ];
  environment.systemPackages = [ inputs.heliox-cli.packages.x86_64-linux.default ];

  services.xserver.displayManager.gdm.enable = true;

  boot.binfmt.emulatedSystems = [
    "aarch64-linux"
    "riscv64-linux"
  ];

  programs = {
    adb.enable = true;
    dconf.enable = true;
    coolercontrol = {
      enable = true;
      nvidiaSupport = true;
    };

    # Personalausweis reader
    ausweisapp = {
      enable = true;
      openFirewall = true; # also sets firewall entry
    };
  };

  hardware = {
    graphics.enable = true;
    opentabletdriver.enable = true;
    nvidia = {
      open = false;
      powerManagement.enable = true;
    };
  };

  # https://nixos.wiki/wiki/FAQ/When_do_I_update_stateVersion
  system.stateVersion = "23.11";
}