Here's a quick and simple C program that reads a packet from the accelerometer once per second, and rotates the screen to a new orientation if the orientation has changed.
I don't mean this to conflict with Paul's excellent work on Gestures; my reason for writing it is so that it can be used as an always-on daemon in the OM distributions. (Full gesture interpretation is more CPU heavy and requires reading data more often than once per second, so perhaps that will be done on-demand instead of always-on.)
There's an ARM binary here (chmod a+x rotate && ./rotate): http://dev.laptop.org/~cjb/rotate
update by Kurt Van Dijck
I modified the above program to use read (not fread) with struct input_event datastructures. The simplifies the detection of current position. No sleeps are necessary, no incomplete reads, .... code is: http://www.ecirc.net/openmoko/rotate.c
invoke with: rotate [ DEVICE FILE [landscape]]
the second paraemeter is to allow landscape rotation. On my system, the glamo graphics driver eats all cpu when rotated in landscape.
omnewrotate at code.google.com
- author: Rui Miguel Silva Seabra <rms_ghaaaNoSpamPlease_at_1407_org>
- related blog posts:
- source codes http://code.google.com/p/omnewrotate/ (there are problems with projects.openmoko.org )
- Arm releases built
accel-rotate at projects.openmoko.org
Rotates the screen according to the position of the Neo FreeRunner.
- Om2008.x package:
opkg install http://projects.openmoko.org/frs/download.php/455/accel-rotate_0.41_armv4t.ipk
- Qt Extended 4.4.1 package:
opkg install http://projects.openmoko.org/frs/download.php/456/accel-rotate-qte_0.41_armv4t.ipk
- Source codes are in subversion, developers are welcome
- better heuristics - any ideas how to do this well? please use discussion on this wiki.
- disabling on screensaver
-  how to display data from accelerometers on Desktop with gnuplot (there is a few of czech text, but there is also youtube video).