|
|
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]]
| + | |