Hyprland 0.55 announced the switch to Lua for its config files
Hyprland 0.55: The Transition to Lua Configuration
By Vaxry | Published May 9, 2026
After a significant period of development, Hyprland 0.55 has officially arrived! This release represents a massive leap forward, seeing a surge in the number of contributors, total commits, new features, and general refinements.
"This is an enormous update by each measurable metric."
🌟 Major Highlights
🌙 The Shift to Lua
As previously teased, the configuration system for Hyprland has transitioned to Lua.
While the community is encouraged to migrate, your existing hyprlang configurations are not immediately broken; they will remain functional for a few more release cycles. The official wiki has been fully overhauled to support this new Lua-based approach.
📐 User-Defined Layouts
Thanks to the power of Lua, a new Layout API has been introduced. This allows users to script their own window layouts directly within the config file. These custom layouts can be applied:
- Globally
- On a per-monitor basis
- On a per-workspace basis
These behave identically to native layouts but offer total user control.
🖱️ Scrolling & Input Enhancements
Scrolling has received several upgrades, including:
- Fullscreen Support: Scrolling now works with fullscreen windows by default.
- Native Gestures: A new
scroll_movefunction is available in Lua for trackpad users.
🎨 Color Management & ICC Profiles
Hyprland now supports loading specific ICC profiles for each output using the following syntax:
icc = /path/to/profile
Furthermore, the renderer has been upgraded. For Color Managed displays, Hyprland now defaults to (half-precision floating point) and optimized CM pipelines. This ensures:
- Smoother screensharing
- General improvements to color-related workflows.
⚠️ Breaking Changes
Several configuration options have been pruned or relocated to maintain a clean codebase.
| Old Option | Status | Note |
|---|---|---|
dwindle:pseudotile | Had no functional effect. | |
decoration:shadow:ignore_window | Now defaults to enabled. | |
render:cm_fs_passthrough | Now handled by render:cm_auto_hdr. | |
misc:vfr | Moved | Now located under debug: (not for production). |
🎁 New Features & Fixes
The update is packed with "goodies" and a vast array of bug fixes.
New Functionality
- Scrolling Tools: Added
expel,consume,consume_or_expel, and various wrapping settings. - Binds: New
auto_consumingflag. - Window Rules: Added
confine_pointer. - Dispatchers: Added
move_into_or_create_group. - Dwindle: New
rotatesplitlayout message. - Gestures: Live pinch-to-zoom for the cursor.
- Visuals: A new
glowdecoration for windows. - Organization: Implementation of Device tags.
Technical Implementation Example
To implement a basic ICC profile in the new Lua config, you might use:
-- Example Lua config snippet
hyprland.output("DP-1", {
icc = "/home/user/.config/hypr/icc/monitor_profile.icc"
})
📅 Project Timeline
If you want to track the evolution of the project, here are the recent milestones:
- February 27, 2026: Hyprland 0.54 released.
- April 26, 2026: Announcement of the "Lua-ification" of configs.
- May 9, 2026: Hyprland 0.55 officially launches.
- July 20, 2026: Hyprland 0.56 arrives!
For those who prefer the technical deep-dive, the raw release notes are available on GitHub.
Cheers, vax