A nice april update for y'all brought by the Hyprland Corporation
No backdoors added, I promise.
New features:
- config/workspace: added workspace selectors
- hyprctl: add missing commands to usage (#5211)
- input: Add options to set tablet's active area (#5199)
- input: add misc:hide_cursor_on_key_press
- keybinds: add Dispatchers for "force float" and "force tiling" (non-toggle) (#5137)
- keybinds: add binds:disable_keybind_grabbing
- layers: add animation direction overrides
- renderer: add support for gles3.2 screen shaders
- screenshader: add screen_size uniform
- socket2: add pin event
- tablet: Add left_handed option for tablets (#5178)
Fixes:
- CGradientValueData: fix toString() method (#5220)
- IME/TI: Fixes and refactoring
- IME: Fix ime popup coordinates and artifacts (#5373)
- IME: Refactor and fixup popups
- IME: don't assert on lock mismatch, just fix it
- IME: fix crashes with destroyed text-inputs
- README: Fix Preview B image (#5188)
- animations: Fix animation issue in focusworkspaceoncurrentmonitor (#5202)
- animations: Fix incorrect animation when manually moving a window when its being created (#5141)
- animations: fix layer slide with fade
- animvar: fixup update callbacks and cleanup
- avar: fix warp onEnd conditions
- avar: minor fixes
- build: fix builds without pch (#5198)
- core: Fix resizeparams (#5262)
- core: fix fullscreen + floating focus change (#5291)
- core: fix missing workspace events during swapping (#5251)
- deco: fix groupbar offset (#5364)
- dispatchers: fix swap workspaces wrong positioning of floating windows (#5328)
- format: fix format
- github: fix github issue template crash dir (#5269)
- hyprctl: fix plugin list on no plugins (#5357)
- hyprpm: add missing newline (#5207)
- ime: fix build without pch
- input: Fix incorrect keyboard focus taken when no window was present (#5337)
- input: fix crash with text-input-v1 (#5234)
- keybinds: Fix exit trigger by moving it to monitor.frame (#5240)
- layers: fix bottom slide animation (#5307)
- master: fix moving fullscreen workspace and remove duplicate code (#5131)
- reenderer: Add 1 border damage to fix number rounding issues (#5343)
- renderer/animations: Fix various inaccurate damage tracking issues and offsets (#5297)
- renderer: Fix layer and window damage sometimes missing 1 frame (#5370)
- renderer: Fix rendering when swiping workspaces (#5367)
- renderer: minor fixes to misaligned reported surface rendering
- renderer: minor fixups for misaligned surface rendering offsets
- scripts: fix asan patch
- swipe: fix nullptr in
onSwipeUpdate
(#5191) - tablet: minor focus fixes
- textinput: fix ime when opening multiple windows (#5281)
- textinput: fix typo (#5365)
- windowrules: Fix resizeparams parsing. (#5206)
- workspace: fix integer overflow in selector parser (#5177)
- workspace: fix selectors with special:
Other:
- IME: Improve handling of text-input and ime-relay (#5147)
- IME: guard unfocused TIs in leave
- Nix: match derivation to Nixpkgs
- animationmgr: use realpos and size for border damage
- animations: simplify window loop
- compositor: remove windows from fading out on destroy
- config: Config error limit/hyprctl (#5165)
- config: be a bit louder in the disabled log warning
- constraint: do not disable constraints in destroy
- constraint: set active flag before propagating props
- core: ensure m_pLastMonitor validity over unsafe state
- core: match all workspace rules instead of the first one only (#5340)
- cursormgr: don't set x theme in changeTheme
- cursormgr: initialize size to 0
- cursormgr: log theme loading failures
- cursormgr: scale hotspot with buffer
- dispatchers: open special ws on active monitor instead of mouse monitor (#5330)
- github: remove redundant instruction (#5163)
- hyprctl: output json with
--batch
if requested (#5277) - hyprpm: avoid crashes on corrupted headers
- hyprpm: log shell in build without fails
- input: Only limit drag resizes (#5164)
- input: focus window on mouse down on groupbar (#5224)
- internal: removed Herobrine
- layer-shell: render popups above everything
- layers: don't change workspace on layer restore focus (#5308)
- layershell: release all mouse buttons before focus on new ls (#5219)
- layershell: update render pos and size in arrange
- layout: improve initial size prediction for floating
- makefile: Remove old headers first (#5316)
- master: Make master workspace orientation rule dynamic (#5339)
- opengl: minor adjustment to getPreferredReadFormat
- opengl: report shader compilation errors from screen_shader (#5138)
- refactor: move window.hpp to desktop/
- renderer: allow blurring ls popups
- renderer: disable surface adjustments for misaligned reported when manual resizing
- renderer: don't render window on other mons during anim in
- renderer: don't translate surface box on interactive resizes with non-updated sizes
- renderer: dont render fullscreen special on wrong monitor (#5249)
- renderer: forward decl for b_pch=false (#5250)
- screenShader: allow camel for screensize
- socket2: sanitize data for newlines
- swipe: Touchscreen workspace swipe (#4489)
- text-input: reset lock counter on surface destroy
- textinput: send deactivate on disable ti
- window: assign surface on create
- window: set config only when both props end anims
- xwayland: assign wlr_surface on associate
Special thanks
Special thanks as always to these chads for donating:
- alukortti
- Wickedly
- pulsar256
- Philipp Soldunov
- MasterHowToLearn
- Theory_Lukas
- Goggi
- someone
- sandsquare
- Yok0ri
- C0d3Cr4f73r
- Keule2
- Bims
- yutkat
- taigrr
- Crazyroostereye
- Zerron21
- jaketompkins
- Vic
- ari-cake
- ModalDiagram
MRs
- Update LICENSE by @somerand0mcat in #5132
- Fix master moving fullscreen workspaces by @thejch in #5131
- Dispatchers for "force float" and "force tiling" (non-toggle) by @djvs in #5137
- Touchscreen workspace swipe by @earboxer in #4489
- Fix incorrect rendering when manually moving a window when its being created by @thejch in #5141
- github: remove redundant instruction by @phonetic112 in #5163
- input: Handling multiple surfaces for the text-input-v1 protocol implementation and imporve InputMethodRelay logic by @sujoshua in #5147
- Only limit drag resizes by @phonetic112 in #5164
- Fix infinite loop in workspace selector caused by integer overflow 💀 by @thejch in #5177
- Add left_handed option for tablets by @khalid151 in #5178
- Fix Preview B image by @linfindel in #5188
- swipe: fix nullptr in
onSwipeUpdate
by @horror-proton in #5191 - fixing gentoo ebuild due to lack of precompiled headrs in build env by @brettalcox in #5198
- Config error limit/hyprctl by @zakk4223 in #5165
- opengl: report shader compilation errors from screen_shader by @oatmealine in #5138
- hyprpm: add missing newline by @PraneethJain in #5207
- hyprctl: add missing commands to usage by @Ligthiago in #5211
- windowrules: Fix resizeparams parsing. by @schilkp in #5206
- fix: release all mouse buttons before focus on new surface by @drendog in #5219
- CGradientValueData: fix toString() method by @holgerschurig in #5220
- focus window on mouse down on groupbar by @MightyPlaza in #5224
- Add options to set tablet's active area by @khalid151 in #5199
- input: fix crash with text-input-v1 by @sungyoonc in #5234
- Fix animation issue in focusworkspaceoncurrentmonitor by @thejch in #5202
- forward decl for b_pch=false (CInputPopup in Renderer.hpp by @brettalcox in #5250
- Dont render fullscreen special on wrong monitor by @thejch in #5249
- Move exit trigger to monitor frame by @dmayle in #5240
- Send workspace events during swapActiveWorkspaces and focusWorkspaceOnCurrentMonitor (when swapping) by @thejch in #5251
- Fix github issue template crash dir by @thejch in #5269
- Update hyprctl to output json with
--batch
by @khalid151 in #5277 - Fix ime not able to grab a new window without unfocusing textbox by @sungyoonc in #5281
- fix fullscreen + floating on monitor focus change by @MightyPlaza in #5291
- fix bottom layer slide by @MightyPlaza in #5307
- layer: don't change workspace when restoring focus by @MightyPlaza in #5308
- Remove old headers first by @mmhobi7 in #5316
- Fix swap workspaces and moveworkspacetomonitor wrong positioning of floating windows by @thejch in #5328
- Allow opening special workspace on active monitor instead of mouse monitor by @thejch in #5330
- Fix resizeparams by @Aqa-Ib in #5262
- Match all workspace rules instead of the first one only by @thejch in #5340
- Focus: Fix incorrect keyboard focus taken when no window was present by @earboxer in #5337
- Fix various inaccurate damage tracking issues and some incorrect offset issues by @thejch in #5297
- Add 1 border damage to fix number rounding issues by @thejch in #5343
- Fix for #5349 by @Micovec in #5357
- Fix typo in enterLocks by @sungyoonc in #5365
- Fix groupbar offset by @thejch in #5364
- Make master workspace orientation rule dynamic by @thejch in #5339
- Fix rendering when swiping workspaces by @thejch in #5367
- Fix layer and window damage sometimes missing 1 frame by @thejch in #5370
- Fix ime popup coordinates and artifacts by @sungyoonc in #5373
New Contributors
- @somerand0mcat made their first contribution in #5132
- @sujoshua made their first contribution in #5147
- @khalid151 made their first contribution in #5178
- @linfindel made their first contribution in #5188
- @horror-proton made their first contribution in #5191
- @oatmealine made their first contribution in #5138
- @PraneethJain made their first contribution in #5207
- @Ligthiago made their first contribution in #5211
- @schilkp made their first contribution in #5206
- @holgerschurig made their first contribution in #5220
- @sungyoonc made their first contribution in #5234
- @dmayle made their first contribution in #5240
- @mmhobi7 made their first contribution in #5316
- @Aqa-Ib made their first contribution in #5262
- @Micovec made their first contribution in #5357
Full Changelog: v0.37.1...v0.38.0