Releases: hyprwm/Hyprland
v0.32.1
Small update with some fixes for screencopy, xdg surface handling, shadows on 10bit, etc.
Fixes:
- hyprctl: Fix build warnings (#3821)
- screencopy: round boxes
- xdg-shell: improve ack-configure handling
- xdg-shell: update reported size on ack_configure
- xwayland: add half of delta to configure request sizes
Other:
- animationmgr: push shadow avs to ended on disabled
- deco-positioner: recalc after uncache
- decoration-positioner: improve extent handling
- decorations: Decoration Positioner (#3800)
- deps: update wlroots
- hyprctl: return group list in correct order (#3683)
- input: don't schedule repaint on cursor move if hardware cursors are in use
- opengl: remove unused alpha matte from shadow
- opengl: switch to black-and-white for alpha mattes
- shaders: Use clamp in doubleCircleSigmoid. (#3824)
- shadow: alpha treatment improvements
Special Thanks
Special thanks as always to these absolute chads for donating:
- Lars - Massively
- WhoKnows
- pulsar256
- alukortti
- Ferreo
- png
- spikespaz
- lukejcollins
- Aibo Hu
- andresilva
- niraami
- ArtemSmaznov
MRs
- hyprctl: return group list in correct order by @topisani in #3683
- Fix build warnings by @vityafx in #3821
- Use clamp in doubleCircleSigmoid. by @Dickby in #3824
- Decoration Positioner by @vaxerski in #3800
New Contributors
Full Changelog: v0.32.0...v0.32.1
v0.32.0
A small update brought to you by yours truly :)
This time without breaking changes. I think.
New features:
- binds: add ignoreMods flag
- binds: add movefocus_cycles_fullscreen
- example: add special workspace to default config
- fractional-scale: fix addon existence check
- groups: add option to configure font name (#3751)
- hooksystem: add callbackinfo struct and cancellable events
- hyprctl: add a query for workspace rules (#3630)
- hyprctl: add focusHistoryID to hyprctl clients
- pluginapi: add a config keyword adding method
- renderer: add transformers
- renderer: added new customization options to the blur shaders (#3650)
- windowrules: add nearestneighbor
- workspacerules: Add new optional "default command" for auto-launching apps on new workspaces (#3559)
Fixes:
- Master: fix drop_at_cursor when there are only two windows (#3734)
- cmake: Fix error building without CMAKE_BUILD_TYPE being set (#3590)
- compositor: Fix a lack of a check for workspace equality on same monitors in getInDirection (#3625)
- config: fixup usage of plugin in handles
- fix(build): do not include wlr headers directly, use includes.hpp instead. (#3587)
- fractional-scale: fix addon existence check
- group: fixes for dragging groups onto groupbars (#3708)
- includes: fix box headers (#3771)
- input: fix force_zero_scaling for tablet and touch (#3644)
- input: fix mouse down handling on unset last surface
- input: simulate mouse movement to fix focus on open/close window
- layout: fix missed setWindowSize in no_gaps_when_only node apply
- layout: fix various rounding errors
- master: fix movewindow across monitors (#3628)
- master: fix moving window between monitors (#3721)
- master: fix resizing wrong window behind in special workspace (#3591)
- meson/nix: Fix meson.build nix patch (#3594)
- pluginapi: fixup get_hash functions
- renderer: fix legacy_renderer build (#3732)
- renderer: fix missed box scale
- renderer: fix shimmers when manual resizing
- renderer: fix small surface's blur region being offset by monitor coords
- renderer: fixup blend disable conditions in renderSurface
- shadow: fix ignore_window false
- shadow: fix missed fullBox.scale
- shadows: fix on transformed
- wlsurface: fix small detection
Other:
- Core: various unsafe state improvements (#3713)
- Decos: Window decoration flags, shadow improvements (#3739)
- Internal: Hyprland box implementation (#3755)
- Map cmake None to meson's plain
- box: use std::round instead of std::floor in ::round()
- cmake: Map cmake None to meson empty (#3614)
- cmake: remove old definitions from cmakelists
- cmake: set asan for only hyprland not others
- compositor: allow windowfromregex floating param
- compositor: allow windowfromregex tiled param
- compositor: do not process fullscreen events in unsafe
- compositor: find windows in direction on floating
- compositor: remove old comment
- compositor: send preferred scale and transform events to surfaces
- dwindle: move to CBox for expressing nodes
- events: better adjust to unreported sizes for xwayland apps
- events: ignore takes_over_fullscreen for floating windows
- events: make new windows taking over fullscreen keep the existing mode (#3588)
- events: set reported size on floating map
- events: set reported size on the end of mapping
- flake.lock: update nixpkgs and xdph
- fractional-scale: post error on taken fs objects
- hyprctl: log monitor id in workspaces request
- includes: include sharedDefs in includes.hpp
- includes: include vector2d for sharedDefs
- input: Apply scaling to cursorPosOnActivate position (#3664)
- input: better cursor image infrastructure
- input: don't reset cursor movement timer on simulateMouseMovement (#3595)
- input: handle mouse on decorations (#3560)
- input: let input-grabbing decos have prio over resize on border
- input: properly track xdg surfaces' geometry in vectorToSurfaceLocal
- input: remove incorrect check in re-enter
- input: send motion events on focusWindow if follows_mouse is 0
- input: simulate movement only if mouse is over in open/close window
- internal: create canBeGroupedInto() (#3693)
- internal: honor close_special_on_empty on moveToWorkspace
- internal: removed Herobrine
- layershell: support ON_DEMAND keyboard mode
- layout: avoid redundant size sets on new fullscreen
- layout: better storage for no fullscreen checks var
- layout: round box in mouseMove
- layout: round window boxes after special scale factor
- main: set isShuttingDown after display dispatch reaches the end
- meson: generate version.h before install_headers (#3612)
- nix: use mesonAutoFeatures attribute
- region: include box in the header
- renderer: allow transform enabling from outside opengl
- renderer: avoid drawing invisibly small surfaces in renderSurface
- renderer: blur properly behind small surfaces
- renderer: cast std::clamp args to be of the same type (#3589)
- renderer: improvements to wayland surface small() detection
- renderer: properly pass 10-bit formats to opengl
- renderer: properly set currentFB on snapshot renders
- renderer: render oversized blur with respect to fade alpha
- renderer: respect viewporter dest on base surfaces
- renderer: use optional for cursor surface storing
- renderer: use preOffset pos instead of offset
- shaders: support changing the outer radius of borders independently
- subprojects: update tracy
- surface/wayland: conform to small surface requirements
- transformers: allow modifying renderdata pre-pass
- window: update window reported size on damage events
- workspacerules: search for special properly
- xdg: send unconstrain events after a popup reposition (#3716)
- xdg: use std::ceil for sending scale to surfaces
Special Thanks
Special thanks as always to these absolute chads for donating:
- Lars - Massively
- WhoKnows
- pulsar256
- alukortti
- Ferreo
- png
- spikespaz
- lukejcollins
- Aibo Hu
- andresilva
- niraami
MRs
- fix(build): do not include wlr headers directly, use includes.hpp instead. by @memchr in #3587
- renderer: unbreak on 32-bit archs via static_cast by @jbeich in #3589
- Make new windows taking over fullscreen keep the existing mode by @eriedaberrie in #3588
- Fix meson.build nix patch by @outfoxxed in #3594
- Fix master resizing wrong window behind in special workspace by @thejch in #3591
- input: don't reset cursor movement timer on simulateMouseMovement by @andresilva in #3595
- meson: generate version.h before install_headers by @memchr in #3612
- Fix error building without CMAKE_BUILD_TYPE being set by @ideasman42 in #3590
- Map cmake None to meson empty by @q234rty in #3614
- Fix movefocus in special workspace sometimes moving the focus into the main workspace by @thejch in #3625
- fix master movewindow across monitors by @thejch in #3628
- Query workspaces rules by @hariseldon78 in #3630
- Feat: Add new optional "default command" for auto-launching apps on new workspaces by @Syndelis in #3559
- flake.lock: update nixpkgs and xdph by @andresilva in #3657
- input: Apply scaling to cursorPosOnActivate position by @teschnei in #3664
- Attempt to fix force_zero_scaling for tablet and touch by @Ant01n3 in #3644
- handle mouse on decorations by @MightyPlaza in #3560
- refactor: create a function for grouping conditions by @MightyPlaza in #3693
- nix: use mesonAutoFeatures attribute by @andresilva in #3701
- Sigh unsafe stuff take 3 by @vaxerski in #3713
- fixes for dragging groups onto groupbars by @MightyPlaza in #3708
- fix: Nautilus Popup clipping outside monitor by @DashieTM in #3716
- Map cmake None to meson's plain by @q234rty in #3717
- fix moving window between monitors by @thejch in #3721
- renderer: fix legacy_renderer build by @pastalian in #3732
- Master layout: fix drop_at_cursor when there are only two windows by @thejch in #3734
- Decos: Window decoration flags, shadow improvements by @vaxerski in #3739
- Internal: Hyprland box implementation by @vaxerski in #3755
- fix box headers by @brettalcox in #3771
- groups: add option to configure font name by @dlealmt in #3751
- Blur shader new customization options by @Visual-Dawg in #3650
New Contributors
- @andresilva made their first contribution in #3595
- @ideasman42 made their first contribution in #3590
- @Syndelis made their first contribution in #3559
- @Ant01n3 made their first contribution in #3644
- @brettalcox made their fir...
v0.31.0
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 https://github.com/hyprwm/Hyprland/pull/...
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 https://github.com/hyp...
v0.29.1
New hyprland update :)
Fixes some annoying wlroots bump related issues and adds some QoL stuff.
https://www.youtube.com/watch?v=SoPE3Mcd-HU
Notable changes
- support for the
ext_workspace_v1
protocol has been dropped, meaning waybar'swlr/workspaces
and alike will not work anymore (for waybar I recommend just switching tohyprland/workspaces
)
New features:
- special: add misc:close_special_on_empty
Fixes:
- fix: use-after-free of CWindow* in CHyprGroupBarDecoration::draw (#3146)
- input: fix xwayland constraint calcs
- keybinds: fixup global conditions
- keybinds: fixup release conditions
- refactor: raise SIGABRT instead of write to null address (#3124)
- renderer: fixup occlusion conditions
- screencopy: fix region sharing
- text-input-v1: Fix preedit styling in chromium (#3131)
Other:
- compositor: remove wlr_scene refs
- decos: groupbar mouse interaction (#3102)
- globalshortcuts: allow empty appid
- input: warp in unconstrainMouse
- internal: Unsafe state reworks (#3114)
- internal: workspace rule handling refactor (#3116)
- keybinds: set special monitor id before recalc
- keybinds: suppress up event if down was consumed
- layout: always center floating xdg windows
- meson/cmake: remove refs to ext-workspace-unstable-v1
- opengl: cleanup framebuffer style
- readme: refactor and update a bit
- readme: remove wlr_ext workspace proto support mention
- renderer: don't set enabled in applyMonitorRule
- renderer: render IME popups in fullscreen
- waylandResource: remove user data in markDefunct and not ~dtor
- window: check for special id matching in close_special_on_empty
- wlr-ext-workspace: remove protocol impl
Special Thanks
Special thanks to these chads for donating some $$$:
- Lipt0nas
- speedboat
- pulsar256
- ThatOneLutenist
- alukortti
- weitcis
- pltanton
- xioren
- Andrej Benz
- Richard Ivánek
- istasi
- mechgyver
MRs
- nix: bump nixpkgs by @NotAShelf in #3106
- groupbar mouse interaction by @MightyPlaza in #3102
- refactor: raise SIGABRT instead of nullptr write by @memchr in #3124
- Fix preedit styling in chromium by @q234rty in #3131
- Unsafe state reworks by @vaxerski in #3114
- fix: use-after-free of CWindow* in CHyprGroupBarDecoration::draw by @memchr in #3146
- mapWindow use getWorkspaceIDFromString() by @MightyPlaza in #3116
- Revert rounding of window size by @alyanser in #3153
Full Changelog: v0.29.0...v0.29.1
v0.29.0
Plamene zore bude me iz sna.
New Hyprland update brought to you by Yours Truly :)
Breaking changes
misc:suppress_portal_warnings
has been yeeten (alongside the warning)
New features:
- Nix: add deprecation messages for removed/renamed flags
- animations: add slidefade and slidefadevert styles for workspaces (#3008)
- background: add background color option (#2915)
- config: add vrr per-display
- feat(debug): add debug:suppress_errors to suppress errors. (#3032)
- hyprctl: add --instance
- input: add transparent binds
- internal: add a new monitor auto system
- internal: add lock files and hyprctl instances
- renderer: add decoration:blur:special
- renderer: don't add workspace offset to pinned
- rules: add layer and window xray rules
Fixes:
- Close keymap files. Fixes #2904 (#2905)
- compositor: fix auto positioning offset calcs
- compositor: fix log types
- compositor: fix missed raw throws
- compositor: fix offset in auto arrangeMonitors
- compositor: fix skipping iterators in arrangeMonitors
- fix workspace change focus (#2891)
- fix: improved focus behaviour on workspace switching for follow_mouse!=1 (#3041)
- hyprctl: fix hyprpaper
- hyprctl: fix old request methods
- input: fix and unify client checking in mouseRequests
- internal: Fix XDP multi-portal issues (#3077)
- internal: Fix grouped windows not being properly focused on activation (#2925)
- macros: fix missing include
- makefile: fix build failure with some PREFIX (#3099)
- master: fix
always_center_master
(#2961) - Nix/module: final fix
- Nix/module: fix package option
- Nix/module: fix system when config.allowAlias is false
- Nix: fix nvidia patch for dual gpu system
- nix module: Fix attempted workaround for option name change
- renderer: fix missing premultiplication for border multisampling
- shaders: minor premultiplication fixes
- toplevelexport: minor fixes to dmabuf
- xwayland: fix incorrect VECINRECT usage
- xwayland: fix use of xwayland coords in native spaces
Other:
- animationmgr: avoid redundant ticks
- compositor: don't apply offsets in renderer
- compositor: log more in arrangeMonitors
- compositor: log thrown runtime exceptions
- compositor: minor cleanup
- compositor: update window rules on workspace move
- config: adjust default background color
- deps: update wlroots
- dwindle: disallow togglesplit on fullscreen
- dwindle: use smart on display borders (#2897)
- gestures: Swipe direction lock (#3052)
- input: improved path handling; null check return value of fopen. (#3061)
- input: notify idle about activity on mouse move regardless of focus
- input: sanitize newlines in device names
- input: unify constraint hint logic
- internal: Wayland Protocol impl improvements (#2944)
- internal: allow negative monitor offsets
- internal: allow opening empty special workspaces
- internal: cleanup headers in helpers/
- internal: ioctl use /dev/tty instead of fd 0 for VT_GETSTATE (#2989)
- internal: move backtrace to specific func
- internal: removed Herobrine
- keybinds: Keep aspect ratio (#2907)
- keybinds: Only call fclose() when we have a valid file. (#2908)
- layers: set proper alpha to top grabbing surfaces
- layout: Use refreshrate tick on all manual animations (#2988)
- layout: allow changing float status of fullscreen windows
- layout: allow drag on fullscreen windows
- layout: use full box for visibility check of floating xdg
- master: layout resize makes the wrong size changes (#3064)
- Nix: corrections for overlays, overrideable systems (#2929)
- Nix: deprecate waybar-hyprland
- Nix: disable nixpkgs module in ours
- Nix: don't warn against xdpw and xdph being present
- Nix: enable systemd only when it's available on hostPlatform
- Nix: remove HiDPI patches
- Nix: remove hidpi from modules
- Nix: remove waybar completely
- props: bump ver to 0.29.0
- remove shadow no_gaps_when_only (#2956)
- remove shadow no_gaps_when_only master (#2958)
- renderer: Border improvements (#2986)
- renderer: don't blur special on disabled blur
- renderer: fully switch to premultiplied alpha
- renderer: make contrast and brightness adjustments before rendering
- renderer: remember extents before removing a window and use them for dt
- renderer: track fade alpha for blur if ignore opacity is true
- renderer: update alpha of layers only if active ws (#2994)
- rules: center window improvements (#2935)
- toplevel: patches group toplevel-activated (#2931)
- xdgoutput: don't send all details in .get
- xdgoutput: manually destroy manager resource
- xdgoutput: mark resources defunct when monitor is unplugged
- xdgoutput: separate logic for zero scaling positions
- xdgshell: damage old popup coords after a reposition
- xwayland: drop wlr_xwayland_surface.events.set_pid (#2884)
- xwayland: use a completely separate coordinate system
- xwayland: use logical pos in unmanaged geom requests
Special Thanks
Special thanks as usual to these chads for donating:
- VDawg (<3)
- Lipt0nas
- speedboat
- pulsar256
- ThatOneLutenist
- alukortti
- Adam Szegedi
- Zeta
- deej81
- FabianM
- Oscar Tairiku
- Rajeev
Notes for packagers
- New install file added,
hyprland-portal.conf
for the new xdp spec. See the makefile.
MRs
- xwayland: drop wlr_xwayland_surface.events.set_pid by @romanstingler in #2884
- fix workspace focus change by @MightyPlaza in #2891
- Close keymap files. by @MichaelPachec0 in #2905
- Only call fclose() when we have a non-empty filepath. by @MichaelPachec0 in #2908
- background: add background color option by @0x455241 in #2915
- Keep aspect ratio by @MightyPlaza in #2907
- Nix: fix nvidia patch for dual gpu system by @MrDuartePT in #2874
- Nix: enable systemd only when it's available on hostPlatform by @wineee in #2823
- patches group toplevel-activated by @MightyPlaza in #2931
- center window improvements by @MightyPlaza in #2935
- Fix grouped windows not being properly focused on activation by @UserSv4 in #2925
- Nix: corrections for overlays, overrideable systems by @spikespaz in #2929
- remove shadow no_gaps_when_only by @MightyPlaza in #2956
- remove shadow no_gaps_when_only master by @MightyPlaza in #2958
- Nix: remove HiDPI patches by @fufexan in #2870
- master: fix
always_center_master
by @kbtz in #2961 - fix: ioctl use /dev/tty instead of fd 0 for VT_GETSTATE by @memchr in #2989
- fix: Use monitor refreshrate tick for resizing and/or moving windows by @DashieTM in #2988
- Nix: deprecate waybar-hyprland by @fufexan in #2998
- Border improvements by @MightyPlaza in #2986
- animations: add slidefade and slidefadevert styles for workspaces by @end-4 in #3008
- feat(debug): add debug:suppress_errors to suppress errors. by @memchr in #3032
- Wayland Protocol impl improvements by @vaxerski in #2944
- fix: improved focus behaviour on workspace switching for follow_mouse!=1 by @memchr in #3041
- fix: update
alpha
of ZWLR_LAYER_SHELL_V1_LAYER_TOP only when Workspaces is active on the monitor. by @memchr in #2994 - Dwindle: smart resizing fallback by @MightyPlaza in #2897
- nix module: Fix attempted workaround for option name change by @TLATER in #3056
- Swipe direction lock by @end-4 in #3052
- fix: master layout resize makes size slightly off by @jchhuang-tech in #3064
- fix: filepath handling and null check return value of fopen by @memchr in #3061
- Fix XDP multi-portal issues by @vaxerski in #3077
- makefile: fix build failure with some PREFIX by @pastalian in #3099
New Contributors
- @romanstingler made their first contribution in #2884
- @MichaelPachec0 made their first contribution in #2905
- @0x455241 made their first contribution in #2915
- @MrDuartePT made their first contribution in #2874
- @UserSv4 made their first contribution in #2925
- @kbtz made their first contribution in #2961
- @TLATER made their first contribution in #3056
- @pastalian made their first contribution in #3099
Full Changelog: v0.28.0...v0.29.0
v0.28.0
Ayo new Hyprland update!
The biggest performance update in Hyprland's history!
CPU idle reduced by half.
GPU usage reduced around 2-4 times.
Breaking Changes
- All
blur
values have been moved todecoration:blur:
.
New features:
- Added git tag in json version command (#2821)
- add config option to enable/disable new intuitive resizing (#2774)
- background: add option to force hypr chan
- backgrounds: add hypr chan var 2
- groups: add use_current_group_pos (#2759)
- init: Request SCHED_RR using CAP_SYS_NICE and add Python to nix dev shell (#2690)
- input: add support for cursor-shape-v1
- keybinds: add toggle to dpms
- renderer: add canSkipBackBufferClear
- renderer: add occlusion for back layers
- renderer: Various Blur Improvements (#2877)
- socket1: add a timeout for requests
- tracy: add more opengl zones
- windowrules: add workspace param
- xwayland: Add temporary fix for #2808 by adding nullptr check. (#2829)
Fixes:
- Fix background occlusion ignoring monitor position (#2771)
- init: Fix for issue #2797 (#2799)
- input: Fix #2376 mouse movement bug in XWayland (#2776)
- input: fix styling
- opengl: fix warn
- render: Border fixes (#2781)
- renderer: fix rounding in renderSurface
- toplevelexport: support dmabuf + various fixes
- window: fix segfault in boundingbox
- windowrules: fix opacity override
- xwayland: Add temporary fix for #2808 by adding nullptr check. (#2829)
Other:
- CI: update scripts
- Nix/HM module: solve conflict with upstream HM module
- Nix: bump nixpkgs
- Nix: bump wlroots
- Nix: move patches to subdir
- Nix: move wayland-scanner to nativeBuildInputs (#2816)
- NixOS module: check system version for fonts
- Renamed deprecated value in nix config
- animationmanager: optimize avar state
- animationmgr: avoid looping over all avars in favor of only active ones
- assets/meson.build: install new wallpapers
- cmakelists: move tracy to debug section
- config: schedule frame for mons on reload
- config: update default config for new blur changes
- debug: add tracy
- deps: update wlroots
- forms: bring back auto labels
- hyprctl: rerender on cursor_zoom_factor dynamic calls
- internal: Wrap regions (#2750)
- internal: Removed Herobrine
- keybinds: Make moveintogroup locking check configurable (#2796)
- layout: no_border_when_only-improvements (#2791)
- layout: use warp() instead of setValue()
- nix: use final.hyprland instead of prev.hyprland in waybar-hyprland
- opengl: adjust blend and reduce the usage of clear
- props: bump version to 0.28.0
- region: allow ctor from pixman_box32_t
- render: avoid allocating mirrorfb for no reason
- render: use primitive end() only when no screen shader is present
- renderer: adjust distribution of backgrounds
- renderer: cleanup back buffer skip checks
- renderer: cleanup old redundancies in CFramebuffer
- renderer: disable init anim on disabled animations
- renderer: don't occlude when pre-blur is queued
- renderer: remove unused var
- renderer: reset scissor after renderTexturePrimitive
- renderer: scale box for occlusion
- renderer: take workspace offset into account for occlusion
- renderer: use primitive rendering for copying buffers
- shaders: short-circuit rounding if radius <= 0
- windowrules: implements nomaximizerequest (#2785)
- windowrules: improve opacity
Special Thanks
Special thanks as always to those gigachads for donating some moolah to me:
- Lipt0nas
- speedboat
- pulsar256
- ThatOneLutenist
- System64
- Richard Ivánek
- joe
- Elliot
- spikespaz
- Honkdaloonga
MRs
- Wrapping regions by @vaxerski in #2750
- CI: make scripts more robust by @fufexan in #2749
- adds use_current_group_pos by @MightyPlaza in #2759
- Fix background occlusion ignoring monitor position by @outfoxxed in #2771
- xwayland: fix vertical pointer movement bug by @rkanati in #2776
- Border fixes by @MightyPlaza in #2781
- dwindle: add config option to enable/disable new intuitive resizing by @end-4 in #2774
- implements nomaximizerequest by @MightyPlaza in #2785
- Request SCHED_RR using CAP_SYS_NICE and add Python to nix dev shell by @milyth in #2690
- nix: use final.hyprland instead of prev.hyprland in waybar-hyprland by @psentee in #2722
- no_gaps_when_only-improvements by @MightyPlaza in #2791
- Make moveintogroup locking check configurable by @memchr in #2796
- Fix for issue #2797 by @ferrreo in #2799
- Nix: update inputs by @fufexan in #2801
- Renamed deprecated
fonts.enableDefaultFonts
value in nix config by @Okirshen in #2819 - Added git tag in json version command by @GioPan04 in #2821
- assets/meson.build: install new wallpapers by @parona-source in #2820
- Add temporary fix for #2808 by adding nullptr check. by @smb374 in #2829
- Nix: move wayland-scanner to nativeBuildInputs by @wineee in #2816
- Various Blur Improvements by @vaxerski in #2877
New Contributors
- @rkanati made their first contribution in #2776
- @milyth made their first contribution in #2690
- @psentee made their first contribution in #2722
- @ferrreo made their first contribution in #2799
- @Okirshen made their first contribution in #2819
- @GioPan04 made their first contribution in #2821
- @parona-source made their first contribution in #2820
- @smb374 made their first contribution in #2829
- @wineee made their first contribution in #2816
Full Changelog: v0.27.2...v0.28.0
v0.27.2
Minor patch to fix nested sessions and screencopy crashes.
New features:
- Add bringWindowToTop function to IHyprLayout (#2747)
Fixes:
- no_xwayland: fix redef
Other:
- keybinds: movegroupwindow-improvement (#2740)
- render: set refresh to 0 for both wl and x11 backends
- screencopy: guard region buffer values in frameDamage
- screencopy: improve shm handling
- screencopy: use wlr_buffer api for shm copies
Special Thanks
Special thanks as usual to those gigachads for donating:
- ThatOneLutenist
- Lipt0nas
- speedboat
- pulsar256
- alukortti
- garypippi
MRs
- movegroupwindow-improvement by @MightyPlaza in #2740
- Add bringWindowToTop function to IHyprLayout by @outfoxxed in #2747
Full Changelog: v0.27.1...v0.27.2
v0.27.1
Minor update to fix some crash issues and stuff
Shoutout to grandma, without you this wouldn't have been possible!
New features:
- background: add mascot versions
- build: add asan enable status flag
- issues: add form templates
- keybinds: add movegroupwindow
- windowrules: add border size rule
Fixes:
- fix: handle window change directions in fullscreen (#2728)
- idle: fix reverse flag for new idle protocol
- massive-fix (#2725)
Other:
- Allow empty args in hyprctl dispatch (#2724)
- Avoid connected monitor reusing unavailable ID (#2731)
- Dwindle: Make resize more intuitive (#2681)
- Make bind modmask case-insensitive (#2714)
- deps: update wlroots (#2734)
- idle: implement new protocol
- internal: Protocol C++ Wraps + XDGOutput impl (#2733)
- internal: Remove herobrine
- layout: recalc window on dynamic rule update
- layout: recalculate monitor instead of window in updateDynamicRules
- monitor: disconnect bind on disconnect
- monitor: unplug all callbacks in ~dtor
- move/resize window (#2706)
- only return 0 when using -h (#2738)
- renderer: use correct wlr sample func
- screencopy: nullcheck for empty buffer
- update group decos (#2705)
- xwayland: guard monitor validity in xwayland scale overriding
Special Thanks
Special thanks as usual to those based individuals for donating:
- Lipt0nas
- speedboat
- pulsar256
- alukortti
- garypippi
MRs
- Dwindle: Make resize more intuitive by @DanielAdolfsson in #2681
- update group decos by @MightyPlaza in #2705
- move/resize window visual improvments by @MightyPlaza in #2706
- Make bind modifiers case-insensitive by @Ordoviz in #2714
- special workspace id fix by @MightyPlaza in #2725
- hyprctl empty dispatcher by @MightyPlaza in #2724
- Avoid connected monitor reusing unavailable ID by @zjeffer in #2731
- fix: handle window change directions in fullscreen by @isti115 in #2728
- Update subprojects/wlroots by @jbeich in #2734
- Protocol C++ Wraps + XDGOutput impl by @vaxerski in #2733
- only return 0 when using -h by @alba4k in #2738
New Contributors
Full Changelog: v0.27.0...v0.27.1
v0.27.0
Sup y'all, new Hyprland update dropped :)
Shoutout to grandma
New features:
- Add support for smart splitting (#2676)
- Allow setting alpha value for ignorezero layer rule (#2477)
- feat: add ipc set title window event (#2419)
- feat: add lockactivegroup dispatcher (#2478)
- feat: add variable to customize locked group border color (#2507)
- gestures: add workspace_swipe_use_r
- noxwl: add missing stubs
- pluginapi: add configReloaded event
- rules: add nodim
- rules: add stayfocused
- screenshader: add output uniform
- xwayland: add force_zero_scaling
- xwayland: add nearest neighbor filtering as an opt
Fixes:
- Fix crash when screen size is 0x0 (#2523)
- Fix fractional scale updates in some cases (#2447)
- Nix CI: fix typo
- chore: fix typos (#2463)
- config: fix floating rules with floating-by-rule windows
- config: fix reading touchpad values to non-touchpad per-device cfgs
- config: minor path handling fixes
- configmgr: fix idiotic comparisons in device configs
- fix updating revision in wlroots.wrap
- format: fix hooksystem
- gradient: fix warn
- groupbar fixes (#2630)
- groupbar: fix damage calcs
- groupbar: fix vram leak
- internal: minor style fixes
- layout: minor style fixes
- lockgroups fix (#2636)
- main: fix segfault when -c is given with no other arguments (#2470)
- opengl: fix invalid tex references to tex-less shader
- plugins: fix config value usage in init
- screenshader: fix uniform variable checks (#2513)
- screenshot fix (#2640)
- swipe: fix mixup of r/m
- texture: fix styling
- xwayland: fix minor force_zero_scaling bugs
- xwaylandmanager: fixup style
Other:
- Avoid passing control unix socket descriptors to children (#2656)
- Cleanup compositor deadcode (#2657)
- Close socket2 client descriptor on hangup (#2654)
- Implement pass binds (#2503)
- Keep new mapped layer's alpha zero if the workspace has a fullscreen window (#2686)
- Make movetoworkspace register previous workspace (#2436)
- Nix CI: split inputs and wlroots updating
- Nix/portals.patch: conditionally check portals
- Nix: patch portals search dir
- Partial revert of Commit 302ec13: (#2539)
- Reloads animated decoration values set on window rules (#2594)
- Reloads dynamic window rules (#2585)
- Reuse same ID when reconnecting monitor, otherwise use minimum available ID (#2666)
- Update ISSUE_GUIDELINES.md faq link to the wiki (#2424)
- Xdg config home support (#2047)
- [hyprctl] Expose the special workspace id and name of the monitor (#2392)
- animationmgr: warp on equal start and goal
- calculate zoom_center based on monitor scale (#2482)
- compositor: don't set dim percent on disabled dim
- compositor: move group members properly in moveWindowToWorkspaceSafe
- crashreporter: log tag
- damage: account for popups in getFullWindowBoundingBox
- eventmanager: drop obsoleted ignore events flag (#2660)
- events: remove old comment
- flake.lock: update nixpkgs
- flake.lock: update nixpkgs
- gamma: use wlr's new gamma manager event
- hyprctl: recalc layout on setprop
- includes: move workspace protocol header to includes
- input: force focus on movefocus
- input: remove old redundant code
- input: schedule frame on mouse move
- input: update surface input on changeworkspace
- internal: damage window on change group
- internal: make borderSize prop overridable
- internal: properly set monitor props on special windows
- keybinds: remove old todo
- layout: improve time restraints in window drag
- layout: set pseudo to float size in new window
- layouts: make aware of borderSize prop
- monitor desc default workspace (#2673)
- monitor desc default workspace but working now (#2678)
- monitor desc support (#2670)
- props: bump ver to 0.27.0
- render: move lastFrameDamage to CMonitor
- render: resize subsurfaces with size resizes
- renderer: damage decos on damageWindow
- screencopy: send original damage, avoid extents
- shader: init uniforms to -1
- shader: remove useless comment
- shadow: drop useless damageEntire()
- toplevelexport: ignore defunct windows
- typo (#2643)
- window: recalc on deco remove
- xwayland: disconnect events on destroy
- xwayland: remove spaces from output names
- xwayland: send zero scaling to xwayland if enabled
- zoom: multiply by scale only on mouseZoomUseMouse (#2495)
Special Thanks
Special thanks as usual to those chads for donating me some moolah:
- Lipt0nas
- speedboat
- pulsar256
- Sinkerine
- hi im brown
- jsw
- meeri
- Ary Kleinerman
- Guido Panebianco
- Spearhead
- Amadeus
- spikespaz
- sbatial
- kamui
- Neo
- dano
MRs
- [hyprctl] Expose the special workspace id and name of the monitor by @15cm in #2392
- Update ISSUE_GUIDELINES.md faq link to the wiki by @asdfer-1234 in #2424
- feat: add ipc set title window event by @cyrinux in #2419
- Make movetoworkspace register previous workspace by @alyanser in #2436
- Fix fractional scale updates in some cases by @fberg in #2447
- chore: fix typos by @n3oney in #2463
- main: fix segfault when -c is given with no other arguments by @eriedaberrie in #2470
- feat: add lockactivegroup dispatcher by @memchr in #2478
- calculate zoom_center based on monitor scale by @nik012003 in #2482
- zoom: multiply by scale only on mouseZoomUseMouse by @nik012003 in #2495
- Allow setting alpha value for ignorezero layer rule by @end-4 in #2477
- feat: add variable to customize locked group border color by @memchr in #2507
- screenshader: fix uniform variable checks by @JManch in #2513
- Implement pass binds by @outfoxxed in #2503
- Fix crash when screen size is 0x0 by @shemig in #2523
- fix revision getting updated to the previous one, not current by @solopasha in #2524
- Partial revert of Commit 302ec13: by @shemig in #2539
- Reloads dynamic window rules by @MightyPlaza in #2585
- Reloads animated decoration values set on window rules by @MightyPlaza in #2594
- groupbar fixes by @MightyPlaza in #2630
- lockgroups fix by @MightyPlaza in #2636
- rotated and transformed screenshot fix by @MightyPlaza in #2640
- fix typo by @MightyPlaza in #2643
- Nix CI: split inputs and wlroots updating by @fufexan in #2645
- Close socket2 client descriptor on hangup by @nexec in #2654
- Avoid passing unix socket descriptors to children by @nexec in #2656
- eventmanager: drop obsoleted ignore events flag by @nexec in #2660
- Cleanup compositor deadcode by @nexec in #2657
- Xdg config home support by @edyounis in #2047
- Reuse monitor IDs, and use minimum available monitor ID for next monitor by @zjeffer in #2666
- monitor desc support by @MightyPlaza in #2670
- monitor desc default workspace by @MightyPlaza in #2673
- monitor desc default workspace but working now by @MightyPlaza in #2678
- Add support for smart splitting by @DanielAdolfsson in #2676
- Fix new LAYER_TOP layer surface rendering above fullscreen windows by @zakk4223 in #2686
New Contributors
- @15cm made their first contribution in #2392
- @asdfer-1234 made their first contribution in #2424
- @fberg made their first contribution in #2447
- @n3oney made their first contribution in #2463
- @memchr made their first contribution in #2478
- @nik012003 made their first contribution in #2482
- @end-4 made their first contribution in #2477
- @JManch made their first contribution in #2513
- @shemig made their first contribution in #2523
- @MightyPlaza made their first contribution in #2585
- @nexec made their first contribution in #2654
- @edyounis made their first contribution in #2047
- @zjeffer made their first contribution in #2666
- @DanielAdolfsson made their first contribution in #2676
- @zakk4223 made their first contribution in #2686
Full Changelog: v0.26.0...v0.27.0