We're interrupting the usual programme to broadcast this important update to Hyprland.
Freedesktop won't take this one away from you: the cool new stuff in hyprland :)
Notes for packagers
- We've detached from upstream wlroots, now using our fork that is statically linked (no more libwlroots.so)
- IMPORTANT: the source tarball has a bug where if a distro packages hyprland incorrectly, hyprpm will not work at all. This is fixed in git and in the
-rev1
source tarball.
New features:
- flake.nix: add hyprcursor follows (#5435)
- hyprctl: Add shell completions (#5404)
- hyprpm: add shell completions (#5423)
- hyprpm: add support for minimum versions
- layouts: add missing include
- makefile: add patch option to make asan
- monitor: add workspace null check to visible flag
- renderer: Add dimaround layer rule (#4643)
- swipe: add events
- workspace: Add count group flag in windowCount workspace selector prop (#5499)
- workspacerules: add back on-created-empty functionality (#5452)
Fixes:
- CColor: fix getAsHex
- IME: fix IME popup mouse inputs (again) (#5417)
- IME: fix blurry ime on scaled
- IME: fix crash on restarting IME (#5428)
- IME: fix incorrect popup damage (#5383)
- IME: fix race condition on closing window (#5455)
- compositor: fix ghost fadingOut windows remaining after cleanup
- configmgr: fix header priority
- constraint: fix possible uaf on double destruction
- core: fix compile without pch
- core: fix some crash conditions around workspace ptrs in CWindow
- core: fix visibility flags in moveWorkspaceToMonitor
- hooksystem: Fix miscalculation in comment (#5442)
- hooksystem: manually map trampoline addresses
- hyprctl: fix fish completions
- hyprctl: fix grammar mistakes in completions
- hyprctl: fix zsh completions
- hyprpm: fix wlroots path (#5567)
- input: fix focus on maximized bg surfaces
- input: fixup background layer checking on maximized
- keybinds: fix spammy warning
- macros: fix no pch warning
- master: fix center resizing (#5394)
- master: fix crash (#5472)
- master: fix full height when all windows master (#5549)
- master: fix swapped workspaces (#5397)
- master: fix workspace orientation not being restored after workspace rule no longer applies (#5463)
- opengl: fix modif in blur
- renderer: some fixes for renderModif
- window: fix invalid last workspace id
- workspace: fix crash on destruction of compositor (#5495)
- workspace: fix special unnamed workspace rules (#5390)
- workspacerules: fix workspace rule loops (#5433)
Other:
- Makefile: remove refs to libwlroots
- Nix & Meson: switch to wlroots-hyprland
- Workspace/core: Refactor workspace storage (#5380)
- blur: block modif only on no new optimize
- cmake: make sure that OpenGL::EGL is populated
- compositor: move wl_display_destroy_clients (#5498)
- compositor: remove windows from fadingOut properly
- config: Don't override fullscreen opacity if only two opacities are provided (#5512)
- config: verify string length in wrv2 before calling back
- core: Event loop rework (#5466)
- core: assert attempted UAFs in windowExists
- core: simplify sanityCheckWorkspaces
- cursor: Fallback to xcursor if failed to render hyprcursor (#5534)
- damageSurface: don't correct smallVec twice
- deps: move from wlroots to wlroots-hyprland
- eventloop: move timers to an event loop fd
- hooksystem: attempt allocating pages in linear order
- hyprctl: improve help pages (#5385)
- hyprctl: print monitor disabled status (#5525)
- hyprerror: align 32-bit types after 4c79668 (#5375)
- hyprpm: Improve Hyprpm Update Performance (#5530)
- hyprpm: Use proper path to update repo when processing user provided revision (#5414)
- hyprpm: ignore version checks for shallow clones
- hyprpm: install shell completions
- hyprpm: print more info on build failures
- inhibitor: always destroy on window unmap
- input: Dont set active monitor when simulating mouse movement (#5465)
- input: Option for handling off-window axis events (#4177)
- input: allow focus to bottom layers on maximized in reserved
- input: don't remove pinned focus on workspace change (#5486)
- internal: removed Herobrine
- layers: separate anim configs for open/close (#5421)
- makefile: move wlr headers dir
- master: guard window in moveWindowTo
- monitor: check for invalid workspaces in onConnect
- monitor: unset visible flag from ws on disconnect
- opengl: log framebuffer errors
- pkg-config -> pkgconf for hyprpm and cmake
- popups: more safety in damage checking
- props: Allow setting per-window fullscreen opacity (#5470)
- props: Parse border color props as gradient (#5513)
- renderer: avoid double-rendering ls-es on fadingOut
- renderer: block screen shader on screencopy
- renderer: render back layer for workspace-less passes
- scripts: switch to branch --show-current for branch in generateVersion
- style: run clang-format
- subsurface: init existing subsurfaces on children creations
- swipe: nuke numbered
- window: always unref workspace on unmap
- workspaces: add visible flag
- workspace: remove lastFocusedWindow on unmap
- workspace: remove monitor and visible flags on inert
- workspace: update windows when selector match could change (#5533)
Special Thanks
Special thanks to these people for donating money to me to keep this ball goin':
- alukortti
- Wickedly
- Philipp Soldunov
- MasterHowToLearn
- Theory_Lukas
- Goggi
- ari-cake
- kittyandrew
- Benjamin
- Thanos Apollo
- Myryk
- Party Wumpus
- EpixMan
- taigrr
- Gaetan Lepage
- SomeMediocreGamer
- port19
- numbatty
- cat
- kittyandrew
- FUFSoB
- mroote
- Azelphur
- 0xk1f0
- eternal
- vulonkaaz
- JPEG
- Arimil
- Stephen_M64
- vpavliashvili
- bog
MRs
- hyprerror: unbreak build on 32-bit architectures by @jbeich in #5375
- IME: fix incorrect popup damage by @sungyoonc in #5383
- Workspace/core: Refactor workspace storage by @vaxerski in #5380
- fix unnamed special workspace rules by @MightyPlaza in #5390
- Fix master center resizing by @thejch in #5394
- Fix master resizing by @thejch in #5397
- Improve hyprctl help pages by @Micovec in #5385
- hyprctl: Add shell completions by @LOSEARDES77 in #5404
- Use proper path to update repo when processing user provided revision by @zakk4223 in #5414
- layers: separate anim configs for open/close by @end-4 in #5421
- IME: fix crash and auto enter by @sungyoonc in #5428
- hyprpm: fix incorrect commits number parsing by @bvr-yr in #5437
- Fix miscalculation in comment by @sundhaug92 in #5442
- Fix workspace rule loops by @thejch in #5433
- workspacerules: add back on-created-empty functionality by @alyanser in #5452
- IME: fix ime on closing window by @sungyoonc in #5455
- Add missing follow to flake.nix by @fred21O4 in #5435
- Fix master workspace orientation not being restored after workspace rule no longer applies by @thejch in #5463
- Dont set active monitor when simulating mouse movement by @thejch in #5465
- Event loop rework by @vaxerski in #5466
- IME: fix IME popup mouse inputs (again) by @MikeWalrus in #5417
- Hot fix for mater layout resize crash by @thejch in #5472
- cmake: make sure that OpenGL::EGL is populated by @cnt0 in #5469
- hyprpm: add shell completions by @LOSEARDES77 in #5423
- don't remove pinned focus on workspace change by @MightyPlaza in #5486
- Allow setting per-window fullscreen opacity by @SoSeDiK in #5470
- compositor: move wl_display_destroy_clients so we dont crash on exit by @gulafaran in #5498
- workspace: fix crash on destruction of compositor by @gulafaran in #5495
- Change pkg-config -> pkgconf for hyprpm and cmake by @vaxerski in #5502
- Option for handling axis events outside window area by @dranull in #4177
- hyprctl: fix zsh completions by @postsolar in #5503
- meson: fix hyprctl fish completions & install hyprpm completions by @ErrorNoInternet in #5510
- Add count group flag in windowCount workspace selector prop by @sungyoonc in #5499
- Parse border color props as gradient by @SoSeDiK in #5513
- Don't override fullscreen opacity if only two opacities are provided by @SoSeDiK in #5512
- hyprctl: print monitor disabled status by @JManch in #5525
- workspace: update windows when selector match could change by @sungyoonc in #5533
- Fallback to xcursor if failed to render hyprcursor by @SoSeDiK in #5534
- Improve Hyprpm Update Performance by @https123456789 in #5530
- renderer: Add dimaround layer rule by @TheOnlyMrCat in #4643
- master: fix full height when all windows master by @janpeterd in #5549
- hyprpm: fix wlroots path by @bvr-yr in #5567
- master layout: change the mfact dispatcher to use splitratio by @thejch in #4766
- Fix workspace name selector returning true early by @thejch in #5571
- Fix double special workspace by @thejch in #5574
- Some small cmake cleanups by @cnt0 in #5572
- build: update asan patch by @andresilva in #5562
- remove border on fullscreen by @MightyPlaza in #5577
- keybindmgr:fix workspace_back_and_forth by @go0d1uck in #5585
New Contributors
- @LOSEARDES77 made their first contribution in #5404
- @sundhaug92 made their first contribution in #5442
- @fred21O4 made their first contribution in #5435
- @cnt0 made their first contribution in #5469
- @SoSeDiK made their first contribution in #5470
- @gulafaran made their first contribution in #5498
- @postsolar made their first contribution in #5503
- @ErrorNoInternet made their first contribution in #5510
- @janpeterd made their first contribution in #5549
- @go0d1uck made their first contribution in #5585
Full Changelog: v0.38.1...v0.39.0