{ lib, namespace, ... }: with lib; { options.${namespace}.desktop.hyprland = { enable = mkEnableOption "enable hyprland desktop"; primaryDisplay = mkOption { type = types.string; default = "DP-1"; }; wallpaper = mkOption { type = types.string; default = "/run/wallpaper.jpeg"; }; monitor = mkOption { type = with types; listOf str; default = []; description = "list of hyprland monitor configs"; }; monitorv2 = mkOption { type = with types; listOf str; default = []; description = "list of hyprland monitorv2 configs"; }; workspace = mkOption { type = with types; listOf str; default = []; description = "list of hyprland workspace definitions"; }; windowRule = mkOption { type = with types; listOf str; default = []; description = "list of hyprland window rules"; }; extraConfig = mkOption { type = with types; str; default = ''''; description = "any extra options"; }; defaultApps = mkOption { type = attrs; default = { }; }; hyprIdle = { lockScreenTimer = mkOption { type = with types; null || signed integer || floating point number; default = 5; }; screenOffTimer = mkOption { type = with types; null || signed integer || floating point number; default = 15; }; suspendTimer = mkOption { type = with types; null || signed integer || floating point number; default = 30; }; }; }; }