Commit graph

643 commits

Author SHA1 Message Date
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
davc0n
5b3e489108
inputs: refactor class member vars (#10230) 2025-05-01 23:57:11 +02:00
davc0n
50e1bec85f
helpers: refactor class member vars (#10218) 2025-04-30 23:45:20 +02:00
davc0n
e9c3fcbb64
devices: refactor class member vars (#10206) 2025-04-29 19:51:07 +02:00
b10a43dabc
windowrules: add noclosefor
fixes #10027
2025-04-29 18:14:02 +01:00
davc0n
2118440488
windows: refactor class member vars (#10168) 2025-04-28 22:25:22 +02:00
f5c5cfa960
keybindmgr: fixup bindn regression
fixes #10195
2025-04-28 00:18:51 +01:00
davc0n
02d7badd15
workspaces: refactor class member vars (#10167) 2025-04-25 02:37:12 +02:00
davc0n
241a4935a2
compositor: refactor class member vars (#10141) 2025-04-22 15:23:29 +02:00
nyx
d29723cb76
keybinds: allow executing binds not bound to a key (#10102) 2025-04-21 20:47:14 +02:00
davc0n
4d14bcb02f
config: Refactor class member vars (#10124)
* Refactor config classes vars

* Fix clang format errors
2025-04-20 20:39:33 +02:00
nyx
225e13c3cc
InputManager: add config option to disable keybinds per device (#10064) 2025-04-17 02:19:10 +02:00