{
  config,
  lib,
  pkgs,
  ...
}:
let
  cfg = config.nix-config;
in
{

  config = {

    # Use hyprland as the main desktop environment but use gdm as desktop manager
    programs.hyprland = {
      enable = true;
      xwayland.enable = true;
    };


    services.displayManager = {
      defaultSession = "hyprland";
    };

    services.displayManager.gdm = {
      enable = true;
      wayland = true;
    };

    services.gvfs.enable = true;


    security.pam.services.hyprlock = {};

    security.pam.services.gdm.enableGnomeKeyring = true;

    # Enable RTKit for real-time audio processing, ...
    # improving audio performance and reducing dropouts.
    security.rtkit.enable = true;
    # Enable D-Bus for inter-process communication
    services.dbus.enable = true;


    programs.dconf.enable = true;

  };

}
