2009-12-26 13 views
5

पर रंग चमक सेट करना X.Org/Linux रंग चमक सेट करने के लिए कोई कमांड (या एपीआई) है?लिनक्स/एक्सओआर

दूसरे शब्दों में, मैं xgamma आदेश के रूप में के रूप में आसान है, लेकिन आरजीबी चमक वास्तविक समय को बदलने के लिए कुछ की जरूरत है।

क्या यह संभावना है?

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

रेंज है 1 8.

उत्तर

7

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

यह गामा को 0.25 से 4.0 और पीछे लाता है, और फिर मूल गामा को पुनर्स्थापित करता है।

या आप बार-बार उसी परिणाम के साथ system("xgamma -gamma %f") पर कॉल कर सकते हैं।

+0

उदाहरण के लिए धन्यवाद और इन कार्यों के लिंक –

3

एलसीडी चमक नियंत्रित करने के लिए?

+0

समग्र मॉनीटर चमक के लिए, ठीक है (और धन्यवाद)। लेकिन एकल रंग की चमक स्थापित करने के लिए? –

+0

मेरे थिंकपैड एक्स 61 (डेबियन अस्थिर) पर कोई '/ proc/acpi/video /' नहीं है ... – mirabilos

1

हो सकते हैं आप xrandr जरूरत के लिए:

+0

दुर्भाग्यवश, ऐसा नहीं करता है जो मुझे चाहिए ... –

+0

इस मामले में आप केवल विक्रेता-विशिष्ट मुलायम के माध्यम से ऐसा कर सकते हैं :( –

3
xbacklight -set 80 

आपको इस सॉफ्टवेयर को अपने भंडार से स्थापित करना होगा। अधिकतर लैपटॉप पर कम से कम काम करता है, कम से कम थिंकपैड पर :-)

+0

धन्यवाद लेकिन मुझे रंग बदलने के लिए एक आसान तरीका चाहिए (वह आरजीबी है) चमक चमकदार चमक नहीं है ... –