Commit graph

6666 commits

Author SHA1 Message Date
UjinT34
0959672591
renderer/cm: add more monitor cm options (#11861)
Adds more cm options for monitors: DCIP3, Apple P3, Adobe
2025-09-29 13:22:42 +01:00
UjinT34
4d82cc5957
internal: fix clang-tidy "errors" (#11862) 2025-09-29 13:10:15 +01:00
Vaxry
43fb4753fc
gestures: fix gesture direction detection (#11852) 2025-09-29 12:29:40 +01:00
Tom Englund
f854b5bffb deco: reduce virtual calls in drop shadow
damageEntire() in CHyprdDropShadow is pretty much called per window per
frame, instead of all the PWINDOW-> virtual calls, store pos and size
once and move the duplicated code to a lambda. reducing it a bit.

shows up in profiling as minor waste.
2025-09-28 23:20:52 +02:00
Tom Englund
eb25dfd399 opengl: move from unordered_set to array
setCapStatus is a a heavy used function in hot rendering paths, it
shows up in profiling as using a bit of cpu just because of
unordered_set hashing etc, move to a enum and array and cache only the
heavily used ones.
2025-09-28 23:20:52 +02:00
Tom Englund
b627885788 decoration: reduce virtual calls
this shows up as top contender in idle cpu usage, because decos in
animations keeps locking weak pointers to shared pointers per window per
frame when its not really needed, use weakpointers all the way and it
drops to a bottom contender. marginal gains in the big picture. but
gains is gains.
2025-09-28 23:20:52 +02:00
c30036bdac
CI/Arch: build hyprgraphics after hyprutils
Ensure no ABI breaks. Hyprgraphics depends on hyprutils.
2025-09-28 19:19:41 +03:00
usering-around
766acadcf1
seat: release depressed modifiers on leave (#11854) 2025-09-28 00:05:30 +02:00
omar
ef479ff539
viewporter: clamp sub-pixel overflow (#11845)
Clamps the pending wp_viewport source rect back inside the attached buffer when it misses by <= 1 px, so if clients request something that falls within the 256-increment wl_fixed_from_double precision error it’s still treated as valid.
2025-09-27 20:14:43 +02:00
ItsOhen
6f1d2e771d
config: fix rules with no parameters not being counted as invalid (#11849)
Quite a big whoopsie to insert invalid rules.

Also adds special: cases.
2025-09-27 01:04:22 +02:00
ItsOhen
ae445606e2
config: allow negative to be used with tags. (#11779) 2025-09-26 18:19:53 +02:00
Nikolai Nechaev
4f3dd1ddb4
config: fix gesture dispatcher parsing with whitespaces (#11784)
* config: fix gesture dispatcher parsing with whitespaces

Some dispatcher functions (e.g., `moveFocusTo`) expect the given string to be
stripped of whitepsaces.

This fixes `gesture` line parsing: rather than calling dispatcher functions
with the original string, we reuse words parsed by `CConstVarList` and join
them with a comma.

* tests/gestures: Add a test for `movecursortocorner`
2025-09-26 15:49:07 +02:00
ItsOhen
d8f615751a
config: support more than 1 window rule per rule line. (#11689)
Adds support for specifying multiple rules in one line
2025-09-26 00:33:58 +02:00
João V. Farias
7ce451d20c
renderer: disable anti-aliasing on cursor:zoom_factor (#6135) (#11828)
use nearest-neighbor filtering for cursor scaling to avoid blurriness
2025-09-25 21:14:04 +02:00
Tom Englund
5212099b9f
layout: avoid nullptr deref (#11831)
OPENINGON can be a nullptr and that makes FLOATEDINTOTILED to nullptr
deref and segfault.
2025-09-25 15:30:04 +02:00
Tom Englund
8cce3b98ce
shm: refactor to UP and correct m_data check (#11820)
use unique pointers and rvalue references where applicable, buffer is
still a shared pointer because CHLBufferReference uses it to hold it
locked.

in CSHMPool destructor add a check for m_data != MAP_FAILED same in
resize, because mmap returns (void *) -1 on failure and that is not
comparable to nullptr. delete default constructor so we dont end up in
weird states with m_data.
2025-09-25 01:44:33 +02:00
Tom Englund
683fc77f80
hyprctl: nullptr guard --systeminfo (#11822)
running Hyprland --systeminfo from a console/tty calls systemInfoRequest
without us having a g_pCompositor or g_pHyprOpengl, so just if check them
and make --systeminfo not segfault and atleast print what info we can.
2025-09-25 01:44:07 +02:00
Vaxry
ec9a72d9fb
workspaces: fix persistence with no monitor specified (#11807) 2025-09-23 21:08:30 +02:00
omar
31bd9ec417
foreign-toplevel: continue past skipped invalid windows (#11804) 2025-09-23 19:50:57 +02:00
Nikolai Nechaev
29b103c376
exec: Spawn processes as direct children (#11735)
* exec: Spawn processes as direct children

Spawn processes as children rather than grandchildren.
This way, spawned processes may track Hyprland's state
by watching their parent, either directly or indirectly
(e.g., Linux's `PR_SET_PDEATH_SIG`).

Fixes #11728

* tests/exec: Add the test on process spawning

Add a test that ensures that:
- A spawned process remains a direct child of Hyprland;
- Upon termination, the process does not become a zombie.
2025-09-23 19:32:48 +02:00
Vaxry
70a7047ee1
renderer: fix uv scaling detection (#11789) 2025-09-22 13:01:59 +01:00
0xFMD
26f293523a
renderer: add "noscreenshare" layer rule (#11664) 2025-09-22 12:26:14 +01:00
Bahaa Mohamed
45f007d412 ci: remove duplicate cp and redundant mkdir commands 2025-09-22 12:31:36 +03:00
Nikolai Nechaev
22c8bc9b9b CI/Nix: Allow running CI in forks
Rather than hardcoding the repository name in the workflow file,
use a context value. This allows running workflows in forks.
2025-09-22 12:30:39 +03:00
Vaxry
26cbc67385
renderer: fix uv calculations once and for all (#11770)
fixes synchronization of ackd sizes, fixes wrong xdg stuff
2025-09-21 19:27:56 +02:00
Nikolai Nechaev
41dad38177
config: fix multi-argument gesture dispatcher parsing (#11721)
* config: Fix multi-argument gesture dispatchers parsing

The `dispatcher` gesture handler used to only handle
the first argument to the dispatcher, while some dispatchers
(e.g., `sendshortcut`) want multiple arguments.

This fixes `ConfigManager` to handle all the arguments
provided to the dispatcher gesture handler.

Fixes #11684.

* test/gestures: Add a test for a gesture with a multi-argument dispatcher

* test/gestures: Factor out `waitForWindowCount`

Reduce code duplication in the gestures test.
2025-09-20 17:57:49 +02:00
JS Deck
838439080a
vkeyboard: update cached mods before IME; add share_states = 2 config option (#11720) 2025-09-20 17:57:39 +02:00
ItsOhen
6a88f2e880
monitors: auto apply suggested scale and notify the user. (#11753) 2025-09-20 17:42:02 +02:00
vaxerski
8832607574 [gha] Nix: update inputs 2025-09-19 14:59:16 +00:00
usering-around
8fc7b2c171
input: fix virtual keyboard keymaps (#11763) 2025-09-19 16:58:03 +02:00
REVO9
afd1e71761
renderer: fix inconsistent border thickness for roundingPower < 2 (#11752) 2025-09-19 00:34:54 +02:00
Vaxry
4fc95d646d
renderer: asynchronously load background tex (#11749)
Bumps required hyprgraphics to 0.1.6

---------

Co-authored-by: Mihai Fufezan <mihai@fufexan.net>
2025-09-18 22:10:30 +02:00
91f592a875
workspace: fix relative workspaces with monitor descs 2025-09-18 20:46:57 +01:00
059ec60e9f
hyprpm: make temp root if not present 2025-09-18 13:25:04 +01:00
nikitax44
5648077978
animation: fix slide/slidefade to accept forced direction (#11725) 2025-09-18 13:53:28 +02:00
Vaxry
1cb8cd3930
solitary: fix check for config error (#11733)
Adds a blocker for solitary optimizations if there is a hyprerror present
2025-09-17 14:03:49 +02:00
7fd6998f7c
core: fix clang-format 2025-09-17 13:02:56 +01:00
5e96fac52f
presentation: fix vrr check for reporting no refresh time
ref #11608
2025-09-16 00:09:30 +01:00
4a9c4dbc04
gestures/fs: fix typo
fixes #11678
2025-09-15 22:30:08 +01:00
9e74d0aea7
renderer: clamp blur:passes 1-8
fixes some UB and dumb things

ref #11707
2025-09-15 12:44:12 +01:00
559024c331
gestures/float: fix typo 2025-09-14 01:52:41 +01:00
ItsOhen
16c18dde24
windows: fix no decorate not disabling borders (#11673) 2025-09-13 16:37:02 +02:00
Stanislav Senotrusov
adbf7c8663
input: handle tablet active area scaling when axes swap due to rotation (#11661)
Some tablet rotation modes (90°, 270°, and flipped variants) swap the X and Y axes.
This change adjusts the effective physical size based on axis orientation
to ensure tablet active area coordinates are normalized correctly.
2025-09-13 01:11:30 +02:00
0xFMD
797bfe905e
dispatchers: fix movecursor not updating client pos (#11672) 2025-09-11 21:52:30 +02:00
usering-around
38169c8fdd
input: support xkb v2 format (#11482) 2025-09-11 19:42:20 +02:00
Florian "sp1rit
c7b9969129
render/OpenGL: fix compilation for 32bit systems (#11667) 2025-09-11 19:41:33 +02:00
231b800784
flake.lock: update 2025-09-11 18:54:08 +03:00
8a959b4342
meson: set minimum version 2025-09-11 18:53:13 +03:00
46174f78b3
version: bump to 0.51.0 2025-09-10 13:41:05 +01:00
Maximilian Seidler
b8cff8a434
input: focus when first keyboard is added and m_lastFocus is set (#11645) 2025-09-10 12:22:45 +02:00