Skip to content

Variables

Note

Looking for the old hyprlang syntax? Check the 0.54 wiki pages. Since Hyprland 0.55, hyprlang is deprecated in favor of lua.

This page documents all the “options” of Hyprland. For binds, monitors, animations, etc. see the sidebar.

Please keep in mind some options that are layout-specific will be documented in the layout pages and not here. (See the Sidebar for Dwindle and Master layouts)

Variable types

typedescription
intinteger
boolboolean
floatfloating point number
colorcolor (see hint below for color info)
vec2vector with 2 float values (e.g. { 20, 20 })
stra string
gradienta gradient, will accept a color, or { colors = { "rgba(...)", "rgba(...)" }, angle? = 45 }
font_weightan integer between 100 and 1000, or one of the following presets: thin ultralight light semilight book normal medium semibold bold ultrabold heavy ultraheavy
css_gapsan integer, or { top?, left?, right?, bottom? }

Colors

You have 3 options:

  • rgba(), e.g. rgba(b3ff1aee), or the decimal equivalent rgba(179,255,26,0.933) (decimal rgba/rgb values should have no spaces between numbers)
  • rgb(), e.g. rgb(b3ff1a), or the decimal equivalent rgb(179,255,26)
  • legacy, e.g. 0xeeb3ff1a -> ARGB order

Sections

General

namedescriptiontypedefault
border_sizesize of the border around windowsint1
gaps_ingaps between windowscss_gaps5
gaps_outgaps between windows and monitor edgescss_gaps20
float_gapsgaps between windows and monitor edges for floating windows -1 means defaultcss_gaps0
gaps_workspacesgaps between workspaces. Stacks with gaps_out.css_gaps0
col.inactive_borderborder color for inactive windowsgradient0xff444444
col.active_borderborder color for the active windowgradient0xffffffff
col.nogroup_borderinactive border color for window that cannot be added to a group (see denywindowfromgroup dispatcher)gradient0xffffaaff
col.nogroup_border_activeactive border color for window that cannot be added to a groupgradient0xffff00ff
layoutwhich layout to use. [dwindle/master/scrolling/monocle]strdwindle
no_focus_fallbackif true, will not fall back to the next available window when moving focus in a direction where no window was foundboolfalse
resize_on_borderenables resizing windows by clicking and dragging on borders and gapsboolfalse
extend_border_grab_areaextends the area around the border where you can click and drag on, only used when general:resize_on_border is on.int15
hover_icon_on_bordershow a cursor icon when hovering over borders, only used when general:resize_on_border is on.booltrue
allow_tearingmaster switch for allowing tearing to occur. See the Tearing page.boolfalse
resize_cornerforce floating windows to use a specific corner when being resized (1-4 going clockwise from top left, 0 to disable)int0
modal_parent_blockingwhether parent windows of modals will be interactivebooltrue
localeoverrides the system locale (e.g. en_US, es)str[[Empty]]

Snap

Subcategory general.snap.

namedescriptiontypedefault
enabledenable snapping for floating windowsboolfalse
window_gapminimum gap in pixels between windows before snappingint10
monitor_gapminimum gap in pixels between window and monitor edges before snappingint10
border_overlapif true, windows snap such that only one border’s worth of space is between themboolfalse
respect_gapsif true, snapping will respect gaps between windows(set in general:gaps_in)boolfalse

Decoration

namedescriptiontypedefault
roundingrounded corners’ radius (in layout px)int0
rounding_poweradjusts the curve used for rounding corners, larger is smoother, 2.0 is a circle, 4.0 is a squircle, 1.0 is a triangular corner. [1.0 - 10.0]float2.0
active_opacityopacity of active windows. [0.0 - 1.0]float1.0
inactive_opacityopacity of inactive windows. [0.0 - 1.0]float1.0
fullscreen_opacityopacity of fullscreen windows. [0.0 - 1.0]float1.0
dim_modalenables dimming of parents of modal windowsbooltrue
dim_inactiveenables dimming of inactive windowsboolfalse
dim_strengthhow much inactive windows should be dimmed [0.0 - 1.0]float0.5
dim_specialhow much to dim the rest of the screen by when a special workspace is open. [0.0 - 1.0]float0.2
dim_aroundhow much the dim_around window rule should dim by. [0.0 - 1.0]float0.4
screen_shadera path to a custom shader to be applied at the end of rendering. See examples/screenShader.frag for an example.str[[Empty]]
border_part_of_windowwhether the window border should be a part of the windowbooltrue

Blur

Subcategory decoration.blur.

