{ config, pkgs, lib, ... }: with lib; let cfg = config.desktop.hyprland; in { imports = [./misc/sound.nix ./misc/regreet.nix]; options = { desktop.hyprland.enable = mkEnableOption "enable hyprland desktop"; }; config = mkIf cfg.enable { programs.hyprland.enable = true; programs.hyprland.package = pkgs.hyprland; fonts.fontDir.enable = true; security.pam.services.hyprlock = {}; security.pam.loginLimits = [ { domain = "@users"; item = "rtprio"; type = "-"; value = 1; } ]; programs.dconf.enable = true; programs.seahorse.enable = true; services.gnome.gnome-keyring.enable = true; services.udisks2.enable = true; services.dbus = { apparmor = "enabled"; implementation = "broker"; }; xdg.portal = { enable = true; extraPortals = with pkgs; [ xdg-desktop-portal-hyprland xdg-desktop-portal-gtk ]; config = { common = { default = [ "hyprland" "gtk" ]; }; }; }; services.greetd.settings.initial_session = { user = "user"; command = "Hyprland"; }; }; }