{
  config,
  pkgs,
  username,
  ...
}:
{
  imports = [
    ./desktop.nix
    ./steam.nix
  ];
  home-manager.users.${username} = {
    imports = [ ./home/swww/default.nix ];
    home = {
      stateVersion = "23.05";
      packages = with pkgs; [
        helvum
        prusa-slicer
        blender
        freecad
        openscad
        kicad-small
        wineWowPackages.waylandFull
        winetricks
        lutris
        cartridges
        prismlauncher
        (retroarch.override {
          cores = with libretro; [
            mupen64plus
            dolphin
            mgba
            citra
            pcsx2
            ppsspp
          ];
        })
      ];
    };
    programs = {
      btop.package = pkgs.btop-rocm;
      obs-studio = {
        enable = true;
        plugins = with pkgs.obs-studio-plugins; [
          wlrobs
          obs-vkcapture
          obs-pipewire-audio-capture
          input-overlay
        ];
      };
    };
    wayland.windowManager.hyprland.settings =
      let
        primary = "Microstep MSI G27CQ4 E2";
        secondary = "Acer Technologies ED270R TJMEE0043W01";
      in
      {
        monitor = [
          "desc:${primary},2560x1440@144,1920x0,1.25,vrr,2"
          "desc:${secondary},1920x1080@144,0x140,1.0,vrr,2"
        ];
        workspace = [
          "3, monitor:desc:${secondary}"
          "5, monitor:desc:${primary}"
          "7, monitor:desc:${primary}"
        ];
      };
  };
  boot = {
    kernel.sysctl = {
      "vm.max_map_count" = 16777216;
      "fs.file-max" = 524288;
    };
    extraModulePackages = with config.boot.kernelPackages; [ v4l2loopback ];
    extraModprobeConfig = ''
      options v4l2loopback devices=1 video_nr=1 card_label="OBS Cam" exclusive_caps=1
    '';
  };
  hardware = {
    amdgpu = {
      initrd.enable = true;
      opencl.enable = true;
    };
    graphics = {
      enable = true;
      enable32Bit = true;
    };
  };
  services.hardware.openrgb.enable = true;
  system.stateVersion = "23.05";
}