3
0
mirror of https://github.com/hyprwm/Hyprland.git synced 2025-10-30 03:41:16 +00:00

6516 Commits

Author SHA1 Message Date
Vaxry
4926332c37
monitor: remove spammy trace log 2025-10-21 19:11:18 +01:00
Mozzarella32
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
vaxerski
474cd004df [gha] Nix: update inputs 2025-10-20 11:14:45 +00:00
0rtz
a4200acfa6
input: fix refocus on grab dismiss (#12014) 2025-10-20 12:13:27 +01:00
MithicSpirit
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
Vaxry
ba077d8ff0
renderer: clean up surface UV size calcs, fix issues (#12070) 2025-10-19 02:56:55 +02:00
Bang Lee
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
Mozzarella32
6607c6440d
renderer: add 1fv and 2fv uniform support (#12080) 2025-10-18 13:34:33 +02:00
Mozzarella32
f3e13193a6
timer: constify methods (#12079) 2025-10-18 13:34:07 +02:00
Matteo Golinelli
8164b90bc2
config: fix crash when some configurations include non-integer values (#12056) 2025-10-16 15:33:06 +02:00
Vaxry
36c0477dd0
tests: disable shortcut test for ci 2025-10-16 14:32:26 +01:00
Virt
ab11af9664
ext-foreign-toplevel: remove stale entries when remapping (#12037) 2025-10-15 14:37:39 +02:00
Vaxry
e40873be51
renderer: add cursor:zoom_disable_aa for controlling AA on zoom (#12025) 2025-10-15 14:08:34 +02:00
Vaxry
60529e810d
renderer: round box in damageBox 2025-10-15 00:37:07 +01:00
Vaxry
f324a3a564
functionHook: fix distance check 2025-10-14 19:31:49 +01:00
Vaxry
ee5d05f0fc
hookSystem: fix anchor point for mmap 2025-10-14 13:39:22 +01:00
Mihai Fufezan
bbb83317c0 Nix: drop ninja for CMake build 2025-10-13 23:15:18 +03:00
Mihai Fufezan
0d6d19b280 Revert "nix: use meson"
This reverts commit d505b3366533b71d57156469c926e8b2b75afb89.
2025-10-13 23:15:18 +03:00
Mihai Fufezan
541ef60fd7 CMake: print pch messages based on var 2025-10-13 23:15:18 +03:00
Vaxry
4b55ec6830
windowrules: add modal prop (#12024)
adds a modal prop for targeting modal windows with rules
2025-10-13 13:16:48 +01:00
Richard Potter
7fcaf332e8
layouts: apply [min|max]size window rules to dwindle & master layouts (#11898)
Uses min/max rules in the tiled layouts, akin to pseudotiling
2025-10-13 13:08:40 +01:00
Mihai Fufezan
6582f42db8 meson: disable lto explicitly 2025-10-13 09:27:33 +03:00
Virt
ed93643021
core: disable lto for hyprland builds (#11972)
LTO has the tendency to remove functions completely by inlining them, which breaks function hooks.

Force disable LTO to not have plugins break.
2025-10-12 02:06:31 +02:00
ItsOhen
d599513d4a
config: add automatic closing to submaps (#11760)
* Allow submaps to auto reset to parent.

* Really should be a stack instead.

If hyprlang would allow for { } i would be so happy.

* Fixed: Somewhat better way to do it..

Lets you define what submap you want to go to instead.

* squash! Fixed: Somewhat better way to do it..

* God i hate cf..

* Force clang-format on the whole thing..

* Removed {}.

* Added tests

Tests and reset fix.
2025-10-11 02:40:18 +02:00
epsilonshmepsilon
6a01c399a9
input: add option to rotate device input (#11947) 2025-10-10 17:05:51 +02:00
Nikolai Nechaev
da31e82aab
internal: prevent early exit processes from being zombies (#11995)
Prevent `exec`/`exec-once` processes which terminate very early
(before Hyprland declares that it does not want to reap zombies)
from getting stuck as zombie processes.
2025-10-10 17:03:34 +02:00
Tom Englund
32f3233324
dmabuffer: ensure we only create one texture per buffer (#11990)
buffer can be recomitted, when moving texture creation from constructor
to committime it means same buffer recommit can cause a new texture
unless we store it per buffer and return the pointer for it.
2025-10-10 14:13:14 +02:00
Vaxry
2b0926dcd4
tests: disable one test as it fails on ci 2025-10-10 13:11:32 +01:00
Damino
b965fb2a40 flake.lock: bump hyprutils 2025-10-09 08:35:34 +03:00
Tom Englund
82759d4095
buffer: move texture creation to commit time (#11964)
* buffer: move texture creation to commit time

move creating texture away from buffer attach into commitstate in an
attempt to postpone gpu work until its really needed. best case scenario
gpu clocks have ramped up before because we are actively doing things
causing surface states and a commit to happend meaning less visible lag.

* buffer: simplify texture creation

make createTexture return a shared ptr directly, remove not needed
member variables as m_success and m_texture.
2025-10-08 22:25:55 +02:00
Linux User
0dc45b54f3
managers/helpers: add missing includes (#11969)
* managers: include string header

Fixes error `implicit instantiation of undefined template 'std::basic_string<char>'` on llvm/musl

* helpers: include unistd header

Fixes error `use of undeclared identifier 'pipe'` on llvm/musl
2025-10-08 22:24:40 +02:00
Nj0be
ba24547d3d
dispatchers: add set, unset and toggle to fullscreen (#11893)
Add set, unset and toggle to fullscreen
2025-10-08 11:07:55 +01:00
Tom Englund
5ba2d2217b
compositor: make wl_surface::frame follow pending states (#11953)
* compositor: make pending states store frame callbacks

move frame callbacks to pending states so they are only committed in the
order they came depending on the buffer wait for readyness.

* buffer: damage is relative to current commit

ensure the damage is only used once, or we are constantly redrawing
things on state commits that isnt a buffer.

thanks PlasmaPower.

* compositor: move callbacks back to compositor

move SSurfaceStateFrameCB back to compositor in the class
CWLCallbackResource as per request, but still keep the state as owning.

* compositor: ensure commits come in order

if a buffer is waiting any commits after it might be non buffer commits
from the "future" and applying directly. and when the old buffer that
was waiting becomes ready it applies its states and overwrites the
future changes.

move things to scheduleState and add a m_pendingWaiting guard. and
schedule the next pending state from the old buffer commit when done.
and as such it loops itself and keeps thing orderly.
2025-10-07 12:49:38 +01:00
Vaxry
5a20862126
hookSystem: use a full trampo setup for hooks
instead of planting a longjmp at the fn head, make a shortjmp to a launch trampo

this helps with shortjmps that can be in the fn and will break when relocated. They are very unlikely to occur within the first 5 bytes (jmp rel32) but can happen in the first 10 or so (longjmp)

fixes csgo-vk-fix on latest main with release building on gcc / clang
2025-10-07 12:49:36 +01:00
Vaxry
c3747fab56
hookSystem: fix anchoring in seekNewPageAddr()
otherwise we might miss the chance to get an anchor
2025-10-07 01:44:03 +01:00
Vaxry
dc72259a54
core/compositor: revert make wl_surface::frame follow pending states (#11896)
This reverts commit 17e77e0407bebd5d24521012ee1d04b156d6b9f4.

Reverted due to severe performance degradation due to accumulating frame
callbacks
2025-10-06 23:44:47 +01:00
Vaxry
02cda6bebf
systeminfo: log system package versions (#11946) 2025-10-06 23:20:21 +02:00
rfresh2
73f06434a4
keybinds: fix repeat and long press keybinds release (#11863) 2025-10-06 21:10:56 +02:00
Tom Englund
17e77e0407
core/compositor: make wl_surface::frame follow pending states (#11896)
* compositor: make pending states store frame callbacks

move frame callbacks to pending states so they are only committed in the
order they came depending on the buffer wait for readyness.

* buffer: damage is relative to current commit

ensure the damage is only used once, or we are constantly redrawing
things on state commits that isnt a buffer.

thanks PlasmaPower.

* compositor: move callbacks back to compositor

move SSurfaceStateFrameCB back to compositor in the class
CWLCallbackResource as per request, but still keep the state as owning.

* compositor: ensure commits come in order

if a buffer is waiting any commits after it might be non buffer commits
from the "future" and applying directly. and when the old buffer that
was waiting becomes ready it applies its states and overwrites the
future changes.

move things to scheduleState and add a m_pendingWaiting guard. and
schedule the next pending state from the old buffer commit when done.
and as such it loops itself and keeps thing orderly.
2025-10-06 12:20:04 +01:00
Dave Walker
cfac27251a
debug: fix data race in Debug::log() (#11931)
* debug: fix data race in Debug::log()

The templated Debug::log() had mutex protection but the non-template
overload it calls didn't, causing crashes when plugins called log from
background threads (like hypr-dynamic-cursors loading cursor themes).

Fixed by moving the mutex lock from the template version into the
non-template version, so all writes to shared state are protected.

Fixes: hyprwm/Hyprland#11929
Fixes: VirtCode/hypr-dynamic-cursors#99

* debug: apply clang-format to Log.cpp

Fix formatting to satisfy CI clang-format check.

---------

Co-authored-by: Dave Walker <dave@daviey.com>
2025-10-05 16:24:49 +02:00
UjinT34
76d998743a
cm: handle inert cm outputs (#11916) 2025-10-04 00:35:22 +02:00
vaxerski
b7ef892ecf [gha] Nix: update inputs 2025-10-03 19:52:11 +00:00
UjinT34
f0b4164e2e
cm: fix primaries to proto scale (#11914) 2025-10-03 21:50:57 +02:00
UjinT34
3bcfa94ee4
renderer: add render:non_shader_cm and fixes (#11900) 2025-10-02 12:05:54 +02:00
Vaxry
c467bb2640
renderer: fix popup fadeout blur (#11756)
popups dont get no xray
2025-10-02 12:01:16 +02:00
Vaxry
e0c96276df
renderer: optimize border drawcalls (#11891)
calculates the specific border region to avoid sampling on regions where the border cannot be at
2025-10-01 12:38:17 +01:00
vaxerski
378438ffe7 config: increase default anr_missed_pings value
ref https://github.com/hyprwm/Hyprland/discussions/11884
2025-10-01 12:19:16 +01:00
Vaxry
13648d196a
protocols/seat: force down rounding of coords at the surface edge (#11890)
ref https://github.com/hyprwm/Hyprland/discussions/11665
2025-10-01 12:15:23 +01:00
UjinT34
8c54c9b412
protocols/cm: remove unneeded preferred ref (#11877) 2025-10-01 11:04:49 +01:00
ItsOhen
38c1e72c9d
rules: fix some monitor rules (#11873) 2025-09-29 20:10:34 +02:00