A big new release with tons of features and fixes, brought to you by the Hyprland Corp.
No breaking changes! :)
New features:
- algo/master: add an option to focus master when window is closed (#14306) by @ArchSav
- algo/scrolling: add
inhibit_scrolldispatch for scrolling algorithm (#13955) by @erstarr - algo/scrolling: add a "fit expand" layout message (#14761) by @LichtMarv
- algo/scrolling: add new
fit_into_viewlayout msg (#14991) by @erstarr - cm/icc: add Primaries to ICC-generated SImageDescription (#15227) by @GamingLiamStudios
- config/lua: add a change_id workspace API (#15298) by @vaxerski
- config/lua: add get_loaded_plugins (#14582) by @vaxerski
- config/lua: add hl.clear_crashed_lockscreen() and fix tty instructions (#15299) by @vaxerski
- config/lua: add is_key_down and a key event (#14779) by @zacoons
- config/lua: add lua-driven custom live gestures (#15393) by @vaxerski
- config/lua: add physicalWidth and physicalHeight to lua's Monitor (#14657) by @leiserfg
- config/propRefresher: add capability to execute scheduled prop refresh immediately with lua helper function, add event for prop refresh (#14990) by @erstarr
- crashreporter: fix SIGSEGV on dladdr1 failure (#15352) by @oclaw
- decoration/glow: add gradient and angle animation (#15208) by @Undeadamien
- decoration/shadow: add gradient and angle animation (#14809) by @Undeadamien
- desktop/windowRule: add
no_auto_hdrwindow rule (#14694) by @fxzzi - desktop/windowRule: add
stableid:window selector (#14984) by @LRitzdorf - desktop/windowRule: add a suppressevent for X11 configure requests (#13313) by @lichie567
- desktop/windowrule: add silent option to monitor effect (#14357) by @ArchSav
- event/bus: add specialActive event to workspace (#14971) by @vaxerski
- groups: add groupbar disable_when_only option (#15009) by @feelamee
- groups: sync window monitor/workspace when added to a group (#14478) by @andresilva
- hyprctl: add config full-reload for performing a ground-up reload (#14748) by @vaxerski
- hyprctl: add interactive Lua REPL mode (#15043) by @Dregu
- hyprctl: add onCreatedEmpty field to workspacerules dispatcher data (#14826) by @ikalco
- hyprtester: add -t option for running specific tests (#14846) by @ArchSav
- input/tablet: add TabletTool config options for eraser button and tool pressure (#14110) by @marcello505
- lua/monitor: add set_ functions for raw workspace management (#14875) by @vaxerski
- lua/objects: add cm and reserved properties to monitor (#14523) by @ndavd
- meta/lua: add missing notification text field and make timeout required (#14665) by @atomicptr
- meta/lua: add proper lua stub types to the general config (#14993) by @JustLinuxUser
- plugins: add api for registering and dispatching events (#14734) by @zacoons
- protocols/xdg-shell: add support for xdg interactive drags (#15343) by @vaxerski
- renderer: add a motion blur option to windows (#14911) by @vaxerski
- renderer: add tonemap settings (#14903) by @UjinT34
- renderer: add wrapping options to SRenderData (#14666) by @zacoons
- socket2: add back changefloatingmode and togglegroup events (#14089) by @ErrorNoInternet
- splashes: add 5th comp winner's splash
Fixes:
- Minor fixes today (#14401) by @vaxerski
- Tests/scroll: fix window hiding test passing inconsistently (#15384) by @erstarr
- algo/dwindle: fix moving windows across a split (#15079) by @LRitzdorf
- algo/master: fix drag-swap with two tiled windows (#14974) by @karaolidis
- animation: refactor manager, fixup desktopAnimationManager, clean up code (#15302) by @vaxerski
- binds/submap: fix mouse binds inside submaps (#15060) by @jestemleonard
- binds/submap: fix submap enter bind == bind inside submap (#14856) by @bendi-github
- ci: fix codeownersplus (#15383) by @vaxerski
- AGENTS: add agents.md (#14835) by @vaxerski
- CI/Arch: add libheif dep
- code: fix clang-format
- compositor: fix monitor re-enabling on hotplug when dpms is off (#14818) by @samsyu518
- compositor: fix render unfocused for subsurfaces (#14718) by @UjinT34
- config/actions: fix null derefs in pin dispatcher (#14914) by @DxCx
- config/lua: add hl.clear_crashed_lockscreen() and fix tty instructions (#15299) by @vaxerski
- config/lua: fix layout ctx checking the wrong argument (#15061) by @vaxerski
- config/lua: fix missing event from know events lists (#15232) by @nath1416
- config: fix VRR not applying on runtime change (#14744) by @BlueManCZ
- config: fix cycle_next using nonexist layoutmsg for prev (#15396) by @Dregu
- config: fix decoration values to refresh on runtime eval/keyword change (#14590) by @BlueManCZ
- config: fix description matching for default workspaces (#15074) by @vaxerski
- config: fix initial workspace tracking (#15395) by @gulafaran
- config: fix plugin variables with dashes (#14379) by @VirtCode
- config: fix slide animation direction param (#15240) by @Dregu
- core: fix --verify-config crash (#15418) by @gulafaran
- core: fix a few fd leaks (#14870) by @vaxerski
- core: refactor fullscreen logic, improve maintainability and add a lot of tests (#14705) by @erstarr
- core: various SHM handling fixes (#15315) by @vaxerski
- crashreporter: fix SIGSEGV on dladdr1 failure (#15352) by @oclaw
- decoration/glow: fix visibility when no decorate is set (#14602) by @vaxerski
- desktop/groups: fix crash on dissolution (#15135) by @vaxerski
- desktop/popup: fix crash on destroy (#15416) by @gulafaran
- desktop/popup: fix reposition artifacts (#14820) by @gulafaran
- desktop/popup: fix subsurface scaling (#14936) by @Brandtweary
- desktop/view: fix IView virtual inheritance and erase_if ptr (#15421) by @gulafaran
- desktop/window: fix crash on requested workspace not having a mon (#15234) by @vaxerski
- desktop/window: fix unwanted reswallow (#12993) by @tomben13
- desktop/window: fix wrong scale being applied after workspace rules (#14832) by @awused
- desktopAnimation: fix crash in startAnimation on ws with no parent (#15224) by @vaxerski
- dispatchers: fix fullscreen movefocus regression (#15226) by @MightyPlaza
- frame: fix frame scheduling being skipped or one vblank off (#15404) by @gulafaran
- fullscreen: fix some bars remaining invisible when unfullscreening (#15370) by @erstarr
- gestures: fix live cursorZoom anchoring to a mid-animation value (#14996) by @barrettruth
- gestures: fix toggle cursorZoom sharing a single on/off flag (#14998) by @barrettruth
- glframebuffer: fix spurious incomplete framebuffer errors (#15380) by @gulafaran
- groups: fix border color for locked groups (#15015) by @EnzoBarizza
- hyprtester: Fix some failing tests terminating early (#14969) by @kolayne
- hyprtester: misc bug fixes & refactorings (#15025) by @kolayne
- i18n: completed italian translation and fixed some previous italian translation inaccuracies (#14763) by @Lucad44
- input/dnd: fix touch-driven drag-and-drop (#15077) by @hjanuschka
- input/window: fix dragging pointer-locked and fullscreen game windows (gamescope) (#15165) by @ZStud
- input: fix inverted scrollwheel direction in keybinds (#14749) by @zjeffer
- input: fix missing a pointer frame after absolute pointer motion (#15003) by @seven-mile
- input: fix wheel scroll events from virtual pointers being dropped (#15319) by @Nicholas-Arthur-Cook
- internal: fix bugs revealed by hu update
- internal: fix filename string not being computed at compile time in RASSERT and GLCALL macros (#14972) by @danielkrupinski
- internal: fix more fd leaks (#15225) by @vaxerski
- internal: fix null deref in setWindowFullscreenInternal when fullscreen state stale (#14725) by @neonetizen
- internal: fix tokens for xdg-desktop-portals (#15433) by @gulafaran
- internal: minor spelling fixes (#15199) by @bjoernab
- internal: modernize truthy(fix possible UB) (#15217) by @b1tflyyyy
- jeremy: fix auto-generating hyprlang instead of lua config file by default (#14944) by @LionHeartP
- keybinds: fix nested submaps and resets (#15213) by @ItsOhen
- layout/WindowTarget: fix crash when toggling float on oversized windows (#14587) by @floresce
- layout/monocle: fix
w[tv1]workspace rule not working on monocle layout (#15382) by @erstarr - layout/scrolling: fix prop refresh triggering hard input (#14594) by @erstarr
- layout/target: fix unmanaged configure loops in x11 (#15336) by @vaxerski
- meta/lua: fix capture of lua events (#15071) by @SteinGaming
- monitor: refactor inheritance, expand query, add unit tests for position and query (#15073) by @vaxerski
- monitor: fix cursor default_monitor option (#15322) by @lichie567
- monitor: fix special fade state update (#15316) by @vaxerski
- monitor: fix top-layer bar visibility on workspace change with scrolling-layout fullscreen (#14425) by @zerbiniandrea
- nix/tests: fix deprecation warning
- pointer-warp: fix forgetting enter serial (#15462) by @Dregu
- pointer: fix cursor bounds not updating on monitor layout changes (#14393) by @x1h0
- pointer: fix two stale cursor images clearings (#15376) by @gulafaran
- protocols/foreignToplevel: fix class and title reporting on map and afterwards (#15037) by @vaxerski
- protocols/grab: fix refocus to unreachable windows (#14555) by @gusjengis
- protocols/pointerWarp: fix crash when warp is on a non interactive surf (#15021) by @vaxerski
- protocols: Fix crash when creating inert workspace resource (#15303) by @PlasmaPower
- protocols: fix SHM cursor partial damage copy (#15399) by @gulafaran
- protocols: fix protocol null dereference paths (#15275)
- render/cm: fix premult in shaders (#14403) by @vaxerski
- render/gl/framebuffer: fix swizzle comparisons (#14481) by @vaxerski
- renderer/cm: fix blur clipping with HDR (#15371) by @ryanpholt
- renderer: fix SEGV on monitor disconnect (#15048) by @neonetizen
- renderer: fix
cursor:zoom_rigidbeing ignored with detached camera (#14995) by @barrettruth - renderer: fix border cm for mirroring (#14574) by @UjinT34
- renderer: fix mirror draw buffers on rotating work buffers (#15427) by @gulafaran
- renderer: fix screenshader with fp16 (#14918) by @UjinT34
- renderer: minor shader fixes (#14584) by @fxzzi
- screencopy: fix screenshare copyfb pending frames (#14837) by @imperishableSecret
- screenshare: minor fence and copy fixes (#15429) by @gulafaran
- scripts: fixup static asan patch (#14889) by @vaxerski
- scrolling/fullscreen: fix fullscreen/maximise behaviour, existing bugs with scrolling fullscreen (#14387) by @erstarr
- state/monitorQuery: fix monitor desc selector being treated as "down" selector (#15109) by @lichie567
- state/workspace: refactor workspace state, add querying, move off of CCompositor (#15075) by @vaxerski
- tests: fix broken test and flakiness (#14506) by @andresilva
- tests: fix failing cases (#15200) by @vaxerski
- xwayland: fix ICCCM synthetic event comparison (#14827) by @umbrageodotus
Other:
- AGENTS: include m_ rule
- CI: do not auto-comment on PRs from contributors (#15183) by @kolayne
- README: update showcase
- algo/dwindle: do not remove node before assigning (#15373) by @vaxerski
- algo/floating: do not alter pinned windows' state on ws move (#14513) by @vaxerski
- algo/master: avoid nullptr dereferences (#15422) by @gulafaran
- algo/master: guard target in remove (#14756) by @vaxerski
- algo/master: respect center_master_fallback when resizing slave cols (#14961) by @karaolidis
- algo/scrolling: hide the top layer in workspace swipe to scrolling layout fullscreen (#15137) by @Vic-41148
- algo/scrolling: intelligently decide where to drop a dnd'd window (#15251) by @vaxerski
- algo: prevent shadowing of
m_parent(#15270) by @erstarr - animation: dont .lock() a uniqueptr (#15470) by @gulafaran
- assets: update lockdead png with new dispatch commands (#14213) by @imperishableSecret
- buffer: wait on seperate fences instead of merging (#15088) by @gulafaran
- build: bump libinput to 1.29 (#14593) by @marcello505
- build: link Glaze to the compositor core (#15454)
- ci: add code owners via codeowners-plus (#15261) by @kolayne
- ci(codeowners-plus): fetch PR head before trying to diff against it (#15486) by @LRitzdorf
- ci: upgrade actions/checkout to v6 (#14885) by @danielkrupinski
- ci: upgrade actions/upload-artifact to v7 (#14887) by @danielkrupinski
- ci: upgrade github/codeql-action/upload-sarif to v4 (#14886) by @danielkrupinski
- cleanup: remove comment made for self (#14724) by @erstarr
- compositor: allow to request focusing windows behind fullscreen (#14942) by @kolayne
- compositor: give preference to same-workspace windows in getWindowInDirection (#14941) by @vaxerski
- config: add path in stdout log disabling message (#14793) by @davc0n
- config/actions: unfocus last window on changeWorkspace when moving monitors (#15374) by @vaxerski
- config/lua: allow disabling workspace rules (#15362) by @vaxerski
- config/lua: allow manual group control (#15363) by @vaxerski
- config/lua: allow re-enabling monitors (#14447) by @bizmythy
- config/lua: allow wildcards or absolute paths in require (#15461) by @vaxerski
- config/lua: do not wrap std::function in std::optional (#15197) by @danielkrupinski
- config/lua: expose monitor serial/available modes (#14973) by @karaolidis
- config/lua: improve error handle-ability with Lua
require(#14937) by @LRitzdorf - config/lua: make resizewindow param accessible to lua (#14658) by @SteinGaming
- config/lua: match lua output naming to hyprctl output and match naming convention (#15367) by @erstarr
- config/lua: report errors better without check* (#14695) by @vaxerski
- config/lua: restrict package module loading to lua-only modules (#14526) by @x1h0
- config/lua: revert "restrict package module loading to lua-only modules (#14526)" (#14533) by @x1h0
- config/lua: use function pointers instead of std::function for fields (#15154) by @danielkrupinski
- config/lua: use ref for workspace destroy events (#14562) by @vaxerski
- config/monitor: allow per-monitor vrr to inherit misc:vrr (#14746) by @BlueManCZ
- config/monitor: refresh splash texture on monitor reload (#14632) by @DavidLokison
- config/monitorRule: default scale to auto (#15019) by @vaxerski
- config/propRefresher: avoid crash if event loop manager isn't loaded (#14423) by @vaxerski
- config/propRefresher: schedule frames on screen shader refresh (#14874) by @vaxerski
- config/values: default no_hardware_cursors to 2 (#14575) by @vaxerski
- config/values: update
general:layoutdescription (#15175) by @Undeadamien - config: monitors default to "preferred" res, "auto" pos and scale (#15193) by @davc0n
- core/output: don't destroy bound wl_output resources on same-name global replace (#15351) by @titosymanankasina
- core: refactor more compositor state into separate classes and states (#15282) by @vaxerski
- crashReporter: don't skip trailing zeros in the stack trace (#15300) by @LRitzdorf
- cursor: revert "transform hardware cursors within content bounds (#14988)"
- cursor: transform hardware cursors within content bounds (#14988)
- debug: replace sizeof(x)/sizeof(x[0]) with std::size (#14871) by @VPeruS
- desktop/fadeout: extract bad logic, simplify fadeouts (#15260) by @vaxerski
- desktop/focusstate: restore keyboard focus after layer closed (#15419) by @myamusashi
- desktop/rule: optimize mapping rule properties to strings and engines (#14945) by @danielkrupinski
- desktop/view: ignore client maximize requests for tiled windows (#13790) by @charisvt
- desktop/view: sync layout's m_box in clampWindowSize (#15266) by @swomf
- desktop/window: allow focus while held to non-OR X11 windows (#14821) by @vaxerski
- desktop/windowRule: use original monitorstr if not silent (#14621) by @lichie567
- desktop: extract a lot of view state from compositor (#15245) by @vaxerski
- desktop: move window manipulation functions out of compositor (#15256) by @vaxerski
- desktop: remove using directives, move to geometric functions (#15402) by @vaxerski
- dmabuf: ensure both create and create_immed verify v4 (#15424) by @gulafaran
- dmabuf: revert "ensure both create and create_immed verify v4 (#15424)" by @gulafaran
- docs/hyprctl: update example code for hyprctl dispatch (#14656) by @raluvy95
- drm: init sync_merge_data::name field directly with a string literal (#15153) by @danielkrupinski
- drm: refactor merging and exporting fences (#14808) by @gulafaran
- dwindle: avoid crashing on expired weakptr (#15415) by @gulafaran
- elementrenderer: allow smaller viewports near the top/left edges of the buffer (#14891) by @awused
- eventmanager: handle partial IPC writes (#15262)
- gestures/scroll_move: guard col to avoid crash (#14394) by @vaxerski
- gestures: clamp toggle cursorZoom like mult and live (#14997) by @barrettruth
- gestures: configure client to final size on fullscreen/float gesture completion (#14981) by @TimaDub
- helpers: include numbers header (#14406) by @LinuxUserGD
- helpers: remove old header (#15095) by @vaxerski
- hyprctl: handle partial IPC transfers (#15408)
- hyprctl: hide C++ symbols by default (#14959) by @danielkrupinski
- hyprctl: remove redundant mutex locking from SRollingLogFollow::get() (#15114) by @danielkrupinski
- hyprctl: use .transform() instead of .and_then() (#15116) by @danielkrupinski
- hyprpm: allow distro packagers to provide extra cflags for building plugins (#14755) by @GaugeAndGravity
- hyprpm: continue after repository update failures (#15391) by @gfhdhytghd
- hyprpm: hide C++ symbols by default (#14958) by @danielkrupinski
- hyprtester: handle empty Lua include path in plugin build (#15241)
- hyprtester: improvements, remove some redundancy and other things. (#15038) by @cebem1nt
- hyprtester: report failures at the end (#14421) by @vaxerski
- i18n: Adjust some awkward English (#14831) by @tremby
- i18n: reduce the size of the machine code generated from CI18nEngine constructor (#15036) by @danielkrupinski
- i18n: update italian translation (#14556) by @alba4k
- init: gain real-time through rtkit (#15411) by @andresilva
- init: revert "gain real-time through rtkit (#15411)" by @andresilva
- input-capture: impl protocol (#7919) by @3l0w
- input-capture: permission type not in lua config (#15481) by @littleblack111
- input: aggregate modifier states from all keyboards on focus enter (#14633) by @ahmedkall
- input: disable libinput send events when pointer device is disabled (#15327) by @sitiyou
- input: properly make input-blocked windows inaccessible (#14517) by @vaxerski
- internal: do not use std::make_pair() (#15122) by @danielkrupinski
- internal: extract rarely executed code from RASSERT macro to a non-inline function (#15013) by @danielkrupinski
- internal: make ColorManagement constants inline to reduce binary file size (#15267) by @danielkrupinski
- internal: make color constants inline to reduce binary file size (#15211) by @danielkrupinski
- internal: optimize Env::envEnabled() (#15295) by @danielkrupinski
- internal: pass lua includes to hyprtester plugin (#14747) by @UjinT34
- internal: removed Herobrine
- internal: rename getWindows to getWindowCount to be more descriptive. (#15268) by @erstarr
- internal: replace O_CLOEXEC with FD_CLOEXEC for file descriptor flags (#14909)
- internal: replace PI macro with std::numbers::pi (#15115) by @danielkrupinski
- internal: replace std::vformat() with std::format() when the format string is known at the compile time (#15119) by @danielkrupinski
- internal: use std::lerp() (#15296) by @danielkrupinski
- ipc/lua: rxpose tearingHint for windows (#15431) by @SergeyKasmy
- keybinds: set a fallback releasePending flag for special lua binds (#14600) by @vaxerski
- keybinds: store hit binds first, then execute callbacks (#14743) by @vaxerski
- layersurface: dont nullptr deref on compositor cleanup (#15379) by @gulafaran
- layersurface: inform layer surfaces of scale changes (#14771) by @awused
- layout/dragController: reset floating offset on ended drag (#14940) by @vaxerski
- layout/scrolling: check if cursor overlaps with target in focusOnInput (#14687) by @cebem1nt
- layout: harden workspace layout refresh during monitor changes (#14893) by @awsms
- logger: avoid multiple instances of static variables being created in CLogger::log() (#15012) by @danielkrupinski
- main: gain SCHED_RR and drop CAP_SYS_NICE earlier (#14897) by @ErrorNoInternet
- meta/lua-stubs: overwrite scale to accept float and int (#14461) by @vaxerski
- meta/lua: Gestures can accept a lua function (#14649) by @kolayne
- meta: update lua stubs for permissions (#14400) by @alba4k
- monitor: don't modeset on reserved changes (#14397) by @vaxerski
- monitor: don't refresh background textures on small changes (#15117) by @vaxerski
- monitor: don't set back to 8 bit when applying rules (#14404) by @fxzzi
- monitor: move floating windows with layout changes (#14928)
- monitor: retry transient mode selection failures (#14927)
- monitor: revert "set format back after failing DS activation (#14168)" (#14864) by @fxzzi
- monitor: skip fallback monitor on recovery flag evaluation (#15332) by @oclaw
- nix/module: link /share path
- nix: gcc15Stdenv -> gcc16Stdenv
- opengl: optimize CShaderLoader::getDefines() (#15212) by @danielkrupinski
- output/icc: avoid unnecessary VCGT resampling (#15144)
- output: simplify trying DRM formats (#15198) by @danielkrupinski
- perf: avoid unnecessary copies and allocation (#15147)
- presentation: ensure feedbacks arent silently dropped (#15473) by @gulafaran
- protocols/background-effect: don't automatically destroy object on surface destroy (#14758) by @vaxerski
- protocols/cm: implement WP CM v1.3 (#15026) by @UjinT34
- protocols/dmabuf: don't send mods on v4 and above (#15189) by @vaxerski
- protocols/fractional-scale: track if scale is known and send scales eagerly when known (#14798) by @awused
- protocols/pointerwarp: allow warp on layer surfaces (#14949) by @awused
- protocols/toplevelExport: null-check pixel format (#15203) by @Kuenec
- protocols/vicinae-hotkey-v1: implement client-managed global shortcuts (#15010) by @aurelleb
- protocols: avoid crash in lease (#15417) by @gulafaran
- protocols: bump xdg-decoration to rev 2 (#14869) by @vaxerski
- protocols: guard protocol callback resource lookups (#15276)
- protocols: guard protocol output resource lookups (#15273)
- protocols: implement ext-background-effect-v1 protocol (#13211) by @aurelleb
- render: handle explicit sync fallback safely (#14986)
- render: rollback failed direct scanout state (#14987)
- renderer/gl: release failed fence syncs (#14956) by @sluongng
- renderer/gl: skip invalidation clear on empty damage (#14921) by @tazzo343
- renderer/rbo: avoid nullptr deref (#15167) by @gulafaran
- renderer: allow blurring of the session lock surface (#15283) by @NamorNiradnug
- renderer: block solitary on fadeouts (#15428) by @gulafaran
- renderer: harden damage handling and workspace color cache (#15035)
- renderer: intersect blur region with bbox to normalize it (#14639) by @aurelleb
- renderer: optimize text rendering (#15124) by @umbrageodotus
- renderer: reduce per-frame heap allocations (#14932)
- renderer: reject invalid damage before region handling (#15242)
- renderer: reject invalid damage regions (#15064)
- renderer: send frame callbacks on presented if no change (#14849) by @gulafaran
- renderer: set proper image description in snapshots (#14398) by @vaxerski
- renderer: unbreak text rendering (#15127) by @umbrageodotus
- screenshare: only copy fb for pending frames (#14672) by @imperishableSecret
- screenshare: revert "only copy fb for pending frames (#14672)" by @imperishableSecret
- shaders: replace SHADERS std::map with a constexpr sorted std::array (#15113) by @danielkrupinski
- start: re-show display lock died screen on restart after crash (#15334) by @neal98
- state/monitor: refactor monitor state, init fallback state (#14547) by @vaxerski
- state/monitorQuery: implement monitor query, move logic off of Compositor (#15070) by @vaxerski
- state: extract layout control functions from compositor (#15104) by @vaxerski
- tests/misc: remove isDirection(char)
- tests: check that we can auto-group floating windows (#14453) by @Aqa-Ib
- tests: some code improvements (#14774) by @cebem1nt
- texture: cache G and A swizzle channels aswell (#14605) by @gulafaran
- treewide: clean up and performance (#15230)
- window: cache process environment lookups (#15264)
- windows/focus: differentiate fullscreen focus reason into default and layout handled reasons. (#14370) by @erstarr
- windowstate/layerstate: don't dynamic_cast a view's self-ptr during destruction (#15471) by @gulafaran
- xwayland: avoid unmanaged geometry configure loop (#15280) by @moetayuko
- xwayland: guard unknown selection events (#15409)
- xwayland: lock focus while dragging an xwayland window (#12051) by @enzi
- xwayland: preserve title fallback state (#15449)
- xwayland: validate ICCCM hint replies (#15450)
Special thanks
Special thanks as always to these gigachads for supporting Hyprland's continued development:
Sponsors
Diamond
37Signals
Gold
Framework, Butterfly
Donators
Top Supporters:
soy_3l.beantser, taigrr, RaymondLC92, Xoores, Bonsai, d, DHH, alukortti, miget.com, Ammar Hossain, Jas Singh, yamauchihiroshi, iain, Seishin, Brandon Wang, ExBhal, Hunter Wesson, RayJameson, Kay, Ki☆, alexmanman5, Tonao Paneguini, John Shelburne, 3RM, gfunnymoney, ari-cake, TyrHeimdal, Illyan, --, Insprill, lzieniew, MadCatX, Theory_Lukas
New Monthly Supporters:
Anon, wmeints, Twinkybot, ryan, jakhub, JMH, Le Juju, ercument, xff, Mike Raphone, Mike E, Martijn, mfed, leomoon, OldPastaFace, ferngg_, damirk, Ghostxsalmon, Flo, DavDood, bamboo, Justin, Cpl. Roth, irontom10, Eric, phage-zn, erotourtes, Streifenfrei
One-time Donators:
Wawan, Jim, Marco Celis, JDM, LPGames, joscani, trvnkwil, davinsky, Santiago Perez, Mantas, Javier, asdfasdfasdfasdf, Leo, saltchicken, Yakedo, J Fernandes, PasiS, Marcelo, RammFire, jrgd, elandi, Xenia, Paul H, Jonathan Lopez, mir0, sheik, Supporter, Gérald, Ghoul, uniuni, Lei Huang, BTCharlie, marckeelingiv, ArisTheInquiring, anon, 9x25dillon, DCyph360, inittux111, Steve, Rowan, Awachuwere, Hank, Chloessica, escuco, Boriana, CRUDB, EndoliteMatrix, King, tdha, SillyingAround, Ag, MrElo, fraxineus, Dobrovschi Stefan, MrCharless, 4everN00b, bogdan.bagno@gmail.com, Shoh Berdy, araneae, Skrazzo, Carlos martinez, Kimli, Antoni, Ed R, Aphrofluff, ThatOneShortGuy, gtm, ChristophLHR, Sam C, deven, Alezarine, golanv, Praegustator, zaafiel428, skatos24, Louis Nicholas, Ivan Ucha, Andrejs, mirolPirol, dacero, cmquesada, Nando, an, shkz, Rob H, TrentZent#5307, Snil, Rigle, NikodemRafalski, Bishop James, Some random dude from China, jo, Roy, ProfessorNova, Ikey, nihilfm, Serj007, GVM, DucSpa, LinuxHG, WetSeal, sikor666, djledda, Dominik, jolteroli, Jkob, Valerie, Valentino, A374377, evandroev@gmail.com, w00z4, Mateusz, Dirk, mdereje, Joy, Celerodlak, BabawabatheSuperSlender, Paulin, Manuel P., Cobra1one, Abhinav, houdinihacker, JohnAtl, Blackcat, yDog-1, CUhRip, Alex, Kodlak, ReallyFluffy, Miguel Padilla, wronguy, JWHall, TheGreatMcPain, mykey, ThePreviousOne, poor_man, FarLT, Élder Bernardi, Citizen5, Gus, GKL, falparsi, @ericmoyer@hachyderm.io, labo, MeaTLoTioN, Caja, Willem van Ede, @elmorek, anonymous-supporter, William Caicedo, Hello, aussiedini, omnicroissant, cadds, Evan LeSage, Pierre, Marugun, Robbie, Henry, paradaimu, Cody Weaver, jbsbuilder, zongben, Pawel, ManosG, revitalist, marcs100, Azrael Alpha, erkre, brainfxk, PaulG, Ivan Shakuta, taqashh/abbo0dio, curu, Chaosz, GedeSaika, Amor, 7NK01, abby, Ren, luomichael, Alon, Matthew Feidt, xtarr, Annoying Moose, carpet.lover, Emil Folino, kanito, Nael, Christoffer, Arepa, Kazunari Irie, Ebrithil, Daan, Cbriss, Gustavo Rodriguez, Keylack, kern, McMelon, Aser, zerocool823, Tony, Tom C, Mike B, Thank you, JB, Henrik, kusanaginoturugi, Shmoo Maru, Lou, Oleks Sheremet, kagenou-sama, J, Blueh, decoy, Skaz, Neno, CurlyDude, Dmitrii Gol, Roger Powell, Joseba.dev, oddi, gumbum, Alejandro
Full Changelog: v0.55.0...v0.56.0