namedescriptiontypedefault
enabledenable kawase window background blurbooltrue
sizeblur size (distance)int8
passesthe amount of passes to performint1
ignore_opacitymake the blur layer ignore the opacity of the windowbooltrue
new_optimizationswhether to enable further optimizations to the blur. Recommended to leave on, as it will massively improve performance.booltrue
xrayif enabled, floating windows will ignore tiled windows in their blur. Only available if new_optimizations is true. Will reduce overhead on floating blur significantly.boolfalse
noisehow much noise to apply. [0.0 - 1.0]float0.0117
contrastcontrast modulation for blur. [0.0 - 2.0]float0.8916
brightnessbrightness modulation for blur. [0.0 - 2.0]float0.8172
vibrancyIncrease saturation of blurred colors. [0.0 - 1.0]float0.1696
vibrancy_darknessHow strong the effect of vibrancy is on dark areas . [0.0 - 1.0]float0.0
specialwhether to blur behind the special workspace (note: expensive)boolfalse
popupswhether to blur popups (e.g. right-click menus)boolfalse
popups_ignorealphaworks like ignore_alpha in layer rules. If pixel opacity is below set value, will not blur. [0.0 - 1.0]float0.2
input_methodswhether to blur input methods (e.g. fcitx5)boolfalse
input_methods_ignorealphaworks like ignore_alpha in layer rules. If pixel opacity is below set value, will not blur. [0.0 - 1.0]float0.2

Note

blur.size and blur.passes have to be at least 1.

Increasing blur.passes is necessary to prevent blur looking wrong on higher blur.size values, but remember that higher blur.passes will require more strain on the GPU.

Shadow

Subcategory decoration.shadow.

namedescriptiontypedefault
enabledenable drop shadows on windowsbooltrue
rangeShadow range (“size”) in layout pxint4
render_powerin what power to render the falloff (more power, the faster the falloff) [1 - 4]int3
sharpif enabled, will make the shadows sharp, akin to an infinite render powerboolfalse
colorshadow’s color. Alpha dictates shadow’s opacity.color0xee1a1a1a
color_inactiveinactive shadow color. (if not set, will fall back to color)colorunset
offsetshadow’s rendering offset.vec2[0, 0]
scaleshadow’s scale. [0.0 - 1.0]float1.0

Glow

Subcategory decoration.glow.

namedescriptiontypedefault
enabledenable inner glow on windowsboolfalse
rangeGlow range (“size”) in layout pxint10
render_powerin what power to render the falloff (more power, the faster the falloff) [1 - 4]int3
colorglow’s color. Alpha dictates glow’s opacity.color0xee1a1a1a
color_inactiveinactive glow color. (if not set, will fall back to color)colorunset

Animations

namedescriptiontypedefault
enabledenable animationsbooltrue
workspace_wraparoundenable workspace wraparound, causing directional workspace animations to animate as if the first and last workspaces were adjacentboolfalse

Input

