Commit graph

6581 commits

Author SHA1 Message Date
vaxerski
3863764001 [gha] Nix: update inputs 2025-12-03 22:59:30 +00:00
c38bb1a700
version: bump to 0.52.2 2025-12-03 22:57:31 +00:00
SASANO Takayoshi
afb27cf46c
src/protocols/types/DMABuffer.cpp: <sys/ioctl.h> is required for ioctl(), not only linux (#12483) 2025-12-03 22:57:16 +00:00
Tom Englund
67db067a0f
protocols/lock: fix missing output enter on surface (#12448) 2025-12-03 22:57:16 +00:00
Tom Englund
6eca4263d8
buffers: revert state merging (#12461)
8e8bfbb0b1 added fifo and merged non
buffer states before comitting them, something about certain xwl non
buffer commits expects a commit to happend and causes regressions as in
low fps.
2025-12-03 22:57:16 +00:00
461d4721ff
protocols/workspace: avoid crash on inert outputs 2025-12-03 22:57:15 +00:00
Vaxry
c450f23aeb
renderer: stop looping over null texture surfaces (#12446)
fixes #12445
2025-12-03 22:57:15 +00:00
ce968da7fc
protocols/workspace: fix crash in initial group sending
fixes #12419
2025-12-03 22:57:15 +00:00
Vaxry
7bb241ac00
plugin/hook: disallow multiple hooks per function (#12320)
this was never safe. After recent changes, it's become even less so. Just disallow it.

ref #11992
2025-12-03 22:57:15 +00:00
Alexandru Spînu
0c004938f3
cursor: ensure cursor reset on changed window states (#12301) 2025-12-03 22:57:15 +00:00
Lucas Ritzdorf
1b55937f48
cmake,meson: fix inclusion of GPG info in Git commit info (#12302)
This manifested for me as a failure to build plugins with `hyprpm`, but
the root cause was GPG data getting incorporated into `src/version.h`,
like so:

```c
#define GIT_COMMIT_MESSAGE "gpg: Signature made Sun 09 Nov 2025 03:31:36 PM PST
gpg:                using EDDSA key E26A4A2AB9676F54149F8EAA665806380871D640
gpg: Can't check signature: No public key
version: bump to 0.52.1"
```

This affected both `GIT_COMMIT_MESSAGE` and `GIT_COMMIT_DATE`, since
those are generated via `git show` (which can generate that extra GPG
info if the user's personal Git config sets `log.showSignature`).

See: https://github.com/hyprwm/Hyprland/discussions/12282
2025-12-03 22:57:15 +00:00
Hiroki Tagato
a75f4283d4
internal: fix crash at startup on FreeBSD (#12298)
Hyprland at the latest commit crashes at starting up on FreeBSD with
SIGSEGV. Checking the validity of g_pXWayland->m_wm before calling
updateWorkArea() appears to fix the issue.
2025-12-03 22:57:15 +00:00
Hiroki Tagato
9008835c0f
internal: put Linux-only header behind ifdef (#12300) 2025-12-03 22:57:15 +00:00
b9399f17c3
screencopy: fix possible crash in renderMon() 2025-12-03 22:57:15 +00:00
bea4dev
c790b614e5
renderer/ime: fix fcitx5 popup artifacts (#12263) 2025-12-03 22:57:15 +00:00
usering-around
c95f15c303
renderer: fix noscreenshare layerrule popups (#12260) 2025-12-03 22:57:15 +00:00
Tom Englund
b3084dc381
presentation: only send sync output on presented (#12255)
as protocol states there is two events. 'presented' or 'discarded'.

wp_presentation_feedback::sync_output
As presentation can be synchronized to only one output at a time, this event tells which output it was.
This event is only sent prior to the presented event.
2025-12-03 22:57:15 +00:00
967c3c7404
version: bump to 0.52.1 2025-11-09 23:31:36 +00:00
eb53dae2a5
CI/release: populate git info (#12247) 2025-11-09 23:31:24 +00:00
Aurelle
b45f304c15
protocols/layershell: do not raise protocol error if layer surface is not anchored (#12241) 2025-11-09 23:31:24 +00:00
nikromen
a85c1f16bf
protocols/outputMgmt: fix wlr-randr by defering success event until monitor reloads (#12236)
wlr-randr disconnects immediately after receiving success event, but
before applying the monitor configuration. This causes the state to be
lost when performMonitorReload() is called.

By postponing the success event until the call of the hook
monitorLayoutChanged we ensure the configuration to remain valid during
the reload process.
2025-11-09 23:31:24 +00:00
282f423397
meson: fix version.h install location 2025-11-09 23:31:24 +00:00
f56ec180d3
version: bump to 0.52.0 2025-11-07 16:39:26 +00:00
UjinT34
fd50e78bc9
render/cm: change non_shader_cm ignore behavior and set default to it (#12210) 2025-11-07 15:58:25 +00:00
Vaxry
061981201d
core: qtutils -> guiutils (#12231)
* core: qtutils -> guiutils

* nix: qtutils -> guiutils

* flake.lock: update

---------

Co-authored-by: Mihai Fufezan <mihai@fufexan.net>
2025-11-07 15:48:13 +00:00
Dominick DiMaggio
3fc8cb828c
cm: follow preferred srgb eotf for screencopy (#12230) 2025-11-07 14:02:26 +00:00
Amadej Kastelic
1ca6058bda
chore: fix non-relative imports (#12228) 2025-11-06 20:32:08 +00:00
bea4dev
ca4b68e425
renderer: fix fractional scale artifact (#12219) 2025-11-06 19:18:16 +00:00
Tom Englund
8e8bfbb0b1
protocols: add Fifo-v1 and commit-timing-v1 (#12052)
* protocols: add Fifo-v1

introduce fifo-v1

* fifo: only present locked surfaces

dont present to unlocked surfaces and commit pending states from the
fifo protocol.

* fifo: cformat

cformat

* protocols: add committiming and surface state queue

introduce CSurfaceStateQueue and commit-timing-v1

* fifo: schedule a frame if waiting on barrier

if we are waiting on a barrier the state doesnt commit until the next
refresh cycle meaning the monitor might have no pending damage and we
never get onPresented to unlock the barrier, moment 22. so schedule a
frame.

* fifo: properly check monitor intersection

check for m_enteredoutputs or monitor intersection if client hasnt bound
one yet, and dont fifo lock it until the surface is mapped.

* buffer: try to merge states before committing them

try to merge states before committing them meaning way less churn and
surface commits if a surface sends multiple small ones while we wait for
buffer readyness from either fifo locks or simply fences.

* buffer: dont commit states past the buffer

certain changes are relative to the buffer attached, cant go beyond it
and apply those onto the next buffer.

* buffer: set the lockmask directly

cant use .lock since the state hasnt been queued yet, set the lockmask
directly when exporting buffer fence.

* fifo: dont fifo lock on tearing

dont fifo lock on tearing.

* buffer: queue the state directly

queue the state directly and use the .lock function instead of directly
modify the lockMask on the state.

* buffer: revert creating texture at commit time

fifo barriers introduces such long wait that upon commit time a
race happends with current xdg configure implentation that the buffer
and image is actually destroyed when entering commitState, doing it at
buffer creation time with EGL_PRESERVED_KHR means it sticks around until
we are done. so revert 82759d4 and 32f3233 for now.

* buffer: rename enum and lockreasons

eLockReason and LOCK_REASON_NONE.

* fifo: workaround direct scanout lock

workaround cursor commits causing fifo to get forever locked, this
entire thing needs to be worked out.
2025-11-06 13:25:49 +00:00
Alvaro Parker
c757fd375c
compositor: block parent window interaction when modal dialog children window is open (#12057) 2025-11-06 00:06:31 +00:00
vaxerski
46b71eda64 [gha] Nix: update inputs 2025-11-04 15:15:08 +00:00
André Silva
d82538c69f
protocols/dmabuf: handle null pointer in CLinuxDMABufV1Protocol::resetFormatTable (#12207) 2025-11-04 15:13:50 +00:00
Matteo Golinelli
8e9add2afd
sessionlock: fix crash when sendScale is called on a disconnected (#12171) 2025-10-31 00:15:18 +00:00
Vaxry
5e6cec962c
cursor: refactor override handling (#12166)
much cleaner and more reliable. Should fix https://github.com/hyprwm/Hyprland/issues/12088
2025-10-31 00:14:08 +00:00
Vaxry
6ade4d58ca
layout: fit floating window on toggle to float (#12139) 2025-10-29 23:21:28 +00:00
83a0a62004
protocols/core: round dnd drop surface box 2025-10-29 17:20:44 +00:00
Dominick DiMaggio
ff50dc36e9
renderer/cm: allow gamma 2.2 instead of sRGB EOTF (#12094) 2025-10-29 12:53:42 +00:00
jmanc3
ce9787b3f4
xwayland: set _NET_WORKAREA property (#12148) 2025-10-29 11:24:34 +00:00
9eb82774e5 Nix: build hyprtester along with hyprland 2025-10-29 12:18:29 +02:00
a2f48ea418 CMake: allow building hyprtester without running tests 2025-10-29 12:18:29 +02:00
309c3c7848
Nix/tests: wl-copy -> wl-clipboard 2025-10-27 23:49:49 +02:00
0907fdf49c
CI/release: run cmake configure 2025-10-27 23:47:35 +02:00
431325ff0c
config/rule: don't populate ID field for automatically id-managed workspaces 2025-10-27 21:29:35 +00:00
40831a90a0
Nix/tests: add wl-copy 2025-10-27 23:25:54 +02:00
b186d3bf1b
pass/surface: check for LS size anim for misaligned fractional 2025-10-27 17:22:04 +00:00
560c53d87d
monitor/dpms: fix possible invalid state
If dpms gets immediately re-enabled, a commit could fail, not schedule any frames anymore, and the monitor would be stuck off. Fix this by adding a timer to retry if commit fails.

ref #12045
2025-10-27 13:34:14 +00:00
fd42e9d082
CI/release: remove generateVersion call
Addresses https://github.com/hyprwm/Hyprland/pull/12110#issuecomment-3442583784
2025-10-26 21:27:49 +02:00
Dominick DiMaggio
17d0d696be
screencopy: wait longer to re-enable DS (#12135) 2025-10-26 18:57:20 +00:00
JS Deck
88e34d7dd2
IME: do not share keys/mods states from grabbed keyboards with ime keys/mods (#11917) 2025-10-26 18:54:48 +00:00
05aa4e1c54
compositor: check for monitor layout issues post rule apply
fixes #12108
2025-10-26 13:52:09 +00:00