2026-04-26 15:16:36 +01:00
|
|
|
-- This file is autogenerated. Do not edit by hand.
|
|
|
|
|
-- Generator: scripts/generateLuaStubs.py
|
|
|
|
|
---@meta
|
|
|
|
|
|
|
|
|
|
---@alias HL.EventName
|
|
|
|
|
---| "config.reloaded"
|
|
|
|
|
---| "hyprland.shutdown"
|
|
|
|
|
---| "hyprland.start"
|
|
|
|
|
---| "keybinds.submap"
|
|
|
|
|
---| "layer.closed"
|
|
|
|
|
---| "layer.opened"
|
|
|
|
|
---| "monitor.added"
|
|
|
|
|
---| "monitor.focused"
|
|
|
|
|
---| "monitor.layout_changed"
|
|
|
|
|
---| "monitor.removed"
|
|
|
|
|
---| "screenshare.state"
|
|
|
|
|
---| "window.active"
|
|
|
|
|
---| "window.class"
|
|
|
|
|
---| "window.close"
|
|
|
|
|
---| "window.destroy"
|
|
|
|
|
---| "window.fullscreen"
|
|
|
|
|
---| "window.kill"
|
|
|
|
|
---| "window.move_to_workspace"
|
|
|
|
|
---| "window.open"
|
|
|
|
|
---| "window.open_early"
|
|
|
|
|
---| "window.pin"
|
|
|
|
|
---| "window.title"
|
|
|
|
|
---| "window.update_rules"
|
|
|
|
|
---| "window.urgent"
|
|
|
|
|
---| "workspace.active"
|
|
|
|
|
---| "workspace.created"
|
|
|
|
|
---| "workspace.move_to_monitor"
|
|
|
|
|
---| "workspace.removed"
|
|
|
|
|
|
|
|
|
|
---@alias HL.ConfigKey
|
|
|
|
|
---| "animations.enabled"
|
|
|
|
|
---| "animations.workspace_wraparound"
|
|
|
|
|
---| "binds.allow_pin_fullscreen"
|
|
|
|
|
---| "binds.allow_workspace_cycles"
|
|
|
|
|
---| "binds.disable_keybind_grabbing"
|
|
|
|
|
---| "binds.drag_threshold"
|
|
|
|
|
---| "binds.focus_preferred_method"
|
|
|
|
|
---| "binds.hide_special_on_workspace_change"
|
|
|
|
|
---| "binds.ignore_group_lock"
|
|
|
|
|
---| "binds.movefocus_cycles_fullscreen"
|
|
|
|
|
---| "binds.movefocus_cycles_groupfirst"
|
|
|
|
|
---| "binds.pass_mouse_when_bound"
|
|
|
|
|
---| "binds.scroll_event_delay"
|
|
|
|
|
---| "binds.window_direction_monitor_fallback"
|
|
|
|
|
---| "binds.workspace_back_and_forth"
|
|
|
|
|
---| "binds.workspace_center_on"
|
|
|
|
|
---| "cursor.default_monitor"
|
|
|
|
|
---| "cursor.enable_hyprcursor"
|
|
|
|
|
---| "cursor.hide_on_key_press"
|
|
|
|
|
---| "cursor.hide_on_tablet"
|
|
|
|
|
---| "cursor.hide_on_touch"
|
|
|
|
|
---| "cursor.hotspot_padding"
|
|
|
|
|
---| "cursor.inactive_timeout"
|
|
|
|
|
---| "cursor.invisible"
|
|
|
|
|
---| "cursor.min_refresh_rate"
|
|
|
|
|
---| "cursor.no_break_fs_vrr"
|
|
|
|
|
---| "cursor.no_hardware_cursors"
|
|
|
|
|
---| "cursor.no_warps"
|
|
|
|
|
---| "cursor.persistent_warps"
|
|
|
|
|
---| "cursor.sync_gsettings_theme"
|
|
|
|
|
---| "cursor.use_cpu_buffer"
|
|
|
|
|
---| "cursor.warp_back_after_non_mouse_input"
|
|
|
|
|
---| "cursor.warp_on_change_workspace"
|
|
|
|
|
---| "cursor.warp_on_toggle_special"
|
|
|
|
|
---| "cursor.zoom_detached_camera"
|
|
|
|
|
---| "cursor.zoom_disable_aa"
|
|
|
|
|
---| "cursor.zoom_factor"
|
|
|
|
|
---| "cursor.zoom_rigid"
|
|
|
|
|
---| "debug.colored_stdout_logs"
|
|
|
|
|
---| "debug.damage_blink"
|
|
|
|
|
---| "debug.damage_tracking"
|
|
|
|
|
---| "debug.disable_logs"
|
|
|
|
|
---| "debug.disable_scale_checks"
|
|
|
|
|
---| "debug.disable_time"
|
|
|
|
|
---| "debug.ds_handle_same_buffer"
|
|
|
|
|
---| "debug.ds_handle_same_buffer_fifo"
|
|
|
|
|
---| "debug.enable_stdout_logs"
|
|
|
|
|
---| "debug.error_limit"
|
|
|
|
|
---| "debug.error_position"
|
|
|
|
|
---| "debug.fifo_pending_workaround"
|
|
|
|
|
---| "debug.full_cm_proto"
|
|
|
|
|
---| "debug.gl_debugging"
|
|
|
|
|
---| "debug.invalidate_fp16"
|
|
|
|
|
---| "debug.log_damage"
|
|
|
|
|
---| "debug.manual_crash"
|
|
|
|
|
---| "debug.overlay"
|
|
|
|
|
---| "debug.pass"
|
|
|
|
|
---| "debug.render_solitary_wo_damage"
|
|
|
|
|
---| "debug.suppress_errors"
|
|
|
|
|
---| "debug.vfr"
|
|
|
|
|
---| "decoration.active_opacity"
|
|
|
|
|
---| "decoration.blur.brightness"
|
|
|
|
|
---| "decoration.blur.contrast"
|
|
|
|
|
---| "decoration.blur.enabled"
|
|
|
|
|
---| "decoration.blur.ignore_opacity"
|
|
|
|
|
---| "decoration.blur.input_methods"
|
|
|
|
|
---| "decoration.blur.input_methods_ignorealpha"
|
|
|
|
|
---| "decoration.blur.new_optimizations"
|
|
|
|
|
---| "decoration.blur.noise"
|
|
|
|
|
---| "decoration.blur.passes"
|
|
|
|
|
---| "decoration.blur.popups"
|
|
|
|
|
---| "decoration.blur.popups_ignorealpha"
|
|
|
|
|
---| "decoration.blur.size"
|
|
|
|
|
---| "decoration.blur.special"
|
|
|
|
|
---| "decoration.blur.vibrancy"
|
|
|
|
|
---| "decoration.blur.vibrancy_darkness"
|
|
|
|
|
---| "decoration.blur.xray"
|
|
|
|
|
---| "decoration.border_part_of_window"
|
|
|
|
|
---| "decoration.dim_around"
|
|
|
|
|
---| "decoration.dim_inactive"
|
|
|
|
|
---| "decoration.dim_modal"
|
|
|
|
|
---| "decoration.dim_special"
|
|
|
|
|
---| "decoration.dim_strength"
|
|
|
|
|
---| "decoration.fullscreen_opacity"
|
|
|
|
|
---| "decoration.glow.color"
|
|
|
|
|
---| "decoration.glow.color_inactive"
|
|
|
|
|
---| "decoration.glow.enabled"
|
|
|
|
|
---| "decoration.glow.range"
|
|
|
|
|
---| "decoration.glow.render_power"
|
|
|
|
|
---| "decoration.inactive_opacity"
|
|
|
|
|
---| "decoration.rounding"
|
|
|
|
|
---| "decoration.rounding_power"
|
|
|
|
|
---| "decoration.screen_shader"
|
|
|
|
|
---| "decoration.shadow.color"
|
|
|
|
|
---| "decoration.shadow.color_inactive"
|
|
|
|
|
---| "decoration.shadow.enabled"
|
|
|
|
|
---| "decoration.shadow.offset"
|
|
|
|
|
---| "decoration.shadow.range"
|
|
|
|
|
---| "decoration.shadow.render_power"
|
|
|
|
|
---| "decoration.shadow.scale"
|
|
|
|
|
---| "decoration.shadow.sharp"
|
|
|
|
|
---| "dwindle.default_split_ratio"
|
|
|
|
|
---| "dwindle.force_split"
|
|
|
|
|
---| "dwindle.permanent_direction_override"
|
|
|
|
|
---| "dwindle.precise_mouse_move"
|
|
|
|
|
---| "dwindle.preserve_split"
|
|
|
|
|
---| "dwindle.smart_resizing"
|
|
|
|
|
---| "dwindle.smart_split"
|
|
|
|
|
---| "dwindle.special_scale_factor"
|
|
|
|
|
---| "dwindle.split_bias"
|
|
|
|
|
---| "dwindle.split_width_multiplier"
|
|
|
|
|
---| "dwindle.use_active_for_splits"
|
|
|
|
|
---| "ecosystem.enforce_permissions"
|
|
|
|
|
---| "ecosystem.no_donation_nag"
|
|
|
|
|
---| "ecosystem.no_update_news"
|
|
|
|
|
---| "experimental.wp_cm_1_2"
|
|
|
|
|
---| "general.allow_tearing"
|
|
|
|
|
---| "general.border_size"
|
|
|
|
|
---| "general.col.active_border"
|
|
|
|
|
---| "general.col.inactive_border"
|
|
|
|
|
---| "general.col.nogroup_border"
|
|
|
|
|
---| "general.col.nogroup_border_active"
|
|
|
|
|
---| "general.extend_border_grab_area"
|
|
|
|
|
---| "general.float_gaps"
|
|
|
|
|
---| "general.gaps_in"
|
|
|
|
|
---| "general.gaps_out"
|
|
|
|
|
---| "general.gaps_workspaces"
|
|
|
|
|
---| "general.hover_icon_on_border"
|
|
|
|
|
---| "general.layout"
|
|
|
|
|
---| "general.locale"
|
|
|
|
|
---| "general.modal_parent_blocking"
|
|
|
|
|
---| "general.no_focus_fallback"
|
|
|
|
|
---| "general.resize_corner"
|
|
|
|
|
---| "general.resize_on_border"
|
|
|
|
|
---| "general.snap.border_overlap"
|
|
|
|
|
---| "general.snap.enabled"
|
|
|
|
|
---| "general.snap.monitor_gap"
|
|
|
|
|
---| "general.snap.respect_gaps"
|
|
|
|
|
---| "general.snap.window_gap"
|
|
|
|
|
---| "gestures.close_max_timeout"
|
|
|
|
|
---| "gestures.workspace_swipe_cancel_ratio"
|
|
|
|
|
---| "gestures.workspace_swipe_create_new"
|
|
|
|
|
---| "gestures.workspace_swipe_direction_lock"
|
|
|
|
|
---| "gestures.workspace_swipe_direction_lock_threshold"
|
|
|
|
|
---| "gestures.workspace_swipe_distance"
|
|
|
|
|
---| "gestures.workspace_swipe_forever"
|
|
|
|
|
---| "gestures.workspace_swipe_invert"
|
|
|
|
|
---| "gestures.workspace_swipe_min_speed_to_force"
|
|
|
|
|
---| "gestures.workspace_swipe_touch"
|
|
|
|
|
---| "gestures.workspace_swipe_touch_invert"
|
|
|
|
|
---| "gestures.workspace_swipe_use_r"
|
|
|
|
|
---| "group.auto_group"
|
|
|
|
|
---| "group.col.border_active"
|
|
|
|
|
---| "group.col.border_inactive"
|
|
|
|
|
---| "group.col.border_locked_active"
|
|
|
|
|
---| "group.col.border_locked_inactive"
|
|
|
|
|
---| "group.drag_into_group"
|
|
|
|
|
---| "group.focus_removed_window"
|
|
|
|
|
---| "group.group_on_movetoworkspace"
|
|
|
|
|
---| "group.groupbar.blur"
|
|
|
|
|
---| "group.groupbar.col.active"
|
|
|
|
|
---| "group.groupbar.col.inactive"
|
|
|
|
|
---| "group.groupbar.col.locked_active"
|
|
|
|
|
---| "group.groupbar.col.locked_inactive"
|
|
|
|
|
---| "group.groupbar.enabled"
|
|
|
|
|
---| "group.groupbar.font_family"
|
|
|
|
|
---| "group.groupbar.font_size"
|
|
|
|
|
---| "group.groupbar.font_weight_active"
|
|
|
|
|
---| "group.groupbar.font_weight_inactive"
|
|
|
|
|
---| "group.groupbar.gaps_in"
|
|
|
|
|
---| "group.groupbar.gaps_out"
|
|
|
|
|
---| "group.groupbar.gradient_round_only_edges"
|
|
|
|
|
---| "group.groupbar.gradient_rounding"
|
|
|
|
|
---| "group.groupbar.gradient_rounding_power"
|
|
|
|
|
---| "group.groupbar.gradients"
|
|
|
|
|
---| "group.groupbar.height"
|
|
|
|
|
---| "group.groupbar.indicator_gap"
|
|
|
|
|
---| "group.groupbar.indicator_height"
|
|
|
|
|
---| "group.groupbar.keep_upper_gap"
|
2026-05-05 19:31:09 +04:00
|
|
|
---| "group.groupbar.middle_click_close"
|
2026-04-26 15:16:36 +01:00
|
|
|
---| "group.groupbar.priority"
|
|
|
|
|
---| "group.groupbar.render_titles"
|
|
|
|
|
---| "group.groupbar.round_only_edges"
|
|
|
|
|
---| "group.groupbar.rounding"
|
|
|
|
|
---| "group.groupbar.rounding_power"
|
|
|
|
|
---| "group.groupbar.scrolling"
|
|
|
|
|
---| "group.groupbar.stacked"
|
|
|
|
|
---| "group.groupbar.text_color"
|
|
|
|
|
---| "group.groupbar.text_color_inactive"
|
|
|
|
|
---| "group.groupbar.text_color_locked_active"
|
|
|
|
|
---| "group.groupbar.text_color_locked_inactive"
|
|
|
|
|
---| "group.groupbar.text_offset"
|
|
|
|
|
---| "group.groupbar.text_padding"
|
|
|
|
|
---| "group.insert_after_current"
|
|
|
|
|
---| "group.merge_floated_into_tiled_on_groupbar"
|
|
|
|
|
---| "group.merge_groups_on_drag"
|
|
|
|
|
---| "group.merge_groups_on_groupbar"
|
|
|
|
|
---| "input.accel_profile"
|
|
|
|
|
---| "input.emulate_discrete_scroll"
|
|
|
|
|
---| "input.float_switch_override_focus"
|
|
|
|
|
---| "input.focus_on_close"
|
|
|
|
|
---| "input.follow_mouse"
|
|
|
|
|
---| "input.follow_mouse_shrink"
|
|
|
|
|
---| "input.follow_mouse_threshold"
|
|
|
|
|
---| "input.force_no_accel"
|
|
|
|
|
---| "input.kb_file"
|
|
|
|
|
---| "input.kb_layout"
|
|
|
|
|
---| "input.kb_model"
|
|
|
|
|
---| "input.kb_options"
|
|
|
|
|
---| "input.kb_rules"
|
|
|
|
|
---| "input.kb_variant"
|
|
|
|
|
---| "input.left_handed"
|
|
|
|
|
---| "input.mouse_refocus"
|
|
|
|
|
---| "input.natural_scroll"
|
|
|
|
|
---| "input.numlock_by_default"
|
|
|
|
|
---| "input.off_window_axis_events"
|
|
|
|
|
---| "input.repeat_delay"
|
|
|
|
|
---| "input.repeat_rate"
|
|
|
|
|
---| "input.resolve_binds_by_sym"
|
|
|
|
|
---| "input.rotation"
|
|
|
|
|
---| "input.scroll_button"
|
|
|
|
|
---| "input.scroll_button_lock"
|
|
|
|
|
---| "input.scroll_factor"
|
|
|
|
|
---| "input.scroll_method"
|
|
|
|
|
---| "input.scroll_points"
|
|
|
|
|
---| "input.sensitivity"
|
|
|
|
|
---| "input.special_fallthrough"
|
|
|
|
|
---| "input.tablet.absolute_region_position"
|
|
|
|
|
---| "input.tablet.active_area_position"
|
|
|
|
|
---| "input.tablet.active_area_size"
|
|
|
|
|
---| "input.tablet.left_handed"
|
|
|
|
|
---| "input.tablet.output"
|
|
|
|
|
---| "input.tablet.region_position"
|
|
|
|
|
---| "input.tablet.region_size"
|
|
|
|
|
---| "input.tablet.relative_input"
|
|
|
|
|
---| "input.tablet.transform"
|
|
|
|
|
---| "input.touchdevice.enabled"
|
|
|
|
|
---| "input.touchdevice.output"
|
|
|
|
|
---| "input.touchdevice.transform"
|
|
|
|
|
---| "input.touchpad.clickfinger_behavior"
|
|
|
|
|
---| "input.touchpad.disable_while_typing"
|
|
|
|
|
---| "input.touchpad.drag_3fg"
|
|
|
|
|
---| "input.touchpad.drag_lock"
|
|
|
|
|
---| "input.touchpad.flip_x"
|
|
|
|
|
---| "input.touchpad.flip_y"
|
|
|
|
|
---| "input.touchpad.middle_button_emulation"
|
|
|
|
|
---| "input.touchpad.natural_scroll"
|
|
|
|
|
---| "input.touchpad.scroll_factor"
|
|
|
|
|
---| "input.touchpad.tap_and_drag"
|
|
|
|
|
---| "input.touchpad.tap_button_map"
|
|
|
|
|
---| "input.touchpad.tap_to_click"
|
|
|
|
|
---| "input.virtualkeyboard.release_pressed_on_close"
|
|
|
|
|
---| "input.virtualkeyboard.share_states"
|
|
|
|
|
---| "layout.single_window_aspect_ratio"
|
|
|
|
|
---| "layout.single_window_aspect_ratio_tolerance"
|
|
|
|
|
---| "master.allow_small_split"
|
|
|
|
|
---| "master.always_keep_position"
|
|
|
|
|
---| "master.center_ignores_reserved"
|
|
|
|
|
---| "master.center_master_fallback"
|
|
|
|
|
---| "master.drop_at_cursor"
|
|
|
|
|
---| "master.mfact"
|
|
|
|
|
---| "master.new_on_active"
|
|
|
|
|
---| "master.new_on_top"
|
|
|
|
|
---| "master.new_status"
|
|
|
|
|
---| "master.orientation"
|
|
|
|
|
---| "master.slave_count_for_center_master"
|
|
|
|
|
---| "master.smart_resizing"
|
|
|
|
|
---| "master.special_scale_factor"
|
|
|
|
|
---| "misc.allow_session_lock_restore"
|
|
|
|
|
---| "misc.always_follow_on_dnd"
|
|
|
|
|
---| "misc.animate_manual_resizes"
|
|
|
|
|
---| "misc.animate_mouse_windowdragging"
|
|
|
|
|
---| "misc.anr_missed_pings"
|
|
|
|
|
---| "misc.background_color"
|
|
|
|
|
---| "misc.close_special_on_empty"
|
|
|
|
|
---| "misc.col.splash"
|
|
|
|
|
---| "misc.disable_autoreload"
|
|
|
|
|
---| "misc.disable_hyprland_guiutils_check"
|
|
|
|
|
---| "misc.disable_hyprland_logo"
|
|
|
|
|
---| "misc.disable_scale_notification"
|
|
|
|
|
---| "misc.disable_splash_rendering"
|
|
|
|
|
---| "misc.disable_watchdog_warning"
|
|
|
|
|
---| "misc.disable_xdg_env_checks"
|
|
|
|
|
---| "misc.enable_anr_dialog"
|
|
|
|
|
---| "misc.enable_swallow"
|
|
|
|
|
---| "misc.exit_window_retains_fullscreen"
|
|
|
|
|
---| "misc.focus_on_activate"
|
|
|
|
|
---| "misc.font_family"
|
|
|
|
|
---| "misc.force_default_wallpaper"
|
|
|
|
|
---| "misc.initial_workspace_tracking"
|
|
|
|
|
---| "misc.key_press_enables_dpms"
|
|
|
|
|
---| "misc.layers_hog_keyboard_focus"
|
|
|
|
|
---| "misc.lockdead_screen_delay"
|
|
|
|
|
---| "misc.middle_click_paste"
|
|
|
|
|
---| "misc.mouse_move_enables_dpms"
|
|
|
|
|
---| "misc.mouse_move_focuses_monitor"
|
|
|
|
|
---| "misc.name_vk_after_proc"
|
|
|
|
|
---| "misc.on_focus_under_fullscreen"
|
|
|
|
|
---| "misc.render_unfocused_fps"
|
|
|
|
|
---| "misc.screencopy_force_8b"
|
|
|
|
|
---| "misc.session_lock_xray"
|
|
|
|
|
---| "misc.size_limits_tiled"
|
|
|
|
|
---| "misc.splash_font_family"
|
|
|
|
|
---| "misc.swallow_exception_regex"
|
|
|
|
|
---| "misc.swallow_regex"
|
|
|
|
|
---| "misc.vrr"
|
|
|
|
|
---| "opengl.nvidia_anti_flicker"
|
|
|
|
|
---| "quirks.prefer_hdr"
|
|
|
|
|
---| "quirks.skip_non_kms_dmabuf_formats"
|
|
|
|
|
---| "render.cm_auto_hdr"
|
|
|
|
|
---| "render.cm_enabled"
|
|
|
|
|
---| "render.cm_sdr_eotf"
|
|
|
|
|
---| "render.commit_timing_enabled"
|
|
|
|
|
---| "render.ctm_animation"
|
|
|
|
|
---| "render.direct_scanout"
|
|
|
|
|
---| "render.expand_undersized_textures"
|
|
|
|
|
---| "render.icc_vcgt_enabled"
|
|
|
|
|
---| "render.keep_unmodified_copy"
|
|
|
|
|
---| "render.new_render_scheduling"
|
|
|
|
|
---| "render.non_shader_cm"
|
|
|
|
|
---| "render.non_shader_cm_interop"
|
|
|
|
|
---| "render.send_content_type"
|
|
|
|
|
---| "render.use_fp16"
|
|
|
|
|
---| "render.use_shader_blur_blend"
|
|
|
|
|
---| "render.xp_mode"
|
|
|
|
|
---| "scrolling.column_width"
|
|
|
|
|
---| "scrolling.direction"
|
|
|
|
|
---| "scrolling.explicit_column_widths"
|
|
|
|
|
---| "scrolling.focus_fit_method"
|
|
|
|
|
---| "scrolling.follow_focus"
|
|
|
|
|
---| "scrolling.follow_min_visible"
|
|
|
|
|
---| "scrolling.fullscreen_on_one_column"
|
|
|
|
|
---| "scrolling.wrap_focus"
|
|
|
|
|
---| "scrolling.wrap_swapcol"
|
|
|
|
|
---| "xwayland.create_abstract_socket"
|
|
|
|
|
---| "xwayland.enabled"
|
|
|
|
|
---| "xwayland.force_zero_scaling"
|
|
|
|
|
---| "xwayland.use_nearest_neighbor"
|
|
|
|
|
|
|
|
|
|
---@alias HL.MonitorSelector string|integer|HL.Monitor
|
|
|
|
|
---@alias HL.WorkspaceSelector string|integer|HL.Workspace
|
|
|
|
|
---@alias HL.WindowSelector string|integer|HL.Window
|
|
|
|
|
---@alias HL.Vec2Like HL.Vec2|{x:number, y:number}|{number, number}|string
|
|
|
|
|
---@alias HL.CssGap integer|{top?:integer, right?:integer, bottom?:integer, left?:integer}
|
|
|
|
|
---@alias HL.Gradient string|{colors:string[], angle?:number}
|
|
|
|
|
|
2026-05-03 15:41:44 +01:00
|
|
|
---@class HL.Dispatcher
|
|
|
|
|
local __HL_Dispatcher = {}
|
|
|
|
|
|
2026-04-26 15:16:36 +01:00
|
|
|
---@class HL.Vec2
|
|
|
|
|
---@field x number
|
|
|
|
|
---@field y number
|
|
|
|
|
local __HL_Vec2 = {}
|
|
|
|
|
|
2026-05-06 13:56:12 +01:00
|
|
|
---@class HL.Box
|
|
|
|
|
---@field x number
|
|
|
|
|
---@field y number
|
|
|
|
|
---@field w number
|
|
|
|
|
---@field h number
|
|
|
|
|
local __HL_Box = {}
|
|
|
|
|
|
|
|
|
|
---@class HL.LayoutTarget
|
|
|
|
|
---@field index integer
|
|
|
|
|
---@field window HL.Window|nil
|
|
|
|
|
---@field box HL.Box
|
|
|
|
|
---@field place fun(self: HL.LayoutTarget, box: HL.Box): nil
|
|
|
|
|
---@field set_box fun(self: HL.LayoutTarget, box: HL.Box): nil
|
|
|
|
|
local __HL_LayoutTarget = {}
|
|
|
|
|
|
|
|
|
|
---@class HL.LayoutContext
|
|
|
|
|
---@field area HL.Box
|
|
|
|
|
---@field targets HL.LayoutTarget[]
|
|
|
|
|
---@field grid_cell fun(self: HL.LayoutContext, i: integer, cols: integer, rows?: integer): HL.Box
|
|
|
|
|
---@field column fun(self: HL.LayoutContext, i: integer, n: integer): HL.Box
|
|
|
|
|
---@field row fun(self: HL.LayoutContext, i: integer, n: integer): HL.Box
|
|
|
|
|
---@field split fun(self: HL.LayoutContext, box: HL.Box, side: 'left'|'right'|'top'|'bottom'|'up'|'down', ratio: number): HL.Box
|
|
|
|
|
local __HL_LayoutContext = {}
|
|
|
|
|
|
|
|
|
|
---@class HL.LayoutProvider
|
|
|
|
|
---@field recalculate fun(ctx: HL.LayoutContext): nil
|
|
|
|
|
---@field layout_msg? fun(ctx: HL.LayoutContext, msg: string): boolean|string|nil
|
|
|
|
|
local __HL_LayoutProvider = {}
|
|
|
|
|
|
2026-04-26 15:16:36 +01:00
|
|
|
---@class HL.BindOptions
|
|
|
|
|
---@field repeating? boolean
|
|
|
|
|
---@field locked? boolean
|
|
|
|
|
---@field release? boolean
|
|
|
|
|
---@field non_consuming? boolean
|
|
|
|
|
---@field transparent? boolean
|
|
|
|
|
---@field ignore_mods? boolean
|
|
|
|
|
---@field dont_inhibit? boolean
|
|
|
|
|
---@field long_press? boolean
|
|
|
|
|
---@field submap_universal? boolean
|
|
|
|
|
---@field click? boolean
|
|
|
|
|
---@field drag? boolean
|
|
|
|
|
---@field description? string
|
|
|
|
|
---@field desc? string
|
|
|
|
|
---@field device? {inclusive?: boolean, list?: string[]}
|
|
|
|
|
local __HL_BindOptions = {}
|
|
|
|
|
|
|
|
|
|
---@class HL.TimerOptions
|
|
|
|
|
---@field timeout integer
|
|
|
|
|
---@field type "repeat"|"oneshot"
|
|
|
|
|
local __HL_TimerOptions = {}
|
|
|
|
|
|
|
|
|
|
---@class HL.GestureSpec
|
|
|
|
|
---@field fingers integer
|
|
|
|
|
---@field direction string
|
|
|
|
|
---@field action string
|
|
|
|
|
---@field mods? string
|
|
|
|
|
---@field scale? number
|
2026-04-28 18:08:14 +01:00
|
|
|
---@field mode? string
|
|
|
|
|
---@field zoom_level? number
|
|
|
|
|
---@field workspace_name? string
|
2026-04-26 15:16:36 +01:00
|
|
|
---@field disable_inhibit? boolean
|
|
|
|
|
local __HL_GestureSpec = {}
|
|
|
|
|
|
|
|
|
|
---@class HL.PermissionSpec
|
|
|
|
|
---@field binary string
|
|
|
|
|
---@field type string
|
|
|
|
|
---@field allow string
|
|
|
|
|
local __HL_PermissionSpec = {}
|
|
|
|
|
|
|
|
|
|
---@class HL.NotificationOptions
|
|
|
|
|
---@field color? string
|
|
|
|
|
---@field timeout? number
|
|
|
|
|
---@field icon? integer
|
|
|
|
|
---@field font_size? number
|
|
|
|
|
local __HL_NotificationOptions = {}
|
|
|
|
|
|
|
|
|
|
---@class HL.LayerQueryFilter
|
|
|
|
|
---@field monitor? HL.MonitorSelector
|
|
|
|
|
---@field namespace? string
|
|
|
|
|
local __HL_LayerQueryFilter = {}
|
|
|
|
|
|
|
|
|
|
---@class HL.WindowQueryFilter
|
|
|
|
|
---@field class? string
|
|
|
|
|
---@field floating? boolean
|
|
|
|
|
---@field mapped? boolean
|
|
|
|
|
---@field monitor? HL.MonitorSelector
|
|
|
|
|
---@field tag? string
|
|
|
|
|
---@field title? string
|
|
|
|
|
---@field workspace? HL.WorkspaceSelector
|
|
|
|
|
local __HL_WindowQueryFilter = {}
|
|
|
|
|
|
|
|
|
|
---@class HL.DeviceSpec
|
|
|
|
|
---@field absolute_region_position? boolean
|
|
|
|
|
---@field accel_profile? string
|
|
|
|
|
---@field active_area_position? HL.Vec2Like
|
|
|
|
|
---@field active_area_size? HL.Vec2Like
|
|
|
|
|
---@field clickfinger_behavior? boolean
|
|
|
|
|
---@field disable_while_typing? boolean
|
|
|
|
|
---@field drag_3fg? integer|boolean
|
|
|
|
|
---@field drag_lock? integer|boolean
|
|
|
|
|
---@field enabled? boolean
|
|
|
|
|
---@field flip_x? boolean
|
|
|
|
|
---@field flip_y? boolean
|
|
|
|
|
---@field kb_file? string
|
|
|
|
|
---@field kb_layout? string
|
|
|
|
|
---@field kb_model? string
|
|
|
|
|
---@field kb_options? string
|
|
|
|
|
---@field kb_rules? string
|
|
|
|
|
---@field kb_variant? string
|
|
|
|
|
---@field keybinds? boolean
|
|
|
|
|
---@field left_handed? boolean
|
|
|
|
|
---@field middle_button_emulation? boolean
|
|
|
|
|
---@field name string
|
|
|
|
|
---@field natural_scroll? boolean
|
|
|
|
|
---@field numlock_by_default? boolean
|
|
|
|
|
---@field output? string
|
|
|
|
|
---@field region_position? HL.Vec2Like
|
|
|
|
|
---@field region_size? HL.Vec2Like
|
|
|
|
|
---@field relative_input? boolean
|
|
|
|
|
---@field release_pressed_on_close? boolean
|
|
|
|
|
---@field repeat_delay? integer|boolean
|
|
|
|
|
---@field repeat_rate? integer|boolean
|
|
|
|
|
---@field resolve_binds_by_sym? boolean
|
|
|
|
|
---@field rotation? integer|boolean
|
|
|
|
|
---@field scroll_button? integer|boolean
|
|
|
|
|
---@field scroll_button_lock? boolean
|
|
|
|
|
---@field scroll_factor? number|boolean
|
|
|
|
|
---@field scroll_method? string
|
|
|
|
|
---@field scroll_points? string
|
|
|
|
|
---@field sensitivity? number|boolean
|
|
|
|
|
---@field share_states? integer|boolean
|
2026-05-06 01:30:19 +10:00
|
|
|
---@field tags? string
|
2026-04-26 15:16:36 +01:00
|
|
|
---@field tap_and_drag? boolean
|
|
|
|
|
---@field tap_button_map? string
|
|
|
|
|
---@field tap_to_click? boolean
|
|
|
|
|
---@field transform? integer|boolean
|
|
|
|
|
local __HL_DeviceSpec = {}
|
|
|
|
|
|
|
|
|
|
---@class HL.LayerRuleSpec
|
|
|
|
|
---@field above_lock? integer|boolean
|
|
|
|
|
---@field animation? string
|
|
|
|
|
---@field blur? boolean
|
|
|
|
|
---@field blur_popups? boolean
|
|
|
|
|
---@field dim_around? boolean
|
|
|
|
|
---@field enabled? boolean
|
|
|
|
|
---@field ignore_alpha? number|boolean
|
|
|
|
|
---@field match? table<string, string|boolean>
|
|
|
|
|
---@field name? string
|
|
|
|
|
---@field no_anim? boolean
|
|
|
|
|
---@field no_screen_share? boolean
|
|
|
|
|
---@field order? integer|boolean
|
|
|
|
|
---@field xray? boolean
|
|
|
|
|
local __HL_LayerRuleSpec = {}
|
|
|
|
|
|
|
|
|
|
---@class HL.MonitorSpec
|
|
|
|
|
---@field bitdepth? integer|boolean
|
|
|
|
|
---@field cm? string
|
|
|
|
|
---@field disabled? boolean
|
|
|
|
|
---@field icc? string
|
|
|
|
|
---@field max_avg_luminance? integer|boolean
|
|
|
|
|
---@field max_luminance? integer|boolean
|
|
|
|
|
---@field min_luminance? number|boolean
|
|
|
|
|
---@field mirror? string
|
|
|
|
|
---@field mode? string
|
|
|
|
|
---@field output string
|
|
|
|
|
---@field position? string
|
|
|
|
|
---@field reserved? integer|HL.CssGap
|
|
|
|
|
---@field reserved_area? integer|HL.CssGap
|
|
|
|
|
---@field scale? string
|
|
|
|
|
---@field sdr_eotf? string
|
|
|
|
|
---@field sdr_max_luminance? integer|boolean
|
|
|
|
|
---@field sdr_min_luminance? number|boolean
|
|
|
|
|
---@field sdrbrightness? number|boolean
|
|
|
|
|
---@field sdrsaturation? number|boolean
|
|
|
|
|
---@field supports_hdr? integer|boolean
|
|
|
|
|
---@field supports_wide_color? integer|boolean
|
|
|
|
|
---@field transform? integer|boolean
|
|
|
|
|
---@field vrr? integer|boolean
|
|
|
|
|
local __HL_MonitorSpec = {}
|
|
|
|
|
|
|
|
|
|
---@class HL.WindowRuleSpec
|
|
|
|
|
---@field enabled? boolean
|
|
|
|
|
---@field match? table<string, string|number|boolean>
|
|
|
|
|
---@field name? string
|
|
|
|
|
local __HL_WindowRuleSpec = {}
|
|
|
|
|
|
|
|
|
|
---@class HL.WorkspaceRuleSpec
|
|
|
|
|
---@field animation? string
|
|
|
|
|
---@field border_size? integer|boolean
|
|
|
|
|
---@field decorate? boolean
|
|
|
|
|
---@field default? boolean
|
|
|
|
|
---@field default_name? string
|
|
|
|
|
---@field enabled? boolean
|
|
|
|
|
---@field float_gaps? integer|HL.CssGap
|
|
|
|
|
---@field gaps_in? integer|HL.CssGap
|
|
|
|
|
---@field gaps_out? integer|HL.CssGap
|
|
|
|
|
---@field layout? string
|
|
|
|
|
---@field layout_opts? table<string, string|number|boolean>
|
|
|
|
|
---@field monitor? string
|
|
|
|
|
---@field no_border? boolean
|
|
|
|
|
---@field no_rounding? boolean
|
|
|
|
|
---@field no_shadow? boolean
|
|
|
|
|
---@field on_created_empty? string
|
|
|
|
|
---@field persistent? boolean
|
|
|
|
|
---@field workspace string
|
|
|
|
|
local __HL_WorkspaceRuleSpec = {}
|
|
|
|
|
|
|
|
|
|
---@class HL.EventSubscription
|
|
|
|
|
---@field is_active fun(self: HL.EventSubscription, ...): any
|
|
|
|
|
---@field remove fun(self: HL.EventSubscription, ...): any
|
|
|
|
|
local __HL_EventSubscription = {}
|
|
|
|
|
|
2026-04-30 02:43:15 +05:30
|
|
|
---@class HL.Group
|
|
|
|
|
---@field current HL.Window|nil
|
|
|
|
|
---@field current_index integer
|
|
|
|
|
---@field denied boolean
|
|
|
|
|
---@field locked boolean
|
|
|
|
|
---@field members HL.Window|table|nil
|
|
|
|
|
---@field size integer
|
|
|
|
|
local __HL_Group = {}
|
|
|
|
|
|
2026-04-26 15:16:36 +01:00
|
|
|
---@class HL.Keybind
|
|
|
|
|
---@field is_enabled fun(self: HL.Keybind, ...): any
|
|
|
|
|
---@field remove fun(self: HL.Keybind, ...): any
|
|
|
|
|
---@field set_enabled fun(self: HL.Keybind, ...): any
|
|
|
|
|
---@field unbind fun(self: HL.Keybind, ...): any
|
|
|
|
|
---@field arg string
|
2026-04-30 11:59:03 +00:00
|
|
|
---@field auto_consuming boolean
|
2026-04-26 15:16:36 +01:00
|
|
|
---@field catchall boolean
|
|
|
|
|
---@field click boolean
|
|
|
|
|
---@field description any
|
|
|
|
|
---@field device_inclusive boolean
|
|
|
|
|
---@field devices nil
|
|
|
|
|
---@field display_key string
|
|
|
|
|
---@field dont_inhibit boolean
|
|
|
|
|
---@field drag boolean
|
|
|
|
|
---@field enabled boolean
|
|
|
|
|
---@field handler string
|
|
|
|
|
---@field has_description boolean
|
|
|
|
|
---@field ignore_mods boolean
|
|
|
|
|
---@field key string
|
|
|
|
|
---@field keycode integer
|
|
|
|
|
---@field locked boolean
|
|
|
|
|
---@field long_press boolean
|
|
|
|
|
---@field modmask integer
|
|
|
|
|
---@field mouse boolean
|
|
|
|
|
---@field non_consuming boolean
|
|
|
|
|
---@field release boolean
|
|
|
|
|
---@field repeating boolean
|
|
|
|
|
---@field submap string
|
|
|
|
|
---@field submap_universal boolean
|
|
|
|
|
---@field transparent boolean
|
|
|
|
|
local __HL_Keybind = {}
|
|
|
|
|
|
|
|
|
|
---@class HL.LayerRule
|
|
|
|
|
---@field is_enabled fun(self: HL.LayerRule, ...): any
|
|
|
|
|
---@field set_enabled fun(self: HL.LayerRule, ...): any
|
|
|
|
|
local __HL_LayerRule = {}
|
|
|
|
|
|
|
|
|
|
---@class HL.LayerSurface
|
|
|
|
|
---@field above_fullscreen boolean|nil
|
|
|
|
|
---@field address string
|
|
|
|
|
---@field h integer
|
|
|
|
|
---@field interactivity integer
|
|
|
|
|
---@field layer integer
|
|
|
|
|
---@field mapped boolean
|
|
|
|
|
---@field monitor HL.Monitor|nil
|
|
|
|
|
---@field namespace string
|
|
|
|
|
---@field pid integer
|
|
|
|
|
---@field w integer
|
|
|
|
|
---@field x integer
|
|
|
|
|
---@field y integer
|
|
|
|
|
local __HL_LayerSurface = {}
|
|
|
|
|
|
|
|
|
|
---@class HL.Monitor
|
|
|
|
|
---@field active_special_workspace HL.Workspace|nil
|
|
|
|
|
---@field active_workspace HL.Workspace|nil
|
|
|
|
|
---@field description string
|
|
|
|
|
---@field dpms_status boolean
|
|
|
|
|
---@field focused boolean|nil
|
|
|
|
|
---@field height integer
|
|
|
|
|
---@field id integer
|
|
|
|
|
---@field is_mirror boolean
|
|
|
|
|
---@field mirrors HL.Monitor|table
|
|
|
|
|
---@field name string
|
|
|
|
|
---@field position integer|table
|
|
|
|
|
---@field refresh_rate number
|
|
|
|
|
---@field scale number
|
|
|
|
|
---@field size integer|table
|
|
|
|
|
---@field transform integer
|
|
|
|
|
---@field vrr_active boolean
|
|
|
|
|
---@field width integer
|
|
|
|
|
---@field x integer
|
|
|
|
|
---@field y integer
|
|
|
|
|
local __HL_Monitor = {}
|
|
|
|
|
|
|
|
|
|
---@class HL.Notification
|
|
|
|
|
---@field dismiss fun(self: HL.Notification, ...): any
|
|
|
|
|
---@field get_color fun(self: HL.Notification, ...): any
|
|
|
|
|
---@field get_elapsed fun(self: HL.Notification, ...): any
|
|
|
|
|
---@field get_elapsed_since_creation fun(self: HL.Notification, ...): any
|
|
|
|
|
---@field get_font_size fun(self: HL.Notification, ...): any
|
|
|
|
|
---@field get_icon fun(self: HL.Notification, ...): any
|
|
|
|
|
---@field get_text fun(self: HL.Notification, ...): any
|
|
|
|
|
---@field get_timeout fun(self: HL.Notification, ...): any
|
|
|
|
|
---@field is_alive fun(self: HL.Notification, ...): any
|
|
|
|
|
---@field is_paused fun(self: HL.Notification, ...): any
|
|
|
|
|
---@field pause fun(self: HL.Notification, ...): any
|
|
|
|
|
---@field resume fun(self: HL.Notification, ...): any
|
|
|
|
|
---@field set_color fun(self: HL.Notification, ...): any
|
|
|
|
|
---@field set_font_size fun(self: HL.Notification, ...): any
|
|
|
|
|
---@field set_icon fun(self: HL.Notification, ...): any
|
|
|
|
|
---@field set_paused fun(self: HL.Notification, ...): any
|
|
|
|
|
---@field set_text fun(self: HL.Notification, ...): any
|
|
|
|
|
---@field set_timeout fun(self: HL.Notification, ...): any
|
|
|
|
|
local __HL_Notification = {}
|
|
|
|
|
|
|
|
|
|
---@class HL.Timer
|
|
|
|
|
---@field is_enabled fun(self: HL.Timer, ...): any
|
|
|
|
|
---@field set_enabled fun(self: HL.Timer, ...): any
|
|
|
|
|
---@field set_timeout fun(self: HL.Timer, ...): any
|
|
|
|
|
local __HL_Timer = {}
|
|
|
|
|
|
|
|
|
|
---@class HL.Window
|
2026-04-30 19:53:51 +08:00
|
|
|
---@field accepts_input boolean
|
2026-04-26 15:16:36 +01:00
|
|
|
---@field active boolean|nil
|
|
|
|
|
---@field address string
|
|
|
|
|
---@field at integer|table
|
|
|
|
|
---@field class string
|
|
|
|
|
---@field content_type string
|
|
|
|
|
---@field floating boolean
|
|
|
|
|
---@field focus_history_id integer
|
|
|
|
|
---@field fullscreen integer
|
|
|
|
|
---@field fullscreen_client integer
|
2026-04-30 02:43:15 +05:30
|
|
|
---@field group HL.Group|nil
|
2026-04-26 15:16:36 +01:00
|
|
|
---@field hidden boolean
|
|
|
|
|
---@field inhibiting_idle boolean
|
|
|
|
|
---@field initial_class string
|
|
|
|
|
---@field initial_title string
|
|
|
|
|
---@field layout HL.Window|boolean|integer|number|string|table|nil
|
|
|
|
|
---@field mapped boolean
|
|
|
|
|
---@field monitor HL.Monitor|nil
|
|
|
|
|
---@field over_fullscreen boolean
|
|
|
|
|
---@field pid integer
|
|
|
|
|
---@field pinned boolean
|
|
|
|
|
---@field size integer|table
|
|
|
|
|
---@field stable_id integer
|
|
|
|
|
---@field swallowing HL.Window|nil
|
|
|
|
|
---@field tags string|table
|
|
|
|
|
---@field title string
|
2026-04-29 17:25:21 +01:00
|
|
|
---@field visible boolean
|
2026-04-26 15:16:36 +01:00
|
|
|
---@field workspace HL.Workspace|nil
|
|
|
|
|
---@field xdg_description string|nil
|
|
|
|
|
---@field xdg_tag string|nil
|
|
|
|
|
---@field xwayland boolean
|
|
|
|
|
local __HL_Window = {}
|
|
|
|
|
|
|
|
|
|
---@class HL.WindowRule
|
|
|
|
|
---@field is_enabled fun(self: HL.WindowRule, ...): any
|
|
|
|
|
---@field set_enabled fun(self: HL.WindowRule, ...): any
|
|
|
|
|
local __HL_WindowRule = {}
|
|
|
|
|
|
|
|
|
|
---@class HL.Workspace
|
2026-04-30 02:43:15 +05:30
|
|
|
---@field get_groups fun(self: HL.Workspace, ...): any
|
|
|
|
|
---@field get_windows fun(self: HL.Workspace, ...): any
|
2026-04-26 15:16:36 +01:00
|
|
|
---@field active boolean
|
2026-04-30 02:43:15 +05:30
|
|
|
---@field config_name string
|
2026-04-26 15:16:36 +01:00
|
|
|
---@field fullscreen_mode integer
|
2026-04-30 02:43:15 +05:30
|
|
|
---@field fullscreen_window HL.Window|nil
|
|
|
|
|
---@field groups integer|nil
|
2026-04-26 15:16:36 +01:00
|
|
|
---@field has_fullscreen boolean
|
|
|
|
|
---@field has_urgent boolean
|
|
|
|
|
---@field id integer
|
2026-04-30 02:43:15 +05:30
|
|
|
---@field is_empty boolean
|
|
|
|
|
---@field is_persistent boolean
|
|
|
|
|
---@field last_window HL.Window|nil
|
2026-04-26 15:16:36 +01:00
|
|
|
---@field monitor HL.Monitor|nil
|
|
|
|
|
---@field name string
|
|
|
|
|
---@field special boolean
|
2026-04-30 02:43:15 +05:30
|
|
|
---@field tiled_layout string
|
2026-04-26 15:16:36 +01:00
|
|
|
---@field visible boolean
|
|
|
|
|
---@field windows integer
|
|
|
|
|
local __HL_Workspace = {}
|
|
|
|
|
|
|
|
|
|
---@class HL.API
|
|
|
|
|
---@field animation fun(...): any
|
2026-05-03 15:41:44 +01:00
|
|
|
---@field bind fun(keys: string, dispatcher: HL.Dispatcher|function, opts?: HL.BindOptions): HL.Keybind
|
2026-04-26 15:16:36 +01:00
|
|
|
---@field config fun(config: table): nil
|
|
|
|
|
---@field curve fun(...): any
|
|
|
|
|
---@field define_submap fun(name: string, reset_or_fn: string|function, fn?: function): nil
|
|
|
|
|
---@field device fun(spec: HL.DeviceSpec): nil
|
2026-05-03 15:41:44 +01:00
|
|
|
---@field dispatch fun(dispatcher: HL.Dispatcher|function): any
|
2026-04-26 15:16:36 +01:00
|
|
|
---@field env fun(...): any
|
|
|
|
|
---@field exec_cmd fun(cmd: string, rules?: table<string, string|number|boolean>): nil
|
|
|
|
|
---@field gesture fun(spec: HL.GestureSpec): nil
|
|
|
|
|
---@field get_active_monitor fun(): HL.Monitor|nil
|
|
|
|
|
---@field get_active_special_workspace fun(monitor?: HL.MonitorSelector): HL.Workspace|nil
|
|
|
|
|
---@field get_active_window fun(): HL.Window|nil
|
|
|
|
|
---@field get_active_workspace fun(monitor?: HL.MonitorSelector): HL.Workspace|nil
|
|
|
|
|
---@field get_config fun(key: HL.ConfigKey|string): any, string?
|
|
|
|
|
---@field get_current_submap fun(): string
|
|
|
|
|
---@field get_cursor_pos fun(): HL.Vec2|nil
|
|
|
|
|
---@field get_last_window fun(): HL.Window|nil
|
|
|
|
|
---@field get_last_workspace fun(monitor?: HL.MonitorSelector): HL.Workspace|nil
|
|
|
|
|
---@field get_layers fun(filters?: HL.LayerQueryFilter): HL.LayerSurface[]
|
|
|
|
|
---@field get_monitor fun(selector: HL.MonitorSelector): HL.Monitor|nil
|
|
|
|
|
---@field get_monitor_at fun(x: number|HL.Vec2, y?: number): HL.Monitor|nil
|
|
|
|
|
---@field get_monitor_at_cursor fun(): HL.Monitor|nil
|
|
|
|
|
---@field get_monitors fun(): HL.Monitor[]
|
|
|
|
|
---@field get_urgent_window fun(): HL.Window|nil
|
|
|
|
|
---@field get_window fun(selector: HL.WindowSelector): HL.Window|nil
|
|
|
|
|
---@field get_windows fun(filters?: HL.WindowQueryFilter): HL.Window[]
|
|
|
|
|
---@field get_workspace fun(selector: HL.WorkspaceSelector): HL.Workspace|nil
|
|
|
|
|
---@field get_workspace_windows fun(workspace: HL.WorkspaceSelector): HL.Window[]
|
|
|
|
|
---@field get_workspaces fun(): HL.Workspace[]
|
|
|
|
|
---@field layer_rule fun(spec: HL.LayerRuleSpec): HL.LayerRule
|
|
|
|
|
---@field monitor fun(spec: HL.MonitorSpec): nil
|
|
|
|
|
---@field on fun(event: HL.EventName, cb: fun(...)): HL.EventSubscription
|
|
|
|
|
---@field permission fun(spec: HL.PermissionSpec): nil
|
|
|
|
|
---@field timer fun(callback: function, opts: HL.TimerOptions): HL.Timer
|
|
|
|
|
---@field unbind fun(...): any
|
|
|
|
|
---@field version fun(...): any
|
|
|
|
|
---@field window_rule fun(spec: HL.WindowRuleSpec): HL.WindowRule
|
|
|
|
|
---@field workspace_rule fun(spec: HL.WorkspaceRuleSpec): nil
|
|
|
|
|
---@field dsp HL.DspNamespace
|
2026-05-06 13:56:12 +01:00
|
|
|
---@field layout HL.LayoutNamespace
|
2026-04-26 15:16:36 +01:00
|
|
|
---@field notification HL.NotificationNamespace
|
|
|
|
|
---@field plugin HL.PluginNamespace
|
|
|
|
|
local __HL_API = {}
|
|
|
|
|
|
|
|
|
|
---@class HL.DspNamespace
|
2026-05-03 15:41:44 +01:00
|
|
|
---@field dpms fun(...): HL.Dispatcher
|
|
|
|
|
---@field event fun(...): HL.Dispatcher
|
|
|
|
|
---@field exec_cmd fun(...): HL.Dispatcher
|
|
|
|
|
---@field exec_raw fun(...): HL.Dispatcher
|
|
|
|
|
---@field exit fun(...): HL.Dispatcher
|
|
|
|
|
---@field focus fun(...): HL.Dispatcher
|
|
|
|
|
---@field force_idle fun(...): HL.Dispatcher
|
|
|
|
|
---@field force_renderer_reload fun(...): HL.Dispatcher
|
|
|
|
|
---@field global fun(...): HL.Dispatcher
|
|
|
|
|
---@field layout fun(...): HL.Dispatcher
|
|
|
|
|
---@field no_op fun(...): HL.Dispatcher
|
|
|
|
|
---@field pass fun(...): HL.Dispatcher
|
|
|
|
|
---@field send_key_state fun(...): HL.Dispatcher
|
|
|
|
|
---@field send_shortcut fun(...): HL.Dispatcher
|
|
|
|
|
---@field submap fun(...): HL.Dispatcher
|
2026-04-26 15:16:36 +01:00
|
|
|
---@field cursor HL.DspCursorNamespace
|
|
|
|
|
---@field group HL.DspGroupNamespace
|
|
|
|
|
---@field window HL.DspWindowNamespace
|
|
|
|
|
---@field workspace HL.DspWorkspaceNamespace
|
|
|
|
|
local __HL_DspNamespace = {}
|
|
|
|
|
|
|
|
|
|
---@class HL.DspCursorNamespace
|
2026-05-03 15:41:44 +01:00
|
|
|
---@field move fun(...): HL.Dispatcher
|
|
|
|
|
---@field move_to_corner fun(...): HL.Dispatcher
|
2026-04-26 15:16:36 +01:00
|
|
|
local __HL_DspCursorNamespace = {}
|
|
|
|
|
|
|
|
|
|
---@class HL.DspGroupNamespace
|
2026-05-03 15:41:44 +01:00
|
|
|
---@field active fun(...): HL.Dispatcher
|
|
|
|
|
---@field lock fun(...): HL.Dispatcher
|
|
|
|
|
---@field lock_active fun(...): HL.Dispatcher
|
|
|
|
|
---@field move_window fun(...): HL.Dispatcher
|
|
|
|
|
---@field next fun(...): HL.Dispatcher
|
|
|
|
|
---@field prev fun(...): HL.Dispatcher
|
|
|
|
|
---@field toggle fun(...): HL.Dispatcher
|
2026-04-26 15:16:36 +01:00
|
|
|
local __HL_DspGroupNamespace = {}
|
|
|
|
|
|
|
|
|
|
---@class HL.DspWindowNamespace
|
2026-05-03 15:41:44 +01:00
|
|
|
---@field alter_zorder fun(...): HL.Dispatcher
|
|
|
|
|
---@field bring_to_top fun(...): HL.Dispatcher
|
|
|
|
|
---@field center fun(...): HL.Dispatcher
|
2026-05-03 10:55:47 -07:00
|
|
|
---@field clear_tags fun(...): HL.Dispatcher
|
2026-05-03 15:41:44 +01:00
|
|
|
---@field close fun(...): HL.Dispatcher
|
|
|
|
|
---@field cycle_next fun(...): HL.Dispatcher
|
|
|
|
|
---@field deny_from_group fun(...): HL.Dispatcher
|
|
|
|
|
---@field drag fun(...): HL.Dispatcher
|
|
|
|
|
---@field float fun(...): HL.Dispatcher
|
|
|
|
|
---@field fullscreen fun(...): HL.Dispatcher
|
|
|
|
|
---@field fullscreen_state fun(...): HL.Dispatcher
|
|
|
|
|
---@field kill fun(...): HL.Dispatcher
|
|
|
|
|
---@field move fun(...): HL.Dispatcher
|
|
|
|
|
---@field pin fun(...): HL.Dispatcher
|
|
|
|
|
---@field pseudo fun(...): HL.Dispatcher
|
|
|
|
|
---@field resize fun(...): HL.Dispatcher
|
|
|
|
|
---@field set_prop fun(...): HL.Dispatcher
|
|
|
|
|
---@field signal fun(...): HL.Dispatcher
|
|
|
|
|
---@field swap fun(...): HL.Dispatcher
|
|
|
|
|
---@field tag fun(...): HL.Dispatcher
|
|
|
|
|
---@field toggle_swallow fun(...): HL.Dispatcher
|
2026-04-26 15:16:36 +01:00
|
|
|
local __HL_DspWindowNamespace = {}
|
|
|
|
|
|
|
|
|
|
---@class HL.DspWorkspaceNamespace
|
2026-05-03 15:41:44 +01:00
|
|
|
---@field move fun(...): HL.Dispatcher
|
|
|
|
|
---@field rename fun(...): HL.Dispatcher
|
|
|
|
|
---@field swap_monitors fun(...): HL.Dispatcher
|
|
|
|
|
---@field toggle_special fun(...): HL.Dispatcher
|
2026-04-26 15:16:36 +01:00
|
|
|
local __HL_DspWorkspaceNamespace = {}
|
|
|
|
|
|
2026-05-06 13:56:12 +01:00
|
|
|
---@class HL.LayoutNamespace
|
|
|
|
|
---@field register fun(name: string, provider: HL.LayoutProvider): nil
|
|
|
|
|
local __HL_LayoutNamespace = {}
|
|
|
|
|
|
2026-04-26 15:16:36 +01:00
|
|
|
---@class HL.NotificationNamespace
|
|
|
|
|
---@field create fun(opts?: HL.NotificationOptions): HL.Notification
|
|
|
|
|
---@field get fun(): HL.Notification[]
|
|
|
|
|
local __HL_NotificationNamespace = {}
|
|
|
|
|
|
|
|
|
|
---@class HL.PluginNamespace
|
|
|
|
|
---@field load fun(...): any
|
|
|
|
|
---@field [string] any
|
|
|
|
|
local __HL_PluginNamespace = {}
|
|
|
|
|
|
|
|
|
|
---@type HL.API
|
|
|
|
|
hl = {}
|
|
|
|
|
|
|
|
|
|
---@class HL.ConfigValueTypes
|
|
|
|
|
---@field ['animations.enabled'] boolean
|
|
|
|
|
---@field ['animations.workspace_wraparound'] boolean
|
|
|
|
|
---@field ['binds.allow_pin_fullscreen'] boolean
|
|
|
|
|
---@field ['binds.allow_workspace_cycles'] boolean
|
|
|
|
|
---@field ['binds.disable_keybind_grabbing'] boolean
|
|
|
|
|
---@field ['binds.drag_threshold'] integer|boolean
|
|
|
|
|
---@field ['binds.focus_preferred_method'] integer|boolean
|
|
|
|
|
---@field ['binds.hide_special_on_workspace_change'] boolean
|
|
|
|
|
---@field ['binds.ignore_group_lock'] boolean
|
|
|
|
|
---@field ['binds.movefocus_cycles_fullscreen'] boolean
|
|
|
|
|
---@field ['binds.movefocus_cycles_groupfirst'] boolean
|
|
|
|
|
---@field ['binds.pass_mouse_when_bound'] boolean
|
|
|
|
|
---@field ['binds.scroll_event_delay'] integer|boolean
|
|
|
|
|
---@field ['binds.window_direction_monitor_fallback'] boolean
|
|
|
|
|
---@field ['binds.workspace_back_and_forth'] boolean
|
|
|
|
|
---@field ['binds.workspace_center_on'] integer|boolean
|
|
|
|
|
---@field ['cursor.default_monitor'] string
|
|
|
|
|
---@field ['cursor.enable_hyprcursor'] boolean
|
|
|
|
|
---@field ['cursor.hide_on_key_press'] boolean
|
|
|
|
|
---@field ['cursor.hide_on_tablet'] boolean
|
|
|
|
|
---@field ['cursor.hide_on_touch'] boolean
|
|
|
|
|
---@field ['cursor.hotspot_padding'] integer|boolean
|
|
|
|
|
---@field ['cursor.inactive_timeout'] number|boolean
|
|
|
|
|
---@field ['cursor.invisible'] boolean
|
|
|
|
|
---@field ['cursor.min_refresh_rate'] integer|boolean
|
|
|
|
|
---@field ['cursor.no_break_fs_vrr'] integer|boolean
|
|
|
|
|
---@field ['cursor.no_hardware_cursors'] integer|boolean
|
|
|
|
|
---@field ['cursor.no_warps'] boolean
|
|
|
|
|
---@field ['cursor.persistent_warps'] boolean
|
|
|
|
|
---@field ['cursor.sync_gsettings_theme'] boolean
|
|
|
|
|
---@field ['cursor.use_cpu_buffer'] integer|boolean
|
|
|
|
|
---@field ['cursor.warp_back_after_non_mouse_input'] boolean
|
|
|
|
|
---@field ['cursor.warp_on_change_workspace'] integer|boolean
|
|
|
|
|
---@field ['cursor.warp_on_toggle_special'] integer|boolean
|
|
|
|
|
---@field ['cursor.zoom_detached_camera'] boolean
|
|
|
|
|
---@field ['cursor.zoom_disable_aa'] boolean
|
|
|
|
|
---@field ['cursor.zoom_factor'] number|boolean
|
|
|
|
|
---@field ['cursor.zoom_rigid'] boolean
|
|
|
|
|
---@field ['debug.colored_stdout_logs'] boolean
|
|
|
|
|
---@field ['debug.damage_blink'] boolean
|
|
|
|
|
---@field ['debug.damage_tracking'] integer|boolean
|
|
|
|
|
---@field ['debug.disable_logs'] boolean
|
|
|
|
|
---@field ['debug.disable_scale_checks'] boolean
|
|
|
|
|
---@field ['debug.disable_time'] boolean
|
|
|
|
|
---@field ['debug.ds_handle_same_buffer'] boolean
|
|
|
|
|
---@field ['debug.ds_handle_same_buffer_fifo'] boolean
|
|
|
|
|
---@field ['debug.enable_stdout_logs'] boolean
|
|
|
|
|
---@field ['debug.error_limit'] integer|boolean
|
|
|
|
|
---@field ['debug.error_position'] integer|boolean
|
|
|
|
|
---@field ['debug.fifo_pending_workaround'] boolean
|
|
|
|
|
---@field ['debug.full_cm_proto'] boolean
|
|
|
|
|
---@field ['debug.gl_debugging'] boolean
|
|
|
|
|
---@field ['debug.invalidate_fp16'] integer|boolean
|
|
|
|
|
---@field ['debug.log_damage'] boolean
|
|
|
|
|
---@field ['debug.manual_crash'] integer|boolean
|
|
|
|
|
---@field ['debug.overlay'] boolean
|
|
|
|
|
---@field ['debug.pass'] boolean
|
|
|
|
|
---@field ['debug.render_solitary_wo_damage'] boolean
|
|
|
|
|
---@field ['debug.suppress_errors'] boolean
|
|
|
|
|
---@field ['debug.vfr'] boolean
|
|
|
|
|
---@field ['decoration.active_opacity'] number|boolean
|
|
|
|
|
---@field ['decoration.blur.brightness'] number|boolean
|
|
|
|
|
---@field ['decoration.blur.contrast'] number|boolean
|
|
|
|
|
---@field ['decoration.blur.enabled'] boolean
|
|
|
|
|
---@field ['decoration.blur.ignore_opacity'] boolean
|
|
|
|
|
---@field ['decoration.blur.input_methods'] boolean
|
|
|
|
|
---@field ['decoration.blur.input_methods_ignorealpha'] number|boolean
|
|
|
|
|
---@field ['decoration.blur.new_optimizations'] boolean
|
|
|
|
|
---@field ['decoration.blur.noise'] number|boolean
|
|
|
|
|
---@field ['decoration.blur.passes'] integer|boolean
|
|
|
|
|
---@field ['decoration.blur.popups'] boolean
|
|
|
|
|
---@field ['decoration.blur.popups_ignorealpha'] number|boolean
|
|
|
|
|
---@field ['decoration.blur.size'] integer|boolean
|
|
|
|
|
---@field ['decoration.blur.special'] boolean
|
|
|
|
|
---@field ['decoration.blur.vibrancy'] number|boolean
|
|
|
|
|
---@field ['decoration.blur.vibrancy_darkness'] number|boolean
|
|
|
|
|
---@field ['decoration.blur.xray'] boolean
|
|
|
|
|
---@field ['decoration.border_part_of_window'] boolean
|
|
|
|
|
---@field ['decoration.dim_around'] number|boolean
|
|
|
|
|
---@field ['decoration.dim_inactive'] boolean
|
|
|
|
|
---@field ['decoration.dim_modal'] boolean
|
|
|
|
|
---@field ['decoration.dim_special'] number|boolean
|
|
|
|
|
---@field ['decoration.dim_strength'] number|boolean
|
|
|
|
|
---@field ['decoration.fullscreen_opacity'] number|boolean
|
|
|
|
|
---@field ['decoration.glow.color'] string
|
|
|
|
|
---@field ['decoration.glow.color_inactive'] string
|
|
|
|
|
---@field ['decoration.glow.enabled'] boolean
|
|
|
|
|
---@field ['decoration.glow.range'] integer|boolean
|
|
|
|
|
---@field ['decoration.glow.render_power'] integer|boolean
|
|
|
|
|
---@field ['decoration.inactive_opacity'] number|boolean
|
|
|
|
|
---@field ['decoration.rounding'] integer|boolean
|
|
|
|
|
---@field ['decoration.rounding_power'] number|boolean
|
|
|
|
|
---@field ['decoration.screen_shader'] string
|
|
|
|
|
---@field ['decoration.shadow.color'] string
|
|
|
|
|
---@field ['decoration.shadow.color_inactive'] string
|
|
|
|
|
---@field ['decoration.shadow.enabled'] boolean
|
|
|
|
|
---@field ['decoration.shadow.offset'] HL.Vec2Like
|
|
|
|
|
---@field ['decoration.shadow.range'] integer|boolean
|
|
|
|
|
---@field ['decoration.shadow.render_power'] integer|boolean
|
|
|
|
|
---@field ['decoration.shadow.scale'] number|boolean
|
|
|
|
|
---@field ['decoration.shadow.sharp'] boolean
|
|
|
|
|
---@field ['dwindle.default_split_ratio'] number|boolean
|
|
|
|
|
---@field ['dwindle.force_split'] integer|boolean
|
|
|
|
|
---@field ['dwindle.permanent_direction_override'] boolean
|
|
|
|
|
---@field ['dwindle.precise_mouse_move'] boolean
|
|
|
|
|
---@field ['dwindle.preserve_split'] boolean
|
|
|
|
|
---@field ['dwindle.smart_resizing'] boolean
|
|
|
|
|
---@field ['dwindle.smart_split'] boolean
|
|
|
|
|
---@field ['dwindle.special_scale_factor'] number|boolean
|
|
|
|
|
---@field ['dwindle.split_bias'] integer|boolean
|
|
|
|
|
---@field ['dwindle.split_width_multiplier'] number|boolean
|
|
|
|
|
---@field ['dwindle.use_active_for_splits'] boolean
|
|
|
|
|
---@field ['ecosystem.enforce_permissions'] boolean
|
|
|
|
|
---@field ['ecosystem.no_donation_nag'] boolean
|
|
|
|
|
---@field ['ecosystem.no_update_news'] boolean
|
|
|
|
|
---@field ['experimental.wp_cm_1_2'] boolean
|
|
|
|
|
---@field ['general.allow_tearing'] boolean
|
|
|
|
|
---@field ['general.border_size'] integer|boolean
|
|
|
|
|
---@field ['general.col.active_border'] string|HL.Gradient
|
|
|
|
|
---@field ['general.col.inactive_border'] string|HL.Gradient
|
|
|
|
|
---@field ['general.col.nogroup_border'] string|HL.Gradient
|
|
|
|
|
---@field ['general.col.nogroup_border_active'] string|HL.Gradient
|
|
|
|
|
---@field ['general.extend_border_grab_area'] integer|boolean
|
|
|
|
|
---@field ['general.float_gaps'] integer|HL.CssGap
|
|
|
|
|
---@field ['general.gaps_in'] integer|HL.CssGap
|
|
|
|
|
---@field ['general.gaps_out'] integer|HL.CssGap
|
|
|
|
|
---@field ['general.gaps_workspaces'] integer|boolean
|
|
|
|
|
---@field ['general.hover_icon_on_border'] boolean
|
|
|
|
|
---@field ['general.layout'] string
|
|
|
|
|
---@field ['general.locale'] string
|
|
|
|
|
---@field ['general.modal_parent_blocking'] boolean
|
|
|
|
|
---@field ['general.no_focus_fallback'] boolean
|
|
|
|
|
---@field ['general.resize_corner'] integer|boolean
|
|
|
|
|
---@field ['general.resize_on_border'] boolean
|
|
|
|
|
---@field ['general.snap.border_overlap'] boolean
|
|
|
|
|
---@field ['general.snap.enabled'] boolean
|
|
|
|
|
---@field ['general.snap.monitor_gap'] integer|boolean
|
|
|
|
|
---@field ['general.snap.respect_gaps'] boolean
|
|
|
|
|
---@field ['general.snap.window_gap'] integer|boolean
|
|
|
|
|
---@field ['gestures.close_max_timeout'] integer|boolean
|
|
|
|
|
---@field ['gestures.workspace_swipe_cancel_ratio'] number|boolean
|
|
|
|
|
---@field ['gestures.workspace_swipe_create_new'] boolean
|
|
|
|
|
---@field ['gestures.workspace_swipe_direction_lock'] boolean
|
|
|
|
|
---@field ['gestures.workspace_swipe_direction_lock_threshold'] integer|boolean
|
|
|
|
|
---@field ['gestures.workspace_swipe_distance'] integer|boolean
|
|
|
|
|
---@field ['gestures.workspace_swipe_forever'] boolean
|
|
|
|
|
---@field ['gestures.workspace_swipe_invert'] boolean
|
|
|
|
|
---@field ['gestures.workspace_swipe_min_speed_to_force'] integer|boolean
|
|
|
|
|
---@field ['gestures.workspace_swipe_touch'] boolean
|
|
|
|
|
---@field ['gestures.workspace_swipe_touch_invert'] boolean
|
|
|
|
|
---@field ['gestures.workspace_swipe_use_r'] boolean
|
|
|
|
|
---@field ['group.auto_group'] boolean
|
|
|
|
|
---@field ['group.col.border_active'] string|HL.Gradient
|
|
|
|
|
---@field ['group.col.border_inactive'] string|HL.Gradient
|
|
|
|
|
---@field ['group.col.border_locked_active'] string|HL.Gradient
|
|
|
|
|
---@field ['group.col.border_locked_inactive'] string|HL.Gradient
|
|
|
|
|
---@field ['group.drag_into_group'] integer|boolean
|
|
|
|
|
---@field ['group.focus_removed_window'] boolean
|
|
|
|
|
---@field ['group.group_on_movetoworkspace'] boolean
|
|
|
|
|
---@field ['group.groupbar.blur'] boolean
|
|
|
|
|
---@field ['group.groupbar.col.active'] string|HL.Gradient
|
|
|
|
|
---@field ['group.groupbar.col.inactive'] string|HL.Gradient
|
|
|
|
|
---@field ['group.groupbar.col.locked_active'] string|HL.Gradient
|
|
|
|
|
---@field ['group.groupbar.col.locked_inactive'] string|HL.Gradient
|
|
|
|
|
---@field ['group.groupbar.enabled'] boolean
|
|
|
|
|
---@field ['group.groupbar.font_family'] string
|
|
|
|
|
---@field ['group.groupbar.font_size'] integer|boolean
|
|
|
|
|
---@field ['group.groupbar.font_weight_active'] integer|string
|
|
|
|
|
---@field ['group.groupbar.font_weight_inactive'] integer|string
|
|
|
|
|
---@field ['group.groupbar.gaps_in'] integer|boolean
|
|
|
|
|
---@field ['group.groupbar.gaps_out'] integer|boolean
|
|
|
|
|
---@field ['group.groupbar.gradient_round_only_edges'] boolean
|
|
|
|
|
---@field ['group.groupbar.gradient_rounding'] integer|boolean
|
|
|
|
|
---@field ['group.groupbar.gradient_rounding_power'] number|boolean
|
|
|
|
|
---@field ['group.groupbar.gradients'] boolean
|
|
|
|
|
---@field ['group.groupbar.height'] integer|boolean
|
|
|
|
|
---@field ['group.groupbar.indicator_gap'] integer|boolean
|
|
|
|
|
---@field ['group.groupbar.indicator_height'] integer|boolean
|
|
|
|
|
---@field ['group.groupbar.keep_upper_gap'] boolean
|
2026-05-05 19:31:09 +04:00
|
|
|
---@field ['group.groupbar.middle_click_close'] boolean
|
2026-04-26 15:16:36 +01:00
|
|
|
---@field ['group.groupbar.priority'] integer|boolean
|
|
|
|
|
---@field ['group.groupbar.render_titles'] boolean
|
|
|
|
|
---@field ['group.groupbar.round_only_edges'] boolean
|
|
|
|
|
---@field ['group.groupbar.rounding'] integer|boolean
|
|
|
|
|
---@field ['group.groupbar.rounding_power'] number|boolean
|
|
|
|
|
---@field ['group.groupbar.scrolling'] boolean
|
|
|
|
|
---@field ['group.groupbar.stacked'] boolean
|
|
|
|
|
---@field ['group.groupbar.text_color'] string
|
|
|
|
|
---@field ['group.groupbar.text_color_inactive'] string
|
|
|
|
|
---@field ['group.groupbar.text_color_locked_active'] string
|
|
|
|
|
---@field ['group.groupbar.text_color_locked_inactive'] string
|
|
|
|
|
---@field ['group.groupbar.text_offset'] integer|boolean
|
|
|
|
|
---@field ['group.groupbar.text_padding'] integer|boolean
|
|
|
|
|
---@field ['group.insert_after_current'] boolean
|
|
|
|
|
---@field ['group.merge_floated_into_tiled_on_groupbar'] boolean
|
|
|
|
|
---@field ['group.merge_groups_on_drag'] boolean
|
|
|
|
|
---@field ['group.merge_groups_on_groupbar'] boolean
|
|
|
|
|
---@field ['input.accel_profile'] string
|
|
|
|
|
---@field ['input.emulate_discrete_scroll'] integer|boolean
|
|
|
|
|
---@field ['input.float_switch_override_focus'] integer|boolean
|
|
|
|
|
---@field ['input.focus_on_close'] integer|boolean
|
|
|
|
|
---@field ['input.follow_mouse'] integer|boolean
|
|
|
|
|
---@field ['input.follow_mouse_shrink'] integer|boolean
|
|
|
|
|
---@field ['input.follow_mouse_threshold'] number|boolean
|
|
|
|
|
---@field ['input.force_no_accel'] boolean
|
|
|
|
|
---@field ['input.kb_file'] string
|
|
|
|
|
---@field ['input.kb_layout'] string
|
|
|
|
|
---@field ['input.kb_model'] string
|
|
|
|
|
---@field ['input.kb_options'] string
|
|
|
|
|
---@field ['input.kb_rules'] string
|
|
|
|
|
---@field ['input.kb_variant'] string
|
|
|
|
|
---@field ['input.left_handed'] boolean
|
|
|
|
|
---@field ['input.mouse_refocus'] boolean
|
|
|
|
|
---@field ['input.natural_scroll'] boolean
|
|
|
|
|
---@field ['input.numlock_by_default'] boolean
|
|
|
|
|
---@field ['input.off_window_axis_events'] integer|boolean
|
|
|
|
|
---@field ['input.repeat_delay'] integer|boolean
|
|
|
|
|
---@field ['input.repeat_rate'] integer|boolean
|
|
|
|
|
---@field ['input.resolve_binds_by_sym'] boolean
|
|
|
|
|
---@field ['input.rotation'] integer|boolean
|
|
|
|
|
---@field ['input.scroll_button'] integer|boolean
|
|
|
|
|
---@field ['input.scroll_button_lock'] boolean
|
|
|
|
|
---@field ['input.scroll_factor'] number|boolean
|
|
|
|
|
---@field ['input.scroll_method'] string
|
|
|
|
|
---@field ['input.scroll_points'] string
|
|
|
|
|
---@field ['input.sensitivity'] number|boolean
|
|
|
|
|
---@field ['input.special_fallthrough'] boolean
|
|
|
|
|
---@field ['input.tablet.absolute_region_position'] boolean
|
|
|
|
|
---@field ['input.tablet.active_area_position'] HL.Vec2Like
|
|
|
|
|
---@field ['input.tablet.active_area_size'] HL.Vec2Like
|
|
|
|
|
---@field ['input.tablet.left_handed'] boolean
|
|
|
|
|
---@field ['input.tablet.output'] string
|
|
|
|
|
---@field ['input.tablet.region_position'] HL.Vec2Like
|
|
|
|
|
---@field ['input.tablet.region_size'] HL.Vec2Like
|
|
|
|
|
---@field ['input.tablet.relative_input'] boolean
|
|
|
|
|
---@field ['input.tablet.transform'] integer|boolean
|
|
|
|
|
---@field ['input.touchdevice.enabled'] boolean
|
|
|
|
|
---@field ['input.touchdevice.output'] string
|
|
|
|
|
---@field ['input.touchdevice.transform'] integer|boolean
|
|
|
|
|
---@field ['input.touchpad.clickfinger_behavior'] boolean
|
|
|
|
|
---@field ['input.touchpad.disable_while_typing'] boolean
|
|
|
|
|
---@field ['input.touchpad.drag_3fg'] integer|boolean
|
|
|
|
|
---@field ['input.touchpad.drag_lock'] integer|boolean
|
|
|
|
|
---@field ['input.touchpad.flip_x'] boolean
|
|
|
|
|
---@field ['input.touchpad.flip_y'] boolean
|
|
|
|
|
---@field ['input.touchpad.middle_button_emulation'] boolean
|
|
|
|
|
---@field ['input.touchpad.natural_scroll'] boolean
|
|
|
|
|
---@field ['input.touchpad.scroll_factor'] number|boolean
|
|
|
|
|
---@field ['input.touchpad.tap_and_drag'] boolean
|
|
|
|
|
---@field ['input.touchpad.tap_button_map'] string
|
|
|
|
|
---@field ['input.touchpad.tap_to_click'] boolean
|
|
|
|
|
---@field ['input.virtualkeyboard.release_pressed_on_close'] boolean
|
|
|
|
|
---@field ['input.virtualkeyboard.share_states'] integer|boolean
|
|
|
|
|
---@field ['layout.single_window_aspect_ratio'] HL.Vec2Like
|
|
|
|
|
---@field ['layout.single_window_aspect_ratio_tolerance'] number|boolean
|
|
|
|
|
---@field ['master.allow_small_split'] boolean
|
|
|
|
|
---@field ['master.always_keep_position'] boolean
|
|
|
|
|
---@field ['master.center_ignores_reserved'] boolean
|
|
|
|
|
---@field ['master.center_master_fallback'] string
|
|
|
|
|
---@field ['master.drop_at_cursor'] boolean
|
|
|
|
|
---@field ['master.mfact'] number|boolean
|
|
|
|
|
---@field ['master.new_on_active'] string
|
|
|
|
|
---@field ['master.new_on_top'] boolean
|
|
|
|
|
---@field ['master.new_status'] string
|
|
|
|
|
---@field ['master.orientation'] string
|
|
|
|
|
---@field ['master.slave_count_for_center_master'] integer|boolean
|
|
|
|
|
---@field ['master.smart_resizing'] boolean
|
|
|
|
|
---@field ['master.special_scale_factor'] number|boolean
|
|
|
|
|
---@field ['misc.allow_session_lock_restore'] boolean
|
|
|
|
|
---@field ['misc.always_follow_on_dnd'] boolean
|
|
|
|
|
---@field ['misc.animate_manual_resizes'] boolean
|
|
|
|
|
---@field ['misc.animate_mouse_windowdragging'] boolean
|
|
|
|
|
---@field ['misc.anr_missed_pings'] integer|boolean
|
|
|
|
|
---@field ['misc.background_color'] string
|
|
|
|
|
---@field ['misc.close_special_on_empty'] boolean
|
|
|
|
|
---@field ['misc.col.splash'] string
|
|
|
|
|
---@field ['misc.disable_autoreload'] boolean
|
|
|
|
|
---@field ['misc.disable_hyprland_guiutils_check'] boolean
|
|
|
|
|
---@field ['misc.disable_hyprland_logo'] boolean
|
|
|
|
|
---@field ['misc.disable_scale_notification'] boolean
|
|
|
|
|
---@field ['misc.disable_splash_rendering'] boolean
|
|
|
|
|
---@field ['misc.disable_watchdog_warning'] boolean
|
|
|
|
|
---@field ['misc.disable_xdg_env_checks'] boolean
|
|
|
|
|
---@field ['misc.enable_anr_dialog'] boolean
|
|
|
|
|
---@field ['misc.enable_swallow'] boolean
|
|
|
|
|
---@field ['misc.exit_window_retains_fullscreen'] boolean
|
|
|
|
|
---@field ['misc.focus_on_activate'] boolean
|
|
|
|
|
---@field ['misc.font_family'] string
|
|
|
|
|
---@field ['misc.force_default_wallpaper'] integer|boolean
|
|
|
|
|
---@field ['misc.initial_workspace_tracking'] integer|boolean
|
|
|
|
|
---@field ['misc.key_press_enables_dpms'] boolean
|
|
|
|
|
---@field ['misc.layers_hog_keyboard_focus'] boolean
|
|
|
|
|
---@field ['misc.lockdead_screen_delay'] integer|boolean
|
|
|
|
|
---@field ['misc.middle_click_paste'] boolean
|
|
|
|
|
---@field ['misc.mouse_move_enables_dpms'] boolean
|
|
|
|
|
---@field ['misc.mouse_move_focuses_monitor'] boolean
|
|
|
|
|
---@field ['misc.name_vk_after_proc'] boolean
|
|
|
|
|
---@field ['misc.on_focus_under_fullscreen'] integer|boolean
|
|
|
|
|
---@field ['misc.render_unfocused_fps'] integer|boolean
|
|
|
|
|
---@field ['misc.screencopy_force_8b'] boolean
|
|
|
|
|
---@field ['misc.session_lock_xray'] boolean
|
|
|
|
|
---@field ['misc.size_limits_tiled'] boolean
|
|
|
|
|
---@field ['misc.splash_font_family'] string
|
|
|
|
|
---@field ['misc.swallow_exception_regex'] string
|
|
|
|
|
---@field ['misc.swallow_regex'] string
|
|
|
|
|
---@field ['misc.vrr'] integer|boolean
|
|
|
|
|
---@field ['opengl.nvidia_anti_flicker'] boolean
|
|
|
|
|
---@field ['quirks.prefer_hdr'] integer|boolean
|
|
|
|
|
---@field ['quirks.skip_non_kms_dmabuf_formats'] boolean
|
|
|
|
|
---@field ['render.cm_auto_hdr'] integer|boolean
|
|
|
|
|
---@field ['render.cm_enabled'] boolean
|
|
|
|
|
---@field ['render.cm_sdr_eotf'] string
|
|
|
|
|
---@field ['render.commit_timing_enabled'] boolean
|
|
|
|
|
---@field ['render.ctm_animation'] integer|boolean
|
|
|
|
|
---@field ['render.direct_scanout'] integer|boolean
|
|
|
|
|
---@field ['render.expand_undersized_textures'] boolean
|
|
|
|
|
---@field ['render.icc_vcgt_enabled'] boolean
|
|
|
|
|
---@field ['render.keep_unmodified_copy'] integer|boolean
|
|
|
|
|
---@field ['render.new_render_scheduling'] boolean
|
|
|
|
|
---@field ['render.non_shader_cm'] integer|boolean
|
|
|
|
|
---@field ['render.non_shader_cm_interop'] integer|boolean
|
|
|
|
|
---@field ['render.send_content_type'] boolean
|
|
|
|
|
---@field ['render.use_fp16'] integer|boolean
|
|
|
|
|
---@field ['render.use_shader_blur_blend'] boolean
|
|
|
|
|
---@field ['render.xp_mode'] boolean
|
|
|
|
|
---@field ['scrolling.column_width'] number|boolean
|
|
|
|
|
---@field ['scrolling.direction'] string
|
|
|
|
|
---@field ['scrolling.explicit_column_widths'] string
|
|
|
|
|
---@field ['scrolling.focus_fit_method'] integer|boolean
|
|
|
|
|
---@field ['scrolling.follow_focus'] boolean
|
|
|
|
|
---@field ['scrolling.follow_min_visible'] number|boolean
|
|
|
|
|
---@field ['scrolling.fullscreen_on_one_column'] boolean
|
|
|
|
|
---@field ['scrolling.wrap_focus'] boolean
|
|
|
|
|
---@field ['scrolling.wrap_swapcol'] boolean
|
|
|
|
|
---@field ['xwayland.create_abstract_socket'] boolean
|
|
|
|
|
---@field ['xwayland.enabled'] boolean
|
|
|
|
|
---@field ['xwayland.force_zero_scaling'] boolean
|
|
|
|
|
---@field ['xwayland.use_nearest_neighbor'] boolean
|
|
|
|
|
local __HL_ConfigValueTypes = {}
|