river icon indicating copy to clipboard operation
river copied to clipboard

Design and implement an input-management protocol

Open dnkl opened this issue 4 years ago • 6 comments

Wasn't really sure how to phrase the title, but basically, make it possible to configure things like left/right-hand mouse, trackpad settings such as tap-to-click, drag and drag-lock etc.

Pretty sure this is on someones mental TODO list, but couldn't find a tracking issue. Adding one since I'm very interested in this.

dnkl avatar Jul 24 '20 16:07 dnkl

This is certainly something we need eventually, though other features I personally find more important have taken priority so far.

ifreund avatar Jul 24 '20 16:07 ifreund

It actually is on my mental TODO list.

I personally think the best way to approach this is with an external program to configure inputs (like kanshi does for outputs) that uses a wayland extension to talk to the compositor. If such a protocol extension gains traction, there would be a compositor agnostic way to configure input devices, which I think would be quite nice.

Leon-Plickat avatar Jul 24 '20 16:07 Leon-Plickat

An input equivalent to wlr-output-management sounds desirable to me, and implementing such a protocol instead of river-specific configuration options would be preferable.

The steps forward for this would be:

  • Writing such a protocol and submitting it to wayland-protocols for review
  • Implementing this protocol in wlroots
  • Writing a simple cli client
  • Calling into the wlroots implementation and implementing whatever can't reasonably be done in wlroots in river

ifreund avatar Jul 24 '20 16:07 ifreund

This feature is also the only major blocker to supporting multiple seats as most (all?) of river's code already behaves as if there are multiple seats. The only real missing piece for multi-seat support is having a way to assign different input devices to different seats, which is part of input configuration and should probably be covered by the proposed protocol as well.

ifreund avatar Jan 17 '21 11:01 ifreund

As I see no chance of such a protocol happening in the nearish future, I decided to experiment with just implementing basic input configuration in river. See #303, although it does not work yet.

Leon-Plickat avatar Jun 04 '21 04:06 Leon-Plickat

#303 has been merged and river now supports basic input configuration. This issue however will stay open to track design/implementation of the proposed protocol described above.

ifreund avatar Jun 13 '21 17:06 ifreund