{ perSystem, config, pkgs, lib, ... }: let inherit (lib) mkEnableOption mkIf; inherit (perSystem) hyprland; cfg = config.desktop.hyprland; in { options = { desktop.hyprland.enable = mkEnableOption "enable hyprland desktop"; }; config = mkIf cfg.enable { module.desktop.displayManager = "greetd"; module.desktop.gnome-keyring.enable = true; sound.pipewire.enable = true; programs.hyprland = { enable = true; package = hyprland.hyprland; portalPackage = hyprland.xdg-desktop-portal-hyprland; }; security.pam.services.hyprlock = {}; xdg.portal = { enable = true; extraPortals = [ hyprland.xdg-desktop-portal-hyprland pkgs.xdg-desktop-portal-gtk ]; config.hyprland.default = ["hyprland" "gtk"]; }; }; }