Releases: hyprwm/Hyprland
v0.36.0
New Hyprland update brought to you by Yours Truly, the CEO of Hyprland Corp.
A lot of fixes and changes, enjoy! Thanks for all the contributions :)
CPU and GPU usage should be considerably down from 0.35.*
Notes for packagers
- new dep: hyprlang>=0.4.0
Breaking changes
- config:
- migrated to hyprlang. Some nice additions include
rgba(123, 123, 69, 0.5)
, dynamic variables updating, and more. - all
device:XYZ
sections are nowdevice { name = XYZ ...
, see the wiki ##
is now properly treated as an escaped#
.
- migrated to hyprlang. Some nice additions include
- windowrules:
- no*request rules have been nuked in favor of the new
suppressevent
rule.
- no*request rules have been nuked in favor of the new
New features:
- config: Add option to resolve keybinds by sym instead of code (#4851)
- config: add defaultName for workspace rules
- config: add opengl:force_introspection
- core: add env to disable crash reporter
- dispatchers: add Fullscreen without sending fullscreen to application (#4720)
- dwindle: add swapsplit dispatcher (#4702)
- feat: Add css style gaps (#4723)
- hyprctl: add -r argument
- internal: add
forcenofocus
prop (#4672) - keybinds: Add an option to pass a window argument to moveoutofgroup (#4724)
- renderer: add more logging for fails in beginRender
- socket2:
monitoraddedv2
IPC event for monitor description and id (#4646) - windowrules: add suppressevent
Fixes:
- config: fix errors in default config
- config: fix layout invalidation for keyword commands (#4826)
- config: fix tiny typo in defaultConfig.hpp (#4693)
- core: Fix SEGV/ABRT core dump when exiting (#4823)
- core: Fix building plugins (#4783)
- core: Try to fix the exit hang (#4811)
- crashreporter: fix logging of function data (#4632)
- format: fix formatting
- hyprctl: fix dispatchBatch() treating empty curitem as last request (#4681)
- hyprctl: fix showing invalid instances
- input: fix follow_focus
- input: fix vectorToWindowUnified with floating over fs
- keybinds: Fix focus not moving along when moving workspace (#4660)
- keybinds: fix focuswindow for fullscreen (#4840)
- keybinds: fix keys without keysyms triggering random binds (#4739)
- keybinds: fix movewindoworgroup onto empy workspace on next monitor (#4486)
- keybinds: fix swapactiveworkspaces not moving focus
- layout: Fixed ghost window when opened while fullscreen on a different workspace (#4822)
- monitors: fix outputmgr nullptr crash (#4738)
- renderer: fix invalid damage accumulation with invalid buffer_age
- renderer: fixup damage_ring rotation
- renderer: minor fixes for introspection detection
- screencopy: fix invalid damage being used for final copy in dma
- screencopy: fix ~dtor being in monitorRenderResources map
- shadow: fix missed invalid use of cfg val ptr
- surface: fix damage calcs with a viewport src
- surface: fix invalid damage tracking in damageSurface
- surface: minor fixes for last logicalDamage calc fix
- xdgpopup: fix UAF because of an invalid listener connection
Other:
- IME: don't set modifiers on grab destroy
- Migrate the config to hyprlang (#4656)
- animationmgr: expand layer box for damage
- assets: update tetrahedra by honkadaloonga
- avar: return curve value of 1 when not animated
- compositor: allow source monitor to be provided to
getMonitorInDirection
(#4837) - compositor: check for pworkspace validity in setActiveMonitor
- config: adjust default splash col
- config: remove usages of nomaximizerequest from default cfg
- config: update default config for hyprlang migration
- core: nullcheck for old monitor in moveWorkspaceToMonitor
- crashreporter: Use ~/.cache as cache dir (#4719)
- dwindle: round wbox before setting
- events: bring back accidentally nuked preConfigReload
- flake.nix: override inputs for xdph and hyprlang
- groupbar: scale groupbar text according to monitor scale (#4640)
- hyprctl: ignore non-lock files for instances
- hyprctl: jsonify new gaps
- hyprctl: more safety around stoull
- hyprctl: reload everything on dynamic source keywords
- hyprctl: remove hardcoded hyprctl commands. (#4671)
- input: Map touch devices and tablets bound to an output (#3544)
- input: avoid rampant refocuses on popups
- input: avoid reassigns of unchanged surfaces in processMouseRequest
- input: don't schedule frame on cursor move on hw cursors
- input: focus monitor on mouse down
- input: log cursor image requests
- input: partially revert #4514
- input: refocus on completed drags
- internal: removed Herobrine
- keybinds: focus floating on top of fs
- keybinds: focusWorkspaceOnCurrentMonitor: use focused monitor instead (#4625)
- misc: remove unused var
- misc: you're the best for reading this :)
- monitor: don't damage twice (#4727)
- nix: overlay polish for prev parameter (#4558)
- opengl: check bottom/bg layers for required introspection
- renderer: Update splash text properties to be configurable (#4707)
- renderer: accept custom state requests for fake outputs
- renderer: don't calculate mirror damage without mirrors present
- renderer: don't set solitary on present notifications
- renderer: ignore set cursor surface if cursor should be hidden (#4780)
- renderer: nuke lastFrameDamage and rework finalDamage
- renderer: take into account fading out windows in solitary recheck
- renderer: update cursor also when hostpot only changes
- rules: ignore static tile/float rules in dynamic gets
- screencopy/toplevelexport: sanitize pointers in ::copyFrame
- screencopy: attempt binding framebuffer before gathering format
- screencopy: avoid dangling client ptrs on client destroy
- screencopy: damage entire screen on a no-damage request
- screencopy: move monitor verif check to the proper place
- screencopy: send full frame damage
- sessionLock: send preferred fractional scale
- shaders: use highp for fragments
- socket2: move to the wayland event loop
- surface: ensure global pointers valid before using in destructor (#4844)
- toplevelexport: set last damage for dmabuf copy
- vector: avoid min0 clamps without a max being invalid
- wayland: implement keyboard_shortcuts_inhibit_v1
- windowrules: nuke no*request
- xdg: manually schedule initial configures
- xwayland: ignore OR activate requests if surface doesn't want focus
- xwaylandmgr: clamp size in setWindowSize
- xwaylandmgr: proper clamping for setWindowSize
Special thanks
Special thanks as always to these humans (hopefully) who donated some euros to me:
- alukortti
- Wickedly
- pulsar256
- Philipp Soldunov
- MasterHowToLearn
- Theory_Lukas
- Goggi
- toni
- MPDarkGuy
- RandomLegend
- The Linux Cast
- dmayle
- Frank
- andreas.maier.de
- Christian D. Storgaard
- Host-in-the-Shell
- sgt
- David Aguiló
- knikkinen
- Mike H
- M1K3
- crashbit
- Danix
- UnclePsymon
- gshood
- junecat
- jodd
- kai-tub
- NachaktiverHalbaffe
- Nicholas Romero
MRs
- use focused monitor for
focusWorkspaceOnCurrentMonitor
by @phonetic112 in #4625 - Fix crash reporter backtrace by @thejch in #4632
- groupbar: scale groupbar text according to monitor scale by @https123456789 in #4640
- Fix focus not moving along when moving workspace by @Scrumplex in #4660
- fix: remove hardcoded hyprctl commands. by @levnikmyskin in #4671
- Fix hyprctl --batch treating empty curitem as last request by @ComycSans in #4681
- nix: overlay polish for prev parameter by @GrizzlT in #4558
- fix: typo on defaultConfig.hpp by @lpnh in #4693
- add
forcenofocus
prop by @phonetic112 in #4672 - dwindle: add swapsplit dispatcher by @haasn in #4702
- Feature:
monitoraddedv2
IPC event for monitor description by @spikespaz in #4646 - monitor: don't damage twice by @abmantis in #4727
- Fullscreen without sending fullscreen to application, fixes #1817 by @epicgamer256705 in #4720
- feat: Allow passing a window argument to the moveoutofgroup dispatcher by @morr0ne in #4724
- Fix outputmgr nullptr crash (kanshi/shikane like tools) by @levnikmyskin in #4738
- Migrate the config to hyprlang by @vaxerski in #4656
- fix: keys without keysyms triggering random binds by @rszyma in #4739
- Change cache dir by @thejch in #4719
- feat: Add css style gaps by @DashieTM in #4723
- renderer: ignore set cursor surface if cursor should be hidden by @andresilva in #4780
- Fix building plugins by @q234rty in #4783
- Update splash text properties to be configurable by @Stock44 in #4707
- Try to fix the exit hang by @thejch in #4811
- Nix: override inputs for xdph and hyprlang by @fufexan in #4814
- Fix SEGV/ABRT core dump when exiting by @thejch in #4823
- config: fix layout invalidation for keyword commands by @JManch in #4826
- hyprctl: add missing newline in error case of missing `HYPRLAND_INSTA… by @trofi in https://g...
v0.35.0
New hyprland release? No way. I think we got some new stuff and fixes.
This release was brought to you by the Hyprland Corp.
Notes for packagers
- wallpaper paths have changed. See
assets/
or theMakefile
.
New features:
- config: Add border gradients to windowrulev2 (#4335)
- hyprctl: add systeminfo
- hyprpm: add --force for update
- input: add special_fallthrough
- keybinds: Add dispatcher for xmonad/qtile-style workspace switching (#4439)
- master: Add more null checks for rollnext (#4343)
- renderer: Add new background infrastructure
Fixes:
- Meson: fix wallpaper installation
- cmakelists: fix wlroots patch sed
- dwindle: fix windows being created at incorrect position when cursor is over reserved area (#4520)
- hyprctl: screen_shader config fixes (#4102)
- hyprpm: fix crash on add plugin
- hyprpm: fix invalid pkg-config path env in build
- keybinds: fix ignoremods with release
- keybinds: fix keys getting stuck + minor refactor & optimizations to keybind handling (#4304)
- keybinds: fix tracking of sent key states
- layershell: Fix greedy mouse grab from keyboard_interactive layer (#4401)
- main: Fix typo in std::cerr (#4359)
- meson: fix wlroots patch (#4324)
- nix: fix overlay composition
- pluginapi: fix hooks with negative rip offsets
- renderer: fixup misaligned fsv1 surfaces with uv
- subsurfaceTree: Fix nullptr crash when disconnecting a monitor (#4577)
Other:
- HookSystem: rename PAGESIZE_VAR from PAGESIZE to avoid conflict (#4321)
- Makefile: force ln command to overwrite symlink (#4347)
- Makefile: pass PREFIX to CMake
- Makefile: remove hyprland symlink on uninstall
- Nix: disable fortify for devshell (#4463)
- build: protocols: require wayland-protocols >= 1.32
- cmake: Propagate NO_XWAYLAND to wlroots building setup (#4385)
- compositor: clarify common errors at launch
- compositor: don't close special on focus on pinned (#4533)
- config: variables update their value when set again (#4263)
- core: improve cleanup logic
- crashreporter: skip first possibly cut off line in log tail
- damage: use buffer_damage instead of effective_damage
- dwindle: avoid sending negative sizes to wlr
- events: ignore sending mouse enter to focused if a constraint is active
- examples: remove example plugin
- fractional: Set preferred scale on monitor config reload (#4406)
- groupbar: Drag single window instead of destroying group (#4327)
- groupbar: improve gradient handling (#4390)
- groupbar: separate gradients from title (#4444)
- hyprctl: move to a class and unify commands
- hyprpm: don't update headers if they are up-to-date, only recompile
- hyprpm: handle failed compilations gracefully
- hyprpm: install headers locally (#4585)
- hyprpm: log verbose return of cmake and meson in update
- hyprpm: update global state on plugin recompile not header update
- hyprpm: verify headersHashCompiled as well in headersValid()
- input: Allow disabling touchscreen input (#4517)
- input: allow focusSurface when locked if surfase is sessionLock
- input: focus window on mouse down on decoration (#4514)
- input: leave special on focus (#4358)
- input: partially revert #4401
- input: remove animate checks on resize limiter (#4480)
- input: track exclusive LSes
- internal: minor header cleanup
- internal: removed Herobrine
- issue templates: make versions spoiler'd
- keybinds: Refocus only if the silently moved window had the focus (#4328)
- keybinds: avoid duplicated held keys, only use last, remove all
- layout: Round window pos and size on togglefloating (#4407)
- layout: save float props before setting fs state (#4537)
- layout: update rules before applying fullscreen nodes in layouts
- make: unbreak with non-GNU ln(1) after 78f9ba9
- master: guard PNODE in roll*
- monitor: clear output state after usage
- monitor: don't call output_state_finish on buffer-less state clears
- monitor: wrap usage of wlr_output_state
- opengl: apply box rot to projections
- opengl: rassert false on lost context
- opengl: use texBox for rendering background texture
- pluginapi: allow registering hyprctl commands
- renderer: Only force nearest neighbor when the sizes are off by one or two (#4325)
- renderer: allow rendering multiple fullscreen windows in third fs pass
- renderer: avoid unnecessary gpu resource deletions
- renderer: ignore box offsets for fullscreen windows
- renderer: overhaul renderModifData
- renderer: reset fb pointers after render pass
- screenshader: rename output uniform to wl_output (#4606)
- subprojects: remove wlroots.wrap
- subsurfaceTree: update surface tree protocol feedback on map
- surface: avoid spam of window surfaces with scale and transform events
- swipe: Prevent hiding current workspace when swiping (#4417)
- tearing-control: handle unmapped surfaces for hints
- wlroots: update version patches
- xwayland: remove delta from pos sets in configureX11
- xwayland: remove reportedsize set in unmanagedSetGeometry (#4539)
Special thanks
Special thanks as always to these gigachads for throwing some money at me:
- Brodie Robertson
- maxhbr
- pulsar256
- alukortti
- Wickedly
- Philipp Soldunov
- blepabyte
- Adam Szegedi
- garypippi
- ewb
- Motschen
- orbitaldrop
- Seb
- frank
- MasterHowToLearn
- MR_POOR
- Dustee
MRs
- fix keys getting stuck + minor refactor & optimizations to keybind handling by @rszyma in #4304
- Update wlroots-meson-build.patch by @bvr-yr in #4324
- Only force nearest neighbor when the sizes are off by one or two by @q234rty in #4325
- HookSystem: rename PAGESIZE_VAR from PAGESIZE to avoid conflict by @earboxer in #4321
- Drag single window instead of destroying group by @dranull in #4327
- Refocus only if the silently moved window had the focus by @dranull in #4328
- variables update their value when set again by @flick0 in #4263
- Makefile: force ln command to overwrite symlink by @rszyma in #4347
- Add more null checks for rollnext by @thejch in #4343
- Fixed a typo by @naksudev in #4359
- Unbreak install with CMake on FreeBSD by @jbeich in #4361
- leave special on focus by @phonetic112 in #4358
- Propagate
NO_XWAYLAND
on cmake to meson building wlroots by @Piroro-hs in #4385 - groupbar: improve gradient handling by @MightyPlaza in #4390
- Round window pos and size on togglefloating by @Clyybber in #4407
- Prevent hiding current workspace when swiping by @scorpion-26 in #4417
- Fix greedy mouse grab from keyboard_interactive layer by @earboxer in #4401
- Set preferred scale on monitor config reload by @1over137 in #4406
- screen_shader config fixes by @dranull in #4102
- Add border gradients to windowrulev2 by @IdmFoundInHim in #4335
- groupbar: separate gradients from title by @MightyPlaza in #4444
- Implement a dispatcher for xmonad/qtile-style workspace switching by @virchau13 in #4439
- Disable fortify for devshell by @huynguyen in #4463
- remove PANIMATE checks on tick thing by @phonetic112 in #4480
- build: protocols: require wayland-protocols >= 1.32 by @SeanMcG in #4488
- Allow disabling touchscreen input by @earboxer in #4517
- Check if pinned window is focused on special by @phonetic112 in #4533
- layout: save float props before setting fs state by @bvr-yr in #4537
- dwindle: fix windows being created at incorrect position when cursor is over reserved area by @rszyma in #4520
- remove m_vReportedSize set for xwayland by @phonetic112 in #4539
- nix: fix overlay composition by @GrizzlT in #4555
- subprojects: remove wlroots.wrap by @fufexan in #4572
- Makefile: remove hyprland symlink on uninstall by @Roger-Roger-debug in #4574
- Fix nullptr crash when disconnecting a monitor by @abmantis in #4577
- hyprpm: install headers locally by @vaxerski in #4585
- screenshader: rename output uniform to monitor by @JManch in #4606
- focus window on mouse down on decoration by @MightyPlaza in #4514
New Contributors
v0.34.0
Hey, haven't seen you in a year! New year, new hyprland update.
The longest commit gap to date ends with this plentiful one :D
New tools
- hyprpm: a hyprland plugin manager. See the wiki or
hyprpm --help
for usage.
Notes for packagers
- New dep: tomlplusplus
- New tool: hyprpm (build/hyprpm/hyprpm, executable)
New features:
- config: add debug:disable_scale_checks
- config: add qt env to default config
- dispatchers: add tiled/floating to cyclenext
- groupbar: add egl context to refreshGroupBarGradients() (#4238)
- groupbar: add enabling groupbar and setting priority (#4299)
- hyprctl: add decorations (#4275)
- hyprpm: Add hyprpm, a Hyprland Plugin Manager (#4072)
- hyprpm: add duplicate header error and log more verbose in install fails
- input: Add scroll_points option for device (#4101)
- input: add relative_input for tablets
- makefile: add rm hyprpm for uninstall (#4086)
- makefile: add symbolic link for lowercase binary name
- master: add dispatchers rollnext and rollprev (#4209)
- opengl: add toggleable nvidia_anti_flicker
- renderer: add decoration:blur:popups_ignorealpha
- renderer: add occlusion for special workspaces
- renderer: add option to blur popups
- systemd: add HYPRLAND_NO_SD_NOTIFY
- windowrules: add focus param
- windowrules: add initialTitle and initialClass (#4259)
- windowrules: add onworkspace
Fixes:
- border: fix failed assert on small windows
- border: fix missed translate by offset
- deco: fix missing border on togglefloating (#4305)
- functionHooks: fix incorrect protlen calcs
- hyprpm: fix with system headers
- internal: fix interactions with fakefullscreen (#4113)
- internal: minor include fixes and missed format
- nix: fix wlroots build
- renderer: double lookup fix, input: double conversion fix (#4124)
- renderer: fix auto scale detection with fractional
- renderer: fix null cursor surface sets being ignored
- signal: fix invalid pointer access (#4207)
- toplevelexport: fix missed pmonitor set for opengl
- toplevelexport: fix missing GL_READ_FRAMEBUFFER set in shm copy
- windowrules: minor fixes to onworkspace
- xdg-shell: fix sending of suspended state
Other:
- Nix: expose legacyRenderer package
- Nix: remove duplicate options from modules (#4012)
- Nix: remove libdrm override
- Nix: wrap with gcc
- ci: use composite action to minimize code duplication (#4112)
- compositor: don't block focus if there is no keyboard
- compositor: spawn environment setup with keybind manager (#3722)
- config: Avoid regenerating config if --config is used (#4103)
- config: Use canonical instead of read_symlink (#4136)
- config: don't emit reloaded event before eventManager is created
- config: improve layoutopt handling for workspacerules
- configmanager: set a limit to config variable substitutions
- crashreporter: don't explicitly set 777 on crash report directory
- deco-positioner: include sticky in sent geometry
- dwindle: Use window->middle() when cursor is on reserved area (#4253)
- filesystem: Set the sticky bit on
/tmp/hypr
(#4199) - flake.lock: update
- flake.lock: update nixpkgs
- focus: prefer sendMotionEventsToFocused for ensuring cursor image
- groupbar: Middle click on groupbar to close tab (#4297)
- groupbar: remove extra border size from groupbars (#4262)
- hyprctl: allow instances without HIS
- hyprctl: check only ISDEBUG in version (#3702)
- hyprpm: Link against tomlplusplus when using cmake (#4145)
- hyprpm: Make sure we're in git repo before getting new hash (#4303)
- hyprpm: cast std::clamp args to be of the same type (#4116)
- hyprpm: clone plugins recursively
- hyprpm: guard empty command
- hyprpm: trim paths in PATH
- idle: notify idle on tablet inputs (#4201)
- input: Activate resize_on_border only when key is pressed (#4170)
- input: Ignore some input events when focus is on a layer surface (#4306)
- input: Prevent crash with invalid keyboard layout (#4157)
- input: allow setting cursor even if it's hidden
- input: don't steal mouseDown from LS (#4260)
- input: unset resize cursor on empty focus
- internal: Remake borders as window decorations (#4104)
- internal: Unify input handling on decorations (#4280)
- internal: convert uname fields to strings before logging
- internal: import qt env to dbus
- internal: nuke CWindow::m_bMappedX11
- internal: removed Herobrine
- keybinds: Keep focus on special when switching workspaces (#4084)
- keybinds: check for null last monitor in changeworkspace (#4077)
- layout: Focus a floating window after closing the last tiled (#4137)
- pluginapi: Trampoline hooks %rip patching improvements (#4256)
- pluginapi: better wording for plugin function hook errors
- pluginapi: log assembler return
- pluginapi: manually detect endbr64 opcodes in function hooks
- renderer: Allocate background texture only if required (#4111)
- renderer: apply scale to wlr after checks
- renderer: cursor hiding logic improvements (#4184)
- renderer: deny invalid scales and suggest a replacement
- renderer: don't render decorations on renderdata.decorate false
- renderer: don't set surfaces on cursor timeout
- renderer: don't use clipBox for pinned window occlusion during animations
- renderer: ignore windowRequestedCursorHide
- renderer: improve cursor hiding infra
- renderer: improve fullscreen workspace client rendering
- renderer: reject non-clean scales, find nearest clean
- renderer: staticize local functions
- renderer: use 120 as the denominator in scale checks
- renderer: use nearest_neighbor for misaligned fractional-scale surfaces
- renderer: use xray for background blur on small() surfaces
- shadow: Avoid rounded shadows when rounding is 0 (#4230)
- shadow: correctly scale boxes
- socket2: emit configreloaded event
- special: move floating windows along with the workspace
- style/ci: apply clang-format and verify it in ci (#4039)
- toplevel-export: commence render pass before reading
- xdg: use better min/max size checks for floating resizes
- xdgshell: bump to 6, send suspended states
- xwayland: don't change workspace on configure for invisible windows
- xwayland: set reported and pending size/pos on geometry sets
- xwaylandmgr: allow resizes without a monitor
MRs
- style: apply clang-format by @zephvr in #4039
- Fix crash in changeworkspace by @ddmetz in #4077
- Add hyprpm, a Hyprland Plugin Manager by @vaxerski in #4072
- Keep focus on active special workspace when switching workspaces by @dranull in #4084
- Add rm hyprpm for uninstall by @thejch in #4086
- Avoid messing with --config by @dranull in #4103
- Remake borders as window decorations by @vaxerski in #4104
- Add scroll_points option for device by @fufexan in #4101
- Fix memory allocation for the background texture by @Nmzik in #4111
- ci: use composite action to minimize code duplication by @zephvr in #4112
- renderer: double lookup fix, input: double conversion fix by @Nmzik in #4124
- hyprpm: unbreak on 32-bit archs via static_cast by @jbeich in #4116
- layout: fix interactions with fakefullscreen by @zephvr in #4113
- Use canonical instead of read_symlink by @dranull in #4136
- Focus a floating window after closing the last tiled by @dranull in #4137
- Link against tomlplusplus when using cmake by @MikeWalrus in #4145
- Nix: remove duplicate options from modules by @fufexan in #4012
- Prevent crash with invalid keyboard layout by @dranull in #4157
- Activate resize_on_border only when key is pressed by @dranull in #4170
- add commit date to "hyprctl version" by @MightyPlaza in #4171
- fixing cursor show/hide logic, #3698 by @dusanx in #4184
- filesystem: Set the sticky bit on
/tmp/hypr
by @Harazi in #4199 - notify idle on tablet inputs by @MikeWalrus in #4201
- bug: fix invalid pointer access by @AhmedYasser5 in #4207
- Master layout: add dispatchers rollnext and rollprev by @thejch in #4209
- Avoid rounded shadows when rounding is 0 by @dranull in #4230
- add egl context to refreshGroupBarGradients() by @MightyPlaza in #4238
- debug: check only ISDEBUG by @andresilva in #3702
- Use window->middle() when cursor is on reserved area by @dranull in #4253
- compositor: spawn environment setup with keybind manager by @andresilva in #3722
- implement support for initialTitle and initialClass, closes #2311 by @zjeffer in #4259
- Trampoline hooks %rip patching improvements by @vaxerski in #4256
- groupbar: remove extra border size by @MightyPlaza in #4262
- deco: don't steal mouseDown from LS by @MightyPlaza in #4260
- nix: fix wlroots build by @andresilva in #4...
v0.33.1
Small patch to fix some issues with screencopy / toplevel-export (notably crashing and/or misaligned buffers) and crashes on exit.
Fixes:
- framebuffer: ignore addStencil on legacyRenderer
- screencopy: fix glReadPixels offset
- screencopy: fix legacyrenderer builds
- toplevelexport: fix getPreferredReadFormat param in captureToplevel
Other:
- hyprctl: order commands alphabetically (#4061)
- input: Stop propagating axis events after valid binds (#4059)
- input: don't send mouse events on touch (#4071)
- internal: various improvements to avoid crashes on exit
- makefile: only require version.h before installheaders
Special Thanks
Massive thanks to these chads for donating some moolah as usual:
- pulsar256
- alukortti
- WhoKnows
- Ferreo
- meeri
- Dan
- VDawg
- Philipp Soldunov
- moneyspreder
- wisesheepbh
- Zack Mitkin
- JPEG
- Squiddles
- Spearhead
- Bug23451
- george_markas
- ItsDrike
- System64
- Armin
- Michael Xspect
- spikespaz
- Logno
- istasi
MRs
- Stop propagating axis events after valid binds by @dranull in #4059
- hyprctl: order commands alphabetically by @Tungsten842 in #4061
- Remove
wlr_seat_pointer_notify_motion
inCInputManager::onTouchMove
by @swwind in #4071
New Contributors
- @Tungsten842 made their first contribution in #4061
- @swwind made their first contribution in #4071
Full Changelog: v0.33.0...v0.33.1
v0.33.0
After the longest commit gap to date, I decided to bring y'all the 0.33.0 update. Enjoy!
- Yours truly.
Notes for Packagers
- Nvidia patches have been removed, they are no longer needed.
New features:
- env: add HYPRLAND_NO_RT
- events: add keyPress and mouseAxis
- general: add workspace gaps (#3877)
- hyprctl: Add 'layouts' command (#3895)
- hyprctl: add monitors all to report all connected monitors (#3730)
- pluginapi: add touch event hooks (#3836)
- renderer: Adding an option to disable first launch animation (#3933)
- workspacerules: Add workspace rule for master layout orientation (#3964)
Fixes:
- cmakelists: fix old wlroots sover
- config: Minor --config improvements, fixes (#4034)
- config: fix red warn in default config
- configmgr: fix parsing of touchdevice groups
- deps: downgrade wlroots to fix crashes
- group: fix dragging into floating groups (#3719)
- groupbar: Fix position of groupbar titles on monitor scales != 1.0 (#3856)
- groupbar: allow reload and fix locked groupbar gradient (#3546)
- groupbar: fix crash in renderGradientTo
- groupbar: fix text pos with verical offset (#3893)
- hooksystem: fix missed log include
- input: Fix custom acceleration profile config (#3948)
- input: fix overzealous mouse capture on resize_on_border (#4010)
- makefile: Add CXXFLAGS to hyprlctl's Makefile (#3913)
- managers: fix debug log using printf format (#4007)
- monitor: fix transform matrix calculations for transformed
- opengl: fix missed makeEGLCurrent
- opengl: fix nvidia read formats
- opengl: fix swapped rgb drm formats
- opengl: fix window introspection check
- opengl: fix xray modes in introspection checks for ls
- opengl: fixup blur dirty repaint conditions with solitary
- output-layout: fix wlroots display handling (#3718)
- pluginmgr: fix double use of dlerror()
- renderer: Fix floating clipbox (#3907)
- renderer: Fixup double rendering cases with special (#3928)
- renderer: fix double render of tiled on workspace switch
- renderer: fix floating window rendering when scale > 1 (#3901)
- renderer: fix inverseOpaque calcs in renderWithBlur
- renderer: fix software cursors on nvidia
- renderer: fixup cursor scaling
- screencopy: fix broken shm copying
- screencopy: fix detecting gl shm formats
- screencopy: fix shm exports with 10-bit
- screencopy: fix shm sharing if introspection required
- screencopy: fix transformed on shm
- shadow: add workspace offset to floating window shadow (#3906)
- vector: New operator overloads and small fix in Vector2D. (#3891)
Other:
- build: remove nv patches (#3957)
- cmake: include tracy cpp if set
- compositor: drop unused vectorToWindow func
- config: add nomaximizerequest all to default cfg
- config: default special_scale_factor to 1
- config: log info about logs before loading vars
- config: Add variables to default config (#4032)
- decorations: recalc layout and positioner on add/remove
- deco-positioner: don't remove hidden windows' data
- exec: remove redundant environment variables from spawn (#3923)
- flake.lock: update nixpkgs and xdph
- functionhooks: throw an exception on unsupported %rip usage
- groupbar: more safety around gradient textures
- groupbar: translate box by workspace offset
- hyprctl: use a rolling buffer for reading requests
- input: Handle fullscreen windows in vectorToWindowIdeal (#4021)
- input: make fallback layout us
- input: pass mouse input to IME popups (#3922)
- inputmgr: clean lists in ~dtor
- internal: Allow floating windows on special (#3872)
- internal: make getPlusMinusKeywordResult return optional
- internal: remove Herobrine
- internal: replace INT_MAX with WORKSPACE_INVALID
- keybinds: Close special workspace after moving windows out of it (#3649)
- layer-shell: simulate mouse movement on unmap
- layout: Don't update pseudoSize after window moved by mouse. (#3873)
- logging: move to an internal rolling log buffer
- makefile: update wlroots sover
- meson: Update wlroots-meson-build.patch (#3950)
- monitor: remove comma from monitor description (#3996)
- nix: override libdrm to use newer version (#4003)
- opengl: Don't use wrong shader just because it's GLES (#3867)
- opengl: better checking for required introspection
- opengl: check for introspection on special_blur
- opengl: clear layer fade fbs in ~dtor
- opengl: don't make a mirror buffer on fakeFrame
- opengl: free window framebuffers in ~dtor
- opengl: require introspection on mirroring
- opengl: tiled special require introspection
- plugins: make logging on error more verbose
- renderer: Move to a full Hyprland GL rendering pipeline (#3920)
- renderer: avoid rendering floating windows twice with special
- renderer: better checks for special rendering in renderWorkspaceWindows
- renderer: clip floating boxes on slide anim
- renderer: don't make snapshots of invisible windows on close
- renderer: drop unnecessary spammy logs
- renderer: make sure lastWindow has correct ws in renderWorkspaceWindows
- renderer: nvidia checks and use glFinish on nvidia
- renderer: pass proper arg to main param of uv calcs
- renderer: proper full occlusion checks for back layer
- renderer: separate oversize uv calcs in dimensions
- renderer: use occlusion checks for buffer clear
- renderer: use viewporter corrected size for uv calcs
- screencopy: use buffer format for glReadPixels
- screencopy: use drmFormat instead of wlr funcs
- screencopy: use new isNvidia() for format
- shaders: Some more changes in rgb2hsl. (#3834)
- shadow: avoid fatal mutation of the windowBox for calcs
- shadow: avoid using glClear and don't draw behind window if ignore_window
- subsurfaces: damage window on subsurface size change
- surface: avoid infinite pointer image resets
- windowrules: make idleinhibit dynamic
Special Thanks
Special thanks to these chads for donating their moolah:
- pulsar256
- alukortti
- WhoKnows
- Ferreo
- VDawg
- Philipp Soldunov
- moneyspreder
- wisesheepbh
- Zack Mitkin
- JPEG
- Squiddles
- Spearhead
- Bug23451
- george_markas
- ItsDrike
- System64
- Armin
- Michael Xspect
- spikespaz
- Logno
- istasi
MRs
- Fix sending wl "finished" events on monitor disabling. Fixes #1274 by @levnikmyskin in #3718
- Some more changes in rgb2hsl. by @Dickby in #3834
- feat: add touch event hooks by @horriblename in #3836
- Close special workspace after moving windows out of it by @thejch in #3649
- Fix position of groupbar titles on monitor scales != 1.0 by @Dickby in #3856
- Don't use wrong matrix just because it's GLES by @Dickby in #3867
- nix: add libGL to build inputs by @andresilva in #3871
- hyprctl: change monitorRequest to report all connected monitors by @TheAngusMcFire in #3730
- Allow floating windows on special by @vaxerski in #3872
- Don't update pseudoSize after window moved by mouse. by @Dickby in #3873
- New operator overloads and small fix in Vector2D. by @Dickby in #3891
- group: dragging into floating groups by @MightyPlaza in #3719
- group:fix text position by @MightyPlaza in #3893
- Workspace gaps by @end-4 in #3877
- Fix floating window rendering when scale > 1 by @thejch in #3901
- Add workspace offset to floating window shadow by @thejch in #3906
- Fix floating clipbox scale by @thejch in #3907
- Add hyprctl 'layouts' command by @zakk4223 in #3895
- Add CXXFLAGS to hyprlctl's Makefile by @NgoHuy in #3913
- Move to a full Hyprland GL rendering pipeline by @vaxerski in #3920
- Make exec support compound bash commands by @thejch in #3923
- flake.lock: update nixpkgs and xdph by @andresilva in #3927
- Fixup double rendering cases with special by @vaxerski in #3928
- renderer: Adding an option to disable first launch animation by @xavi-b in #3933
- Pass mouse input to IME popups by @MikeWalrus in #3922
- Update wlroots-meson-build.patch by @Coldified in #3950
- Fix custom acceleration profile config by @jibingeo in #3948
- Remove nvidia patches by @vaxerski in #3957
- allow reload and fix locked groupbar gradient by @MightyPlaza in #3546
- monitor: remove comma from monitor description by @zephvr in #3996
- nix: override libdrm to use newer version by @andresilva in #4003
- managers: fix debug log using printf format by @zephvr in #4007
- Fix overzealous mouse capture by resize_on_border for XWayland applications by @wrenby in #4010
- Add workspace rule for master layout orientation by @thejch in #3964
- Handle fullscreen windows in vectorToWindowIdeal by...
v0.32.3
A small hotfix for 0.32.2's occasional crashes.
Fixes:
- decoration-positioner: improve stability
Other:
- props: bump ver to 0.32.3
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
- VDawg
Full Changelog: v0.32.2...v0.32.3
v0.32.2
A result of a few small hurried mistakes in 0.32.1. Hypr-active development, am I right? :)
Fixes:
- shadow: move workspace offset calcs to draw
- xdg: set state maximized for all tiled windows
Other:
- props: bump ver to 0.32.2
- shaders: Avoid calculating unused values in hsl2rgb. (#3827)
- shaders: Small optimization in rgb2hsl. (#3831)
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
- VDawg
MRs
- Avoid calculating unused values in hsl2rgb. by @Dickby in #3827
- Small optimization in rgb2hsl. by @Dickby in #3831
Full Changelog: v0.32.1...v0.32.2
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/...