v0.30.0
New Hyprland update guys wake up!
Shoutout to the entire country of Romania and @fufexan, and the top Gs pumping out more MRs than I can physically review @memchr @Dickby @MightyPlaza @thejch and more :)
New features:
- config: add wildcard handling in source= (#3276)
- doc: Add a CoC (#3366)
- dwindle: add proper movement for window move binds
- feat: add a new movewindoworgroup dispatcher (#3006)
- input/config: add button scroll lock (#3189)
- layout: add direction parameter to onWindowCreated and friends (#3269)
- layout: add missing groupbar decoration to the window (#3235)
- master: Add mfact dispatcher (#3298)
- master: Add orientationcycle command on MasterLayout (#3128)
- master: Add smart resizing option for master layout (#3210)
- misc: add disable_hypr_chan option (#3343)
- socket2: add renameWorkspace event
- socket2: added "activespecial" IPC event (#3163)
- varlist: move to a separate header, add join
- windowrules: add % to resizeparams (#3246)
- windowrules: add on-screen constraint to wrv2 'move' (#3247)
- windowrules: add rule
group
to map windows grouped (#3279)
Fixes:
- Nix: fix xdph build
- Vector2D: fix typo in include
- config: fix relative path resolution (#3308)
- dwindle: fix moving windows on special
- dwindle: fix: don't merge groups when moving window (#3302)
- fix(layout): remove
focusWindow
calls fromonWindowCreatedTiling
(#3233) - fix: focusWindow on hidden workspace triggers another focusWindow. (#3216)
- fix: inconsistent behaviour where last workspace was not saved (#3261)
- hyprctl: fix missing comma in getopt -j
- input: Various constraint handling fixes (#3381)
- input: minor constraint fixes
- internal: Fix wlr output management (#3234)
- master: Fix the wrong resize speed in master layout center orientation (#3289)
- master: partially revert 0e64dd2 and fix the animation (#3327)
- refactor: fix missed middle() call in CKeybindManager
- renderer: Fix blur for passes set to 0. (#3181)
- renderer: fix missing dontRound check in renderSurface
- windowrules: Monitor rule fix (#3157)
- windowrules: fix workspace exec rule with special (#3316)
- windowrules: fix workspace rule separation
Other:
- CI: add reusable actions
- CI: don't run wlroots update in PRs
- Nix CI: use DetSys' install & cache actions
- Nix: remove hidpi patches
- Nix: use gcc13Stdenv
- animatedvariable: don't reset timers on duplicate setters
- animationmgr: Optimize CAnimationManager::scheduleTick a bit. (#3172)
- animationmgr: guard monitor ptr in animationSlide
- bezier: Optimize CBezierCurve::getYForPoint (#3321)
- bezier: Remove Todo about N-Point bezier curves. (#3352)
- build: use PCH to reduce compile time (#3095)
- config/input: Improve fallback behavior for unset device config values (#3184)
- config: Integrate HASCONFIG into CConfigManager::getConfigValueSafeDevice (#3195)
- config: disable blur special by default
- config: don't enable vrr 2 for maximized workspaces
- config: loosen restrictions around animation keywords
- hyprctl: Make device configs queryable (#3226)
- hyprctl: print monitor IDs as int64
- input: do not process mouse in unsafe state
- input: don't refocus on switched workspace on the same monitor
- input: don't warp region constraints
- input: guard constraint in unconstrainMouse
- input: lock focus to last surface on buttons held
- input: simplify fullscreen workspace input calculations
- internal: Formatter rework (#3186)
- internal: Make part of CCompositor::focusWindow a bit easier to read. (#3356)
- internal: Remove all
.c_str()
calls when usingstd::vformat
(#3198) - keybinds: Do not suppress pass and mouse release (#3219)
- keybinds: avoid onWindowRemoved & onWindowCreated when group has one member (#3286)
- keybinds: focus last window on workspace change to another mon
- keybinds: ignore conditions on special release
- keybinds: ignore mods on release of special binds
- keybinds: implement pushactivetobottom dispacher (#3217)
- keybinds: movewindow to screen edge for floating windows (#3245)
- keybinds: simulate movement on empty focus after workspace change
- keybinds: track pressed special binds
- keybinds: unify changeworkspace dispatcher (#3250)
- keybinds: warp cursor to correct window in moveWindowOutOfGroup (#3290)
- layout: Allow the layout to control how windows are raised in groups (#3275)
- logging/format: use std::format_string to catch formatting string errors at compile time (#3377)
- logging: implement std::formatter for some types (#3380)
- master: respect the resizing animation option in master layout (#3300)
- monitor: ignore no-op workspace changes
- monitor: minor adjustments
- nix: update patches for meson changes
- refactor: flatten nesting
if
s in layout window creation method (#3294) - refactor: manually resets singletons (#3395)
- refactor: replace lambdas with CKeybindManager::switchToWindow (#3229)
- refactor: replace manual iteration of CWindow with existing methods (#3147)
- refactor: utilize 'middle()' method for window/montior center (#3253)
- renderer: cleanup drm format selection
- renderer: damage monitor on special workspace change
- renderer: separate workspace window render logic
- screencopy: log renderer_begin_with_buffer failures
- socket2: emit lockgroups event (#3317)
- varlist: cleanup unintuitive string splitting (#3369)
- window: recalculate layout on swallow in map
- wlroots: disable wlr vulkan support
- xdgoutput: do not destroy resources on monitorRemoved
- xwayland: adjust coord calculation
- xwaylandmgr: find closest output in xwayland coord translation
Special Thanks
Special thanks as always to those people for donating!
- pulsar256
- alukortti
- Ferreo
- mechgyver
- dieg0sec
- bara
- LilleCarl
- falkaer
- VDawg
- Kyle
- Drace
- k1f0
- KarlTheCarpenter
- DashieTM
MRs
A real chonker!
- Monitor rule fix by @MightyPlaza in #3157
- "activespecial" IPC event by @MightyPlaza in #3163
- refactor: replace manual iteration of CWindow with existing methods by @memchr in #3147
- Add orientationcycle command on MasterLayout by @shadowmax31 in #3128
- build: use PCH to reduce compile time by @memchr in #3095
- Optimize CAnimationManager::scheduleTick a bit. by @Dickby in #3172
- Fix blur for passes set to 0. by @Dickby in #3181
- Formatter rework by @vaxerski in #3186
- add scroll button lock option for input by @unrealhoang in #3189
- Improve fallback behavior for unset device config values by @pdamianik in #3184
- Integrate HASCONFIG into CConfigManager::getConfigValueSafeDevice by @pdamianik in #3195
- Remove all
.c_str()
calls when usingstd::vformat
by @pdamianik in #3198 - fix: focusWindow on hidden workspace triggers another focusWindow by @memchr in #3216
- Do not suppress pass and mouse release by @shadowmax31 in #3219
- Make device configs queryable by @pdamianik in #3226
- refactor: replace lambdas with CKeybindManager::switchToWindow by @memchr in #3229
- fix(layout): remove
focusWindow
calls fromonWindowCreatedTiling
by @memchr in #3233 - Fix wlr_output_management_unstable_v1 protocol by @pdamianik in #3234
- Add smart resizing option for master layout by @thejch in #3210
- fix: add missing groupbar decoration to the window by @memchr in #3235
- add % to resizeparams by @alaricljs in #3246
- feat: add a new dispatcher that can move windows in and out of groups, or swap windows by @memchr in #3006
- refactor: utilize 'middle()' method for window/montior center by @memchr in #3253
- movewindow to screen edge for floating windows by @alaricljs in #3245
- refactor: unify changeworkspace dispatcher by @memchr in #3250
- fix: inconsistent behaviour where last workspace was not saved by @memchr in #3261
- CI: add reusable actions by @fufexan in #2951
- add on-screen constraint to wrv2 'move' by @alaricljs in #3247
- feat(config): allow glob in source= clause by @memchr in #3276
- Allow the layout to control how windows are raised in groups by @outfoxxed in #3275
- layout: add direction parameter to onWindowCreated and friends by @memchr in #3269
- refactor(binds): avoid onWindowRemoved & onWindowCreated when group has one member by @memchr in #3286
- Fix the wrong resize speed in master layout center orientation and remove duplicate code by @thejch in #3289
- fix: moveWindowOutOfGroup moves cursor to wrong window by @memchr in #3290
- flake.lock: update nixpkgs and xdph by @fufexan in #3242
- fix(dwindle): don't merge groups when moving window by @memchr in #3302
- fix: relative path resolution by @memchr in #3308
- Respect the resizing animation option in master layout by @thejch in #3300
- refactor: flatten nesting
if
s in layout window creation method by @memchr in #3294 - Add mfact dispatcher by @thejch in #3298
- fix workspace exec rule by @MightyPlaza in #3316
- binds: emit lockgroups event by @memchr in #3317
- Partially revert 0e64dd2 and fix the master animation by @thejch in #3327
- Optimize CBezierCurve::getYForPoint by @Dickby in #3321
- hyprchan: add disable options by @fufexan in #3343
- Remove Todo about N-Point bezier curves. by @Dickby in #3352
- refactor(varlist): replace unintuitive string splitting by @memchr in #3369
- Make part of CCompositor::focusWindow a bit easier to read. by @Dickby in #3356
- fix(log): use std::format_string to catch formatting string errors at compile time by @memchr in #3377
- refactor: implement std::formatter for common custom types by @memchr in #3380
- Various constraint handling fixes by @vaxerski in #3381
- Add a CoC by @vaxerski in #3366
- implement pushactivetobottom dispacher by @alaricljs in #3217
- windows: add rule
group
to map windows grouped by @memchr in #3279 - refactor: manually resets singletons by @memchr in #3395
New Contributors
- @shadowmax31 made their first contribution in #3128
- @unrealhoang made their first contribution in #3189
- @pdamianik made their first contribution in #3184
- @alaricljs made their first contribution in #3246
Full Changelog: v0.29.1...v0.30.0