Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 03/04/2006, à 15:32

trashie

[Astuce] Boutons spéciaux (ACPI) ASUS M2N (M2400N)

Bonjour,

Je fais part ici de ce que j'ai pu apprendre en consultant forums et autres sites internets (désolé je ne me rappelle plus lesquels, aussi si vous savez, postez les sources !) sur la manière d'activer les boutons spéciaux pour les portables ASUS M2N series (en fait j'ai essayé sur le mien qui est un M2400N) : volume, lecture /pause, suivant (pour un lecteur multimedia), ou bien lancer firefox...

Les dossiers concernés sont "/etc/acpi" et "/etc/acpi/events".
Mon installation d'Ubuntu installe par défaut le package nécessaire acpi-support (qui contient les fichiers nécessaires pour les portables ASUS). Si ce n'est pas le cas pour vous, installez-le.

# apt-get install acpi-support

0) [OPTIONNEL] Récupération des "key id" des touches concernées

IMPORTANT : les key id des touches spéciales de mon portable devraient être les mêmes que pour les autres M2N, cependant vous pouvez verifier en faisant comme suit :

* tuer le démon acpi (l'arrêter par /etc/init.d/acpid stop ne suffit pas !) :

$ ps -fA | grep acpid
$ sudo kill -15 id_de_acpid

* déterminer les "key id", qui sont les identifiants acpi des touches et boutons de votre PC.

# cat /proc/acpi/event

Vous tapez alors sur une touche spéciale, et quelque chose de se genre apparait :
hotkey ATKD 00000051 00000000

Dès lors que vous aurez noté toutes les key id de vos boutons favoris, vous pouvez faire un Ctrl+C pour reprendre la main dans le terminal.

1) Fichiers d'association d'action aux boutons

Il faut maintenant editer les fichiers situés dans le répertoire "/etc/acpi/events". Ils contiennent les actions à exécuter lorsqu'un bouton est préssé. Ceux qui nous intéressent, sont les fichiers commençant par "asus-". On pourra en créér d'autres si besoin est.

* En premier (comme toute configuration sous linux) il faut sauvegarder les fichiers que l'on va modifier :

$ mkdir -p ~/asus/events
# cp /etc/acpi/event/asus* /home/votre_login/asus/events/.
# cp /etc/acpi/asus* /home/votre_login/asus/.

* Ensuite l'édition des dits fichiers.

# cd /etc/acpi/events

Par exemple, le fichier "asus-internet" ressemble à ceci :

event=hotkey ATKD 00000051
action=/etc/acpi/asus-internet.sh

Vous remarquez donc les deux choses importantes de ce fichier : la "key id" que vous avez relevé (correspondant à la touche internet des ASUS M2N series; notez aussi que seule la première série de chiffres est donnée : il ne faut pas mettre la seconde série de 8 chiffres car sinon la touche ne fonctionnera pas), et l'emplacement du script qui s'exécutera quand la touche sera pressée).

Faites de même avec les autres touches. Moi j'ai eu besoin de modifier les fichiers suivants (les autres je pense qu'il n'y a pas besoin de les modifier) :

asus-mail                           (key id = ... 00000050 ...)                    (script = /etc/acpi/asus-mail.sh)
asus-media-play-pause     (key id = ... 00000045 ...)                    (script = /etc/acpi/asus-lecture.sh)
asus-volume-up                 (key id = ... 00000030 ...)                    (script = /etc/acpi/asus-volup.sh)
asus-internet                     (key id = ... 00000051 ...)                    (script = /etc/acpi/asus-internet.sh)
asus-media-prev                (key id = ... 00000040 ...)                    (script = /etc/acpi/asus-precedent.sh)
asus-volume-down            (key id = ... 00000031 ...)                    (script = /etc/acpi/asus-voldown.sh)
asus-media-next                (key id = ... 00000041 ...)                    (script = /etc/acpi/asus-suivant.sh)
asus-media-stop                (key id = ... 00000043 ...)                    (script = /etc/acpi/asus-stop.sh)

