A sizeable update for y'all, with quite a few breaking changes.
Here, have this rose as a sorry for the breaking chonker: 🌹
Shoutout to Marcin Zawada from my Polish friend's university for being cool :)
Breaking changes
decoration:multisample_edges
has been nuked. A better algorithm is used by default.misc:disable_hypr_chan
has been removed. The new, more flexible option ismisc:force_default_wallpaper
with a default of-1
. Setting to0
will use the non-anime backgrounds exclusively and behave like the olddisable_hypr_chan = true
- All group-related options have been moved to
group:
, please see the docs here: https://wiki.hyprland.org/Configuring/Variables/#group - Some makefile stuff has been changed/removed, see the notes for packagers.
Notes for packagers
- notably,
make config
,make pluginenv
andmake fixwlr
have been nuked. - almost the entire makefile pipeline has been moved into CMake itself.
- Building is done via
make all
(ormake release
,make debug
) - Installing is done via
sudo make install
. Please note this will not compile Hyprland at all, and only install built files.
New features:
- Plugin API: Add version query (#3545)
- dispatchers: Add option to center the cursor on the focused window when switching workspaces (#3528)
- includes: add missing log include to animatedvariable
- input: Add map to region options for tablets (#3425)
- internal: Add GTK portal as fallback (#3469)
- internal: add a watchdog
- layout: add new_window_takes_over_fullscreen mode 2
- makefile: fix using
-d
test for a binary file AND re-add missing portals conf (#3570) - master: add option to drag and drop windows at cursor position (#3465)
- misc: add misc:new_window_takes_over_fullscreen
- renderer: add force_wallpaper instead of no_hypr_chan (#3459)
- renderer: add further conditions to solitary recheck
- renderer: Tearing implementation (#3441)
- workspacerules: Add a persistent workspace rule (#3530)
Fixes:
- dispatchers: fix extra monitor offset when snapping floating (#3520)
- events: fixup empty events not being sent on unmap
- hyprctl: fix crash in unsafe state with activeworkspace
- input: fix unused variable warn
- input: fix warn
- input: fixup frame schedule conditions on mouse move
- input: fixup mouse down refocus conditions
- input: minor constraint fixes
- makefile: fix permissions on files
- makefile: fix using
-d
test for a binary file AND re-add missing portals conf (#3570) - makefile: fix wrong path in chmod
- makefile: fixup permissions on installed binaries
- master: fix drop_at_cursor on workspace 2 (#3512)
- renderer: considerable fixes to repaint logic
- renderer: fix missing check for surfaceCount in rechecking solitary
- renderer: fixup solitary conditions
Other:
- Debug: respect logging settings for wlr (#3584)
- animationmgr: damage floating windows on workspace anim
- build: CMake pipeline improvements (#3564)
- build: Unbreak Meson build on FreeBSD (#3549)
- build: Unbreak build without precompiled headers (#3400)
- build: guard execinfo.h via build systems (#3547)
- build: include version.h in PluginAPI.hpp (#3571)
- cleanup: Replace find() with C++20 starts_with(), ends_with() and contains() (#3572)
- cmake: search for systemd headers first
- config: mention force_default_wallpaper in default configs
- config: restore configCurrenPath after sourcing file (#3339)
- config: trim spaces in the rule field in windowrulev2
- crashreporter: avoid using empty CACHE_HOME
- dispatchers: support number as arg in changegroupactive (#3329)
- dwindle: Avoid rounding errors in window position (#3524)
- events: don't focus new window if spawned behind fullscreen
- events: set new window alpha to 0 if it's tiled behind fullscreen
- examples/readme: mention tearing
- groups: create group and groupbar config sections (#3522)
- groups: ensure consistency in dispatcher behavior with global group lock (#3531)
- hyprctl: avoid .pop_back() on empty string
- hyprctl: log activelyTearing for monitors
- input: avoid using the wrong surface in drag focus force
- input: properly track mouse focus on drag operations
- internal: Further unsafe state improvements (#3404)
- internal: better versioning (#3543)
- internal: include missing header (#3464)
- internal: removed Herobrine
- internal: use pragma once in version.h
- layershell: avoid configure on unchanged size
- layout: check for specialworkspace in floating toggle
- layout: don't discard fullscreen on new tiling
- log: log wlr errors regardless of env
- makefile: make binaries 755 instead of 711
- makefile: set 777 for /build perms
- makefile: set correct perms on includes
- makefile: set perms for built subprojects in pluginenv
- makefile: warn users when doing sudo make install
- meson: Sort input file list (#3550)
- meson: use
ln
with force flag (#3568) - monitor: ensure vrr on workspace change
- notifications: Schedule a frame on notification creation (#3556)
- pluginapi: remove starting newline in demangled func name (#3502)
- props: bump ver to v0.31.0
- render: stop locking SWC on tearing
- renderer: avoid spamming software cursor locks
- renderer: extract solitary check into frame handler
- renderer: lock software cursors while tearing
- renderer: nuke multisample_edges in favor of a faster algorithm
- renderer: optimize render pipeline when there is a solitary client
- renderer: remove old debug log
- screencopy: enhance error logging
- shaders: Remove redundant clamp of smoothsteps return value. (#3456)
- shaders: improve border rounding
- tearing: cleanup vars and avoid rendering before drm is ready
- watchdog: don't hang on exit
- watchdog: initialize after config
- watchdog: remove thread on destroy
- wsrules: check for workspace ID matches on numbered workspaces
MRs
- Unbreak build without precompiled headers by @jbeich in #3400
- binds(changegroupactive): support number as arg by @memchr in #3329
- Further unsafe state improvements by @vaxerski in #3404
- fix: restore configCurrenPath after sourcing file by @Legorel in #3339
- Add map to region options for tablets by @Isoheptane in #3425
- Tearing implementation (v3) by @vaxerski in #3441
- Remove redundant clamp of smoothsteps return value. by @Dickby in #3456
- fix: include missing header by @memchr in #3464
- Add GTK portal as fallback by @gnusenpai in #3469
- Master layout: add option to drag and drop windows at cursor position by @thejch in #3465
- Remove starting newline in demangled func name by @ItsDrike in #3502
- Fix drop_at_cursor on workspace 2 by @thejch in #3512
- improved hypr_chan config options by @DaniD3v in #3459
- fix extra monitor offset when snapping floating by @MightyPlaza in #3520
- Avoid rounding errors in window position on dwindle by @FakeMichau in #3524
- Persistent workspace rule by @hariseldon78 in #3530
- Add option to center the cursor on the focused window when switching workspaces by @pdamianik in #3528
- create group and groupbar config sections by @MightyPlaza in #3522
- Better versioning by @vaxerski in #3543
- fix(group): ensure consistency in dispatcher behavior with global group lock by @memchr in #3531
- Unbreak Meson build on FreeBSD by @jbeich in #3549
- meson: Sort input file list by @bmwiedemann in #3550
- Guard execinfo.h via build systems by @vaxerski in #3547
- Schedule a frame on notification creation by @FakeMichau in #3556
- Plugin API: Add version query by @vaxerski in #3545
- CMake pipeline improvements by @vaxerski in #3564
- fix(meson): use
ln
with force flag by @memchr in #3568 - Fix makefile using
-d
test for a binary file AND re-add missing portals conf by @Frontear in #3570 - fix(build): include version.h in PluginAPI.hpp by @memchr in #3571
- Replace find() with C++20 starts_with(), ends_with() and contains() by @pdamianik in #3572
- Debug: respect logging settings for wlr by @ayles in #3584
New Contributors
- @Legorel made their first contribution in #3339
- @Isoheptane made their first contribution in #3425
- @gnusenpai made their first contribution in #3469
- @ItsDrike made their first contribution in #3502
- @DaniD3v made their first contribution in #3459
- @FakeMichau made their first contribution in #3524
- @hariseldon78 made their first contribution in #3530
- @bmwiedemann made their first contribution in #3550
- @Frontear made their first contribution in #3570
- @ayles made their first contribution in #3584
Special thanks
Special thanks to these chads for donating!
- pulsar256
- alukortti
- Ferreo
- WhiteBlackGoose
- Tom
- BW Drop-Ins!
- Tristan
- galister
- sawb
- justinlime
Full Changelog: v0.30.0...v0.31.0