{
  inputs,
  myConfig,
  pkgs,
  ...
}: {
  programs.hyprland = {
    enable = true;
    withUWSM = true;
    package = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland;
    portalPackage = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.xdg-desktop-portal-hyprland;
  };

  environment.systemPackages = [
    pkgs.hyprpicker
    pkgs.hyprlock
    pkgs.hypridle
    pkgs.hyprpaper
    pkgs.hyprsunset
    pkgs.hyprpolkitagent
  ];

  xdg.terminal-exec = {
    enable = true;
    settings = {
      default = ["${myConfig.terminal.default}"];
    };
  };

  # XDG Desktop Portal - portal packages are in home-manager for proper path resolution
  xdg.portal.enable = true;

  # Required for portal file chooser integration
  environment.sessionVariables = {
    GTK_USE_PORTAL = "1";
  };
}
