{
  lib,
  pkgs,
  namespace,
  ...
}:
let
  inherit (lib.${namespace}) enabled;
in
{
  home.username = "matt";

  ${namespace}.desktop.gnome = enabled;

  sops = {
    age.keyFile = "/home/matt/.config/sops/age/keys.txt";
    defaultSopsFile = "/etc/nixos/secrets/secrets.yaml";
    validateSopsFiles = false;
    secrets = {
      "ssh-keys-public/matt" = {
        path = "/home/matt/.ssh/id_ed25519.pub";
        mode = "0644";
      };
      "ssh-keys-private/matt" = {
        path = "/home/matt/.ssh/id_ed25519";
        mode = "0600";
      };
    };
  };

  programs = {
    steam-rom-manager = {
      enable = true;
      steamUsername = "mjallen18";

      # Optional: override default paths if needed
      environmentVariables = {
        romsDirectory = "/home/matt/Emulation/roms";
        steamDirectory = "/home/matt/.local/share/Steam";
      };

      emulators = {
        ryujinx = enabled;

        dolphin-gamecube = {
          enable = true;
          package = pkgs.dolphin-emu;
          romFolder = "gc";
          fileTypes = [
            ".iso"
            ".ISO"
            ".gcm"
            ".GCM"
            ".ciso"
            ".CISO"
            "rvz"
          ];
          extraArgs = "-b -e \"\${filePath}\"";
        };

        pcsx2 = enabled;
        mgba = enabled;

        "Non-SRM Shortcuts" = {
          enable = true;
          parserType = "Non-SRM Shortcuts";
          extraArgs = "";
        };
      };
    };
  };

  home.packages =
    with pkgs;
    [
      dolphin-emu
      heroic
      mgba
      moonlight-qt
      prismlauncher
      ryubing
      omnissa-horizon-client
    ]
    ++ (with pkgs.${namespace}; [
      discord-krisp
      librepods-beta
    ]);
}
