I have switched my Macbook Pro 5.1 over to Ubuntu, because OS X Lion was dragging its heels on the 2.5-year-old hardware (sickeningly short old-hardware-support half-life... grrr)
Anyway, most of ubuntu is up and happy fine, but I want to be able to multitouch swipe my way around workspaces like you can in OS X.
Now I know that ubuntu is detecting the three-finger swipe (and indeed differentiating a 4-finger one) because it's configured to move the windows around the screen with that particular gesture.
So, how do I hook into that event, the three finger swipe, and reassign the action to moving workspaces?
So, trying Alexandre's suggestion below, I've now got a problem with touchegg.
I've tried putting in a new section in xorg.conf as suggested here (following instructions for the MBP 7.1,) but that makes this significantly worse - the clever velocity scaling goes, and the trackpad is far too responsive when just moving the cursor. The developer only provides documentation for 10.10 and 11.04, and the latter is supposed to be fully working and "automatic" - these were the instructions for 10.10.
In addition I've noticed, by running touchegg in the shell instead of a startup daemon, that it only detects 2-finger motion (both with and without the xorg hack) no higher multitouch gestures.
This is all very puzzling because, as I said, three finger gestures work, with a compiz animation (moving a non-maximised window). I guess it can't be a missing kernel module or something, since it works sometimes, so could compiz be swallowing all the events? If so, how would I test?
I've tested unity 2D vs 3D (which seems to be how you disable compiz) and partial success. With compiz disabled touchegg can see all the multitouch events of the rainbow. However, it can't seem to run anything other than the "Nautilus Drag Window" event with the three finger gesture - this implies to me that nautilus is hooking into this event a bit too low down for me to get at!
I'm marking Alexandre's answer correct, since touchegg is one way to do this within the scope of the original question. I may post a more specific question later when I've figured out how to get this working exactly as I want!