et deux autres que j'ai créé (deux boutons qui sous Windows sont configurables)

asus-perso01                (key id = ... 00000052 ...)                    (script = /etc/acpi/asus-perso01.sh)
asus-perso02                (key id = ... 00000053 ...)                    (script = /etc/acpi/asus-perso02.sh)

2) Script d'exécution

Il faut maintenant créér (ou modifier) les fichiers script du répertoire "/etc/acpi" pour assigner l'action que l'on veut à un bouton :

# cd /etc/acpi

IMPORTANT : il faut savoir que chacun fait ce qu'il veut en ce qui concerne sese scripts. Je vous livre ici les miens qui ne sont pas parfaits (surtout en ce qui concerne le media player), mais cela peut intéresser certains d'entre vous...

* internet

# vim asus-internet.sh

NB : j'utilise l'editeur de texte VIM, mais vous pouvez utiliser celui que vous voulez wink

#!/bin/bash
# Ouvre une nouvelle fenêtre Firefox pour l'utilisateur qui le demande.

# détermine qui demande d'ouvrir Firefox
. /usr/share/acpi-support/power-funcs

for x in /tmp/.X11-unix/*; do
    displaynum=`echo $x | sed s#/tmp/.X11-unix/X##`
    getXuser;
    if [ x"$XAUTHORITY" != x"" ]; then
        export DISPLAY=":$displaynum"
    fi
done
getXuser;
# ouvre pour l'utilisateur. Changer "firefox" en "konqueror", si vous préférez utiliser konqueror par
# exemple.
sudo -u $user firefox &

Il faut maintenant donner les bons droits au fichier.

# chmod 755 asus-internet.sh

Faire ainsi pour tous les autres fichiers (droits...).

* mail (fichier "asus-mail.sh")

#!/bin/bash
# Ouvre Mozilla Thunderbird pour l'utilisateur qui le demande

. /usr/share/acpi-support/power-funcs

for x in /tmp/.X11-unix/*; do
    displaynum=`echo $x | sed s#/tmp/.X11-unix/X##`
    getXuser;
    if [ x"$XAUTHORITY" != x"" ]; then
        export DISPLAY=":$displaynum"
    fi
done
getXuser;
sudo -u $user mozilla-thunderbird &

volume up (fichier "asus-volup.sh")

Pour que ce script fonctionne, il faut installer le package "aumix". Il permet d'augmenter le son de 5%. Vous pouvez changer cette valeur, mais dans ce cas penser à changer 95 en "100 - valeur_choisie"

#!/bin/bash
# Augmente le volume de 5 %
# nécessite que le package 'aumix' soit installé.

vol=`aumix -v q | awk -F ', ' '{print $2}'`
if [ $vol -gt 95 ] ; then
vol=100
else
vol=`expr $vol + 5`
fi

aumix -v $vol

volume down (fichier "asus-voldown.sh")

#!/bin/bash
# Baisse le volume de 5 %
# nécessite que le package 'aumix' soit installé.

vol=`aumix -v q | awk -F ', ' '{print $2}'`
if [ $vol -lt 5 ] ; then
vol=0
else
vol=`expr $vol - 5`
fi

aumix -v $vol

* Lecture / pause de VLC (fichier "asus-lecture.sh")

Ce script contrôle VLC par interface web (il faut donc VLC installé wink). Vous pouvez l'adapter à un autre player, ou même à une autre manière de contrôler VLC (telnet, rc...). Cependant c'est la seule manière que j'ai trouvé pour contrôler VLC (avec un problème : lorsqu'on utilise ces scripts de contrôle de VLC, des fichiers html apparaissent dans votre home... mais vous pouvez les effacer à tout moment sans aucun danger...).

VLC doit donc être lancé avec l'option "--extraintf http" pour que ça marche (que ce soit le lanceur KDE, GNOME, ou en ligne de commande !)

** edit **
J'ai rajouté la possibilité de lancer VLC par le bouton lecture, s'il ne l'est pas déjà.
**        **
-------------
** EDIT **  J'ai rajouté des scripts (à tester !) pour contrôler Amarok.
-------------

VLC

#!/bin/bash
# Lecture / Pause de VLC (necessite de lancer vlc avec l'option '--extraintf http')

res_vlc=`ps -fA | grep -c 'vlc'`
if [ $res_vlc -lt 2 ]; then
. /usr/share/acpi-support/power-funcs

for x in /tmp/.X11-unix/*; do
    displaynum=`echo $x | sed s#/tmp/.X11-unix/X##`
    getXuser;
    if [ x"$XAUTHORITY" != x"" ]; then
        export DISPLAY=":$displaynum"
    fi
done
getXuser;
sudo -u $user wxvlc --extraintf http &
else
        if [ '$asusmedia' != 'lecture' ]; then
        asusmedia=pause
        wget http://localhost:8080/?control=pause
        else
        asusmedia=lecture
        wget http://localhost:8080/?control=play
        fi
fi

AMAROK

#!/bin/bash
# Lecture / Pause d'AMAROK

res_amarok=`ps -fA | grep -c 'amarok'`
if [ $res_amarok -lt 2 ]; then
. /usr/share/acpi-support/power-funcs

for x in /tmp/.X11-unix/*; do
    displaynum=`echo $x | sed s#/tmp/.X11-unix/X##`
    getXuser;
    if [ x"$XAUTHORITY" != x"" ]; then
        export DISPLAY=":$displaynum"
    fi
done
getXuser;
sudo -u $user amarok &
else
        if [ '$asusmedia' != 'lecture' ]; then
        asusmedia=pause
        amarok --pause
        else
        asusmedia=lecture
        amarok --play
        fi
fi

Piste suivante (fichier "asus-suivant.sh")

VLC

#!/bin/bash
# Joue la piste suivante de VLC (necessite de lancer vlc avec l'option '--extraintf http')

wget http://localhost:8080/?control=next

AMAROK

#!/bin/bash
# Joue la piste suivante d'AMAROK

amarok --next

Piste précédente (fichier "asus-precedent.sh")

VLC

#!/bin/bash
# Joue la piste précédente de VLC (necessite de lancer vlc avec l'option '--extraintf http')

wget http://localhost:8080/?control=previous

AMAROK

#!/bin/bash
# Joue la piste précédente d'AMAROK

amarok --previous

Stoppe la lecture de VLC (fichier "asus-stop.sh")

VLC

#!/bin/bash
# Stoppe la lecture de VLC (necessite de lancer vlc avec l'option '--extraintf http')

wget http://localhost:8080/?control=stop

AMAROK

#!/bin/bash
# Stoppe la lecture d'AMAROK

amarok --stop

Voilà ! Il reste maintenant à relancer le démon acpid et à profiter des boutons (vous avez certainement remarqué que je laisse libre cours à votre imagination pour les 2 touches "persos";))

# /etc/init.d/acpid restart

Dernière modification par trashie (Le 23/04/2006, à 13:37)


"Que d'hommes se pressent vers la lumière non pas pour voir mieux, mais pour mieux briller." [Friedrich Nietzsche]

Hors ligne

#2 Le 03/04/2006, à 15:46

SamheG

Re : [Astuce] Boutons spéciaux (ACPI) ASUS M2N (M2400N)

Je crois que tu m'as l'air partie pour faire également la version pour le wiki wink

Beau boulot en tout cas ... mais si j'ai pas de M2N ! tongue

Hors ligne

#3 Le 06/04/2006, à 19:08

trashie

Re : [Astuce] Boutons spéciaux (ACPI) ASUS M2N (M2400N)

Salut

Je viens juste de rajouter le lancement de VLC, lorsqu'on appuie sur le bouton "lecture" et que VLC n'est pas déjà lancé.

Par ailleurs, toutes ces astuces sont utilisables pour d'autres portables que les ASUS...

Mathieu

Dernière modification par trashie (Le 06/04/2006, à 19:52)


"Que d'hommes se pressent vers la lumière non pas pour voir mieux, mais pour mieux briller." [Friedrich Nietzsche]

Hors ligne

#4 Le 07/04/2006, à 01:08

Ju.

Re : [Astuce] Boutons spéciaux (ACPI) ASUS M2N (M2400N)

C'est super ce truc...

Bien joue.. .c'est propre aux asus ? (je veux dire si on remplace les occurences de asus par ibm, ca marche aussi ?)
Si oui http://doc.ubuntu-fr.org/materiel/liste_portables/asus


Have Fun !

Conduite à tenir face aux trolls

Hors ligne

#5 Le 07/04/2006, à 10:00

trashie

Re : [Astuce] Boutons spéciaux (ACPI) ASUS M2N (M2400N)

Salut,

He bien non ce n'est pas propre aux Asus. Tu peux adapter la démarche à IBM (ou tout autre portable avec des boutons spéciaux). Le seul truc c'est que les "key id" que je donne sont ceux des Asus M2N series, mais il suffit que tu fasses ce qui est écrit dans la partie "0) [OPTIONNELLE]", et alors il te suffira de changer les "key  id " dans les fichiers du répertoire "/etc/acpi/events" (tu peux bien sûr les mettre dans "ibm-truc", plutôt que dans "asus-truc", et de même pour les scripts shell (ie. "asus-truc.sh" -> "ibm-truc.sh")).


Le tout c'est que tu sois cohèrent avec ce que tu fais.

ex :
* tu as un bouton "volume up" sur ton IBM. Tu détermines donc sa "key id" grâce à la partie 0). Admettons pour l'exemple que ce soit "hotkey IBMD 00000067"
* tu crées un fichier spécial (s'il n'existe pas déjà) : sudo vim /etc/acpi/events/ibm-volume-up .
Dans ce fichier tu marqueras qqch comme ça :

event=hotkey IBMD 00000067
action=/etc/acpi/ibm-volup.sh

* tu crées le fichier script nécessaire : sudo vim /etc/acpi/ibm-volup.sh . Dans ce fichier tu peux recopier mot pour mot (sans rien changer du tout) les scripts correspondant que j'ai donné dans la partie 3).


Voilà, j'espère avoir été clair... @+

Mathieu.

Dernière modification par trashie (Le 07/04/2006, à 10:02)


"Que d'hommes se pressent vers la lumière non pas pour voir mieux, mais pour mieux briller." [Friedrich Nietzsche]

Hors ligne

#6 Le 09/04/2006, à 23:03

trashie

Re : [Astuce] Boutons spéciaux (ACPI) ASUS M2N (M2400N)

Salut à tous,


Bon, j'essaye d'améliorer mes scripts... mais j'ai toujours des petits problèmes. Vous avez dû remarquer (pour ceux qui ont essayé mes conf de boutons) que lorqu'on redémarre le PC, il faut redémarrer à la main le démon acpid pour que les boutons "internet" et "mail" fonctionnent :

$ sudo /etc/init.d/acpid restart

Je n'en connais pas la cause, mais bon.
J'ai donc essayé une manière plus conventionnelle de lancer ces deux applications en changeant les scripts de la manière suivante (ex. pour "asus-internet.sh") :

#!/bin/bash
# Ouvre une nouvelle fenêtre Firefox pour l'utilisateur qui le demande.

. /usr/share/acpi-support/power-funcs

for x in /tmp/.X11-unix/*; do
    displaynum=`echo $x | sed s#/tmp/.X11-unix/X##`
    getXuser;
    if [ x"$XAUTHORITY" != x"" ]; then
        export DISPLAY=":$displaynum"
    fi
done
getXuser;
sudo -u $user firefox &

Si on exécute ce code dans un terminal (ou bien même en lançant le script directement : $ /etc/acpi/asus-internet.sh), cela marche parfaitement !

MAIS, quand on utilise le bouton (qui ne fait que lancer ce script normalement), cela régle le problème précédent (à savoir le fonctionnement du bouton lors d'un redémarrage), MAIS firefox se lance en anglais !!! (cependant il est ouvert en tant que bon utilisateur, et avec les préférences de celui qui lance le prog).
Je ne comprends pas ce que je fais de mal pour que ça ne marche pas comme prévu... si donc quelqu'un a une idée, je suis preneur.

Merci et @+

-----------------------------------------
EDIT : début SOLUTION ?
-----------------------------------------

Il semble que le problème de langue (et donc tous les problèmes ?) soit réglé par un redémarrage du démon acpid après modification des scripts.

Donc remplacer tous les user=`finger| grep -m1 ":$displaynum" | awk '{print $1}'` dans les scripts précédent (même pour VLC), par des :

. /usr/share/acpi-support/power-funcs

for x in /tmp/.X11-unix/*; do
    displaynum=`echo $x | sed s#/tmp/.X11-unix/X##`
    getXuser;
    if [ x"$XAUTHORITY" != x"" ]; then
        export DISPLAY=":$displaynum"
    fi
done
getXuser;

Ce sera plus propre (la manière de coder les scripts), mais j'ai bien peur que l'on doive (pour que la langue soit bonne) redémarrer le démon acpid après chaque redémarrage du PC... DES IDEES ?????
-----------------------------------------


Mathieu

Dernière modification par trashie (Le 09/04/2006, à 23:51)


"Que d'hommes se pressent vers la lumière non pas pour voir mieux, mais pour mieux briller." [Friedrich Nietzsche]

Hors ligne

#7 Le 23/04/2006, à 13:39

trashie

Re : [Astuce] Boutons spéciaux (ACPI) ASUS M2N (M2400N)

Salut à tous,


Juste un petit message pour dire que j'ai rajouté la possibilité de contrôler AMAROK... Cela reste à tester, mais ça devrait marcher.

Hésitez pas à faire des commentaires, et à poster des idées, des scripts, ou à à signaler des erreurs (ou même des optimisations !).

@+

Mathieu


"Que d'hommes se pressent vers la lumière non pas pour voir mieux, mais pour mieux briller." [Friedrich Nietzsche]

Hors ligne

#8 Le 04/03/2007, à 23:48

pfdm

Re : [Astuce] Boutons spéciaux (ACPI) ASUS M2N (M2400N)

Bonjour,
Vous avez des news par rapport au fait qu'il faille relancer le demon a chaque connexion?? Les touches pour le net et le mail fonctionnent ,mais pas les touches media.
Ps: J'ai  un M6

Merci

#9 Le 05/03/2007, à 07:36

trashie

Re : [Astuce] Boutons spéciaux (ACPI) ASUS M2N (M2400N)

Bonjour,

Je n'utilise plus mes scripts, car il y a mieux, plus conviviale, et certainement plus propre : keytouch. Il permet de faire ce que l'on veut avec ses touches multimedia (il est facile d'ajouter et de configurer son clavier de portable s'il n'est pas dans la liste du programme).

Pour les touches media (en façade pour moi), quand j'utilisais mes scripts cela fonctionnait sans problème, mais depuis que je suis passé sous Edgy, les 2 touches de config personnelles (à côté du net et mail pour moi) ne fonctionne plus.

Donc solution : Keytouch (+Keytouch config). Chercher sur Google, je crois que le programme n'est pas dans les dépôts.

@+

Mathieu


"Que d'hommes se pressent vers la lumière non pas pour voir mieux, mais pour mieux briller." [Friedrich Nietzsche]

Hors ligne

#10 Le 05/03/2007, à 20:42

pfdm

Re : [Astuce] Boutons spéciaux (ACPI) ASUS M2N (M2400N)

Bonjour,
merci je test tout de suite . Il est dans mes depots cool