Commit graph

654 commits

Author SHA1 Message Date
Nikolai Nechaev
42f0a6005b
keybinds: Remove removed keybinds (#13605)
There seems to be no reason for them to remain.

But if they are kept, no notification appears to warn
a user that a dispatcher used in their config is no
longer valid. The config remains valid, but the bindings
do not work anymore.
2026-03-06 16:33:08 +00:00
Vaxry
be03497b82
layout/algos: use binds:window_direction_monitor_fallback for moves (#13508)
ref https://github.com/hyprwm/Hyprland/discussions/13473
2026-03-02 21:39:06 +00:00
André Silva
fe0a202137
desktop/group: respect direction when moving window out of group (#13490) 2026-03-02 21:12:27 +00:00
f0a80ce5e0
keybinds: fixup changegroupactive 2026-03-01 10:12:15 +00:00
ItsOhen
70cdd819e4
desktop/rules: use pid for exec rules (#13374) 2026-02-26 18:13:49 +00:00
ssareta
f4bc8c3a64
keybinds: fix unguarded member access in moveWindowOrGroup (#13337) 2026-02-23 16:29:44 +00:00
Vaxry
b88813c7ef
event: refactor HookSystem into a typed event bus (#13333)
Refactors the old HookSystem into a typed event bus with clear
separation,
discovery and types.
2026-02-22 23:30:10 +00:00
Vaxry
723870337f
layout: rethonk layouts from the ground up (#12890)
Rewrites layouts to be much smaller, and deal with much less annoying
BS. Improves the overall architecture, unifies handling of pseudotiling,
and various other improvements.
2026-02-21 21:30:39 +00:00
Florent Charpentier
22fc8136a2
desktop/windowRule: allow expression in min_size/max_size (#12977) 2026-01-21 15:56:51 +00:00
Aditya Singh
e5d20b56bc
keybinds: simulate mouse movement after bringing active window to top (#12703)
Fixes https://github.com/hyprwm/Hyprland/discussions/12702
2025-12-27 21:27:59 +01:00
Mr. Goferito
d7f26038ee
keybinds: fix multikey binds breaking after scroll wheel events (#12638) 2025-12-26 23:16:31 +01:00
f7f357f15f
keybindmgr: fix focusCurrentOrLast 2025-12-23 15:04:56 +01:00
Vaxry
b9bef69554
Desktop/history: Move history to desktop (#12676) 2025-12-20 22:16:13 +00:00
Vaxry
6175ecd4c4
debug: move to hyprutils' logger (#12673) 2025-12-18 17:23:24 +00:00
Tom Englund
8dfdcfb353
compositor: dont try to focus unmapped window (#12629)
* compositor: dont try to focus unmapped window

if lastwindow is unmapped it hits getWindowInDirection and nullptr
derefs window->m_workspace. and coredumps. triggered by dual monitor and
one client on each surface with a combination of animation and
killactive / movefocus keybind.

* keybindmgr: use newly added aliveAndVisible()

use newly added aliveAndVisible() over visible()
2025-12-11 23:59:47 +00:00
Vaxry
920353370b
desktop: cleanup, unify desktop elements as views (#12563) 2025-12-08 15:04:40 +00:00
Nikolai Nechaev
222dbe99d0
keybinds: fix previous workspace remembering (#12399)
* swipe: Fix previous workspace remembering in workspace gesture

Fixes a bug that previous workspace does not exist after swiping to a workspace

* tests: Test that `workspace previous` works after workspace gesture

* moveActiveToWorkspace: remember previous workspace unconditionally
2025-12-05 20:43:30 +00:00
EvilLary
ebe74be75a
dispatcher: include mirrors of monitor in dpms (#12552)
* dispatcher/dpms: include mirrors

* use m_realMonitors instead
2025-12-05 20:29:39 +00:00
Vaxry
9264436f35
desktop: rewrite reserved area handling + improve tests (#12383) 2025-12-05 14:16:22 +00:00
f9742ab501
keybinds: restore pointer warp on switch
ref https://github.com/hyprwm/Hyprland/pull/12033#pullrequestreview-3516413924
2025-11-27 21:10:01 +00:00
Nikolai Nechaev
40d8fa8491
compositor: Configurable behavior when window to be focused conflicts with fullscreen (#12033)
Renames `misc:new_window_takes_over_fullscreen` into
`misc:on_focus_under_fullscreen` and implements the following behavior:

- By default, when a tiling window is being focused on a workspace where
  a fullscreen/maximized window exists, respect
  the `misc:on_focus_under_fullscreen` config variable.
2025-11-25 22:44:26 +00:00
Hleb Shauchenka
c5d45b7653
hyprctl: fix no_vrr prop ref (#12410) 2025-11-20 22:40:39 +00:00
Vaxry
c249a9f4b8
windowrules: fix group rule recalcs (#12403) 2025-11-20 16:57:31 +00:00
Vaxry
c2670e9ab9
windowrules: rewrite completely (#12269)
Reworks the window rule syntax completely

---------

Co-authored-by: Mihai Fufezan <mihai@fufexan.net>
2025-11-17 18:34:02 +00:00
Luke Barkess
308226a4fc
config/keybinds: add a submap universal keybind flag (#12100) 2025-11-11 22:59:21 +00:00
431325ff0c
config/rule: don't populate ID field for automatically id-managed workspaces 2025-10-27 21:29:35 +00: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
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
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
rfresh2
73f06434a4
keybinds: fix repeat and long press keybinds release (#11863) 2025-10-06 21:10:56 +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
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
0xFMD
5bb8adbc32
dispatchers: allow window address in swapwindow (#11518) 2025-08-31 18:14:39 +02:00
Vaxry
81bf4eccba
input: Add fully configurable trackpad gestures (#11490)
Adds configurable trackpad gestures
2025-08-28 11:20:29 +02:00
Hleb Shauchenka
fdf1612f0f
windowrules: Add novrr dynamic window rule (#11370) 2025-08-22 10:48:42 +01:00
Vaxry
251288ec59
renderer: add dpms animations (#11452) 2025-08-17 08:37:13 +01:00
60d769a899 internal: unify VT getting 2025-08-14 17:13:23 +02:00
Kamikadze
beee22a95e
refactor: Use new hyprutils casts (#11377) 2025-08-14 15:44:56 +01:00
Vaxry
2859f1b795
keybinds: use the triggering keyboard for repeat timings (#11309) 2025-08-05 15:54:55 +02:00
JS Deck
2be309de1d
virtualkeyboard: Add options to skip releasing pressed keys on close and to skip sharing key states (#11214) 2025-08-04 21:29:39 +02:00
xqso
5c8d675eed
ci: correct tar command for xz compression & fix typos (#11213) 2025-07-25 17:19:23 +02:00
fd0c1f2ab4
keybinds: do not reset scroll timer on not passed
avoids endless lockups
2025-07-25 14:59:00 +02:00
MightyPlaza
d4de69381e
internal: set value and goal for window size and position on setGroupCurrent (#11120) 2025-07-20 17:00:17 +02:00
littleblack111
b5c0d0b8aa
keybinds: add an option to respect gaps out for floating to movewindow (#9360) 2025-06-03 19:48:56 +01:00
Kamikadze
69c2b2926e
internal: refactor to use empty() (#10599) 2025-05-31 19:49:50 +01:00
Kamikadze
9190443d95
refactor: use std::ranges whenever possible (#10584) 2025-05-30 14:25:59 +01:00
MightyPlaza
fa1e343b04
compositor: set fullscreenstate on movetoworkspace (#10303)
modified:   src/managers/KeybindManager.cpp
2025-05-08 18:29:47 +02:00
77ecf09506
internal: fix name confusion in SAlphaValue
fixes #10251
2025-05-02 16:29:15 +01:00
davc0n
ce821294e2
managers: refactor class member vars (#10242) 2025-05-02 17:07:20 +02:00