namedescriptiontypedefault
kb_modelAppropriate XKB keymap parameter. See the note below.str[[Empty]]
kb_layoutAppropriate XKB keymap parameterstrus
kb_variantAppropriate XKB keymap parameterstr[[Empty]]
kb_optionsAppropriate XKB keymap parameterstr[[Empty]]
kb_rulesAppropriate XKB keymap parameterstr[[Empty]]
kb_fileIf you prefer, you can use a path to your custom .xkb file.str[[Empty]]
numlock_by_defaultEngage numlock by default.boolfalse
resolve_binds_by_symDetermines how keybinds act when multiple layouts are used. If false, keybinds will always act as if the first specified layout is active. If true, keybinds specified by symbols are activated when you type the respective symbol with the current layout.boolfalse
repeat_rateThe repeat rate for held-down keys, in repeats per second.int25
repeat_delayDelay before a held-down key is repeated, in milliseconds.int600
sensitivitySets the mouse input sensitivity. Value is clamped to the range -1.0 to 1.0. libinput#pointer-accelerationfloat0.0
accel_profileSets the cursor acceleration profile. Can be one of adaptive, flat. Can also be custom, see below. Leave empty to use libinput’s default mode for your input device. libinput#pointer-acceleration [adaptive/flat/custom]str[[Empty]]
force_no_accelForce no cursor acceleration. This bypasses most of your pointer settings to get as raw of a signal as possible. Enabling this is not recommended due to potential cursor desynchronization.boolfalse
rotationSets the rotation of a device in degrees clockwise off the logical neutral position. Value is clamped to the range 0 to 359.int0
left_handedSwitches RMB and LMBboolfalse
scroll_pointsSets the scroll acceleration profile, when accel_profile is set to custom. Has to be in the form <step> <points>. Leave empty to have a flat scroll curve.str[[Empty]]
scroll_methodSets the scroll method. Can be one of 2fg (2 fingers), edge, on_button_down, no_scroll. libinput#scrolling [2fg/edge/on_button_down/no_scroll]str[[Empty]]
scroll_buttonSets the scroll button. Has to be an int, cannot be a string. Check wev if you have any doubts regarding the ID. 0 means default.int0
scroll_button_lockIf the scroll button lock is enabled, the button does not need to be held down. Pressing and releasing the button toggles the button lock, which logically holds the button down or releases it. While the button is logically held down, motion events are converted to scroll events.boolfalse
scroll_factorMultiplier added to scroll movement for external mice. Note that there is a separate setting for touchpad scroll_factor.float1.0
natural_scrollInverts scrolling direction. When enabled, scrolling moves content directly, rather than manipulating a scrollbar.boolfalse
follow_mouseSpecify if and how cursor movement should affect window focus. See the note below. [0/1/2/3]int1
follow_mouse_shrinkShrinks the inactive window hitboxes used for focus detection by the specified number of pixels. This creates a dead zone in gaps between windows where moving the cursor will not change focus. Works only with follow_mouse = 1.int0
follow_mouse_thresholdThe smallest distance in logical pixels the mouse needs to travel for the window under it to get focused. Works only with follow_mouse = 1.float0.0
focus_on_closeControls the window focus behavior when a window is closed. When set to 0, focus will shift to the next window candidate. When set to 1, focus will shift to the window under the cursor. When set to 2, focus will shift to the most recently used/active window. [0/1/2]int0
mouse_refocusIf disabled, mouse focus won’t switch to the hovered window unless the mouse crosses a window boundary when follow_mouse=1.booltrue
float_switch_override_focusIf enabled (1 or 2), focus will change to the window under the cursor when changing from tiled-to-floating and vice versa. If 2, focus will also follow mouse on float-to-float switches.int1
special_fallthroughif enabled, having only floating windows in the special workspace will not block focusing windows in the regular workspace.boolfalse
off_window_axis_eventsHandles axis events around (gaps/border for tiled, dragarea/border for floated) a focused window. 0 ignores axis events 1 sends out-of-bound coordinates 2 fakes pointer coordinates to the closest point inside the window 3 warps the cursor to the closest point inside the windowint1
emulate_discrete_scrollEmulates discrete scrolling from high resolution scrolling events. 0 disables it, 1 enables handling of non-standard events only, and 2 force enables all scroll wheel events to be handledint1

XKB Settings

You can find a list of models, layouts, variants and options in /usr/share/X11/xkb/rules/evdev.lst. Alternatively, you can use the localectl command to discover what is available on your system.

For switchable keyboard configurations, take a look at the binds page entry.

Follow Mouse Cursor

  • 0 - Cursor movement will not change focus.
  • 1 - Cursor movement will always change focus to the window under the cursor.
  • 2 - Cursor focus will be detached from keyboard focus. Clicking on a window will move keyboard focus to that window.
  • 3 - Cursor focus will be completely separate from keyboard focus. Clicking on a window will not change keyboard focus.

Custom Accel Profiles

accel_profile

custom <step> <points...>

Example: custom 200 0.0 0.5

scroll_points

NOTE: Only works when accel_profile is set to custom.

<step> <points...>

Example: 0.2 0.0 0.5 1 1.2 1.5

To mimic the Windows acceleration curves, take a look at this script.

See the libinput doc for more insights on how it works.

Touchpad

Subcategory input.touchpad.

namedescriptiontypedefault
disable_while_typingDisable the touchpad while typing.booltrue
natural_scrollInverts scrolling direction. When enabled, scrolling moves content directly, rather than manipulating a scrollbar.boolfalse
scroll_factorMultiplier applied to the amount of scroll movement.float1.0
middle_button_emulationSending LMB and RMB simultaneously will be interpreted as a middle click. This disables any touchpad area that would normally send a middle click based on location. libinput#middle-button-emulationboolfalse
tap_button_mapSets the tap button mapping for touchpad button emulation. Can be one of lrm (default) or lmr (Left, Middle, Right Buttons). [lrm/lmr]str[[Empty]]
clickfinger_behaviorButton presses with 1, 2, or 3 fingers will be mapped to LMB, RMB, and MMB respectively. This disables interpretation of clicks based on location on the touchpad. libinput#clickfinger-behaviorboolfalse
tap_to_clickTapping on the touchpad with 1, 2, or 3 fingers will send LMB, RMB, and MMB respectively.booltrue
drag_lockWhen enabled, lifting the finger off while dragging will not drop the dragged item. 0 -> disabled, 1 -> enabled with timeout, 2 -> enabled sticky. libinput#tap-and-dragint0
tap_and_dragSets the tap and drag mode for the touchpadbooltrue
flip_xinverts the horizontal movement of the touchpadboolfalse
flip_yinverts the vertical movement of the touchpadboolfalse
drag_3fgenables three finger drag, 0 -> disabled, 1 -> 3 fingers, 2 -> 4 fingers libinput#drag-3fgint0

