summaryrefslogtreecommitdiff
path: root/src/managers
Commit message (Collapse)AuthorAgeFilesLines
* windowrules: rewrite completely (#12269)Vaxry2025-11-177-87/+165
| | | | | | | Reworks the window rule syntax completely --------- Co-authored-by: Mihai Fufezan <mihai@fufexan.net>
* cursor: fix m_cursorSurfaceInfo not being updated while a cursor override is ↵Giacomo Zama2025-11-161-6/+6
| | | | set (#12327)
* i18n: init localization for ANR, Permissions and Notifications (#12316)Vaxry2025-11-163-45/+51
| | | | | | | | Adds localization support for en, it, pl and jp --------- Co-authored-by: Mihai Fufezan <mihai@fufexan.net> Co-authored-by: Aaron Blasko <blaskoazzolaaaron@gmail.com>
* cursor: ensure cursor reset on changed window states (#12301)Alexandru Spînu2025-11-151-0/+7
|
* config/keybinds: add a submap universal keybind flag (#12100)Luke Barkess2025-11-112-24/+25
|
* renderer/ime: fix fcitx5 popup artifacts (#12263)bea4dev2025-11-111-4/+11
|
* core: qtutils -> guiutils (#12231)Vaxry2025-11-071-1/+1
| | | | | | | | | | | * core: qtutils -> guiutils * nix: qtutils -> guiutils * flake.lock: update --------- Co-authored-by: Mihai Fufezan <mihai@fufexan.net>
* protocols: add Fifo-v1 and commit-timing-v1 (#12052)Tom Englund2025-11-061-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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.
* cursor: refactor override handling (#12166)Vaxry2025-10-314-86/+134
| | | much cleaner and more reliable. Should fix https://github.com/hyprwm/Hyprland/issues/12088
* config/rule: don't populate ID field for automatically id-managed workspacesVaxry2025-10-272-7/+7
|
* IME: do not share keys/mods states from grabbed keyboards with ime keys/mods ↵JS Deck2025-10-261-11/+36
| | | | (#11917)
* desktopAnimationMgr: don't set fade 0 for members of a fs group (#12091)Vaxry2025-10-221-2/+7
| | | fixes a flash of opacity that shouldnt be there
* renderer: add more uniforms to the screen shader (#11986)Mozzarella322025-10-204-2/+11
| | | | | | | | | | | | 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)
* input: fix refocus on grab dismiss (#12014)0rtz2025-10-201-1/+48
|
* dispatchers: add forceidle (#11922)MithicSpirit2025-10-192-0/+16
| | | | | | | | | 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.
* config: add automatic closing to submaps (#11760)ItsOhen2025-10-112-10/+20
| | | | | | | | | | | | | | | | | | | | | | | * 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.
* input: add option to rotate device input (#11947)epsilonshmepsilon2025-10-101-0/+5
|
* managers/helpers: add missing includes (#11969)Linux User2025-10-081-0/+1
| | | | | | | | | * 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
* dispatchers: add set, unset and toggle to fullscreen (#11893)Nj0be2025-10-081-13/+26
| | | Add set, unset and toggle to fullscreen
* keybinds: fix repeat and long press keybinds release (#11863)rfresh22025-10-061-2/+2
|
* gestures: fix gesture direction detection (#11852)Vaxry2025-09-292-4/+8
|
* seat: release depressed modifiers on leave (#11854)usering-around2025-09-281-0/+1
|
* exec: Spawn processes as direct children (#11735)Nikolai Nechaev2025-09-231-37/+16
| | | | | | | | | | | | | | | | * 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.
* vkeyboard: update cached mods before IME; add share_states = 2 config option ↵JS Deck2025-09-201-3/+11
| | | | (#11720)
* renderer: asynchronously load background tex (#11749)Vaxry2025-09-181-0/+1
| | | | | | | Bumps required hyprgraphics to 0.1.6 --------- Co-authored-by: Mihai Fufezan <mihai@fufexan.net>
* animation: fix slide/slidefade to accept forced direction (#11725)nikitax442025-09-181-5/+25
|
* gestures/fs: fix typoVaxry2025-09-151-1/+1
| | | | fixes #11678
* gestures/float: fix typoVaxry2025-09-141-1/+1
|
* input: handle tablet active area scaling when axes swap due to rotation (#11661)Stanislav Senotrusov2025-09-131-2/+7
| | | | | 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.
* dispatchers: fix movecursor not updating client pos (#11672)0xFMD2025-09-111-0/+1
|
* input: support xkb v2 format (#11482)usering-around2025-09-112-4/+3
|
* input: focus when first keyboard is added and m_lastFocus is set (#11645)Maximilian Seidler2025-09-101-0/+4
|
* gestures: add unsetVaxry2025-09-082-0/+13
| | | | ref https://github.com/hyprwm/Hyprland/pull/11490
* animation: fix slide/slidevert to accept params (#11574)0xFMD2025-09-062-20/+15
|
* input: add per-device scroll-factor (#11241)Vaxry2025-09-023-6/+27
|
* dispatchers: allow window address in swapwindow (#11518)0xFMD2025-08-311-13/+14
|
* protocols: implement pointer-warp-v1 (#11469)Ikalco2025-08-293-3/+7
|
* input: Add fully configurable trackpad gestures (#11490)Vaxry2025-08-2833-575/+2134
| | | Adds configurable trackpad gestures
* syncobj: use rendernode for timelines (#11087)Tom Englund2025-08-241-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * syncobj: use rendernode for timelines use rendernode for timelines instead of the drmfd, some devices dont support to use the drmfd for this. * opengl: use rendernode if available use rendernode if available for CHyprOpenglImpl * MesaDRM: use the m_drmRenderNodeFD if it exist try use the rendernode we got from AQ if it exist. * linuxdmabuf: use rendernode if available use the rendernode if available already from AQ * syncobj: prefer rendernode over displaynode prefer the rendernode over the displaynode, and log a error if attempting to use the protocol without explicit sync support on any of the nodes. * syncobj: check support on both nodes always check support on both nodes always so it can be used later for preferring rendernode if possible in syncobj protocol. * syncobj: remove old var in non linux if else case remove old m_bDrmSyncobjTimelineSupported from non linux if else case that will fail to compile on non linux. the nodes sets support by default to false, and if non linux it wont check for support and set it to true. * build: bump aq requirement bump to 0.9.3 where rendernode support got added. * flake.lock: update * renderer: glfinish on software renderer software renderers apparently bug out on implicit sync, use glfinish as with nvidia case on implicit paths. * flake.lock: update --------- Co-authored-by: Mihai Fufezan <mihai@fufexan.net>
* disable buffer readability checks on intel (#11515)Tom Englund2025-08-242-3/+3
| | | | | | | | | | | | * dmabuf: disable buffer read check on intel readability checks directly on buffer fds on some intel laptops is broken, see https://gitlab.freedesktop.org/drm/intel/-/issues/9415 * sync: use rvalue ref in addwaiter doonreadable use rvalue reference in addwaiter and doonreadable, because we store the function in the SReadableWaiter a lot of the time, move it into place there when that happends or let it go out of scope after function call.
* windowrules: Add `novrr` dynamic window rule (#11370)Hleb Shauchenka2025-08-221-0/+3
|
* touch: detach from pointer inputvaxerski2025-08-203-32/+28
| | | | this detaches touch from pointer input. Touch should not affect where your cursor is, and it doesn't make much sense for it to move when we use touch
* touch: fix popup coordinates for touch downvaxerski2025-08-201-1/+8
| | | | fixes #10626
* renderer: add dpms animations (#11452)Vaxry2025-08-171-15/+1
|
* protocols: implement ext-data-control (#11323)Nihal Jere2025-08-152-0/+6
| | | This protocol has superseded wlr-data-control
* internal: unify VT gettingvaxerski2025-08-141-16/+3
|
* refactor: Use new hyprutils casts (#11377)Kamikadze2025-08-1419-99/+98
|
* tablet: do not lock focus when dnd-ing (#11390)Maxime Nordier2025-08-101-1/+2
|
* keybinds: use the triggering keyboard for repeat timings (#11309)Vaxry2025-08-052-18/+20
|
* virtualkeyboard: Add options to skip releasing pressed keys on close and to ↵JS Deck2025-08-045-70/+103
| | | | skip sharing key states (#11214)