3
0
mirror of https://github.com/hyprwm/Hyprland.git synced 2026-02-04 15:05:36 +00:00
Commit Graph

6756 Commits

Author SHA1 Message Date
3fc8cb828c cm: follow preferred srgb eotf for screencopy (#12230) 2025-11-07 14:02:26 +00:00
1ca6058bda chore: fix non-relative imports (#12228) 2025-11-06 20:32:08 +00:00
ca4b68e425 renderer: fix fractional scale artifact (#12219) 2025-11-06 19:18:16 +00:00
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
c757fd375c compositor: block parent window interaction when modal dialog children window is open (#12057) 2025-11-06 00:06:31 +00:00
46b71eda64 [gha] Nix: update inputs 2025-11-04 15:15:08 +00:00
d82538c69f protocols/dmabuf: handle null pointer in CLinuxDMABufV1Protocol::resetFormatTable (#12207) 2025-11-04 15:13:50 +00:00
8e9add2afd sessionlock: fix crash when sendScale is called on a disconnected (#12171) 2025-10-31 00:15:18 +00:00
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
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
ff50dc36e9 renderer/cm: allow gamma 2.2 instead of sRGB EOTF (#12094) 2025-10-29 12:53:42 +00:00
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
17d0d696be screencopy: wait longer to re-enable DS (#12135) 2025-10-26 18:57:20 +00:00
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
748d2f656e xdg-shell: implement invalid parent errors 2025-10-26 12:34:35 +00:00
6ea4769b39 EGL: minor egl changes (#12132)
* opengl: use EGLint and we dont have to cast data

use EGLint in the attrib array and we dont have to cast the resulting
data.

* opengl: add linear to correct vector

drop empty check, what if we get mods that isnt linear. then it wont be
added, also add it to the result vector that we actually return.
2025-10-25 20:36:02 +01:00
72cbb7906a layer-shell: fix fullscreen alpha when changing layers (#12124)
* layer-shell: fix fullscreen alpha when changing layers

* this is intended

* ooops

* ooops #2
2025-10-25 18:53:01 +01:00
b6f946991d meson: disable lto (#12129)
seems to accidently got enabled again in 019589e
2025-10-25 15:19:47 +01:00
b10b966000 screencopy: fix missing XBGR2101010 format with screencopy_force_8b (#12125)
Adds missing DRM_FORMAT_XBGR2101010 to screencopy_force_8b that leads to
"no more input formats" Pipewire error for monitors set to 10-bit color
depth/where currentFormat is XBGR2101010.

Fixes implementation of #11623
Fixes hyprwm/xdg-desktop-portal-hyprland#270
Fixes hyprwm/xdg-desktop-portal-hyprland#102
2025-10-25 11:57:46 +01:00
da04afa44e surface: fix xwayland zero scaling damage calcs (#12123) 2025-10-24 22:19:21 +01:00
34812c33db hyprctl: include color management presets and sdr information (#12019)
* move string parsing for eCMType to its own namespace, similar to how
`src/protocols/types/ContentType.cpp` is done
* expose cm type and sdr settings in `hyprctl monitors`, format floats
to .2f
2025-10-24 20:18:39 +01:00
117e38db35 cmake: fix git lookup for when building out of srcdir(#12116) 2025-10-24 19:13:38 +01:00
151b5f6978 dwindle: rework split logic to be fully gap-aware (#12047) 2025-10-24 19:01:05 +01:00
aa5a239ac9 [gha] Nix: update inputs 2025-10-23 19:51:54 +00:00
019589e23f build: replace generateVersion.sh (#12110)
* Implemented the CMake version of generateVersion.sh

* Made version.h.in compatible with the new build system and included version.h in helpers/MiscFunctions.cpp

* Deleted the scripts/generateVersion.sh as it's no longer needed

* Updated meson.build to match the new workflow

* Added an empty line between includes and namespaces that I accidentally removed
2025-10-23 20:50:32 +01:00
057695bc3f desktopAnimationMgr: don't set fade 0 for members of a fs group (#12091)
fixes a flash of opacity that shouldnt be there
2025-10-22 11:32:42 +01:00
892f642f58 plugins: incorporate hyprdep ABI into plugin info (#12001) 2025-10-21 22:47:50 +01:00
d560c26419 internal: fix cf 2025-10-21 22:47:06 +01:00
02b0c563f3 xwm: attempt to guess mime in sendData for DnD 2025-10-21 19:11:18 +01:00
4926332c37 monitor: remove spammy trace log 2025-10-21 19:11:18 +01:00
46dab01bcc renderer: add more uniforms to the screen shader (#11986)
These are: pointer_shape from the cursor-shape-v1 protocol prepared for v2, along with left_ptr...bottom_right_corner and killing (Hyprland specific)
           pointer_shape_previous with
           pointer_switch_time to blend between shapes
           pointer_size scaled size as used by the normal cursor
           pointer_pressed_positions[32] with
           pointer_pressed_times[32] and
           pointer_pressed_killed(32 bits) for click/touch animations and if they killed something
           pointer_inactive_timeout with
           pointer_last_active to smoothly fade the pointer out
           pointer_hidden to hide it when the cursor is hidden (excluding by cursor:invisible as this config value can be used to turn off the normal cursor, which is useful when drawing it with the screen shader)
2025-10-20 12:22:50 +01:00
474cd004df [gha] Nix: update inputs 2025-10-20 11:14:45 +00:00
a4200acfa6 input: fix refocus on grab dismiss (#12014) 2025-10-20 12:13:27 +01:00
59ff7b2f89 dispatchers: add forceidle (#11922)
The forceidle dispatcher resets all ext-idle-notify timers as if the
user had been idle for the specified number of seconds. If a
notification has already fired, but would now be set with a nonzero
delay, then it is reset. Conversely, if a timer has not yet fired, but
would now be set to a nonpositive delay, then it is immediately fired.
This process ignores any existing inhibitors, but timers are otherwise
reset as normal if any new inhibitors are created or destroyed.
2025-10-19 13:54:27 +02:00
ba077d8ff0 renderer: clean up surface UV size calcs, fix issues (#12070) 2025-10-19 02:56:55 +02:00
39d62e1487 protocols: fix output power protocol not sending mode confirmation (#12072)
Use setDPMS() instead of directly manipulating m_dpmsStatus to ensure the dpmsChanged event fires and protocol
clients receive mode change confirmation via sendMode().
2025-10-18 20:44:55 +02:00
6607c6440d renderer: add 1fv and 2fv uniform support (#12080) 2025-10-18 13:34:33 +02:00
f3e13193a6 timer: constify methods (#12079) 2025-10-18 13:34:07 +02:00
8164b90bc2 config: fix crash when some configurations include non-integer values (#12056) 2025-10-16 15:33:06 +02:00