Touchdevice

Subcategory input.touchdevice.

namedescriptiontypedefault
transformTransform the input from touchdevices. The possible transformations are the same as those of the monitors. -1 means it’s unset.int-1
outputThe monitor to bind touch devices. The default is auto-detection. To stop auto-detection, use an empty string or the “[[Empty]]” value.string[[Auto]]
enabledWhether input is enabled for touch devices.booltrue

Virtualkeyboard

Subcategory input.virtualkeyboard.

namedescriptiontypedefault
share_statesUnify key down states and modifier states with other keyboards. 0 -> no, 1 -> yes, 2 -> yes unless IME clientint2
release_pressed_on_closeRelease all pressed keys by virtual keyboard on close.boolfalse

Tablet

Subcategory input.tablet.

namedescriptiontypedefault
transformtransform the input from tablets. The possible transformations are the same as those of the monitors. -1 means it’s unset.int-1
outputthe monitor to bind tablets. Can be current or a monitor name. Leave empty to map across all monitors.string[[Empty]]
region_positionposition of the mapped region in monitor layout relative to the top left corner of the bound monitor or all monitors.vec2[0, 0]
absolute_region_positionwhether to treat the region_position as an absolute position in monitor layout. Only applies when output is empty.boolfalse
region_sizesize of the mapped region. When this variable is set, tablet input will be mapped to the region. [0, 0] or invalid size means unset.vec2[0, 0]
relative_inputwhether the input should be relativeboolfalse
left_handedif enabled, the tablet will be rotated 180 degreesboolfalse
active_area_sizesize of tablet’s active area in mmvec2[0, 0]
active_area_positionposition of the active area in mmvec2[0, 0]

Per-device input config

Described here.

Gestures

Subcategory gestures.

namedescriptiontypedefault
workspace_swipe_distancein px, the distance of the touchpad gestureint300
workspace_swipe_touchenable workspace swiping from the edge of a touchscreenboolfalse
workspace_swipe_invertinvert the direction (touchpad only)booltrue
workspace_swipe_touch_invertinvert the direction (touchscreen only)boolfalse
workspace_swipe_min_speed_to_forceminimum speed in px per timepoint to force the change ignoring cancel_ratio. Setting to 0 will disable this mechanic.int30
workspace_swipe_cancel_ratiohow much the swipe has to proceed in order to commence it. (0.7 -> if > 0.7 * distance, switch, if less, revert) [0.0 - 1.0]float0.5
workspace_swipe_create_newwhether a swipe right on the last workspace should create a new one.booltrue
workspace_swipe_direction_lockif enabled, switching direction will be locked when you swipe past the direction_lock_threshold (touchpad only).booltrue
workspace_swipe_direction_lock_thresholdin px, the distance to swipe before direction lock activates (touchpad only).int10
workspace_swipe_foreverif enabled, swiping will not clamp at the neighboring workspaces but continue to the further ones.boolfalse
workspace_swipe_use_rif enabled, swiping will use the r prefix instead of the m prefix for finding workspaces.boolfalse
close_max_timeoutthe timeout for a window to close when using a 1:1 gesture, in msint1000

Note

workspace_swipe, workspace_swipe_fingers and workspace_swipe_min_fingers were removed in favor of the new gestures system.

You can add this gesture config to replicate the swiping functionality with 3 fingers. See the gestures page for more info.

gesture = 3, horizontal, workspace

Group

Subcategory group.

namedescriptiontypedefault
auto_groupwhether new windows will be automatically grouped into the focused unlocked group. Note: if you want to disable auto_group only for specific windows, use the “group barred” window rule instead.booltrue
insert_after_currentwhether new windows in a group spawn after current or at group tailbooltrue
focus_removed_windowwhether Hyprland should focus on the window that has just been moved out of the groupbooltrue
drag_into_groupwhether dragging a window into a unlocked group will merge them. Options: 0 (disabled), 1 (enabled), 2 (only when dragging into the groupbar)int1
merge_groups_on_dragwhether window groups can be dragged into other groupsbooltrue
merge_groups_on_groupbarwhether one group will be merged with another when dragged into its groupbarbooltrue
merge_floated_into_tiled_on_groupbarwhether dragging a floating window into a tiled window groupbar will merge themboolfalse
group_on_movetoworkspacewhether using movetoworkspace[silent] will merge the window into the workspace’s solitary unlocked groupboolfalse
col.border_activeactive group border colorgradient0x66ffff00
col.border_inactiveinactive (out of focus) group border colorgradient0x66777700
col.border_locked_activeactive locked group border colorgradient0x66ff5500
col.border_locked_inactiveinactive locked group border colorgradient0x66775500

