2009-12-26 13 views

risposta

7

Utilizzare la famiglia di funzioni XF86VidMode*.

#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; 
} 

Questo porta la gamma da 0,25 a 4,0 e ritorno, quindi ripristina la gamma originale.

Oppure è possibile chiamare ripetutamente lo system("xgamma -gamma %f"), con gli stessi risultati.

+0

grazie per l'esempio e il collegamento a queste funzioni –

3

di controllare la luminosità LCD:

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

L'intervallo è 1 a 8.

+0

Per la luminosità complessiva del monitor, ok (e grazie). Ma per l'impostazione della luminosità a un colore? –

+0

Non c'è '/ proc/acpi/video /' sul mio Thinkpad X61 (Debian unstable) ... – mirabilos

1

Può essere che si serve xrandr?

+0

sfortunatamente, non fa quello che mi serve ... –

+0

in questo caso Puoi farlo solo tramite soft specifico del fornitore :( –

3
xbacklight -set 80 

È necessario installare questo software dal repository. Funziona bene con la maggior parte dei laptop, almeno su ThinkPads :-)

+0

Grazie, ma ho bisogno di un modo semplice per cambiare il colore (cioè RGB) luminosità non retroilluminazione luminosità ... –