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