Groupbar

Subcategory group.groupbar.

namedescriptiontypedefault
enabledenables groupbarsbooltrue
font_familyfont used to display groupbar titles, use misc.font_family if not specifiedstring[[Empty]]
font_sizefont size of groupbar titleint8
font_weight_activefont weight of active groupbar titlefont_weightnormal
font_weight_inactivefont weight of inactive groupbar titlefont_weightnormal
gradientsenables gradientsboolfalse
heightheight of the groupbarint14
indicator_gapheight of gap between groupbar indicator and titleint0
indicator_heightheight of the groupbar indicatorint3
stackedrender the groupbar as a vertical stackboolfalse
prioritysets the decoration priority for groupbarsint3
render_titleswhether to render titles in the group bar decorationbooltrue
text_offsetadjust vertical position for titlesint0
text_paddingset horizontal padding for titlesint0
scrollingwhether scrolling in the groupbar changes group active windowbooltrue
roundinghow much to round the indicatorint1
rounding_poweradjusts the curve used for rounding groupbar corners, larger is smoother, 2.0 is a circle, 4.0 is a squircle, 1.0 is a triangular corner. [1.0 - 10.0]float2.0
gradient_roundinghow much to round the gradientsint2
gradient_rounding_poweradjusts the curve used for rounding gradient corners, larger is smoother, 2.0 is a circle, 4.0 is a squircle, 1.0 is a triangular corner. [1.0 - 10.0]float2.0
round_only_edgesround only the indicator edges of the entire groupbarbooltrue
gradient_round_only_edgesround only the gradient edges of the entire groupbarbooltrue
text_colorcolor for window titles in the groupbarcolor0xffffffff
text_color_inactivecolor for inactive windows’ titles in the groupbar (if unset, defaults to text_color)colorunset
text_color_locked_activecolor for the active window’s title in a locked group (if unset, defaults to text_color)colorunset
text_color_locked_inactivecolor for inactive windows’ titles in locked groups (if unset, defaults to text_color_inactive)colorunset
col.activeactive group bar background colorgradient0x66ffff00
col.inactiveinactive (out of focus) group bar background colorgradient0x66777700
col.locked_activeactive locked group bar background colorgradient0x66ff5500
col.locked_inactiveinactive locked group bar background colorgradient0x66775500
gaps_ingap size between gradientsint2
gaps_outgap size between gradients and windowint2
keep_upper_gapadd or remove upper gapbooltrue
blurapplies blur to the groupbar indicators and gradientsboolfalse

Misc

Subcategory misc.

