On Thu, Feb 23, 2012 at 12:22:47PM +0100, Benoit B wrote: > Bonjour à tous, > > Pour gérer la luminosité de l'écran de mon notebook, j'ai ajouté ceci > dans .xbindkeysrc : > > #Augmenter la luminosité > "xbacklight -inc 15" > XF86MonBrightnessUp > > # Diminuer la luminosité > "xbacklight -dec 15" > XF86MonBrightnessDown > [..]
J'ai un NC110, xbackilight ne marchait pas du tout pour moi donc j'ai fait un qques ligne de code pour changer la valeur dans /sys. J'ai fait un programme en C pcq on ne peut pas mettre un script suid, mais une solution via sudo aurait ete aussi bonne. Ci joint le bout de code C, a modifier selon le besoin (ou a jeter si ca ne plait pas). -- xakz
#include <stdio.h> #include <stdlib.h> #define BRIGHTNESS_FILE "/sys/class/backlight/intel_backlight/brightness" #define PRINT_OLD 1 #define BRIGHTNESS_MAX 12000 void mod_brightness(int delta); void set_brightness(int bright); int get_brightness(); int main(int ac, char *av[]) { int bright = 0; int is_delta = 0; if (ac < 2) { fprintf(stderr, "%s [+|-]VALUE\n", av[0]); exit(EXIT_FAILURE); } bright = atoi(av[1]); if (av[1][0] == '+' || bright < 0) is_delta = 1; if (is_delta) { if (bright > 0) fprintf(stderr, "Increasing brightness by %d\n", bright); else if (bright < 0) fprintf(stderr, "Decreasing brightness by %d\n", -bright); mod_brightness(bright); } else { fprintf(stderr, "Setting brightness to %d\n", bright); set_brightness(bright); } return 0; } void mod_brightness(int delta) { int bright; bright = get_brightness(); #ifdef PRINT_OLD fprintf(stderr, "Old brightness was %d\n", bright); #endif bright += delta; set_brightness(bright); } void set_brightness(int bright) { FILE *fd; if (bright < 0) bright = 0; else if (bright > BRIGHTNESS_MAX) bright = BRIGHTNESS_MAX; fd = fopen(BRIGHTNESS_FILE, "w"); if (!fd) { perror("Unable to open " BRIGHTNESS_FILE); exit(EXIT_FAILURE); } fprintf(fd, "%d\n", bright); if (ferror(fd)) { perror("Unable to write " BRIGHTNESS_FILE); exit(EXIT_FAILURE); } fclose(fd); } int get_brightness() { FILE *fd; char buffer[64]; size_t r; fd = fopen(BRIGHTNESS_FILE, "r"); if (!fd) { perror("Unable to open " BRIGHTNESS_FILE); exit(EXIT_FAILURE); } r = fread(buffer, 1, 63, fd); if (ferror(fd) || !r) { perror("Unable to read " BRIGHTNESS_FILE); exit(EXIT_FAILURE); } fclose(fd); buffer[r] = 0; return atoi(buffer); }