Ladies and gentlemen, we made it before 2026. A chonker!
Breaking Changes
- Windowrule syntax has been completely overhauled. Please check the wiki: https://wiki.hypr.land/Configuring/Window-Rules/
misc:new_window_takes_over_fsreplacesmisc:new_window_takes_over_fullscreenandmaster:inherit_fullscreen
New features:
- config/keybinds: add a submap universal keybind flag (#12100)
- config: added locale config option (#12416)
- deco/groupbar: add groupbar blur (#12310)
- hyprctl: add nix flag (#12653)
- hyprpm: added plugin author (#12594)
- renderer: add quirks:prefer_hdr to fix HDR activation for some clients (#12436)
- renderer: add zoom with detached camera (#12548)
- tablet: added option to hide cursor (#12525)
Fixes:
- CMake: fix GIT_COMMIT_MESSAGE parsing
- CrashReporter.cpp: fix stderr conflict (#12440)
- Nix: fix GIT_* env vars
- Nix: fix glaze build for CI and devShell (#12616)
- cmake: fix XKBCOMMON variable typo (#12550)
- compositor: fix isPointOnReservedArea
- cursor: fix m_cursorSurfaceInfo not being updated while a cursor override is set (#12327)
- desktop/overridableVar: fix possible crash
- desktop/popup: fix invalid surface coord
- desktop/windowRules: fix disabling binary window rules with override (#12635)
- example/hyprland.desktop: fix path
- examples: fix example config (#12394)
- groupbar: fix rounding logic for edge cases (#12366)
- hyprctl: fix no_vrr prop ref (#12410)
- i18n: fix typos/unnatural spellings in french translation (#12443)
- input: fix pending perm keyboards being enabled
- internal: fix crash at startup on FreeBSD (#12298)
- internal: fix subtractWindow typo for POSYSTR (#12259)
- keybindmgr: fix focusCurrentOrLast
- keybinds: fix multikey binds breaking after scroll wheel events (#12638)
- keybinds: fix previous workspace remembering (#12399)
- layouts: fix maximize size
- master: fix placement with center_ignores_reserved (#12695)
- meson: fix version.h install location
- protocols/cm: fix CColorManagementSurface m_imageDescription init (#12734)
- protocols/compositor: fix null deref on unassigned surface image desc
- protocols/lock: fix missing output enter on surface (#12448)
- protocols/outputMgmt: fix wlr-randr by defering success event until monitor reloads (#12236)
- protocols/workspace: fix crash in initial group sending
- protocols/xdg-shell: fix crash on null parent in pin (#12694)
- renderer/cm: fix typo on color simage description op (#12551)
- renderer/ime: fix fcitx5 popup artifacts (#12263)
- renderer: add quirks:prefer_hdr to fix HDR activation for some clients (#12436)
- renderer: fix fractional scale artifacts (#12287)
- renderer: fix noscreenshare layerrule popups (#12260)
- renderer: fix render_unfocused
- renderer: fix uv sufrace calc with scales < 1 (#12481)
- rules/windowRuleApplicator: fix min/max size effects (#12491)
- screencopy: fix possible crash in renderMon()
- windowrules: fix group rule recalcs (#12403)
- windowrules: fix matching against xdgTag (#12393)
- windowrules: fix persistent_size not applying (#12441)
Other:
- CI/Nix: simplify cache config
- CI/release: populate git info (#12247)
- CI: drop meson build, simplify c-f check
- CI: drop no_pch and make default, drop noxwayland
- CI: run translator in pull_request_target for comment access
- CMake: prepopulate GIT vars from env
- CMakeLists.txt: improve libudis86 and librt detection (#12472)
- Desktop/history: Move history to desktop (#12676)
- Nix: re-enable uwsm desktop file
- animation: improve animations on multi refresh rate monitors (#12418)
- animation: migrate PHLANIMVAR from SP to UP (#12486)
- animationmgr: avoid possible uaf in handling anim updates
- anr: don't create for anr dialogs (#12601)
- buffers: revert state merging (#12461)
- ci: disable comments for members
- ci: run pr comment in target
- cm: allow force disabling WCG and HDR per monitor (#12733)
- cm: handle CM for SDR content with cm=hdr, cm_sdr_eotf=2 (#12127)
- cmake: fail if scripts/generateShaderIncludes.sh fails (#12588)
- cmake: only use system glaze package if above version 6.0.0 (#12559)
- cmake: track dependencies in pkgconfig file (#12543)
- compositor: Configurable behavior when window to be focused conflicts with fullscreen (#12033)
- compositor: dont try to focus unmapped window (#12629)
- compositor: early return on no monitor (#12637)
- compositor: return nullptr when cursor is outside of a maximized windows' box
- compositor: warn on start via a log about start-hyprland
- config: export version variable for versioned configs
- config: move config parsers to VarList2 (#12465)
- core/compositor: remove a monitor reset on cleanup (#12645)
- crashReporter: cleanup code (#12534)
- cursor: ensure cursor reset on changed window states (#12301)
- debug: move to hyprutils' logger (#12673)
- desktop/layer: store aboveFs property and use that
- desktop/overridableVar: improve performance
- desktop/popup: minor improvements
- desktop/rules: tag static rule being ignored (#12514)
- desktop/view: use aliveAndVisible for most things (#12631)
- desktop/window: improve fullscreen handling for grouped windows
- desktop/windowRule: force center and move rules to override each other (#12618)
- desktop/windowRule: return reset props from resetProps and recheck them (#12458)
- desktop: Update Exec command for UWSM Hyprland desktop entry (#12580)
- desktop: cleanup, unify desktop elements as views (#12563)
- desktop: rewrite reserved area handling + improve tests (#12383)
- dispatcher: include mirrors of monitor in dpms (#12552)
- dwindle: Revert rework split logic to be fully gap-aware (#12047)
- example/config: use hyprshutdown if available
- example/hyprland.desktop: install with full path in Exec
- flake.nix: update guiutils and override hw-s
- hyprctl: show contentType in activewindow (#12214)
- hyprctl: use new hyprpaper ipc format (#12537)
- hyprpm: check for abi strings in headersValid (#12504)
- hyprpm: remove -nn flag and make notification behaviour more consist… (#11272)
- i18n: Add Arabic translations for safemode (#12670)
- i18n: Add Dutch translations (#12326)
- i18n: Add Hindi translations (#12324)
- i18n: Add hungarian translations (#12346)
- i18n: Added Finnish translations (#12505)
- i18n: add Arabic (ar) translations (#12352)
- i18n: add Assamese translations (#12356)
- i18n: add Belarusian language (#12358)
- i18n: add Croatian translations (#12374)
- i18n: add Czech translations (#12428)
- i18n: add Danish translation (#12333)
- i18n: add French translations (#12330)
- i18n: add Indonesian translations (#12468)
- i18n: add Latvian translations (#12430)
- i18n: add Malayalam translations (#12345)
- i18n: add Nepali translations (#12451)
- i18n: add Norwegian Bokmål translations (#12354)
- i18n: add Persian translations (#12361)
- i18n: add Português (Portugal) translation (#12328)
- i18n: add Russian translations (#12335)
- i18n: add Serbian Translations (#12341)
- i18n: add Simplified Chinese translations (#12332)
- i18n: add Slovenian translation (#12369)
- i18n: add Spanish translations (#12334)
- i18n: add Tatar translations (#12538)
- i18n: add Turkish translations (#12331)
- i18n: add Ukrainian translation (#12370)
- i18n: add pt_BR translations (#12351)
- i18n: improve Spanish translations for clarity and consistency (#12378)
- i18n: init german translations (#12323)
- i18n: init localization for ANR, Permissions and Notifications (#12316)
- i18n: more natural Japanese translation (#12649)
- i18n: slight update to it_IT translations (#12372)
- input: cleanup sendMotionEventsToFocused()
- input: simplify mouseMoveUnified a tad
- internal/start: More careful signal handling (#12573)
- internal: put Linux-only header behind ifdef (#12300)
- internal: removed Herobrine
- keybinds: restore pointer warp on switch
- keybinds: simulate mouse movement after bringing active window to top (#12703)
- layout: include reserved area in float fit (#12289)
- meson: drop
- monitor: remove monitor from list on disconnect before unsafestate (#12544)
- opengl: default initialize m_capStatus (#12619)
- opengl: properly combine transforms in renderTexture
- plugin/hook: disallow multiple hooks per function (#12320)
- pointer: apply locked pointer workaround only on xwayland (#12402)
- presentation: only send sync output on presented (#12255)
- protocols/cursor-shape: impl version 2 (#12270)
- protocols/datadevice: avoid double leave
- protocols/layershell: do not raise protocol error if layer surface is not anchored (#12241)
- protocols/workspace: avoid crash on inert outputs
- render/cm: various updates, remove old protocols (#12693)
- renderer/cm: higher-quality tonemapping (#12204)
- renderer/cm: make needsHDRupdate per-monitor state (#12564)
- renderer: Allow DS for surfaces with inert subsurfaces (#12133)
- renderer: avoid crash on arrangeLayers for an empty mon
- renderer: remove unnecessary assert from renderRoundedShadow (#12540)
- renderer: stop looping over null texture surfaces (#12446)
- rule: nuke parseRelativeVector
- src/protocols/types/DMABuffer.cpp: <sys/ioctl.h> is required for ioctl(), not only linux (#12483)
- start: avoid crash in dtor after forceQuit
- start: init start-hyprland and safe mode (#12484)
- welcome: init welcome manager (#12409)
- window: automatically pin child windows (#12224)
- window: implement CWindow::getEnv() for BSDs (#12462)
- window: only damage floating on clamped size change (#12633)
- windowrules: bring back windowUpdateRules
- windowrules: rewrite completely (#12269)
Special thanks
Special thanks as always for these people / companies for supporting Hyprland:
Sponsors
Diamond
37Signals
Gold
Framework
Donators
Top Supporters:
miget.com, Hunter Wesson, --, ari-cake, TyrHeimdal, Joshua Weaver, alukortti, mukaro, Arkevius, 3RM, johndoe42, Insprill, Tonao Paneguini, Seishin, Anon2033, RaymondLC92, vmfunc, DHH, MadCatX, Jas Singh, John Shelburne, Xoores, lzieniew, Kay, Brandon Wang, MasterHowToLearn, taigrr, Semtex, alexmanman5, Theory_Lukas, ExBhal, Sierra Layla Vithica, Tom94, d, Illyan, soy_3l.beantser, Freya Elizabeth Goins, inittux111
New Monthly Supporters:
Tomek, Brian Donovan, Flanksy, Oversiate, Matt, Lungefisk, Leszek Kalwa, Chronoyevsky, metaru, AV, Daniel Segan, Fernando Sanchez, dharmapee, Will K, Jói, Adam Cogdell, Anthony McKeever, Crashdummy, dovahi, AndrewF, adsf, grhobe, Mr Maestro, lepokle, Dainatello, floer, Ben Kimble, hyprdick, Imp, popich, Mansoor Faqiri, dukeofcool199, ReallyNoteless, coldwater, Adrian, Anarcho, Zerby, Pracyan, evict, lexeko, Hauke, Jackrin, Tom Richards, searchsr555
One-time Donators:
Kaizza, cherny, tega90, Greg Chen, TF, Kenneth Breugelmans, Daniel Stuessy, taxiservice, Rockvald, yoboyfromtaiwan, Tekn, Martin, Jonathan Knapp, maribust, JWHall, raccoon, Zarquon, Wouter Bos, Malte, Areg, R. Pope, ko-fi-enjoyer-ubie, Sander, saphira_a, HackHQ, Simen Hagelid, Matthew Flower, SOSdude, Cristian, mike, b1ackswordsman_, gvdb, Nick, gwek, Haru, Tuomo Tr., diam0ndable, seagull, PyrosaurusRex, abat, Sebastian Przybyło, unknown, Joonas, Rasibobs, Dgolub, qtwork, revitalist, Al Johri, snakebones, eman, Flavius, Foibles, Tom, dabit, Jesus Humble Coder, goodroot, BeardlessPirate, jamerrq, Pedroelfire, pingu667, Kaiseki, Leon, tadz, Mine13zoom, JamesBond, MRP, Jon, Fernando Okuma, Nathan Drayson, Le_Kos, limenode, Samuel Tissot, IcsBoyX, Pol Ros Domènech, Cyber Spectrum / DJ Forge, Jan, Bastian Blokland, RobG, Itagane, checor, giorki, Richard, jgarzadi, Dunadan, Torwalt, hyperv01, Kirill Solodukhin, dentych, Steffen, Sort, Don Quixote, DirkPorsche, Eltharion, der_jean_marc, Apoorva, j, Otavio Augusto Gomes, clumsy, Jonas, Gersnifagus, dasd, Emil Erikmats, Jakov, Horst, Pastor Cmentarny, albrat, Borissimo, Jimbo, George, McMooMoo, rafazaya, CoolMcGrrr, HyperbolicParabaloid, Osamu Makiguchi, Gun155, noxc, demonic_chicken, Djoerzilla, Okazagi, moferrin, CareAgain, Mathias Karstädt, Holger Caribe, Stefan Schrage, maardal, yagaaa, Geenath, Steven, Roberto, DenverLacey, Foggerty, wtsmith, Alex, fraxineus, Simone, luccaugusto, endersdad, nomixer, Komor, Junkie, Hemendex7, nnutter, fujibearly, nachtschatten, hectorsq, ., EG, tsah, AhmedAlYousif, Karaviro, raydiatian, gnudoc, RussianMoroccan, Henrik, Cleptomania, Jason Kuan, beavis, jhoj, lmcanavals, Máté, boxplayer, ekholme, LeBew, mehiel, viscount-monty, sander, Ricebal, Vineeth Reddy Kanupuru, уσsίЬгσsί, Magnus, EmilioPeJu, Anersyum, Quambo, Outsiders17711, e, Anders Keis, Vladimir, Lyri, Zack L, Doug, Lolenz, valentine filatov, fakeclear_mei, Henry, Happyelkk, Jordi, Ben, lotaviods, BruhhnoV, Chad, neweziz, Huub, senorBeard, The Universality, Lyrael, Nioner, Wes, Nice job!, Damacon, Dvd-Znf, Jaeden T, Josh, Jojo, joeknit, zacoons, blychs, Eduardo Spanó, Anton Kesy, Tobias, Frisbee, Jaime Ledesma, Snepsts, pfrank, nimo , Bim Phomthong, Tim, eric280, Boothe, T.C., LeoFly, Jerkcircling, lucas, Gixbert, Nathan BARDAVID, mbald1, Diogo Ferreira, vitaliiorlov, Rai T., geko, JD, George S, reatret, Ar, joshuahardwick, GK, Lukaol, Senshyn, bobbackwardsbob, Crinfarr, jrgd, Shaun, UnMaykr, Christian DeCarle, EverybodySurf, mook, MandoArtstudios, yorishori, Holerra, Sean, derui, andybitz, StyxUT, Saulius, Awoo, Sshanky, Speedz, zssork, Mathias Vesterlund, Nicholas, Ricardo Dias, mo, Fulgoran, Joao Goncalves, Zer0's Void, Rasmus Lumholdt, Dave, eltharion, Terminal Dot Shop, Ger O'M, Robert, bokac, Szwagi, Plonky, xtiang7c0, luprzybyl, Seraphim of Boise, Kike, rafael araujo, Exanime, MRJN, Riley, dillius, ApproachingApathy, magballs, NeoDev, S, celestialSlice, jimdavid, imAsparky, highafdoge, Gene Brewskin, Jim, Toby, Darth, Gunnar, larsjr, Neocrius, Khue, Jerry, damndxyo, falsparsi, spintops, John, Liz, Chibi, Gizu, tricked, flaxfrax, Chrezzly, Pb, vzkz, Asaf, Pablo, dusmartijngames, geekologist, schmendiey, chucknorris, Jo, Nathan Lepori, unclefrank7, Limrun, Vadym, CoolJBad01, Mirko R, jahol, Frank Ploegman, Ryan Gorman, Pedro Pinto, Seyloria, Franky, Lukas, Michael, Keith Veleba, frebib, Leon K., kados, benben, Z, Anas Bashir, Jacob, Heuge, dev2and0m, kuroma, MightiD, Mike Kuenzi, aliiscripts, Claymaker, duane, rbgtk, Jonathan Montgomery, DanielPürner, Rowan-Paul, CareFully, FLX, Jeff Nunn, timugen_st, Mikol, Matsuji, sikor666, Evan, Ximizu, Timur Bogdanov, Luc, Purple Sorcerer, drook207, AkhiAC, misunderstood, Frank Besson, Xiuyuan Bi, ironick, fxhm, Lubix, Farex, Nerox, Cole, JavierRios, bombusbee, philipl, 0Tick, urssur, JasonWitty, ziga, Zev, Jymm6, TrashyFur, iamLIMPaf, Dafitt, Aidan, Joe Mama, rankomat, phga, l, Jea, None, wiesel78, shazbot, coglinks, drulex, DocE / DocEys, Klaus Strele, Waterbottle45, coquin, phiwan, MadByte, Galg, ChuckLorris, Victor, lejouson, quack, NEXNC, Justus, thousandlegs, Sigitas, RFS, oskhen, Noel, Kristof Bajan, pelda, talys, invalidusrname, fragile, guusw, av8avenger, R, Martin Fournier, Jack, Spr3eZ, revilo196, Toft, JerwuQu, Aymir, blocho, Allan, Nick M, Andrew, Monssaf, Denis S.
And all hyprperks members!
Full Changelog: v0.52.0...v0.53.0