{ lib, config, pkgs, ... }: let cfg = config.desktop.de.hyprland; in { options.desktop.de.hyprland = { enable = lib.mkEnableOption "enable hyprland desktop environment"; }; config = lib.mkIf cfg.enable { services = { libinput.enable = true; dbus.enable = true; }; xdg.portal = { enable = true; extraPortals = [ pkgs.xdg-desktop-portal-wlr pkgs.xdg-desktop-portal-hyprland pkgs.libsForQt5.xdg-desktop-portal-kde ]; }; environment.systemPackages = with pkgs; [ libsForQt5.kwallet libsForQt5.kwalletmanager ]; programs.hyprland = { enable = true; withUWSM = true; xwayland.enable = true; }; programs.hyprlock.enable = true; security.pam.services.hyprlock = {}; }; }