2009-12-26 3 views

Antwort

7

Verwenden Sie die XF86VidMode* Familie von Funktionen.

#include <X11/Xlib.h> 
#include <X11/extensions/xf86vmode.h> 
#include <math.h> 
#include <stdio.h> 
#include <stdlib.h> 
#include <unistd.h> 

int main() { 
    Display *display; 
    int screen; 
    int major, minor; 
    int i; 
    XF86VidModeGamma orig; 

    display = XOpenDisplay(NULL); 
    if (!display) return -1; 
    screen = DefaultScreen(display); 
    if (!XF86VidModeQueryVersion(display, &major, &minor) 
      || major < 2 || major == 2 && minor < 0 
      || !XF86VidModeGetGamma(display, screen, &orig)) { 
     XCloseDisplay(display); 
     return -1; 
    } 

    for (i = 0; i <= 32; i++) { 
     XF86VidModeGamma gamma; 
     gamma.red = exp2f(2 - fabs(i - 16)/4); 
     gamma.green = gamma.red; 
     gamma.blue = gamma.red; 
     if (!XF86VidModeSetGamma(display, screen, &gamma)) break; 
     printf("gamma: %f %f %f", gamma.red, gamma.green, gamma.blue); 
     if (!XF86VidModeGetGamma(display, screen, &gamma)) break; 
     printf(" -> %f %f %f\n", gamma.red, gamma.green, gamma.blue); 
     sleep(1); 
    } 
    XF86VidModeSetGamma(display, screen, &orig); 
    XF86VidModeGetGamma(display, screen, &orig); 

    XCloseDisplay(display); 
    return 0; 
} 

Dies bringt das Gamma von 0,25 bis 4,0 und zurück, und stellt dann das ursprüngliche Gamma wieder her.

Oder Sie könnten einfach wiederholt system("xgamma -gamma %f") anrufen, mit ziemlich den gleichen Ergebnissen.

+0

danke für das Beispiel und die Verbindung zu diesen Funktionen –

3

Um die LCD-Helligkeit steuern:

echo 4 > /proc/acpi/video/GFX0/LCD/brightness 

Der Bereich ist 1 bis 8

+0

Für die gesamte Bildschirmhelligkeit, ok (und danke). Aber für die Einstellung der einfarbigen Helligkeit? –

+0

Es gibt kein '/ proc/acpi/video /' auf meinem Thinkpad X61 (Debian unstable) ... – mirabilos

1

Kann Sie xrandr werden?

+0

leider tut es nicht, was ich brauche ... –

+0

in diesem Fall Sie können es nur über herstellerspezifische Soft tun :( –

3
xbacklight -set 80 

Sie müssen diese Software von Ihrem Repository installieren. Funktioniert gut auf den meisten Laptops, zumindest auf ThinkPads :-)

+0

Danke, aber ich brauche eine einfache Möglichkeit, Farbe zu ändern (das ist RGB) Helligkeit nicht Hintergrundbeleuchtung Helligkeit ... –

Verwandte Themen