namedescriptiontypedefault
disable_hyprland_logodisables the random Hyprland logo / anime girl background. :(boolfalse
disable_splash_renderingdisables the Hyprland splash rendering. (requires a monitor reload to take effect)boolfalse
disable_scale_notificationdisables notification popup when a monitor fails to set a suitable scaleboolfalse
col.splashChanges the color of the splash text (requires a monitor reload to take effect).color0xffffffff
font_familySet the global default font to render the text including debug fps/notification, config error messages and etc., selected from system fonts.stringSans
splash_font_familyChanges the font used to render the splash text, selected from system fonts (requires a monitor reload to take effect).string[[Empty]]
force_default_wallpaperEnforce any of the 3 default wallpapers. Setting this to 0 or 1 disables the anime background. -1 means “random”. [-1/0/1/2]int-1
vrrcontrols the VRR (Adaptive Sync) of your monitors. 0 - off, 1 - on, 2 - fullscreen only, 3 - fullscreen with video or game content type [0/1/2/3]int0
mouse_move_enables_dpmsIf DPMS is set to off, wake up the monitors if the mouse moves.boolfalse
key_press_enables_dpmsIf DPMS is set to off, wake up the monitors if a key is pressed.boolfalse
name_vk_after_procName virtual keyboards after the processes that create them. E.g. /usr/bin/fcitx5 will have hl-virtual-keyboard-fcitx5.booltrue
always_follow_on_dndWill make mouse focus follow the mouse when drag and dropping. Recommended to leave it enabled, especially for people using focus follows mouse at 0.booltrue
layers_hog_keyboard_focusIf true, will make keyboard-interactive layers keep their focus on mouse move (e.g. wofi, bemenu)booltrue
animate_manual_resizesIf true, will animate manual window resizes/movesboolfalse
animate_mouse_windowdraggingIf true, will animate windows being dragged by mouse, note that this can cause weird behavior on some curvesboolfalse
disable_autoreloadIf true, the config will not reload automatically on save, and instead needs to be reloaded with hyprctl reload. Might save on battery.boolfalse
enable_swallowEnable window swallowingboolfalse
swallow_regexThe class regex to be used for windows that should be swallowed (usually, a terminal). To know more about the list of regex which can be used use this cheatsheet.str[[Empty]]
swallow_exception_regexThe title regex to be used for windows that should not be swallowed by the windows specified in swallow_regex (e.g. wev). The regex is matched against the parent (e.g. Kitty) window’s title on the assumption that it changes to whatever process it’s running.str[[Empty]]
focus_on_activateWhether Hyprland should focus an app that requests to be focused (an activate request)boolfalse
mouse_move_focuses_monitorWhether mouse moving into a different monitor should focus itbooltrue
allow_session_lock_restoreif true, will allow you to restart a lockscreen app in case it crashesboolfalse
session_lock_xrayif true, keep rendering workspaces below your lockscreenboolfalse
background_colorchange the background color. (requires enabled disable_hyprland_logo)color0x111111
close_special_on_emptyclose the special workspace if the last window is removedbooltrue
on_focus_under_fullscreenif there is a fullscreen or maximized window, decide whether a tiled window requested to focus should replace it, stay behind or disable the fullscreen/maximized state. 0 - ignore focus request (keep focus on fullscreen window), 1 - takes over, 2 - unfullscreen/unmaximize [0/1/2]int2
exit_window_retains_fullscreenif true, closing a fullscreen window makes the next focused window fullscreenboolfalse
initial_workspace_trackingif enabled, windows will open on the workspace they were invoked on. 0 - disabled, 1 - single-shot, 2 - persistent (all children too)int1
middle_click_pastewhether to enable middle-click-paste (aka primary selection)booltrue
render_unfocused_fpsthe maximum limit for render_unfocused windows’ fps in the background (see also Window-Rules - render_unfocused)int15
disable_xdg_env_checksdisable the warning if XDG environment is externally managedboolfalse
disable_hyprland_qtutils_checkdisable the warning if hyprland-qtutils is not installedboolfalse
lockdead_screen_delaydelay after which the “lockdead” screen will appear in case a lockscreen app fails to cover all the outputs (5 seconds max)int1000
enable_anr_dialogwhether to enable the ANR (app not responding) dialog when your apps hangbooltrue
anr_missed_pingsnumber of missed pings before showing the ANR dialogint5
size_limits_tiledwhether to apply min_size and max_size rules to tiled windowsboolfalse
disable_watchdog_warningwhether to disable the warning about not using start-hyprlandboolfalse

Layout

Subcategory layout.

namedescriptiontypedefault
single_window_aspect_ratiowhenever only a single window is shown on a screen, add padding so that it conforms to the specified aspect ratio. A value like 4 3 on a 16:9 screen will make it a 4:3 window in the middle with padding to the sides.Vec2D0 0
single_window_aspect_ratio_tolerancesets a tolerance for single_window_aspect_ratio, so that if the padding that would have been added is smaller than the specified fraction of the height or width of the screen, it will not attempt to adjust the window size [0 - 1]int0.1

Binds

Subcategory binds.

namedescriptiontypedefault
pass_mouse_when_boundif disabled, will not pass the mouse events to apps / dragging windows around if a keybind has been triggered.boolfalse
scroll_event_delayin ms, how many ms to wait after a scroll event to allow passing another one for the binds.int300
workspace_back_and_forthIf enabled, an attempt to switch to the currently focused workspace will instead switch to the previous workspace. Akin to i3’s auto_back_and_forth.boolfalse
hide_special_on_workspace_changeIf enabled, changing the active workspace (including to itself) will hide the special workspace on the monitor where the newly active workspace resides.boolfalse
allow_workspace_cyclesIf enabled, workspaces don’t forget their previous workspace, so cycles can be created by switching to the first workspace in a sequence, then endlessly going to the previous workspace.boolfalse
workspace_center_onWhether switching workspaces should center the cursor on the workspace (0) or on the last active window for that workspace (1)int0
focus_preferred_methodsets the preferred focus finding method when using focuswindow/movewindow/etc with a direction. 0 - history (recent have priority), 1 - length (longer shared edges have priority)int0
ignore_group_lockIf enabled, dispatchers like moveintogroup, moveoutofgroup and movewindoworgroup will ignore lock per group.boolfalse
movefocus_cycles_fullscreenIf enabled, when on a fullscreen window, movefocus will cycle fullscreen, if not, it will move the focus in a direction.boolfalse
movefocus_cycles_groupfirstIf enabled, when in a grouped window, movefocus will cycle windows in the groups first, then at each ends of tabs, it’ll move on to other windows/groupsboolfalse
window_direction_monitor_fallbackIf enabled, moving a window or focus over the edge of a monitor with a direction will move it to the next monitor in that direction.booltrue
disable_keybind_grabbingIf enabled, apps that request keybinds to be disabled (e.g. VMs) will not be able to do so.boolfalse
allow_pin_fullscreenIf enabled, Allow fullscreen to pinned windows, and restore their pinned status afterwardsboolfalse
drag_thresholdMovement threshold in pixels for window dragging and c/g bind flags. 0 to disable and grab on mousedown.int0

XWayland

Subcategory xwayland.

namedescriptiontypedefault
enabledallow running applications using X11booltrue
use_nearest_neighboruses the nearest neighbor filtering for xwayland apps, making them pixelated rather than blurrybooltrue
force_zero_scalingforces a scale of 1 on xwayland windows on scaled displays.boolfalse
create_abstract_socketCreate the abstract Unix domain socket for XWayland connections. (XWayland restart is required for changes to take effect; Linux only)boolfalse

OpenGL

Subcategory opengl.

namedescriptiontypedefault
nvidia_anti_flickerreduces flickering on nvidia at the cost of possible frame drops on lower-end GPUs. On non-nvidia, this is ignored.booltrue

Render

Subcategory render.

namedescriptiontypedefault
direct_scanoutEnables direct scanout. Direct scanout attempts to reduce lag when there is only one fullscreen application on a screen (e.g. game). It is also recommended to set this to false if the fullscreen application shows graphical glitches. 0 - off, 1 - on, 2 - auto (on with content type ‘game’)int0
expand_undersized_texturesWhether to expand undersized textures along the edge, or rather stretch the entire texture.booltrue
xp_modeDisables back buffer and bottom layer rendering.boolfalse
ctm_animationWhether to enable a fade animation for CTM changes (hyprsunset). 2 means “auto” which disables them on Nvidia.int2
cm_enabledWhether the color management pipeline should be enabled or not (requires a restart of Hyprland to fully take effect)booltrue
send_content_typeReport content type to allow monitor profile autoswitch (may result in a black screen during the switch)booltrue
cm_auto_hdrAuto-switch to HDR in fullscreen when needed. 0 - off, 1 - switch to cm, hdr, 2 - switch to cm, hdredidint1
new_render_schedulingAutomatically uses triple buffering when needed, improves FPS on underpowered devices.boolfalse
non_shader_cmEnable CM without shader. 0 - disable, 1 - whenever possible, 2 - DS and passthrough only, 3 - disable and ignore CM issuesint2
non_shader_cm_interop0 - external ctm (hypersunset, etc.) is disabled in fullscreen, 1 - external ctm is enabled in fullscreen, 2 - external ctm is disabled for fullscreen photo/video/game content typesint2
cm_sdr_eotfDefault transfer function for displaying SDR apps. default - Use default value (sRGB), gamma22 - Treat unspecified as Gamma 2.2, gamma22force - Treat unspecified and sRGB as Gamma 2.2, srgb - Treat unspecified as sRGBstrdefault
commit_timing_enabledEnable commit timing proto. Requires restartbooltrue
use_fp16Use FP16 buffers internally. 0 - disabled, 1 - enabled, 2 - enabled in hdr modeint2
keep_unmodified_copyKeep umodified SDR frame copy for sreensharing. 0 - disabled, 1 - on, 2 - auto (enabled in HDR with SDR modifiers). Set to 1 if screenshots are transparent.int2
use_shader_blur_blendUse experimental blurred bg blending (glitched on rotated screens). Set to true if blur is missing with fp16 or keep_unmodified_copyboolfalse

cm_auto_hdr requires --target-colorspace-hint-mode=source mpv option to work with mpv versions greater than v0.40.0

Cursor

Subcategory cursor.

namedescriptiontypedefault
invisibledon’t render cursorsboolfalse
sync_gsettings_themesync xcursor theme with gsettings, it applies cursor-theme and cursor-size on theme load to gsettings making most CSD gtk based clients use same xcursor theme and size.booltrue
no_hardware_cursorsdisables hardware cursors. 0 - use hw cursors if possible, 1 - don’t use hw cursors, 2 - auto (disable when tearing)int2
no_break_fs_vrrdisables scheduling new frames on cursor movement for fullscreen apps with VRR enabled to avoid framerate spikes (may require no_hardware_cursors = true) 0 - off, 1 - on, 2 - auto (on with content type ‘game’)int2
min_refresh_rateminimum refresh rate for cursor movement when no_break_fs_vrr is active. Set to minimum supported refresh rate or higherint24
hotspot_paddingthe padding, in logical px, between screen edges and the cursorint1
inactive_timeoutin seconds, after how many seconds of cursor’s inactivity to hide it. Set to 0 for never.float0
no_warpsif true, will not warp the cursor in many cases (focusing, keybinds, etc)boolfalse
persistent_warpsWhen a window is refocused, the cursor returns to its last position relative to that window, rather than to the centre.boolfalse
warp_on_change_workspaceMove the cursor to the last focused window after changing the workspace. Options: 0 (Disabled), 1 (Enabled), 2 (Force - ignores cursor:no_warps option)int0
warp_on_toggle_specialMove the cursor to the last focused window when toggling a special workspace. Options: 0 (Disabled), 1 (Enabled), 2 (Force - ignores cursor:no_warps option)int0
default_monitorthe name of a default monitor for the cursor to be set to on startup (see hyprctl monitors for names)str[[EMPTY]]
zoom_factorthe factor to zoom by around the cursor. Like a magnifying glass. Minimum 1.0 (meaning no zoom)float1.0
zoom_rigidwhether the zoom should follow the cursor rigidly (cursor is always centered if it can be) or looselyboolfalse
zoom_detached_cameradetach the camera from the mouse when zoomed in, only ever moving the camera to keep the mouse in view when it goes past the screen edgesbooltrue
enable_hyprcursorwhether to enable hyprcursor supportbooltrue
hide_on_key_pressHides the cursor when you press any key until the mouse is moved.boolfalse
hide_on_touchHides the cursor when the last input was a touch input until a mouse input is done.booltrue
hide_on_tabletHides the cursor when the last input was a tablet input until a mouse input is done.booltrue
use_cpu_bufferMakes HW cursors use a CPU buffer. Required on Nvidia to have HW cursors. 0 - off, 1 - on, 2 - auto (nvidia only)int2
warp_back_after_non_mouse_inputWarp the cursor back to where it was after using a non-mouse input to move it, and then returning back to mouse.boolfalse
zoom_disable_aadisable antialiasing when zooming, which means things will be pixelated instead of blurryboolfalse

Ecosystem

Subcategory ecosystem.

namedescriptiontypedefault
no_update_newsdisable the popup that shows up when you update hyprland to a new version.boolfalse
no_donation_nagdisable the popup that shows up twice a year encouraging to donate.boolfalse
enforce_permissionswhether to enable permission control.boolfalse

Quirks

Subcategory quirks.

namedescriptiontypedefault
prefer_hdrReport HDR mode as preferred. 0 - off, 1 - always, 2 - gamescope onlyint0

Some clients expect monitor to be in HDR mode prior to the client start. This breaks auto HDR activation and can cause whitescreen and flickering. Use prefer_hdr to fix it,

Debug

Subcategory debug.

Warning

Only for developers.

namedescriptiontypedefault
overlayprint the debug performance overlay. Disable VFR for accurate results.boolfalse
damage_blink(epilepsy warning!) flash areas updated with damage trackingboolfalse
gl_debuggingenables OpenGL debugging with glGetError and EGL_KHR_debug, requires a restart after changing.boolfalse
vfrcontrols the VFR status of Hyprland. Heavily recommended to leave enabled to conserve resources.booltrue
disable_logsdisable logging to a filebooltrue
disable_timedisables time loggingbooltrue
damage_trackingredraw only the needed bits of the display. Do not change. (default: full - 2) monitor - 1, none - 0int2
enable_stdout_logsenables logging to stdoutboolfalse
manual_crashset to 1 and then back to 0 to crash Hyprland.int0
suppress_errorsif true, do not display config file parsing errors.boolfalse
watchdog_timeoutsets the timeout in seconds for watchdog to abort processing of a signal of the main thread. Set to 0 to disable.int5
disable_scale_checksdisables verification of the scale factors. Will result in pixel alignment and rounding errors.boolfalse
error_limitlimits the number of displayed config file parsing errors.int5
error_positionsets the position of the error bar. top - 0, bottom - 1int0
colored_stdout_logsenables colors in the stdout logs.booltrue
passenables render pass debugging.boolfalse
full_cm_protoclaims support for all cm proto features (requires restart)boolfalse
invalidate_fp16Allow fp16 buffer invalidation (invalidation increases performance but produces glitches on some systems). 0 - not allowed, 1 - allowed, 2 - not allowed on nvidiaint2

More

There are more config options described in other pages, which are layout- or circumstance-specific. See the sidebar for more pages.

Last updated on