github hyprwm/Hyprland v0.30.0

latest releases: v0.43.0, v0.42.0, v0.41.2...
11 months ago

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 from onWindowCreatedTiling (#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 using std::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 ifs 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 using std::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 from onWindowCreatedTiling 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 ifs 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

Full Changelog: v0.29.1...v0.30.0

Don't miss a new Hyprland release

NewReleases is sending notifications on new releases.