Skip to content

v0.39.0

Compare
Choose a tag to compare
@vaxerski vaxerski released this 14 Apr 18:57
· 123 commits to main since this release

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

New Contributors

Full Changelog: v0.38.1...v0.39.0