Skip to content

Releases: hyprwm/Hyprland

v0.33.1

06 Dec 16:53
Compare
Choose a tag to compare

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 in CInputManager::onTouchMove by @swwind in #4071

New Contributors

Full Changelog: v0.33.0...v0.33.1

v0.33.0

05 Dec 00:58
Compare
Choose a tag to compare

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

Read more

v0.32.3

11 Nov 18:17
Compare
Choose a tag to compare

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

11 Nov 17:27
Compare
Choose a tag to compare

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

Full Changelog: v0.32.1...v0.32.2

v0.32.1

11 Nov 15:33
Compare
Choose a tag to compare

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

New Contributors

  • @topisani made their first contribution in #3683
  • @vityafx made their first contribution in #3821

Full Changelog: v0.32.0...v0.32.1

v0.32.0

07 Nov 21:16
Compare
Choose a tag to compare

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

New Contributors

Read more

v0.31.0

16 Oct 16:31
Compare
Choose a tag to compare

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 is misc:force_default_wallpaper with a default of -1. Setting to 0 will use the non-anime backgrounds exclusively and behave like the old disable_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 and make fixwlr have been nuked.
  • almost the entire makefile pipeline has been moved into CMake itself.
  • Building is done via make all (or make 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

New Contributors

Read more

v0.30.0

22 Sep 23:17
Compare
Choose a tag to compare

New Hyprland update guys wake up!

Shoutout to the entire country of Romania and @fufexan, and the top Gs pumping out more MRs than I can physically review @memchr @Dickby @MightyPlaza @thejch and more :)

