Using a Logitech TrackMan Marble FX under Linux is very simple: You plug it into the PS/2 port, set the correct driver for GPM and X and it works as a regular three-button mouse. But there was no way to use the red scroll button like the windows mouse driver does.
FXred changes this.
When FXred runs, it takes control over the red button (or button 4 as X calls it) and waits for you to push it. When button 4 is down and you roll the ball, FXred translates the rotation (or mouse movement) into keystrokes that are sent to the current window. The list of keystrokes to send is determined from the window resource class, window resource name or caption.
Without the inspiration of imwheel by Jonathan Atkins, FXred would have not been possible. The principle of selecting windows was derived from it as well as the code that fakes the keystrokes.
0.1: Initial implementation
0.2: Fixed crash due to missing initialisation of variables Added X_CFLAGS to CFLAGS in fxred/Makefile.am
0.3: Fixed crash if window manager does not handle WM_NAME property. Added hint about X terminals.
0.4: Made X terminal hint more clearly to read. Fixed window identification process (idea by Bastiaan Huisman).
0.5: Fixed scroll direction and distance computation. Removed -t switch. Added scroll direction indicators.
0.6: Added temporary focus changes to improve operation in "click to focus" window managers.
0.7: Fixed pattern search order to make class names findable. Added missing up arrow images.
0.8: Integrated french documentation. Integrated Stephane Zermatten's patch. Added switches for lock file and focus.
0.9: Integrated Stephane Zermatten's second patch (bug, forwarding, small cursor). Added switch for forwarding. Added configure switch for small cursors.