hackwerk.de erlebnisse eines bastlers

August 22, 2013

automatisches bildschirmdrehen

Filed under: code — max @ 9:58 pm

dieses kleine programm dreht den x11 desktop, der auf einem ibm notebook mit eingebautem beschleunigungs-sensor läft, sobald das notebook gedreht wird. so kann man beispielsweise din4-seiten besser skaliert darstellen und lesen. außerdem isses cool! 😉 wenn man das ganze programm compiled und nach /home/USER/.kde/Autostart/* kopiert, wird es mit jedem kde start ausgeführt! hier das programm:

#include <stdio.h>

int main(){
	int x,y,pos_x;
	int x_cal, y_cal;

	//pos 1= links; 0=mitte ; 2 = rechts
	int pos=0;

	FILE *sensor;

	if(!(sensor=fopen("/sys/devices/platform/hdaps/calibrate", "r"))){
		printf("nkonnte den sensor nicht finden. breche ab!n");
		return 1;
		}
	fscanf(sensor, "(%d,%d)", &x_cal, &y_cal);
	fclose(sensor);

	for(;;){
		sensor = fopen( "/sys/devices/platform/hdaps/position", "r" );

		if(!sensor){
			printf("nkonnte den sensor nicht finden. breche ab!n");
			return 1;
			}

		fscanf(sensor, "(%d,%d)", &x, &y);
		//printf("n %i %i",x-x_cal,y-y_cal);

		fclose(sensor);

		pos_x=x-x_cal;
		if(pos_x>130 && pos!=1){
			pos=1;
			system("xrandr -o right");
			}
		else if(pos_x<-130 && pos!=2){
			pos=2;
			system("xrandr -o left");
			}
		else if(pos!=0 && pos_x>-130 && pos_x<130){
			pos=0;
			system("xrandr -o normal");
			}
		usleep(50000);
		}
	}

 

Keine Kommentare »

No comments yet.

RSS feed for comments on this post. TrackBack URL

Leave a comment

Powered by WordPress