Commit Graph

69 Commits

Author SHA1 Message Date
88a8c45ac0 river: run 0.15 zig fmt 2025-08-22 15:11:50 +02:00
d72408df18 build: update to Zig 0.15 2025-08-22 15:09:07 +02:00
d08c170571 Seat: ignore virtual keyboards until keymap set
The wlr-virtual-keyboard-v1 protocol fails to make keyboard creation
atomic. There is nothing a client can do with a virtual keyboard that
has no keymap except for destroy it, so we can completely ignore them
until a keymap is set.

This fixes a regression with fcitx caused by river sending the null
keymap of a new virtual keyboard to fcitx.
2025-06-30 12:57:06 +02:00
fe759d2d8a Keyboard: don't add virtual keyboards to group
Also don't set their keymap, the client handles that.

This is the first step towards fixing a regression with fcitx5.
2025-06-30 12:56:51 +02:00
037314823e build: update to wlroots 0.19 2025-06-18 12:22:17 +02:00
933701d7f9 build: update to zig 0.14.0 2025-03-07 12:44:28 +01:00
312465e0cb build: update to Zig 0.12
(cherry picked from commit 033cad47bf)
2024-05-20 12:07:52 +02:00
e143cdeca9 pointer-gestures: move to input manager
We definitely should not create duplicates of the global for each seat.

Not that we really support multi-seat yet, but someday.
2024-03-15 13:25:02 +01:00
f02d26c533 InputManager: eliminate "self" naming convention 2024-03-14 12:34:28 +01:00
49a779b24d tablet-v2: implement tablet tool support
There is not any pointer emulation for tablet tool input. This means
that only clients implementing the tablet-v2 protocol will be able to
process tablet tool input.

Tablet pad support is TODO
2024-03-11 15:05:42 +01:00
f2b6893b00 InputConfig: code style cleanups 2024-02-23 12:22:42 +01:00
0cb7c49cc3 command/input: add map-to-output 2024-02-23 12:22:42 +01:00
931b6268e7 command/input: support globs 2024-02-19 18:07:45 +01:00
7f1f9152f2 river: add -no-xwayland cli flag
Add a cli flag to disable xwayland at runtime even if river has been
built with xwayland support.
2024-02-19 17:27:25 +01:00
6f311af3b3 TextInput/InputRelay: style nits
There should be no functional changes in this commit
2024-01-01 23:02:55 -06:00
134a6bcfb5 TextInput: handle multiple text inputs correctly
The protocol states that we must send enter and leave to all text input
objects if the client has created multiple.

Only one text input is allowed to be activated by the client per seat
however.
2024-01-01 23:02:55 -06:00
49defcfb7a TextInput: remove pending_focused_surface
This state doesn't need to exist, just get the focus from the Seat.
2024-01-01 23:02:55 -06:00
2abab1e9c7 river: Implement input_method and text_input 2024-01-01 23:02:54 -06:00
2e586c7061 build: update to Zig 0.11.0 2023-10-16 16:27:03 +02:00
b7b371cb4f pointer-constraints: implement protocol
Now with 50% less pointer warping!

The new implementation requires the user to move the cursor into the
constraint region before the constraint is activated in order to keep
behavior more predictable.
2023-03-05 23:11:54 +01:00
be4330288d river: rework core data structures & transactions 2023-02-28 18:28:17 +01:00
b7ac5becfb pointer-constraints: remove protocol
This implementation as it stands is incomplete/buggy and will make
updating to wlr_scene more complex.

It will be reimplemented after updating to wlr_scene is complete.
2023-02-28 14:55:58 +01:00
0ccf0e65d5 deps: update to latest zig-wayland/zig-wlroots 2023-02-27 13:35:55 +01:00
6ac3928556 idle: support ext-idle-notify-v1, drop KDE protocol
This commit is a breaking change as it drops support for the now
obsolete org_kde_kwin_idle protocol.
2022-12-24 18:18:09 +01:00
78a46c316a input-inhibit: remove support for protocol
The only valid use-case for this as far as I'm concerned is lockscreens,
which will now be supported through ext-session-lock-v1.
2022-11-13 16:45:18 +01:00
489a49735a river: update to wlroots 0.16 2022-11-13 16:16:07 +01:00
5cce49095a Seat: refactor InputDevice handling
- The lifetimes of the Keyboard and Switch structs are now directly
tied to the corresponding InputDevice, which has become a field of
those structs.

