xbacklight(luminosité de l'écran) et xbindkeys sur un Samsung NC10

Le
Benoit B
Bonjour à tous,

Pour gérer la luminosité de l'écran de mon notebook, j'ai ajouté ce=
ci
dans .xbindkeysrc :

#Augmenter la luminosité
"xbacklight -inc 15"
XF86MonBrightnessUp

# Diminuer la luminosité
"xbacklight -dec 15"
XF86MonBrightnessDown

Et quand essaie le raccourci clavier Fn+flèche bas ou Fn+flèche haut,
l'écran se met à clignoter et le processus se reproduit de manière
anarchique, alors que je n'ai actionné qu'un fois la combinaison de
touche.
$ ps
3689 ? 00:00:00 sh
3690 ? 00:00:00 xbacklight
3692 ? 00:00:00 sh
3694 ? 00:00:00 sh
3695 ? 00:00:00 xbacklight
3696 ? 00:00:00 xbacklight
3702 ? 00:00:00 sh
3703 ? 00:00:00 xbacklight
3705 ? 00:00:00 sh
3707 ? 00:00:00 sh
3708 ? 00:00:00 xbacklight
3710 ? 00:00:00 xbacklight
3711 ? 00:00:00 sh
3712 ? 00:00:00 xbacklight
3714 ? 00:00:00 sh
3715 ? 00:00:00 xbacklight
3720 ? 00:00:00 sh
3722 ? 00:00:00 sh
3723 ? 00:00:00 xbacklight
3725 ? 00:00:00 xbacklight
3726 ? 00:00:00 sh
3727 ? 00:00:00 xbacklight
3729 ? 00:00:00 sh
3730 ? 00:00:00 xbacklight
3738 ? 00:00:00 sh
3739 ? 00:00:00 xbacklight

Pour m'assurer que j'actionne une seule fois la combinaison, j'ai mis
xterm à la place.
#Augmenter la luminosité
"xterm &"
XF86MonBrightnessUp

Il n'y a bien qu'une seule fenêtre de xterm qui s'affiche.

Puis j'ai réessayé avec ou sans &
#Augmenter la luminosité
"xbacklight -inc 15 &"
XF86MonBrightnessUp

Même problème (Sauf qu'il n'y a peut-être pas de sh pour chaque
processus xbacklight).

Qui peut m'aider résoudre ce problème de multiplication de processus
avec xbacklight ?

Mon objectif est d'utiliser openBox(config légère et indépendante d'u=
n
gestionnaire de bureau).

Merci d'avance.

--
Benoît


Ps.
Je pourrais utiliser l'acpi

echo 5 > /sys/class/backlight/acpi_video0/brightness

Mais c'est + compliqué :
a) il faut voir combien il y a dans
/sys/class/backlight/acpi_video0/actual_brightness

b) augmenter (flèche haut) ou diminuer(flèche bas) de 1 et ne pas dép=
asser 0 ou
/sys/class/backlight/acpi_video0/max_brightness

c) le tout en root donc utiliser un bit (je ne sais plus quoi) sur mon
script ou l'ajouter dans
/etc/sudoers

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers debian-user-french-REQUEST@lists.debian.org
En cas de soucis, contactez EN ANGLAIS listmaster@lists.debian.org
Archive: http://lists.debian.org/CAK_7-eTnMqCUYdJWrnp2YbbQnkJ=0VNSXVHOcKcnioX1cBq0ZA@mail.gmail.com
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
xakz
Le #24276791
--0OAP2g/MAC+5xKAE
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: inline
Content-Transfer-Encoding: 8bit

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

--0OAP2g/MAC+5xKAE
Content-Type: text/x-csrc; charset=us-ascii
Content-Disposition: attachment; filename="setbacklight.c"


#include #include
#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 [+|-]VALUEn", 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 %dn", bright);
else if (bright < 0)
fprintf(stderr, "Decreasing brightness by %dn", -bright);
mod_brightness(bright);
}
else
{
fprintf(stderr, "Setting brightness to %dn", bright);
set_brightness(bright);
}

return 0;
}

void mod_brightness(int delta)
{
int bright;

bright = get_brightness();
#ifdef PRINT_OLD
fprintf(stderr, "Old brightness was %dn", 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, "%dn", 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);
}




--0OAP2g/MAC+5xKAE--

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/
Publicité
Poster une réponse
Anonyme