{ 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 spaceFM ]; services.udisks2.enable = true; programs.hyprland = { enable = true; withUWSM = true; xwayland.enable = true; }; programs.hyprlock.enable = true; security.pam.services.hyprlock = {}; security.pam.services.jonas.kwallet = { enable = true; package = pkgs.kdePackages.kwallet-pam; }; }; }