Wayland Relative Pointer API Progress

x414e54 x414e54 at linux.com
Fri Apr 17 18:35:30 PDT 2015

> A big problem with just saying "the game must use the joystick api" is that
> the game won't work on a machine without a joystick unless the joystick api
> is emulated for the mouse. This seems to me to be exactly the same problem
> and requiring exactly the same solutions, except you have moved the code
> from the client to the compositor, which is usually a bad idea. Also you
> have made it a pain in the ass to create simple toolkits since they now have
> to provide the joystick api.

By joystick I mean "generic axis device with buttons" we do not mean
an actually joystick, "controller api" may be a better word. If my
gaming mouse has 40 buttons, and a 7000+ dpi laser 3D mouse wheel (not
just the movement sensor), I want ALL of that information not just
what the wayland protocol designers think is best.

Obviously a "joystick" is confusing and more restrictive than allowing
the full access to the device marshalled by the compositor and then
the user can run it though whichever api they want this is why I
prefer Jonas' idea of using the actual evdev device but the compositor
can MITM the char buffer or something similar.

This is EXACTLY how games work on other platforms when using mouse,
they either use a raw USB/HID input api or in the case of older games
older than windows xp they use directinput. Obviously on windows you
would use xinput (which will do more abstracting for you) and rawinput
but on mac you use HIDManager for everything which also supports raw
mouse input. The point is using a well abstracted api you can do not
care what you get as long as it has at least 2 relative axis and 2

You want the compositor todo this because the game knows nothing about
which evdev input device is associated with which seat, how does it
know what to open? Also this would be good from a security side as you
do not have to allow full user access to the evdev device which
another user on the same system may want to use. You can have the
compositor refer to a security or sandboxing api.

More information about the wayland-devel mailing list