Skip to content

Releases: hyprwm/Hyprland

v0.19.1beta

07 Dec 19:39
Compare
Choose a tag to compare

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

06 Dec 13:22
Compare
Choose a tag to compare

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

Full Changelog: v0.18.0beta...v0.19.0beta

v0.18.0beta

16 Nov 17:45
Compare
Choose a tag to compare

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

Full Changelog: v0.17.0beta...v0.18.0beta

v0.17.0beta

30 Oct 12:40
Compare
Choose a tag to compare

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

Full Changelog: v0.16.0beta...v0.17.0beta

v0.16.0beta

17 Oct 16:26
Compare
Choose a tag to compare

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

Full Changelog: v0.15.3beta...v0.16.0beta

v0.15.3beta

11 Oct 09:57
Compare
Choose a tag to compare

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

09 Oct 21:41
Compare
Choose a tag to compare

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

06 Oct 21:19
Compare
Choose a tag to compare

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

03 Oct 21:49
Compare
Choose a tag to compare

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

v0.14.0beta

21 Sep 17:28
Compare
Choose a tag to compare

Breaking changes

main_mod has been deprecated.

new syntax for mouse binds: (example)

bindm=SUPER,mouse:272,movewindow
bindm=SUPER,mouse:273,resizewindow

New features:

  • Added monitor mirroring
  • Nix modules: add recommendedEnvironment option
  • add default speed to hyprctl devices mice
  • added misc:disable_autoreload
  • added window pinning
  • added wsbind

Fixes:

  • Various subsurface handling fixes
  • fix LS fading out on ws change
  • fix an unholy memory safety issue
  • fix animation issues with workspace silent
  • fix decos on pinned
  • fix fadeout on unmap fullscreen
  • fix focus follows mouse 0 event sending on wrong window
  • fix groupbar being wonk on scaled
  • fix groups with fullscreen
  • fix hyprland freeze when undocking from docking station
  • fix misc fullscreen issues
  • fix mouse binds being stuck
  • fix moving between fullscreen workspaces
  • fix pinned fade on fs
  • fix refocus on same workspace
  • fix special fullscreen
  • fix special workspace dispatcher logic
  • fix wonky focus on movetoworkspace
  • fix ws switching with LS opacity
  • minor code styling fixes
  • minor mouse bind handling fixes
  • minor swipe fixes

Other

  • accept any case in binds
  • allow current in monitorfromstring
  • better cycling in fullscreen with pinned
  • better dwindle swapping with groups
  • disable enabling groups on fullscreen windows
  • disallow fullscreen pinned
  • disallow move/resize dispatchers on fullscreen windows
  • don't apply alpha to fadingOut on setWindowFullscreen
  • don't iterate over subsurfaces in unmap
  • export HYPRLAND_CMD for scripts
  • fade control for fullscreen action on windows
  • fullscreen animation en-nice-ment
  • guard invalid FB allocs
  • handle multi-ws swaps in layouts
  • handle touch devices internally as objects
  • hyprctl-nopoll
  • introduce new mouse binds in default and example cfgs
  • more forceRendering checks in shouldRenderWindow
  • mouse binds overhaul
  • only check for visible on xdg
  • prevent assert killing Hyprland after reenabling monitor
  • tick config after reload request
  • verify visibility of new geom in floating creation

Special Thanks

Special thanks to these chads for donating:

  • Neutronic
  • Karagra
  • HauntedCoffeePot
  • Lipt0nas
  • Goggi
  • Fabian
  • The_Branch_Manager

New Contributors

Full Changelog: v0.13.1beta...v0.14.0beta