{ pkgs, ... }:

{
  # installs hyprland, and its dependencies

  programs = {
    hyprland = {
      enable = true;
      xwayland.enable = true;
    };
    gnupg.agent = {
      enable = true;
      #pinentryPackage = pkgs.pinentry-rofi;
      pinentryPackage = pkgs.pinentry-gnome3;
      #settings = {
      #  keyserver-options = "auto-key-retrieve";
      #  auto-key-locate = "hkps://keys.openpgp.org";
      #  keyserver = "hkps://keys.openpgp.org";
      #keyserver  =  "hkp://pgp.mit.edu";
      # "na.pool.sks-keyservers.net"
      # "ipv4.pool.sks-keyservers.net"
      # "p80.pool.sks-keyservers.net"
      # ];
      #};
    };

    ydotool.enable = true;
  };
  # Optional, hint electron apps to use wayland:
  environment.sessionVariables.NIXOS_OZONE_WL = "1";

  services = {
    xserver = {
      enable = true;
      displayManager.session = [
        {
          manage = "desktop";
          name = "hyprland";
          start = ''
            bash ${./hypr/wrappedhl} &
            waitPID=$!
          '';
        }
      ];
      displayManager.gdm = {
        enable = true;
        wayland = true;
      };
    };

    dbus = {
      enable = true;
      implementation = "broker";
    };
  };

  environment.systemPackages = with pkgs; [
    libsForQt5.qt5.qtwayland
    qt6.qtwayland
  ];
}