It is indeed unfortunate that btnx is no longer working, however configuring with xbindkeys is not impossible. Here is a small HOWTO, I managed to get the same functionality out of my MX Revo that I had with btnx:
=============================
0. Note: this requires a newer version of X and the kernel, therefore a recent Intrepid Ibex. Older versions do not see all the mouse buttons correctly (but you can use btnx there).
1. Install needed programs: xbindkeys and xmacro (use your favourite package manager instead of aptitude):
$ sudo aptitute install xbindkeys xmacro
2. Configure xbindkeys:
$ nano ~/.xbindkeysrc
#==============#
"echo 'ButtonPress 2 ButtonRelease 2' | xmacroplay :0"
c:0xE1
"echo 'KeyStrPress Control_L KeyStr KP_Add KeyStrRelease Control_L' | xmacroplay :0"
b:13
"echo 'KeyStrPress Control_L KeyStr KP_Subtract KeyStrRelease Control_L' | xmacroplay :0"
b:15
"echo 'KeyStrPress Shift_L KeyStr Right KeyStrRelease Shift_L' | xmacroplay :0"
b:17
#==============#
(you can also use "xbindkeys --defaults" to create a default config file, just remember to comment out those default settings)
Customize the setup to suit your needs -- in my case, I have assigned the thumb wheel to Ctrl-+ and Ctrl-- (enlarge/shrink fonts in Firefox, Konsole, OO.org) and the thumb wheel click to Shift-Right (handy in Konsole/Firefox to switch tabs quickly); I also set the little "search" button as middle click as I find it a lot more convenient than clicking the wheel.
The configuration basically entails two lines: the first contains the command to execute (in our case, the keys to send when a specific button is pressed) and the second line contains the trigger (in our case, the mouse button we want to assign to a task). In the above example, "c:0xE1" means "keycode 225" (hexa) -- the "search button", and "b:13" means "mouse button 13" (that's how X sees it via "xev"). Check out the xbindkeys man page or the default config file for more information.
When adding/removing keys and mouse buttons to xmacroplay, remember to always give the "xxxRelease" event also, otherwise the key/button will remain pressed and strange things will happen!
3. Test the settings:
$ xbindkeys -n -v
This should keep the program running on the terminal, and you can press the various buttons and see if they do what they should. If not, check with "xev" to see what X thinks about them.
4. Ctrl-C to stop it, then put xbindkeys in the background by running it thusly:
$ xbindkeys
5. Try various programs (Firefox, OO.org, etc.) and if satisfied with the configuration, add xbindkeys to your session startup (depends on the WM in use).
Enjoy!
=============================
Hope this helps, at least until a proper multiple-input configuration is available in KDE/Gnome (something to encompass everything from keyboards and mice to joysticks and remotes)... may take a while
P.S.: You can't do this in Windows actually. Even using the Logitech SetPoint software, you are limited in the types of commands you can assign (for example, in order to set the "Search button" to be middleclick, ironically I had to manually edit an XML file)... so Linux is more customizable, albeit not very friendly.
Regards,
Mihnea
Edited to add some configuration hints
Bookmarks