Using Blender with a trackball on X11
With https://developer.blender.org/T38163 being accepted and committed, Blender is not only able to handle traditional mice, but also trackballs with more than 3 buttons on X11.
A key difference between trackballs and mice is that the movement events as well as scrolling for (some) trackballs is done with the same ball and a mapped button. This makes it somewhat difficult to talk multiple degrees of freedom into a 3D application, when you are using a trackball, since
- the application assumes you to have a NDOF device or mouse
- the application relies on the OS or windowing system and what is reported there
- developers do not necessarily think about different input devices
Trackballs are not as widespreaded as mice for input, especially not trackballs, like the Logitech Marble Mouse. It is one of the best trackball devices in my opinion, since you can use it with both hands. A drawback (for applications) is the lack of a dedicated mouse wheel that raises the events.
One usually assigns one of the fours physical buttons to cause the ball to behave like a wheel (by emitting the proper event) on rotating. Once done, you have a sort of traditional wheel mouse behaviour.
The ball however can be rotated horizontically and vertically (in contrast to the typical wheel), which gives you an additional dimension to operate on and is somewhat similar to moving a mouse while pressing the middle mouse button. The Marble Mouse however does not necessarily emit mouse movement events, but button presses instead.
Other applications (e.g. most QT or Gtk2+-based ones) can deal with the buttons and often implement a vertical scrolling behaviour for those.
Blender however did not, since the buttons were just not recognised by the underlying GHOST X11 implementation. Instead the events were silently ignored, making it necessary to use keyboard macros to get the additional dimension to work.
Trackball users, such as me, can assign Button 6 and Button 7 now (one might need to remap some buttons with xmodmap) and do not need to use additional key modifiers anymore.