Releases: hyprwm/Hyprland
v0.27.2
Minor patch to fix nested sessions and screencopy crashes.
New features:
- Add bringWindowToTop function to IHyprLayout (#2747)
Fixes:
- no_xwayland: fix redef
Other:
- keybinds: movegroupwindow-improvement (#2740)
- render: set refresh to 0 for both wl and x11 backends
- screencopy: guard region buffer values in frameDamage
- screencopy: improve shm handling
- screencopy: use wlr_buffer api for shm copies
Special Thanks
Special thanks as usual to those gigachads for donating:
- ThatOneLutenist
- Lipt0nas
- speedboat
- pulsar256
- alukortti
- garypippi
MRs
- movegroupwindow-improvement by @MightyPlaza in #2740
- Add bringWindowToTop function to IHyprLayout by @outfoxxed in #2747
Full Changelog: v0.27.1...v0.27.2
v0.27.1
Minor update to fix some crash issues and stuff
Shoutout to grandma, without you this wouldn't have been possible!
New features:
- background: add mascot versions
- build: add asan enable status flag
- issues: add form templates
- keybinds: add movegroupwindow
- windowrules: add border size rule
Fixes:
- fix: handle window change directions in fullscreen (#2728)
- idle: fix reverse flag for new idle protocol
- massive-fix (#2725)
Other:
- Allow empty args in hyprctl dispatch (#2724)
- Avoid connected monitor reusing unavailable ID (#2731)
- Dwindle: Make resize more intuitive (#2681)
- Make bind modmask case-insensitive (#2714)
- deps: update wlroots (#2734)
- idle: implement new protocol
- internal: Protocol C++ Wraps + XDGOutput impl (#2733)
- internal: Remove herobrine
- layout: recalc window on dynamic rule update
- layout: recalculate monitor instead of window in updateDynamicRules
- monitor: disconnect bind on disconnect
- monitor: unplug all callbacks in ~dtor
- move/resize window (#2706)
- only return 0 when using -h (#2738)
- renderer: use correct wlr sample func
- screencopy: nullcheck for empty buffer
- update group decos (#2705)
- xwayland: guard monitor validity in xwayland scale overriding
Special Thanks
Special thanks as usual to those based individuals for donating:
- Lipt0nas
- speedboat
- pulsar256
- alukortti
- garypippi
MRs
- Dwindle: Make resize more intuitive by @DanielAdolfsson in #2681
- update group decos by @MightyPlaza in #2705
- move/resize window visual improvments by @MightyPlaza in #2706
- Make bind modifiers case-insensitive by @Ordoviz in #2714
- special workspace id fix by @MightyPlaza in #2725
- hyprctl empty dispatcher by @MightyPlaza in #2724
- Avoid connected monitor reusing unavailable ID by @zjeffer in #2731
- fix: handle window change directions in fullscreen by @isti115 in #2728
- Update subprojects/wlroots by @jbeich in #2734
- Protocol C++ Wraps + XDGOutput impl by @vaxerski in #2733
- only return 0 when using -h by @alba4k in #2738
New Contributors
Full Changelog: v0.27.0...v0.27.1
v0.27.0
Sup y'all, new Hyprland update dropped :)
Shoutout to grandma
New features:
- Add support for smart splitting (#2676)
- Allow setting alpha value for ignorezero layer rule (#2477)
- feat: add ipc set title window event (#2419)
- feat: add lockactivegroup dispatcher (#2478)
- feat: add variable to customize locked group border color (#2507)
- gestures: add workspace_swipe_use_r
- noxwl: add missing stubs
- pluginapi: add configReloaded event
- rules: add nodim
- rules: add stayfocused
- screenshader: add output uniform
- xwayland: add force_zero_scaling
- xwayland: add nearest neighbor filtering as an opt
Fixes:
- Fix crash when screen size is 0x0 (#2523)
- Fix fractional scale updates in some cases (#2447)
- Nix CI: fix typo
- chore: fix typos (#2463)
- config: fix floating rules with floating-by-rule windows
- config: fix reading touchpad values to non-touchpad per-device cfgs
- config: minor path handling fixes
- configmgr: fix idiotic comparisons in device configs
- fix updating revision in wlroots.wrap
- format: fix hooksystem
- gradient: fix warn
- groupbar fixes (#2630)
- groupbar: fix damage calcs
- groupbar: fix vram leak
- internal: minor style fixes
- layout: minor style fixes
- lockgroups fix (#2636)
- main: fix segfault when -c is given with no other arguments (#2470)
- opengl: fix invalid tex references to tex-less shader
- plugins: fix config value usage in init
- screenshader: fix uniform variable checks (#2513)
- screenshot fix (#2640)
- swipe: fix mixup of r/m
- texture: fix styling
- xwayland: fix minor force_zero_scaling bugs
- xwaylandmanager: fixup style
Other:
- Avoid passing control unix socket descriptors to children (#2656)
- Cleanup compositor deadcode (#2657)
- Close socket2 client descriptor on hangup (#2654)
- Implement pass binds (#2503)
- Keep new mapped layer's alpha zero if the workspace has a fullscreen window (#2686)
- Make movetoworkspace register previous workspace (#2436)
- Nix CI: split inputs and wlroots updating
- Nix/portals.patch: conditionally check portals
- Nix: patch portals search dir
- Partial revert of Commit 302ec13: (#2539)
- Reloads animated decoration values set on window rules (#2594)
- Reloads dynamic window rules (#2585)
- Reuse same ID when reconnecting monitor, otherwise use minimum available ID (#2666)
- Update ISSUE_GUIDELINES.md faq link to the wiki (#2424)
- Xdg config home support (#2047)
- [hyprctl] Expose the special workspace id and name of the monitor (#2392)
- animationmgr: warp on equal start and goal
- calculate zoom_center based on monitor scale (#2482)
- compositor: don't set dim percent on disabled dim
- compositor: move group members properly in moveWindowToWorkspaceSafe
- crashreporter: log tag
- damage: account for popups in getFullWindowBoundingBox
- eventmanager: drop obsoleted ignore events flag (#2660)
- events: remove old comment
- flake.lock: update nixpkgs
- flake.lock: update nixpkgs
- gamma: use wlr's new gamma manager event
- hyprctl: recalc layout on setprop
- includes: move workspace protocol header to includes
- input: force focus on movefocus
- input: remove old redundant code
- input: schedule frame on mouse move
- input: update surface input on changeworkspace
- internal: damage window on change group
- internal: make borderSize prop overridable
- internal: properly set monitor props on special windows
- keybinds: remove old todo
- layout: improve time restraints in window drag
- layout: set pseudo to float size in new window
- layouts: make aware of borderSize prop
- monitor desc default workspace (#2673)
- monitor desc default workspace but working now (#2678)
- monitor desc support (#2670)
- props: bump ver to 0.27.0
- render: move lastFrameDamage to CMonitor
- render: resize subsurfaces with size resizes
- renderer: damage decos on damageWindow
- screencopy: send original damage, avoid extents
- shader: init uniforms to -1
- shader: remove useless comment
- shadow: drop useless damageEntire()
- toplevelexport: ignore defunct windows
- typo (#2643)
- window: recalc on deco remove
- xwayland: disconnect events on destroy
- xwayland: remove spaces from output names
- xwayland: send zero scaling to xwayland if enabled
- zoom: multiply by scale only on mouseZoomUseMouse (#2495)
Special Thanks
Special thanks as usual to those chads for donating me some moolah:
- Lipt0nas
- speedboat
- pulsar256
- Sinkerine
- hi im brown
- jsw
- meeri
- Ary Kleinerman
- Guido Panebianco
- Spearhead
- Amadeus
- spikespaz
- sbatial
- kamui
- Neo
- dano
MRs
- [hyprctl] Expose the special workspace id and name of the monitor by @15cm in #2392
- Update ISSUE_GUIDELINES.md faq link to the wiki by @asdfer-1234 in #2424
- feat: add ipc set title window event by @cyrinux in #2419
- Make movetoworkspace register previous workspace by @alyanser in #2436
- Fix fractional scale updates in some cases by @fberg in #2447
- chore: fix typos by @n3oney in #2463
- main: fix segfault when -c is given with no other arguments by @eriedaberrie in #2470
- feat: add lockactivegroup dispatcher by @memchr in #2478
- calculate zoom_center based on monitor scale by @nik012003 in #2482
- zoom: multiply by scale only on mouseZoomUseMouse by @nik012003 in #2495
- Allow setting alpha value for ignorezero layer rule by @end-4 in #2477
- feat: add variable to customize locked group border color by @memchr in #2507
- screenshader: fix uniform variable checks by @JManch in #2513
- Implement pass binds by @outfoxxed in #2503
- Fix crash when screen size is 0x0 by @shemig in #2523
- fix revision getting updated to the previous one, not current by @solopasha in #2524
- Partial revert of Commit 302ec13: by @shemig in #2539
- Reloads dynamic window rules by @MightyPlaza in #2585
- Reloads animated decoration values set on window rules by @MightyPlaza in #2594
- groupbar fixes by @MightyPlaza in #2630
- lockgroups fix by @MightyPlaza in #2636
- rotated and transformed screenshot fix by @MightyPlaza in #2640
- fix typo by @MightyPlaza in #2643
- Nix CI: split inputs and wlroots updating by @fufexan in #2645
- Close socket2 client descriptor on hangup by @nexec in #2654
- Avoid passing unix socket descriptors to children by @nexec in #2656
- eventmanager: drop obsoleted ignore events flag by @nexec in #2660
- Cleanup compositor deadcode by @nexec in #2657
- Xdg config home support by @edyounis in #2047
- Reuse monitor IDs, and use minimum available monitor ID for next monitor by @zjeffer in #2666
- monitor desc support by @MightyPlaza in #2670
- monitor desc default workspace by @MightyPlaza in #2673
- monitor desc default workspace but working now by @MightyPlaza in #2678
- Add support for smart splitting by @DanielAdolfsson in #2676
- Fix new LAYER_TOP layer surface rendering above fullscreen windows by @zakk4223 in #2686
New Contributors
- @15cm made their first contribution in #2392
- @asdfer-1234 made their first contribution in #2424
- @fberg made their first contribution in #2447
- @n3oney made their first contribution in #2463
- @memchr made their first contribution in #2478
- @nik012003 made their first contribution in #2482
- @end-4 made their first contribution in #2477
- @JManch made their first contribution in #2513
- @shemig made their first contribution in #2523
- @MightyPlaza made their first contribution in #2585
- @nexec made their first contribution in #2654
- @edyounis made their first contribution in #2047
- @zjeffer made their first contribution in #2666
- @DanielAdolfsson made their first contribution in #2676
- @zakk4223 made their first contribution in #2686
Full Changelog: v0.26.0...v0.27.0
v0.26.0
WHY DID MY ENTIRE RELEASE GET WIPED REEEE
Anyways Hyprland update woooo
New features:
- Add "next on monitor or empty" workspace parameter (#2198)
- Add hyprland to waybar-hyprland path as fallback for hyprctl
- Add split preselection (#2240)
- decos: recalc on add
- groupbars: add text color opt
- groupbars: add title and gradient rendering
- input: add custom accel profiles
- input: only configure newly added touch devices
- lock: add allow_session_lock_restore
- pluginapi: add separate window render events
- renderer,config: add custom DRM modeline support (#2254)
Fixes:
- 1483: fix crash on last display disconnect (#2344)
- Fix UAF in animation end callback if callback deletes the animation (#2389)
- Fix broken pipe crash when event listener terminates (#2339)
- Fix not finding function symbols for hooking (#2292)
- Fixed wrong focus changes when moving background workspaces (#2258)
- bug fix (#2314)
- configmanager: fix substr offset in default ws rule
- examples: fix incorrect link in per-device config comments (#2353)
- focus: fix #1675 window not scrollable after movefocus (#2390)
- groupbars: fix minor alignment issues
- groupbars: fix reserved area on titles
- hyprctl: fix cut-off json outputs (#2352)
- includes: use libdrm prefix for include
- keybinds: fix tryMoveFocusToMonitor with special
- launchanim: fix #2291
- layers: fix wonky focus on multimon
- monitors: fix some bugs with re-plug
- render: minor fixes to fullscreen rendering
- touch: fix double offset in local
- workspaces: minor fixes for multi-special
Other:
- Issue template: request users to ping me for Nix
- Nix: expose/use flake's own hyprland-protocols in overlays.default (#2235)
- animationmgr: allow empty avars
- compositor: disallow sending pinned to special
- compositor: don't focus pointer in focusWindow
- config: clear layer rules on reload
- configmanager: deprecate bindws
- configmanager: remove useless log from handleWorkspaceRule
- configmanager: store workspace rules as a deque
- don't swap workspaces if monitors are the same (#2322)
- examples: update plugin headers
- examples: update plugin makefile
- focus: make cursor follow movewindow (#2374)
- groupbar: make exclusive
- groupbars: conserve VRAM by staticizing textures
- groupbars: make gradients toggleable
- hyprctl: recalc layout on dynamic workspace
- includes: remove redundant from screencopy
- input: check for matrix availability in touch config
- input: don't move monitor focus on wp change (#2320)
- input: don't refocus on closed window
- input: reset cursor hide timer on tablet
- internal: make CAnimatedVariable non-move non-copy
- internal: remove check for negative exact vector args
- internal: use i64 for workspaces in outofbounds
- internal: removed Herobrine
- layershell: don't enter on unmapped ls
- layershell: focus if changed keyboard mode
- layout: don't reset to floating size on drag tiled
- layouts: ignore direction forces on non-map
- master: guard monitor in recalc
- meson & nix: install wlroots headers (#2287)
- monitors: toggle special on changeworkspace with special
- moveActiveToWorkspace: update last window of old ws
- pluginenv: copy built wlr headers
- quote hash for the GIT_COMMIT_HASH macro (#2227)
- readme: update previews
- varlist: allow using s for std::isspace
- vector: restore cmath include after 438d063 (#2394)
- vector: use c++ stdlib math functions instead of cmath
- version: bump to 0.26.0
- window: reveal current from group on toplevel activate
- wlr_ext_workspaces: honor activate from client + format
- workspacerules: overwrite on existing
Special thanks
Special thanks to these chads for donating moolah to keep me shakin' my ass on this keyboard :)
- Speedboat
- Lipt0nas
- HauntedCoffeePot
- pulsar256
- Lunics
- Mathis
- Roger
- taigrr
- Bosko
- Psy
- Denis Keksel
- jo
- Bjoern Sonnenschein
MRs
- quote hash for the GIT_COMMIT_HASH macro by @solopasha in #2227
- fix: expose/use flake's own hyprland-protocols in overlays.default by @johnrichardrinehart in #2235
- Add split preselection by @DashieTM in #2240
- Fixed wrong focus changes when moving background workspaces by @dtop129 in #2258
- Add "next on monitor or empty" workspace parameter by @scorpion-26 in #2198
- renderer,config: add custom DRM modeline support by @Akaricchi in #2254
- bug fix by @hnboy in #2314
- meson: install wlroots headers by @fufexan in #2287
- Fix not finding function symbols for hooking by @outfoxxed in #2292
- Don't swap workspaces if monitors are the same by @aruhier in #2322
- input: don't move monitor focus on wp change by @aruhier in #2320
- Fix broken pipe crash when event listener terminates by @maqrrr in #2339
- 1483: fix crash on last display disconnect by @russelltg in #2344
- fix incorrect link in per-device config comments by @YXHXianYu in #2353
- hyprctl: fix cut-off json outputs by @eriedaberrie in #2352
- focus: make cursor follow movewindow by @jchhuang-tech in #2374
- Add hyprland to waybar-hyprland path as fallback for hyprctl by @Sorixelle in #2373
- Fix UAF in animation end callback if callback deletes the animation by @outfoxxed in #2389
- focus: fix #1675 window not scrollable after movefocus by @jchhuang-tech in #2390
- Unbreak build with libc++ by @jbeich in #2394
New Contributors
- @solopasha made their first contribution in #2227
- @johnrichardrinehart made their first contribution in #2235
- @dtop129 made their first contribution in #2258
- @Akaricchi made their first contribution in #2254
- @aruhier made their first contribution in #2322
- @maqrrr made their first contribution in #2339
- @russelltg made their first contribution in #2344
- @YXHXianYu made their first contribution in #2353
- @jchhuang-tech made their first contribution in #2374
- @Sorixelle made their first contribution in #2373
Full Changelog: v0.25.0...v0.26.0
v0.25.0
Small update brought to you by Yours Truly™ :)
Note for packagers: source v0.25.0-2
fixes build issues.
"I don't know my top one, maybe when things stabilize a little bit and you're not making changes every single hour" - Brodie Robertson
Meanwhile me:
New features:
- Add
activeworkspace
hyprctl command (#2202) - Add ability to split master when only 1 additional window (#2025)
- Add follow mouse mode to avoid refocusing under cursor (#2135)
- Add plugin configuration to home manager module
- Add subdir for cmake as well (#2163)
- Add warning about setting hyprland config with home manager
- Add windowrule fakeFullScreen (#2043)
- Added moveCursor dispatcher (#2100)
- Added some workspace-specific rules (#1986)
- Format: use %lx for all addresses
- IHyprLayout: add missing static modifiers to config vars
- Meson: add subdirs to pkg-config file
- Render: add cursor_zoom
- Renderer: add init animation
- config: add missing header for libc++ after 3a631e4 (#2208)
- events: add render event for plugins
- internal: add tag to version, send hash in release ci
- layouts: add missing static modifiers to config vars
- pluginAPI: add note about API expansion
- plugins: Add "tick" event (#2029)
- renderer: add support for rendering workspaces
- rules: add noinitialfocus
- swallow: Add swallow_exception_regex (#2026)
Fixes:
- Fix apps requesting fullscreen (#2099)
- Fix dragging cursor being forced on fullscreen windows (#2115)
- Fix possible usage of clamp with lo > hi in Vector2D (#2049)
- Fixed a crash when waking up monitors in power-saving mode (#2139)
- Nix: fix recursion in package overlays (#2210)
- Plugin header overhaul 2: fixes (Electric boogaloo) (#2201)
- blur: fixup optimization bool
- crashReporter: fix invalid format string
- damage: fix damage on moves / workspace changes
- dispatchers: fix missing log param
- dispatchers: fix movetoworkspace with bound ws-es
- dispatchers: fix named ws-es on changeworkspace
- formats: fix endian ifdef
- input: fix kb focus on top layers without interactive flag
- input: fix ls focus in non-input area
- internal: fix -Wsign-compare and -Wunused-variable warnings
- keybinds: fix move to named
- misc: fix a warning
- renderer: fix fadingout render on fs
- renderer: fix incorrect delta calc
- renderer: fix incorrect shouldRenderWindow calcs
- renderer: fix misused size -> transformed size
- rules: fix monitor rule with names
- swallow: fix invalid regexes with empty vals
- workspaces: fixup workspaces not activating on workspace switch
- xwayland: crude fix for qt dnds
Other:
- Allow movefocus for empty workspaces (#2011)
- Declarative plugin management (#2180)
- Disable systemctl when built without systemd support (#2066)
- Honor debug:enable_stdout_logs on startup (#2197)
- Implement window move (#2018)
- Keep fullscreen mode in moveWindowToWorkspaceSafe (#2191)
- Plugin header overhaul (#2087)
- Prefer bundled wlroots headers to system ones (#2204)
- Remove wlr_output_damage.h (#2121)
- Screencopy: unify frame and client between impls + event
- Unbreak CMake build on FreeBSD (#2209)
- Window resizing for pseudotiled windows (#2140)
- args: print help on invalid arg
- cmake: ignore format-truncation
- cmake: sync pkg-config --cflags with meson (#2181)
- compositor: ignore contraints on warp in moveWorkspaceToMonitor
- config: ignore invalid paths in configPaths
- crashReporter: avoid segfault in deref plugin system
- crashReporter: log on crash
- fractional-scale: notify all surfaces on window move
- hyprctl: allow spaces in cursor themes
- hyprctl: don't assume output validity in hyprctl workspaces
- input: don't refocus on dragging
- input: improve mouse release conditions
- input: make overlay layers precede constraints
- input: release mouse buttons before refocuses
- input: send null keycodes on focusSurface
- internal: avoid buffer overflows with socket paths
- internal: don't change ws on active swap
- internal: don't iterate special workspaces in move
- internal: don't sanity check workspaces on internal ws calls
- internal: guarantee activeWindow event type
- internal: improve fullscreen fade
- internal: include headers from protocols/
- internal: move workspace special check higher in changeWorkspace
- internal: moveToWorkspace before setting ws
- internal: prevent premature destroy in moveworkspace
- internal: unhardcode sun_path size after a6cfe70 (#2137)
- internal: update fullscreen fade on workspace move
- internal: use setSpecialWorkspace on destroy in sanityCheck
- internal: warp workspace on change only if old mon is last
- internal: workspace manip handling rework
- keybinds: avoid sending release on suppressed press
- keybinds: minor adjustments to workspace
- keybinds: more intelligent fallback on silent move
- keybinds: only warp on different monitor ws
- keybinds: refocus properly on silent move
- keybinds: remove old comment
- keybinds: send pass with a null keymap
- keybinds: simulate workspace switch on focusWindow to another ws
- listeners: more safety around change
- make ext_workspace_unstable impl more atomic (#2023)
- makefile: put pkg-config file in the default dir
- makefile: use -f in copies to avoid errors on running hl
- misc: scan ppids in exec rules
- monitor: recalc layout on switched ws
- monitor: update fullscreen fade on workspace change
- monitors: set special monitor ID on open
- nix/*module: use mdDoc for documentation
- nix: update xdph
- only ignore no_gaps_when_only when the workspace rule specifies a border (#2217)
- opengl: don't use new optim with xray off on special tiled
- opengl: keep current rendered workspace in renderData
- pluginAPI: make symbols static
- pluginenv: configure cmake to build protocols
- popups: send scale info
- renderer: improvements to layer render detection
- renderer: more checks for background LS optimizations
- renderer: reset renderModif on fullscreen render
- renderer: skip rendering bottom layers on fullscreen opaque
- renderer: workspace rendering improvements
- screencopy: clamp damage to framebuffer
- screencopy: implement dmabuf
- screencopy: improve consistency of share indicator
- tick: don't tick on invalid session
- windows: check for fullscreen after rules
- workspace: don't check LS-es in startAnim
- workspace: don't lose monitor with refocus on no warps
- workspaces: deactivate all on monitor switch
- workspaces: restore monitor on re-plug
- xwayland: allow initial focus to dialogs
Special Thanks
Special thanks to these gigachads for donating $$$ to keep this thing going
- speedboat
- pulsar256
- Lipt0nas
- HauntedCoffeePot
- StayBlue
- Mushtario Pepperoni
- Guido Panebianco
- pbo
- Scott
- YinAqu
- Adam Szegedi
- Hubro
- Travis Semczyszyn
- vertiKarl
- proycon
New Contributors
- @happenslol made their first contribution in #2011
- @mrkajetanp made their first contribution in #2026
- @Person1873 made their first contribution in #2025
- @dann-merlin made their first contribution in #2049
- @q234rty made their first contribution in #2099
- @outfoxxed made their first contribution in #2115
- @mekb-turtle made their first contribution in #2100
- @teschnei made their first contribution in #2139
- @levnikmyskin made their first contribution in #1986
- @spikespaz made their first contribution in #2210
- @jacekpoz made their first contribution in #2217
Full Changelog: v0.24.1...v0.25.0
v0.24.1
A minor update to fix a serious VFR issue + add the GS impl.
Fixes:
- renderer: fixup damage repaint
- screencopy: fix crash in invalid format reads
Other:
- GlobalShortcuts protocol impl (#1886)
- hyprctl: sanity check icons in notify
- socket2: receive bytes to avoid endless loops
- textInput: don't double destroy TI
Special Thanks
Special thanks to these hyprchads for donating me some moolah to keep this project goin':
- speedboat
- Murderburger_
- pulsar256
- HauntedCoffeePot
- Lipt0nas
- StayBlue
- notoh
- David N
- Mathis
- Zephan
- HeadTriXz
- Bill Nye
- nehrbash
- basstitan
- jsw
- Taylor Coffelt
- System64
- Sepi
- Kulayb
- TlasT
Full Changelog: v0.24.0...v0.24.1
v0.24.0
A minor update with some small changes as usual. Brought to you by Yours Truly.
New features:
- Feat: add initial class/title to hyprctl clients
- LS: add blur and ignorezero rules
- LS: support address: in layerrules
- Meson: add rdynamic ld flag
- Nix: add pango dep
- config: add misc:suppress_portal_warnings
- crashReporter: add hl ver
- debug: added manual_crash
- feat: add debug:enable_stdout_logs
- feat: add forcergbx rule
- feat: add pretty notifications
- hyprctl: add notify
- meson: add pango deps
- notifs: add ICON_OK to icons
- plugin api: add addNotificationV2
- plugins: Add an API entry for finding functions by name
- plugins: mark getFunctionAddressFromSignature deprecated
Fixes:
- Fix crash in CConfigManager::parseKeyword (#1983)
- Fix nix build options
- Fix some typos (#1907)
- Fix swiping onto a new workspace with multiple monitors. (#1971)
- Input: fix always_follow_on_dnd
- LS: fix support for legacy blurls
- Misc FreeBSD fixes (#1926)
- Nix: fix meson patch
- Nix: fix meson patch again
- Renderer: fix dim easing
- config: fix long variables being substrd
- dpms: fix key_press_enables_dpms
- dpms: fix keyboard dpms
- fix: a fullscreen bug. (#1821) (#1831)
- groups: fix moving between displays
- input: fix click-to-refocus not working on loose
- input: fix minor issue with holding focus
- keybinds: allow code: prefix
- monitors: fix segfault on non-unsafe remove
- monitors: fixes to unsafe mode
- popups: fix heap-use-after-free
- screencopy: fix crash
- screencopy: fix incorrect resource error post
- screencopy: fix read on incorrect monitor render
- screencopy: minor fixes for damage_ring
- shaders: fix missing discardAlphaZero
Other:
- Better and more secure argument parsing, and code reformatting (#1976)
- Feat: Introduce render_ahead_of_time (#1863)
- Focus: warp cursor on movewindow
- Hyprland Screencopy impl (#1800)
- LS: don't try to get rules on non-existent ls
- Nix: disable HiDPI for default package
- Nix: rebase wlroots-hidpi patch
- compositor: adjust xdp error cases
- config: default manual animations to false
- config: default no direct scanout to true
- config: improve ux on workspace and transform
- config: make default config use hyphenated dev names
- core: remove old redundant shutdown stuff
- crashReporter: try
$XDG_CACHE_HOME
before$HOME
(#1920) - dbus: don't update vars in nests
- debug: allow manual crash from hyprctl
- debug: minor improvements to manual crash
- debug: unbreak debug builds
- docs: update crash report dirs
- docs: update issue guidelines for asan env
- events: guard output in change
- examples: pull correct wlr dirs in example plugin
- hyprctl: ignore null output monitors
- input: don't overset resize icons on drag
- input: don't set icon on held buttons without a drag
- input: hold focus on mouse buttons
- input: ignore constraints on touch
- internal: comply to nofocus on vectorToWindow
- internal: don't remove x11 children on parent remove
- internal: listen to output.damage events
- internal: make togglefloat better visible on small size deltas
- internal: migrate to damage_ring
- internal: release buttons on unmap
- internal: rename ensureDPMS to ensureMonitorStatus
- internal: wrap wlr surfaces (#1822)
- keybinds: allow MOD1 as an alias of ALT
- keybinds: improve movefocus on fullscreen
- keybinds: remember last workspace on focusmonitor
- layer: allow focus on top/overlay surfaces without a window
- log: Move stdout log disabling to the end of init
- log: log wlr logs to stdout
- logs: disable stdout after init
- monitors: don't refocus on apply rule
- monitors: guard output in damageSurface
- monitors: guard output when read
- monitors: guard scale in onConnect
- monitors: more guards for safety
- monitors: remove from monitors on unsafe
- monitors: update surface outputs on recover from unsafe
- nix/xwayland-hidpi: update patch
- notifs: use empty color for auto
- output: handle needs_frame
- plugins: use new lookups in example
- render: plug missing software cursor unlocks
- renderer: don't use simple rect on alphazero stencil
- renderer: go back to rendering layers without reverse
- screencopy: allow on legacy renderer
- secret: removed Herobrine
- subsurfaces: avoid reading destroyed surfaces
- subsurfaces: guard node's surface
- surface: set to nullptr after destroy()
- swallow: move swallowed on workspace change
- swipe: block on locked session
- switches: do not fire on no change in toggle
- toplevelExport: honor overlay_cursor
- window: unassign surface on unmap
- windowrules: allow monitor by str
- windows: only connect unmap when mapped
- workspaces: preserve pin on moves
New Contributors
- @lisuke made their first contribution in #1825
- @alyanser made their first contribution in #1847
- @oliver-ni made their first contribution in #1894
- @goggle made their first contribution in #1907
- @awpr made their first contribution in #1971
- @nitrogenez made their first contribution in #1976
Special Thanks
Special thanks to these hyprchads for donating me some moolah to keep this project goin':
- speedboat
- Murderburger_
- pulsar256
- HauntedCoffeePot
- Lipt0nas
- notoh
- David N
- Mathis
- Zephan
- HeadTriXz
- Bill Nye
- nehrbash
- basstitan
- jsw
- Taylor Coffelt
- System64
- Sepi
- Kulayb
- TlasT
Full Changelog: v0.23.0beta...v0.24.0
v0.23.0beta
A minor update after a short wait as usual, brought to you by the one and only.
Notable changes
- Your wrappers have been deprecated by the new
env
keyword. See the wiki - A powerful plugin system has landed. See the wiki
zwp_text_input_v1
support has landed for supporting IME under electron wayland.
New features:
- Add env to example cfgs
- Add option to disable/enable mouse window dragging animations (#1658)
- Added center orientation to master layout (#1642)
- Added decoration reserved area
- Added mouseButton event
- Added mouseMove event
- Added moveintogroup dispatcher
- Added moveoutofgroup dispatcher
- Dwindle: Added default_split_ratio
- add desc: to getMonitorFromString
- add env dbus opt
- add env keyword to cfg
- add log tail to crash reports
- add mfact setting for master layout (#1666)
- add mouse_left _right
- add toggle group lock
- added a lockgroups dispatcher
- allow blurls by address
- blurls: fix address substr length
- config: add key_press_enables_dpms
- fix mfact not applying to addmaster (#1715)
- groups: add deco on moveIntoGroup
- Plugin System (#1590)
Fixes:
- Bezier: Fix incorrect binary search in bezier approx
- Buffer overflow fix (#1707)
- Compositor: fix crash on exit
- Fix clang compilation (#1697)
- Fix fatal aborts with X11 OR windows
- Fix plugin argument-less hyprctl calls (#1723)
- Fix plugin config breakage (#1687)
- Mirrors: minor fixes
- Nix: fix build on aarch64
- Nix: fix hidpi patch
- Nix: fix hyprland-no-hidpi
- Opengl: Fix forcefully setting missing time prop to final shader
- Plugin Hooks: fix calls to %rip offsets
- Plugin Hooks: fix original bytes on %rip accesses
- blurls: fix address substr length
- fix bezier step approx
- fix changegroupactive back
- fix credentials of invalid surfaces
- fix cursor image on drag not resize
- fix cyclenext on empty focus
- fix mfact not applying to addmaster (#1715)
- fixup constraint snapping on no hint
- groups: fix fullscreen behavior with groups
- ime: fix panels overflowing on corners
- input: minor fixes for tiv1
- minor fixes to X11 configure/or handling
- minor fixes to touch handling
- tiv1: minor fixes for crashes
Other:
- Allow decos to request interactivity
- Allow environment in config
- CI/nix: update nix-install-action
- CI/nix: update nix-install-action
- Conform to X11 OR surfaces wanting focus
- Convert reverse iterators to ranges
- Don't set surface cursors for overriden
- Draw HyprError on the last monitor
- Enable manual anims by default
- Events: Avoid sending std::nullptr_t in keyboardFocus
- Include unmapped and hidden windows in hyprctl clients
- Initialize priority managers before server init
- Mirrors: remove accidentally leftover logs
- Move AnimationManager::tick() to an event loop
- Nix: move dependency overrides inside wlroots-hyprland call
- Optionally expose time to screen shaders (#1700)
- Readme: update to mention plugins
- Refactor CMake and Make file (#1766)
- Remove useless rax preserve across callq
- Renderer: Nuke onWindowResize{start/end}
- Reset cursor to pointer on focus on interactable deco
- Resize on border icon bug (#1608)
- Revert small incorrect change to dragging
- Simplfy framebuffer erasing in cleanupFadingOut
- Unload plugins on compositor cleanup (#1662)
- Up the bezier bake count
- Update the debug overlay
- Use
${PREFIX}
rather than /usr directly in Makefile, and force the build to attempt compilation even if the user does not have${PREFIX}/lib
write permissions (#1688) - allow focus to grouped windows
- bugifx: updated urls poiting to old wiki pages (#1738)
- config: explicitly use environ(7) after b03c897 (#1708)
- crashReporter: remove inconsistent log from crash reports
- deny configure requests on drag
- dispatchers: disallow togglesplit on fullscreen
- dispatchers: remember named workspaces in prev
- don't snap on empty hint
- generate coredumps on sigabrt too
- ime: account for text height in popup calcs
- input: text-input-v1 support (#1778)
- layoutmgr: don't reenable layout on unchanged layout
- make window reserved area less stupid
- master: better cycle
- movefocus: Set new workspace as active when focusing new monitor (#1640)
- nuke cursorSI due to crashes
- nuke unmanagedx11 vector
- opengl: use a passthru shader for final wlr copy
- remove old unused animation cfgs
- reset signal handlers in unrecoverable
- systemd: expand sysd import env script
- unblock pure wayland compiles
- update dbus env on exec-once dispatches
- update decos on anim values update
- update license on main branch (#1604)
- use .txt for crash reports
- use XCURSOR_SIZE for internal cursor size
- use corner cursors on resize (#1638)
- use sans for fonts instead of noto sans
- xwl: don't try to get unmanaged titles
What's Changed
- update license on main branch by @o69mar in #1604
- Resize on border icon bug by @horriblename in #1608
- use corner cursors on resize by @fufexan in #1638
- movefocus: Set new workspace as active when focusing new monitor by @RyanDwyer in #1640
- Added center orientation to master layout by @sharkusk in #1642
- [WIP] Plugin System by @vaxerski in #1590
- Add option to disable/enable mouse window dragging animations by @DashieTM in #1658
- Unload plugins on compositor cleanup by @Duckonaut in #1662
- Fix plugin config breakage by @Duckonaut in #1687
- Use
${PREFIX}
rather than /usr directly in Makefile, and force the build to attempt compilation even if the user does not have${PREFIX}/lib
write permissions by @Froggo8311 in #1688 - Nix: fix hidpi patch by @fufexan in #1695
- Fix clang compilation by @scorpion-26 in #1697
- Nix: simplify CI by @fufexan in #1699
- Optionally expose time to screen shaders by @scorpion-26 in #1700
- add mfact setting for master layout by @hillyu in #1666
- Buffer over-read in removeBeginEndSpacesTabs() by @opsuu in #1707
- config: unbreak on BSDs due to undeclared
environ
by @jbeich in #1708 - fix mfact not applying to addmaster by @hillyu in #1715
- Fix plugin argument-less hyprctl calls by @Duckonaut in #1723
- bugifx: updated urls poiting to old wiki pages by @asbachb in #1738
- Nix: fix build on aarch64 by @fufexan in #1739
- [WIP] text-input-v1 support by @vaxerski in #1778
- Refactor CMake and Make file by @stephan-cr in #1766
Special Thanks
Special thanks as usual to those gigachads for donating their pennies to me:
- Dashie
- Murderburger_
- HauntedCoffeePot
- Lipt0nas
- speedboat
- Jose Montilla
- Pebor
- Monty
- Carlos Echenique
- aestheticjack
- mechgyver
- Vibrose
- pulsar256
- pingu
- Goggi
New Contributors
- @o69mar made their first contribution in #1604
- @RyanDwyer made their first contribution in #1640
- @sharkusk made their first contribution in #1642
- @Duckonaut made their first contribution in #1662
- @Froggo8311 made their first contribution in #1688
- @hillyu made their first contribution in #1666
- @opsuu made their first contribution in #1707
- @asbachb made their first contribution in #1738
- @stephan-cr made their first contribution in #1766
Full Changelog: v0.22.0beta...v0.23.0beta
v0.22.0beta
A minor update after a short wait, brought to you by Yours Truly.
Breaking changes
dwindle:col.group...
-> general:col.group...
misc:no_vfr
-> misc:vfr
. bool
, heavily recommended to leave at default on
. Saves on CPU usage.
misc:vrr
-> Adaptive sync of your monitor. 0 (off), 1 (on), 2 (fullscreen only). Default 0
to avoid white flashes on select hardware.
New features:
- Add vrr to hyprctl monitor (#1560)
- Added a crash reporter
- Added an Event Hook System (#1578)
- Added execr
- Added support for layoutmsg params and added the param 'newfocus' for 'swapwithmaster' and 'focusmaster' (#1522)
- add a minimize ipc event
- add misc:mouse_move_focuses_monitor
- add missing xwayland stub
- add prev to getWorkspaceIDFromString
- added activewindowv2
- libinput: add tap_button_map (#1495)
- move no_vfr to vfr and add vrr
Fixes:
- Fix VRR JSON output in hyprctl monitors (#1562)
- Fix some issues with a lost focus of the maximized window after using swapwithmaster in fullscreen mode (#1524)
- fix compile for single_pixel_buffer_v1
- fix crash with libc++ in appid
- fix group data in hyprctl
- fix json output in hyprctl animations
- fix legacy system call to create hypr dir
- fix quick start link
- fix urgent hint order in code
- fix warn
- fix(hyprctl): allow dispatcher to have no args (#1464)
- fixup LS scaling impl
- fixup backtrace curpath
- fixup stutter in rendering with toplevel_export
Other:
- Allow to disable X11 backend separately from Xwayland after 5a750b4 (#1445)
- Generate symbol info in release for crash reports
- Get active VT via ioctl instead of sysfs after e90c5c6 (#1448)
- Group/Tab Rework (#1580)
- Implement ext-session-lock-v1
- Only use true/false in default config to reduce confusion (#1517)
- Resize on border (#1347)
- Simulate mouse movement on unmap of popups and subsurfaces
- Unbreak CrashReporter on FreeBSD (#1589)
- Unbreak build with libc++ (#1457)
- Update CMakeLists.txt (#1514)
- Update blurriness of layersurfaces after hyprctl keyword blurls (#1493)
- abort instead of exiting on sigsegv
- adjust crash report paths
- bring back dynamic ls geom updates
- clear focus on failed unlock attempt
- clear focus on lockscreen refocus
- conform to unmanaged X11 activate requests
- don't alter LS geom on unmap
- don't loop border anim on disabled
- enable UV calcs for all surfaces
- enable single_pixel_buffer_v1
- err on invalid transform in monitor cfg
- explicit config path for autoreload config #1423 (#1494)
- ext_workspace_unstable: send done after output_enter when wl_output is bound late (#1481)
- ext_workspace_unstable: send output_enter when wl_output is bound late (#1480)
- feat: border angle animations (#1469)
- focusCurrentOrLast dispatcher (#1545)
- force monitor focus on refocus
- ignore VR headsets (#1555)
- ignore damage on hidden windows in animationmanager
- ignore hidden in allfloat
- improve VRR state checking with updates to mosthz
- make a null surface focus reset lastfocus
- meson: build in release by default
- minor adjustments to xwayland positioning
- notify of fractional scale for LS-es
- place sessionlock surfaces at correct coordinates
- properly clamp size in dragging floating corners
- properly meld groups together
- properly rid of whitespace chars from cfg lines
- refocus on monitor attach
- remove constraint recheck log
- render lockscreen in fullscreenworkspace
- reset focus on lock surface destroy
- reset layout-set render vars on floating
- rethink visible flag in animmgr
- scale the opaque region in blurring
- simplify nullcheck in minimize
- unset hidden at grouped remove
- update issue guidelines for crash reports
Special Thanks
Special thanks as usual to these massive giga-ultra-hyper-chads for donating to me to keep this thing going:
- HauntedCoffeePot
- Lipt0nas
- speedboat
- Dashie
- Murderburger_
- Yves
- jas
- elias4352
- kuripa
- Carlos Echenique
- LegitCamper
- Mr.Ben
- Goggi
- pingu
New Contributors
- @ozwaldorf made their first contribution in #1464
- @MaxVerevkin made their first contribution in #1480
- @coffebar made their first contribution in #1494
- @bloodandcoffee made their first contribution in #1514
- @dbeley made their first contribution in #1517
- @Philipp-M made their first contribution in #1522
- @normaltaro made their first contribution in #1545
- @wsippel made their first contribution in #1555
- @horriblename made their first contribution in #1347
Full Changelog: v0.21.0beta...v0.22.0beta
v0.21.0beta
Minor update after a short while. Re-released: backport crash fixes.
New features:
- Add "on" and "off" for the bind of switch (#1342)
- Add hyprctl animations
- Add tablets calibration matrix for dynamic rotation with 2-in1/tablet PC usage (#1319)
- Nix: update waybar-hyprland, add hyprland-nvidia (#1409)
- add an urgent event
- add fakefullscreen prop to windows in hyprctl
- add hyprctl setprop
- added binds:focus_preferred_method
- added hyprctl seterror
- added layer rules
- added make model and serial to hyprctl monitors
- added misc:hide_cursor_on_touch
- feat: add focus to urgent or last window (#1402)
- feat: dispatcher, add workspace renaming (#1336)
- fix destroying addon in fractional scale impl
- nix: add hyprland-protocols through pkgconfig (#1275)
Fixes:
- fix clamp in monitor relative
- fix cmake systemd header detection
- fix color typo in hyprerror
- fix cutting geometry on surfaces spilling out
- fix deprecated-copy warn
- fix destroying addon in fractional scale impl
- fix dimaround with transformed displays
- fix focus history on workspace jumps
- fix font color in hyprerror
- fix rounding exceeding max in single-line errors
- fix up log types
- fix: cursor changing on window move and resize (#1371)
- fix: hyprland crashing wenn moving window -1 from first monitor (#1419)
Other:
- better log wl socket adding and use auto if failed
- Don't ignore previous maximise on defullscreen req (#1393)
- Implement urgency hint for workspaces (#1379)
- Nix CI: build xdg-desktop-portal-hyprland
- Pin dispatcher for a specific window (#1340)
- allow preblur for opaque surfaces if alpha not 1
- better error handling around getMonitorFromString
- change placement of isSwitchingToPrevious (#1388)
- damage monitor on moveactive
- damage monitor on stack rotations
- damage on border change
- describe layers in hyprctl layers
- don't set cursor when timeout reached
- dump monitor data after setting rules
- escape json strings in hyprctl binds
- expand region twice in blur damage
- handle fullscreen requests on maximized windows
- ignore null ls-es in cleanup
- make hyprerror follow fadein anim
- master layout: remember size & pos of floating windows on fullscreen 1 (#1374)
- move window to top if floating activate
- nix: react to another stdenv change (#1399)
- recalculate layout on deco or border change
- release mouse buttons on map from LS
- remove restrictions from setprop for ints
- repaint on dynamic decoration keywords
- replace java envvar
- reset dragged window on failed begin
- scale hyprerror
- send cursor updates on touch move
- send enter for IME popups
- small hyprerror revamp
- update animated deco values after setprop
- update wlroots dep
- warp cursor on login to center
- wp-fractional-scaling-v1 impl (#1373)
New Contributors
- @cyrinux made their first contribution in #1336
- @ri-char made their first contribution in #1342
- @raffaem made their first contribution in #1340
- @maximbaz made their first contribution in #1374
- @ppenguin made their first contribution in #1319
- @devil-may-c0de made their first contribution in #1388
- @scorpion-26 made their first contribution in #1393
- @xVermillionx made their first contribution in #1419
- @pranaless made their first contribution in #1420
Special thanks
Special thanks to these gigachads for their financial support:
- HauntedCoffeePot
- Lipt0nas
- speedboat
- Dashie
- Murderburger_
- jacekpoz
- Jose
- Nesslo
- Xeco
- ShabirK
- taka0
- rig0r
- Sam
- Insert 5Star Name
Full Changelog: v0.20.1beta...v0.21.0beta