Releases: hyprwm/Hyprland
v0.19.2beta
New features:
- Added toplevel handle sharing
- Revert "nix: add cachix to nixos module"
- add changefloatingmode event
- add missing c_str in debug log
- ensure mapped state in addViewCoords
- nix: add xdph to flake and enable it in the nixos module
Fixes:
- fix drag resizing on special ws-es
- fix memory safety in getWindowFromSurface
- fix minor issues with move focus and follow mouse 0
- fix sharing scaled windows
- fix string escaping in CMakeLists.txt
- fix up relative monitors
- minor focus fixes with LS-es and moving windows
Other:
- do not reject drags on visible windows over fullscreen
- find a default workspace smarter
- handle constraint cursor hints better
- optimize m+- and e+- workspace opts
- sort valid ws-es in relative
- update hyprland-protocols
- use anim callbacks and don't spam config resets in drag
Special Thanks
as usual, special thanks to these chads for donating to help the project stay alive:
- speedboat
- Karagra
- HauntedCoffeePot
- Lipt0nas
- zjeffer
- Matthias
New Contributors
Full Changelog: v0.19.1beta...v0.19.2beta
v0.19.1beta
Minor changes including bumping the wlroots ver, fixing a memory leak and some issues with
moving fullscreen windows.
New features:
- add failsafe for dwindle windows
- added nomaxsize rule
- nix: add cachix to nixos module
Fixes:
- fix lost windows clogging up memory
- fix up moving to special workspace
- minor fixes to special workspace behavior
- minor toplevel sharing fixups
Other:
- remove double semicolons
- unset fullscreen in onWindowRemoved
Special thanks
Special thanks as always to these chads for donating to keep the project going:
- Pebor
- HauntedCoffeePot
- Lipt0nas
- speedboat
- Karagra
Full Changelog: v0.19.0beta...v0.19.1beta
v0.19.0beta
Cool stuff.
Info for packagers:
the source-
tarball has changed. Everything is now in a subdir called hyprland-source/
New features:
- Add nofullscreen to windowrules (#1107)
- Add option for retrieving first empty workspace (#1085)
- Added handling more special workspaces
- Added screen shaders
- Fix incorrect layout positions in mirror re-add
- Nix: add libdrm and wayland-protocols overlay
- add scroll_button libinput opt
- added blur_xray
- added border gradients
- added hyprctl switchxkblayout
- Implement window sharing with the hl toplevel export proto (#1179)
Fixes:
- Fix a compiler warning (#1124)
- Fix cmake error when using clang (#1009)
- Fix incorrect layout positions in mirror re-add
- Fix minor issues with mirrors
- Fix swiping on the first workspace going to the last (#1067)
- Fix wrong layout recalculate if statement (#1167)
- fix AA on borders
- fix border inner offset in shader
- fix crash in blurls remove
- fix crash in setActiveMonitor null
- fix crash with invalid frag dynamic shaders
- fix decorations missing after no_gaps_when_only toggle floating
- fix events in changeworkspace with bound ws-es
- fix fadeout with animated border
- fix group border oversaturation
- fix invisible windows on moving fullscreen out
- fix master resizes all
- fix minor issues with blur w/o new optim
- fix minor issues with blur_new_optimize
- fix shader destroy id unset
- fix transformed border thickness
- fix up the border shader
- fix warning
- minor fixes for mirrors & log more monitor events
- minor monitor code fixups
- monitor rule fixes
- use highp for pixcoord to fix nvidia border issues
Other:
- Render focused window at last (#1060)
- Reset callbacks on remap
- Setting wayland environment variables at startup (#1045)
- Unify rounding shaders
- Update wiki link in manpage (#1144)
- Use internal device naming for Hyprctl devices (#1174)
- nix: add cmake and wlroots to devshell (#1155)
- nix: add xdph to nixos module
- allow 360 degrees of freedom in gradients
- avoid duplicate device names
- avoid header clashes in make all
- avoid using wayland-0 as a socket name
- better capability handling
- block surface feedback on window sharing
- blur xray for layers (#1158)
- check for special workspace open in attemptDirectScanout
- convert bordercolors to GradientValueData correctly (#1122)
- damage monitor on group switch
- damage windows after switch
- default blur new optimizations to 1
- don't attempt rendering on begin failure
- don't change alpha on special anims
- don't focus back after dnd on follow mouse 1
- don't initial focus on LS keyboard grab
- don't send motion events to lock constraints
- don't set AS in onConnect
- find base surface if no subsurface found in ls
- find floating windows below closed one
- ignore alpha when sharing window
- improve constraint handling
- make focus/swap master layoutmsgs two-way
- minor changes to unsafe state handling
- more memory safety around onDisconnect
- nix: remove merged hwdata override
- nix: update nixpkgs (includes merged hwdata update)
- optimize border shader
- optimize data feeding to gradient renderer
- override force opaque rule on keybind
- recalculate layout only when needed on dynamic keywords
- reload shader on dynamic shader keyword
- remove global var
- remove idiotic guard in processMouseDownNormal
- remove redundant strval_empty checks
- remove resize transitions
- reset m_bEmptyFocusCursorSet on workspace switch
- respect no_gaps_when_only in fullscreen 1
- return full monitor box for fullscreen windows in idealBB
- schedule frames and reloads on session re-activate
- show groupings and swallowing in hyprctl (#1159)
- skip covered windows on fullscreen workspaces in getWindowInDirection
- unify setting of the active monitor
- use gradients in default configs
Special Thanks
Special thanks as usual to those alpha male gigachads for dropping me some euros:
- umop3plsdn
- Karagra
- Teddy-Kun
- Martin E
- Vibrose
- AmadeusWM
- Lipt0nas
- HauntedCoffeePot
- Leftas
- Pebor
New Contributors
- @julianschuler made their first contribution in #1060
- @Maks-s made their first contribution in #1009
- @CactiChameleon9 made their first contribution in #1067
- @hnboy made their first contribution in #1124
- @heymisphere made their first contribution in #1144
- @eriedaberrie made their first contribution in #1159
Full Changelog: v0.18.0beta...v0.19.0beta
v0.18.0beta
New features:
- Add an idleinhibit windowrule
- Add bordercolor windowrule (#992)
- Add focusmaster dispatcher (#942)
- Add keyboard led update after keys/mod update
- Added creating / destroying outputs on a multi-backend + headless backend
- Added decoration:shadow_scale
- Added direct scanout
- Added exec rules
- Added multiple master layoutmsgs
- Added resize transitions
- Added resizing individual master windows
- add more wlroots flags for faster compile
- add move cursor windowrule
- added monitor cycling
- added toggle for drm scanout flags
- added unset rules
- added workspace_swipe_forever
Fixes:
- Fix crashes with DS and mirrors
- Fix missing focusedmon event on focusmonitor dispatcher
- Fix resize transitions on multimon + transformed
- Minor fixes for virtual input devices
- Multiple animation optimization and xwayland wine fixes
- Nix HM: Fix invalid escapes
- fix extents in shadow deco
- fix fullscreen maximize size
- fix invalid master slave pos calc on y != 0
- fix issues with direct scanout's lack of surface frame feedback
- fix master window finding on closed
- fix missing stub for xwayland
- fix ordering in mouse connect
- fix passing input to constrained windows without relative
- fix raw exec in configmanager
- fix relative protocol paths
- fix safety over ls outputs
- fix shadow extent & offset calculations
- fix slide calcs for windows outside the viewport
- fix swipe on 2 detached workspaces
- fix the damageBox in damageMonitor
- fix trailing comma in hyprctl activewindow
- fix unregistering avars on sethidden
- minor fixes for follow_mouse 3
- minor loose focus fixes
- resize transition fixes + default transitions to false
Other:
- Allow arguments to hyprctl dispatch exec commands. (#990)
- Dispatcher to center floating window (#961)
- Nix HM: prevent race condition between dbus and systemd
- Revert "Set child stdout and stderr to /dev/null (#1000)"
- Set child stdout and stderr to /dev/null (#1000)
- apply some rules dynamically when state of window changes (#1020)
- automatically update dbus environment on start
- constraint focus simplifications
- deprecate general:damage_tracking
- don't update the env in session-less hl
- guard empty str in isNumber
- guard empty str in removeBeginEndSpacesTabs
- guard header windows in layout messages
- guard lastwindow in circlenext
- handle transforming displays in outputMgr
- helpers: implement getPPIDof on BSDs (#972)
- ignore constraints on exclusiveClient create
- include utility in defines
- meson: explicitly specify path for find(1) (#971)
- meson: use gl instead of GL
- move no_direct_scanout to misc
- notify idle on touch down
- possible crash when current workspace does not exist (#1023)
- prevent double-registering of avars
- remove ensureFDsValid, legacy
- remove old comments
- remove redundant check in CShader
- remove redundant includes
- remove spammy ime logs
- remove spammy logs for DS
- render the debug overlay only on visible monitors
- set cursor to hand1 when moving a window
- streamline hypctl output of windows (#983)
- update window values after map finish
- use goal values in changeWindowFloatingMode
- use lld instead of i in hyprctl getopt for accurate int reads
Special Thanks
As tradition, special thanks to those gigachads for donating in support of the project:
- re-ynd
- Pebor
- speedboat
- HauntedCoffeePot
- Karagra
- Lipt0nas
New Contributors
- @abbadanor made their first contribution in #942
- @jbeich made their first contribution in #972
- @philj56 made their first contribution in #990
- @sioodmy made their first contribution in #991
- @leftas made their first contribution in #997
- @ElJeffe made their first contribution in #983
- @Mango0x45 made their first contribution in #1000
Full Changelog: v0.17.0beta...v0.18.0beta
v0.17.0beta
New features:
- Add windowrules for noblur and noshadow (#884)
- Added hyprctl cursorpos
- add 10bit support to displays
- add disabling pointer devices
- added swipe create new
- allow glob wildcard in addreserved
- Allow 100%- for move rule
- allow
#
escaping in config
Fixes:
- Fix self-noding in changeWindowFloatingMode
- fix animate_manual_resizes with moves
- fix crash in event manager on hangup
- fix debug nest black screen
- fix default 0 in box passing test
- fix maximized windows not hiding tiled
- fix minor anim issue with swipe new
- fix minor focus oopsie
- fix refocus on last window
- fix silent + size windowrules
- fix swipe with fullscreen maximized
- minor fix for swipes from empty workspaces
- minor fix to silent ws rules
- minor fixes for xwayland refocus
- minor swipe on new fixes
- minor workspace rule parsing fixes
Other:
- CMakeLists.txt: use sh instead of bash
- Improve hyprctl
- No xwayland overhaul (#920)
- Rework candidate finding on close window
- Rework workspace rules
- T1C: window dance compat
- Transpose matrices on LEGACY_RENDERER
- allow cyclenext on null focus
- allow nofocus + workspace silent
- always report sizes after a window unmap
- avoid applying offset twice in onConnect
- avoid creating bound WS-es in moveWorkspaceToMonitor
- avoid layout changes when unnecessary in applyMonitorRule
- bump xdg ver to 5
- constrain mouse on focus change
- default focus_on_activate to false
- disable adaptive sync with no_vfr off
- don't set custom mode in change
- ensure VRR for current display only in onConnect
- handle activate requests
- ignore pointer constraints in touch
- lower IME errors to WARNs
- meson.build,CMakeLists.txt: use sh instead of bash
- meson.build: use sh instead of bash
- meson: Fallback to 'opengl' when 'GL' is not found.
- more safety around shutting down and mouse movements
- more safety for focus requests
- properly find the constraint window
- properly scan for subsurfaces in fullscreen input refocus
- remove redundant check
- render layer snapshot without blur
- respect nofocus in candidate searching
- respect wsbind in workspace silent rules
- revert output smart layout reporting
- set lastmonitor in onDisconnect
- unify LS unmap focus
- unrestrict hyprctl message size
Special Thanks
As usual, special thanks to those people for dropping some euros to me:
- JNC
- Zephan
- Lipt0nas
- HauntedCoffeePot
- Karagra
New Contributors
- @wael444 made their first contribution in #893
- @riley-martin made their first contribution in #912
- @rakino made their first contribution in #924
Full Changelog: v0.16.0beta...v0.17.0beta
v0.16.0beta
Thanks Brodie Robertson for the coverage!
New features:
- Add additionnal matrices and rename config var
- Add debug coredump instructions (#812)
- Add input:touchdevice:td_rotation config
- Add input:touchdevice:transform config
- Add support for rgba() and rgb() colors in the config
- a bit more default config nice addons
- add
PKGBUILD
to ignored files - add loose focus behavior
- add maxsize window rule
- add touch binding to output
- added bringactivetotop dispatcher
- fix invalid json output by adding a missing comma
Fixes:
- Nix modules: fix environment variables
- fix crash in renderWorkspaceWithFullscreenWindow
- fix invalid json output by adding a missing comma
- fix windowsOut disabled with fadeOut enabled
- simplify shouldRenderWindow and fix one cond
Other:
- check for same workspace in workspace rule
- default & example config overhaul
- don't recalc offset on monitor reload offset auto
- ignore OR windows' size hints
- remove old log
- rename transform in DC to touch_transform
- rework focus system to be more safe and faster
- set XCURSOR_SIZE if not set in init
- set workspace name in previous
- unsetenv on no XWayland
- use size hints when available in xwayland default geom
- use static for transformation matrices
Special thanks
Special thanks to these massive epic alpha male gigachads for donating:
- Lipt0nas
- HauntedCoffeePot
- Karagra
- mdaydevelopment
- yavko
- Heisfer
New Contributors
- @KyleUltimate made their first contribution in #812
- @brodi1 made their first contribution in #844
- @histausse made their first contribution in #813
- @K1llf0rce made their first contribution in #857
Full Changelog: v0.15.3beta...v0.16.0beta
v0.15.3beta
Very small update to fix black screens on some hardware.
Other:
- Change matrixProjection function stop use matrixFlip180 everywhere.
- Let openGL transpose the matrixes for us.
- Replace
$(nproc)
with$(shell nproc)
. - Simplify matrix calculations
- Update wlroots
Special thanks
Special thanks as usual to these chads for donating:
- Neutronic
- Karagra
- Lipt0nas
- HauntedCoffeePot
Full Changelog: v0.15.2beta...v0.15.3beta
v0.15.2beta
Rather minor update, some bugfixes and minor features.
New features:
- Added clipping support, clip windows on slide anim
- add open/close layer events
Fixes:
- fix a VRAM leak in destroyMonitorResources
- Transform the box data send to texture shaders.
Other:
- Check earlier if pixman regions are empty.
- Check earlier if pixman_region is empty in some places.
- better subsurface handling on unmaps
- ensure texture safety in clearWithTex()
- inverse_transform the box in renderRectWithDamage.
- make swipe respect slidevert
- offset floating windows out of bounds on ws anims
- release all fbs in destroyMonitorResources
- swallow improvements
Special thanks
Special thanks as usual to these chads for donating:
- Neutronic
- Karagra
- Lipt0nas
- HauntedCoffeePot
Full Changelog: v0.15.1beta...v0.15.2beta
v0.15.1beta
Critical update: 0.15.0beta has a defect due to an issue with wlroots making the GPU suffer a lot!
New features:
- Add accel profile and scroll method
- Add input:touchpad:scroll_factor
- Add switch device handling and binds
- add desc: to monitor rules
- add dpms per output
- add dpms status info in hyprctl
- add left_handed config for input
- add minsize rule
- added a noanim rule
- additional logic for identical pid swallowing
Fixes:
- Fix compiler warnig comparing signed and unsigned integers.
- Fix compiler warnings.
- Fix getDeviceInt string arg "input:left_handed"
- Merge branch 'fix_rounding_in_size_changing_windows' into rework_rounding_shader
- Merge branch 'main' into fix_rounding_in_size_changing_windows
- Merge branch 'make_TTY_unsigned' into fix_left_handed
- fix naming when workspace back and forth
- fix string corruption in hyprctl monitors -j
- fix tty switch freeze
- fix workspace previous with multi-mon ws moves
- fixes to window swallowing with same pid
- fixing your shit.
- revert wlroots ver to fix critical gpu issue
Other:
- Avoid 38 files to compile every time a shader is modified.
- Compare PLASTWINDOW & PWINDOWTOCHANGETO m_iMonitorID's instead of PWINDOWTOCHANGETO->m_iMonitorID & g_pCompositor->m_pLastMonitor->ID
- Cut the number of pixels that call length() in half.
- Don't pass bottomRight to textureShaders compute it within.
- Even less branching (taken more or less from the border shader).
- Make the rounding texture shaders smaller and more efficient.
- Merge branch 'main' into rework_rounding_shader
- Remove texcoord from QUADFRAGSRC.
- Remove unused ignoreCorners variable from texture shaders.
- Rework rounding shader
- Send absolute screen coordinates to texture shaders.
- focusedmon event check change
- ignore VT switches to current vt
- log GPU info for debugging
- map touch to the correct output
- monitor desc improvements
- more checks in pid gathering
- more monitor checks for shutdown:
- reset sigmask on fork
- return true on vt switch keysyms to avoid printing stuff
- texcoord is unused in the rounding part of the textureshaders.
- update wlroots dep
- use goalv in clientsRequest
- use vectorToWindowIdeal in mouse binds
Special thanks
Special thanks to these chads for donating:
- primalmotion - massively
- Karagra
- Lipt0nas
- HauntedCoffeePot
- Neutronic
- Vagahbond
- k1f0
- umop3plsdn
New Contributors
- @lylac-1 made their first contribution in #773
Full Changelog: v0.15.0beta...v0.15.1beta
v0.15.0beta
Enjoy your CPU usage when idle going down by as much as 95% in some cases and much more!
New features:
- Add "highest" mode to Monitor for autoconfiguration.
- Added window swallowing
- add case for empty strings in isNumber
- add fullscreen info to clients request
- add refreshrate or resolution preference
- added high to monitor resolution
Fixes:
- Fix #711
- It wasn't a problem with the bug i tried to fix.
- Merge branch 'main' into fix_bordersize_again
- Splash position fix
- fix Hz Log
- fix commas in free binds
- fix crash
- fix crash on dwindle splitratio alter on single group
- fix custom rules on null modelist
- fix ipc event missing on silent movetoworkspace
- fix oopsies in rule code
- fix silly mistakes
- minor OR XWayland fixes
Other:
- Change scaledBorderSize to int.
- Replace clamp with max if there is no upper bound.
- Scale border size in calculations of windows
- Scale border size in window size pos calculation
- Scale the border size, revert the window scaling according to border
- Scale the cairo matrix to fit the monitor dimensions.
- Shift splash up if monitor has wider ratio than bgTexture.
- Unify arg lists, allow for trailing spaces in args
- Use double literals, don't cast a integer literal to double.
- Use double literals, don't cast integer or float literals to double.
- allow for pure workspace names in dispatchers
- allow one less arg in bind
- anchor to proper quad in floating resize
- apply new node data to all group windows on close
- change Preferred mode to use highest refreshrate
- default pass_mouse_when_bound to 0
- disallow pinning fullscreen
- don't decorate on only no gaps
- don't recalc pseudo on fullscreen
- enter outputs for non-interactive ls-es too
- focusable checks in nextWindow calls
- guard event in maximize request
- guard kb settings in xkb translation state
- handle maximize toplevel request
- include shaders only in opengl.cpp
- optimize removing trailing spaces
- optimize vector config value setting
- overwrite wsbind rules on existing
- remove empty line
- remove more silly mistakes
- remove polling from socket2, fully event based
- remove redundant attrib setting
- rewrite isNumber
- scale border size in dwindle layout window sizes.
- send a focusedmon event on focus change mon
- support max in size rules
- support more wlr_cursor events
- update wlroots dep
- use goalv in movetoworkspace
- use the event data for determining maximize status in requests
Special Thanks
Special thanks as usual to these people for donating their hard-earned money to some kid on the internet (me) to keep this project alive!
- Neutronic
- Karagra
- Lipt0nas
- HauntedCoffeePot
- Wyfe
New Contributors
Full Changelog: v0.14.0beta...v0.15.0beta