OP i'm glad you asked, i recently discovered the joys of 'xboxdrv'
basically xboxdrv allows you to map any key on a gamepad to any mouse button, keyboard button (including media centre keys! like zoom in or forward/back) or even a combination of buttons to mimic keyboard shortcuts
it's really good software, slightly complicated, though i managed to pick it up when stoned.
basically how it works is: you have to map the keys to the xbox controller button equivalents, then you map these xbox equivalents to any key you like.
you can either set this up in a configuration file, then you load the configuration driver with xboxdrv. or you do it with a large number of arguments from the command line, which is better for copy&paste copying from online, but not neat for customizing. you should also know that the configuration file, unfortunately, has to follow somewhat of a template - so find one online, then edit it.
for more info one of the best resources is, as usual, the arch wiki:
wiki.archlinux.org/index.php/Gamepad
one idea i've seen is to map one thumbstick to a high sensitivity mouse setting, then the other mouse thumbstick to a much lower sensitivity. but what i'm doing personally, is one thumbstick for mouse, the other thumbstick for the up/down/left/right keyboard buttons, for web browsing. i then have the R1 and L1 buttons for switching tabs, a button for closing a tab, another for zooming in and out, another for volume, another for fullscreen - basically my shortcuts cater to web browsing from a sofa without a flat surface. but really you may aswell just map all the things you can't do on a keyboard, whereas i have actually duplicated some things i can already do on a keyboard, though i have only just started using xboxdrv.
as for those thinkpad mini red mouse buttons - they're neat and small, but overall annoying.