- Seat capabilities are now properly updated on removing a keyboard.

These changes align with input device refactoring in upstream wlroots
which will make updating to easier 0.16.0.
2022-06-21 16:25:37 +02:00
c40dc5ee75 InputDevice: move to separate file 2022-06-20 16:29:35 +02:00
d657dc791b river-status: add mode event to seat status
This allows clients such as a status bar to display the currently active
mode.
2022-06-01 00:15:09 +02:00
da59632cea code: Cleanup use of std library for consistancy 2022-02-08 12:02:05 +01:00
422cd3e01f input: Improve input device name format
The name now includes the type, for the case of a physical device
advertising more than one logical device.
2022-02-05 18:52:46 +01:00
53f84b76f3 input: keep applying input configs after first match
Device identifiers aren't so unique after all
2022-02-05 18:52:16 +01:00
79d7775a3d code: relicense to GPL-3.0-only
I don't need anyone's permission to make this change since
GPL-3.0-or-later is one-way compatible with GPL-3.0-only.
2022-01-31 19:33:22 +01:00
c1d985ac29 build: update to zig version 0.9.0 2021-12-24 05:28:14 +00:00
4d19621f1e river: update to wlroots 0.15.0 2021-12-21 03:18:30 +00:00
1baf3bf462 seat: always add view to focus stack on map
Currently if a view is mapped while some other view is fullscreen, it
will not be added to the focus stack, which means that if the fullscreen
view is then closed the view which was not added to the focus stack will
not be focused.

To fix this, always add views to the focus stack on map.
2021-08-10 21:54:36 +02:00
53dd3875b3 cursor: avoid sending unnecessary pointer motion events
If the current Cursor.maybeResetState() function is called while in
passthrough mode, it will send a pointer motion event. This is
unnecessary as we have already sent the same pointer motion event at
least once.

Also refactor the code slightly and improve naming.
2021-07-23 19:18:49 +02:00
36ce81bb67 cursor: add missing maybeResetState() callsite
This function needs to be called whenever pending state is made current,
which includes when views not tracked by the transaction system commit.
2021-07-23 18:37:24 +02:00
f86291169e cursor: allow commands to override cursor operations
Now that we properly handle state changes during cursor operations,
blocking these commands if the target view is the target of a cursor
operation is unnecessary complexity. It is also inconsistent as we
don't block changing the tags of the view.
2021-07-23 17:11:43 +02:00
3efcfedcf4 layer-shell: handle commits before map
A client is free to change its mind and request a different
size/anchor/etc after recieving the initial configure but before
attaching and committing the first buffer. This means that we should
respond to such a situation with a new configure.

mako has been observed doing this in the wild for example.
2021-06-22 14:07:14 +02:00
833248e805 Add basic input configuration 2021-06-13 10:37:36 -07:00
021fd8f376 code: remove now unnecessary zig fmt directives
zig fmt does what we want since zig 0.8.0
2021-06-08 03:20:56 +00:00
c8b1017923 river: remove Seat.input_manager
This is no longer needed as server is global.
2021-05-13 15:13:17 +02:00
ece465b7ed river: remove InputManager.server
The server is now global so this is no longer needed.
2021-05-13 14:53:08 +02:00
26b0acddb7 river: pointer-constraints and relative-pointer 2021-02-22 14:47:31 +01:00
98d51f6d24 Use std.log instead of log.zig 2021-02-08 18:35:11 +01:00
cc08be2dee code: clean up listener initialization 2020-12-31 15:35:35 +01:00
20d804cdb5 code: switch to custom wlroots/libwayland bindings
This is a big step up over @cImport() for ergonomics and type safety.
Nearly all void pointer casts have been eliminated!
2020-12-13 22:53:33 +01:00
f80992e329 meta: make copyright headers more maintainable
- list all files as copyright "The River Developers"
- add an AUTHORS file to acknowledge contributors
2020-11-11 20:33:43 +01:00
773c5ff687 Implement virtual_keyboard_unstable_v1 protocol 2020-10-31 17:02:08 +01:00