{ config, pkgs, lib, ... }:

with lib;

let
  cfg = config.settings.desktop-environments.hyprland;
in {
  options = {
    settings.desktop-environments.hyprland.enable = lib.mkOption {
      type = lib.types.bool;
      description = ''
        Enable hyprland window manager
      '';
    };
  };

  config = mkIf cfg.enable {
    programs.hyprland = {
      enable = true;
      package = pkgs.unstable.hyprland;
      xwayland.enable = true;
    };

    # Sound configuration
    hardware.pulseaudio.enable = false;
    security.rtkit.enable = true;
    services.pipewire = {
      enable = true;
      alsa.enable = true;
      alsa.support32Bit = true;
      pulse.enable = true;
    };

    # Keyring configuration
    security.polkit.enable = true;
    services.gnome.gnome-keyring.enable = true;
    security.pam.services.greetd.enableGnomeKeyring = true;
    programs.ssh.startAgent = true;

    # Configure networking
    networking.networkmanager.enable = true;
    networking.wireless.iwd.enable = true;
  };
}