Instead of using a designated application to configure natural scrolling, a script can be made to reverse the scrolling directions - both on the vertical and the horizontal axis.
First, obtain the
xinput prop related to the scrolling distance (note the variables wrapped in angle brackets):
$ xinput list
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ SynPS/2 Synaptics TouchPad id=<TOUCHPAD_ID> [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
Fetch the appropriate values for that prop:
$ xinput list-props <TOUCHPAD_ID> | grep "Scrolling Distance"
Synaptics Scrolling Distance (<DISTANCE_KEY>): <V_DISTANCE>, <H_DISTANCE>
Synaptics Circular Scrolling Distance (301): 0.100000
Than, create the script file to apply the reversed directions, by negating the values for vertical / horizontal distance. Feed the variables returned earlier:
xinput set-prop <TOUCHPAD_ID> <DISTANCE_KEY> -<V_DISTANCE> -<H_DISTANCE>
nautilus -n &
Grant the file with execution permissions, set it to run at startup, and there you have it.
This method was ported from Andy C.'s old web blog, to create a self contained answer. Thank you, Andy, for providing an elegant, system wide solution.
It seems that calling nautilus is breaking the script on 13.04. Omitting the two calls to nautilus solves it.