|
|
| Line 1: |
Line 1: |
| If you need the way to force some rotation of your [[Nokia N900|N900]] screen, this is for you.
| | #REDIRECT [[Using Fremantle widgets#Forcing screen rotation]] |
| | |
| <source lang="c">
| |
| /*
| |
| gcc rotate.c -lX11 -lXrandr
| |
| */
| |
| #include <X11/Xlib.h> | |
| #include <X11/extensions/Xrandr.h>
| |
| | |
| static void set_rotation (Rotation r_to) {
| |
| Rotation r;
| |
| int screen = -1;
| |
| XRRScreenConfiguration* config;
| |
| int current_size=0;
| |
| | |
| Display* display;
| |
| Window rootWindow;
| |
|
| |
| display = XOpenDisplay(":0");
| |
| if (display == NULL) {
| |
| return;
| |
| }
| |
| | |
| screen = DefaultScreen(display);
| |
| rootWindow = RootWindow(display, screen);
| |
| XRRRotations(display, screen, &r);
| |
| config = XRRGetScreenInfo(display, rootWindow);
| |
| current_size = XRRConfigCurrentConfiguration (config, &r);
| |
| XRRSetScreenConfig(display, config, rootWindow, current_size, r_to, CurrentTime);
| |
| }
| |
| | |
| int main (int argc, char *argv[]) {
| |
| set_rotation(RR_Rotate_90);
| |
| //set_rotation(RR_Rotate_270);
| |
| //set_rotation(RR_Rotate_180);
| |
| //set_rotation(RR_Rotate_0);
| |
| }
| |
| </source>
| |
| | |
| [[Category:Development]]
| |
| [[Category:N900]]
| |