New features:

  • config: add wildcard handling in source= (#3276)
  • doc: Add a CoC (#3366)
  • dwindle: add proper movement for window move binds
  • feat: add a new movewindoworgroup dispatcher (#3006)
  • input/config: add button scroll lock (#3189)
  • layout: add direction parameter to onWindowCreated and friends (#3269)
  • layout: add missing groupbar decoration to the window (#3235)
  • master: Add mfact dispatcher (#3298)
  • master: Add orientationcycle command on MasterLayout (#3128)
  • master: Add smart resizing option for master layout (#3210)
  • misc: add disable_hypr_chan option (#3343)
  • socket2: add renameWorkspace event
  • socket2: added "activespecial" IPC event (#3163)
  • varlist: move to a separate header, add join
  • windowrules: add % to resizeparams (#3246)
  • windowrules: add on-screen constraint to wrv2 'move' (#3247)
  • windowrules: add rule group to map windows grouped (#3279)

Fixes:

  • Nix: fix xdph build
  • Vector2D: fix typo in include
  • config: fix relative path resolution (#3308)
  • dwindle: fix moving windows on special
  • dwindle: fix: don't merge groups when moving window (#3302)
  • fix(layout): remove focusWindow calls from onWindowCreatedTiling (#3233)
  • fix: focusWindow on hidden workspace triggers another focusWindow. (#3216)
  • fix: inconsistent behaviour where last workspace was not saved (#3261)
  • hyprctl: fix missing comma in getopt -j
  • input: Various constraint handling fixes (#3381)
  • input: minor constraint fixes
  • internal: Fix wlr output management (#3234)
  • master: Fix the wrong resize speed in master layout center orientation (#3289)
  • master: partially revert 0e64dd2 and fix the animation (#3327)
  • refactor: fix missed middle() call in CKeybindManager
  • renderer: Fix blur for passes set to 0. (#3181)
  • renderer: fix missing dontRound check in renderSurface
  • windowrules: Monitor rule fix (#3157)
  • windowrules: fix workspace exec rule with special (#3316)
  • windowrules: fix workspace rule separation

Other:

  • CI: add reusable actions
  • CI: don't run wlroots update in PRs
  • Nix CI: use DetSys' install & cache actions
  • Nix: remove hidpi patches
  • Nix: use gcc13Stdenv
  • animatedvariable: don't reset timers on duplicate setters
  • animationmgr: Optimize CAnimationManager::scheduleTick a bit. (#3172)
  • animationmgr: guard monitor ptr in animationSlide
  • bezier: Optimize CBezierCurve::getYForPoint (#3321)
  • bezier: Remove Todo about N-Point bezier curves. (#3352)
  • build: use PCH to reduce compile time (#3095)
  • config/input: Improve fallback behavior for unset device config values (#3184)
  • config: Integrate HASCONFIG into CConfigManager::getConfigValueSafeDevice (#3195)
  • config: disable blur special by default
  • config: don't enable vrr 2 for maximized workspaces
  • config: loosen restrictions around animation keywords
  • hyprctl: Make device configs queryable (#3226)
  • hyprctl: print monitor IDs as int64
  • input: do not process mouse in unsafe state
  • input: don't refocus on switched workspace on the same monitor
  • input: don't warp region constraints
  • input: guard constraint in unconstrainMouse
  • input: lock focus to last surface on buttons held
  • input: simplify fullscreen workspace input calculations
  • internal: Formatter rework (#3186)
  • internal: Make part of CCompositor::focusWindow a bit easier to read. (#3356)
  • internal: Remove all .c_str() calls when using std::vformat (#3198)
  • keybinds: Do not suppress pass and mouse release (#3219)
  • keybinds: avoid onWindowRemoved & onWindowCreated when group has one member (#3286)
  • keybinds: focus last window on workspace change to another mon
  • keybinds: ignore conditions on special release
  • keybinds: ignore mods on release of special binds
  • keybinds: implement pushactivetobottom dispacher (#3217)
  • keybinds: movewindow to screen edge for floating windows (#3245)
  • keybinds: simulate movement on empty focus after workspace change
  • keybinds: track pressed special binds
  • keybinds: unify changeworkspace dispatcher (#3250)
  • keybinds: warp cursor to correct window in moveWindowOutOfGroup (#3290)
  • layout: Allow the layout to control how windows are raised in groups (#3275)
  • logging/format: use std::format_string to catch formatting string errors at compile time (#3377)
  • logging: implement std::formatter for some types (#3380)
  • master: respect the resizing animation option in master layout (#3300)
  • monitor: ignore no-op workspace changes
  • monitor: minor adjustments
  • nix: update patches for meson changes
  • refactor: flatten nesting ifs in layout window creation method (#3294)
  • refactor: manually resets singletons (#3395)
  • refactor: replace lambdas with CKeybindManager::switchToWindow (#3229)
  • refactor: replace manual iteration of CWindow with existing methods (#3147)
  • refactor: utilize 'middle()' method for window/montior center (#3253)
  • renderer: cleanup drm format selection
  • renderer: damage monitor on special workspace change
  • renderer: separate workspace window render logic
  • screencopy: log renderer_begin_with_buffer failures
  • socket2: emit lockgroups event (#3317)
  • varlist: cleanup unintuitive string splitting (#3369)
  • window: recalculate layout on swallow in map
  • wlroots: disable wlr vulkan support
  • xdgoutput: do not destroy resources on monitorRemoved
  • xwayland: adjust coord calculation
  • xwaylandmgr: find closest output in xwayland coord translation

Special Thanks

Special thanks as always to those people for donating!

  • pulsar256
  • alukortti
  • Ferreo
  • mechgyver
  • dieg0sec
  • bara
  • LilleCarl
  • falkaer
  • VDawg
  • Kyle
  • Drace
  • k1f0
  • KarlTheCarpenter
  • DashieTM

MRs

A real chonker!

  • Monitor rule fix by @MightyPlaza in #3157
  • "activespecial" IPC event by @MightyPlaza in #3163
  • refactor: replace manual iteration of CWindow with existing methods by @memchr in #3147
  • Add orientationcycle command on MasterLayout by @shadowmax31 in #3128
  • build: use PCH to reduce compile time by @memchr in #3095
  • Optimize CAnimationManager::scheduleTick a bit. by @Dickby in #3172
  • Fix blur for passes set to 0. by @Dickby in #3181
  • Formatter rework by @vaxerski in #3186
  • add scroll button lock option for input by @unrealhoang in #3189
  • Improve fallback behavior for unset device config values by @pdamianik in #3184
  • Integrate HASCONFIG into CConfigManager::getConfigValueSafeDevice by @pdamianik in #3195
  • Remove all .c_str() calls when using std::vformat by @pdamianik in #3198
  • fix: focusWindow on hidden workspace triggers another focusWindow by @memchr in #3216
  • Do not suppress pass and mouse release by @shadowmax31 in #3219
  • Make device configs queryable by @pdamianik in #3226
  • refactor: replace lambdas with CKeybindManager::switchToWindow by @memchr in #3229
  • fix(layout): remove focusWindow calls from onWindowCreatedTiling by @memchr in #3233
  • Fix wlr_output_management_unstable_v1 protocol by @pdamianik in #3234
  • Add smart resizing option for master layout by @thejch in #3210
  • fix: add missing groupbar decoration to the window by @memchr in #3235
  • add % to resizeparams by @alaricljs in #3246
  • feat: add a new dispatcher that can move windows in and out of groups, or swap windows by @memchr in #3006
  • refactor: utilize 'middle()' method for window/montior center by @memchr in #3253
  • movewindow to screen edge for floating windows by @alaricljs in #3245
  • refactor: unify changeworkspace dispatcher by @memchr in #3250
  • fix: inconsistent behaviour where last workspace was not saved by @memchr in #3261
  • CI: add reusable actions by @fufexan in #2951
  • add on-screen constraint to wrv2 'move' by @alaricljs in #3247
  • feat(config): allow glob in source= clause by @memchr in #3276
  • Allow the layout to control how windows are raised in groups by @outfoxxed in #3275
  • layout: add direction parameter to onWindowCreated and friends by @memchr in #3269
  • refactor(binds): avoid onWindowRemoved & onWindowCreated when group has one member by @memchr in #3286
  • Fix the wrong resize speed in master layout center orientation and remove duplicate code by @thejch in #3289
  • fix: moveWindowOutOfGroup moves cursor to wrong window by @memchr in #3290
  • flake.lock: update nixpkgs and xdph by @fufexan in https://github.com/hyp...
Read more

v0.29.1

03 Sep 11:42
Compare
Choose a tag to compare

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's wlr/workspaces and alike will not work anymore (for waybar I recommend just switching to hyprland/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

Full Changelog: v0.29.0...v0.29.1

v0.29.0

28 Aug 21:42
Compare
Choose a tag to compare

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

New Contributors

Full Changelog: v0.28.0...v0.29.0