2009-12-26 6 views

Trả lời

7

Sử dụng các dòng chức năng 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; 
} 

Điều này mang lại gamma từ 0,25 đến 4,0 và ngược lại, sau đó khôi phục gamma ban đầu.

Hoặc bạn có thể liên tục gọi system("xgamma -gamma %f"), với khá nhiều kết quả tương tự.

+0

cảm ơn bạn ví dụ và liên kết đến các chức năng này –

3

Để kiểm soát độ sáng màn hình LCD:

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

Phạm vi đó là từ 1 tới 8.

+0

Đối với độ sáng màn hình tổng thể, ok (và cảm ơn). Nhưng để thiết lập độ sáng một màu? –

+0

Không có '/ proc/acpi/video /' trên Thinkpad X61 của tôi (Debian không ổn định) ... – mirabilos

1

có thể bạn cần xrandr?

+0

thật không may, nó không làm những gì tôi cần ... –

+0

trong trường hợp này Bạn chỉ có thể làm điều đó thông qua nhà cung cấp mềm cụ thể :( –

3
xbacklight -set 80 

Bạn phải cài đặt phần mềm này từ kho lưu trữ của mình. Hoạt động tốt trên hầu hết các máy tính xách tay, ít nhất là trên ThinkPads :-)

+0

Cảm ơn nhưng tôi cần một cách đơn giản để thay đổi độ sáng màu (đó là RGB) không độ sáng đèn nền ... –