Touche multimedia compaq R4000 et HP ZV6000

Bonjour,
J’ai créé un script pour faire fonctionner les touches multimedia sur les portables compaqR4000 et HP ZV6000 (ces touches fonctionnent dans quelques distribution mais en générale elles font planté le système).

L’avantage de mon petit script c’est qu’en plus de faire fonctionner correctement les touches de Volumes,il permet de les utiliser dans les application en plein écran.

Mon script est en python ,il utilise python-dbus pour capter l’utilisation des touches et amixer pour controler le son.J’ai créé un paquets .deb pour ceux qui voudrait l’essayer.

l’installation se fait a partir du paquet, n’oublié pas de supprimer les raccourcis clavier monter et baisser le volume de votre gestionnaire de fenêtre.Le script ne demarre pas tout seul il faut donc le lancer avec cette commande:

Sur mon PC pour démarrer le script avec ma session, j’ai ajouté ‘/usr/bin/pdb_soundctrl &’ dans mon $HOME/.profile

Mes questions:

  • Quelqu’un pourrait-il essayer ce script sur un HP ZV6000 et me dire s’il fonctionne?
  • Si quelqu’un pouvai essayer le script sur une machine qui ne serai pas un R4000 ou un ZV6000 et me dire si les touches monter et baisser le volume fonctionne en plein-écran.
  • Quel commande utiliser pour supprimer les raccourcis clavier existant ( sous Gnome et Xfce) pour que ceux-ci soient supprimer à l’install (Je pense régler ça dans le “postinst” du paquet)?
  • Quel est la meilleur méthode pour activer le script au démarrage de la session ?

Salut

Sous gnome, je propose : gnome-keybinding-properties

soit l’appeler depuis le fichier /etc/rc.local
soit (sous gnome) l’appeler depuis les applications de demarrage (système - preferences - applications au demarrage)

:smt006

J’ai pas précisé dans mon premier post ,je suis sous Debian Lenny.
Pour “gnome-keybinding-properties” ,je viens de regarder dans synaptic je l’ai pas dans mes dépots.
Le truc c’est que je pense qu’il y a sûrement une commande qui doit pouvoir le faire et qui fonctionnera aussi bien sous debian lenny que sous ubuntu.

Pour le démarrage de la session,je vais me pencher sur le /etc/rc.local.

Merci de ton aide.

en fait, gnome-keybinding-properties, c’est pas un paquet, mais une commande (qui fait partie d’un autre paquet de gnome, certainement, mais je ne sais pas lequel).
Essaye de la taper dans un terminal, voir si tu l’as sur lenny (moi je suis sur sid et squeeze)
:smt111

[quote=“dric64”]en fait, gnome-keybinding-properties, c’est pas un paquet, mais une commande (qui fait partie d’un autre paquet de gnome, certainement, mais je ne sais pas lequel).
Essaye de la taper dans un terminal, voir si tu l’as sur lenny (moi je suis sur sid et squeeze)
:smt111[/quote]
Petit “truc” pour savoir a quel paquet appartient x commande:

$ apt-file search gnome-keybinding-properties
gnome-control-center: /usr/bin/gnome-keybinding-properties

On peut aussi utiliser “dpkg -S gnome-keybinding-properties” si le paquet est installé.

J’ai bien essayé la commande au départ mais comme ça n’as pas marché ,j’ai tenté de trouvé le paquet ,… mais c’est vrai que si je le dit pas…

==>pas de commande ,ni de paquet appelé gnome-keybinding-properties dans Lenny XFCE, mais c’est normal parce que c’est fourni avec l’environment Gnome. Dans XFCE c’est un autre programme que j’ai pas encore identifié.

Donc pour mon paquet dans script “postinst”,il faut que je recherche si l’ environnement est XFCE ou Gnome.Après il faut que les different programmes fonctionnent en ligne de commande sinon je suis devrai modifié les fichier de config sous xfce je sais où il est mais dans Gnome je ne vois pas.

Petit “truc” pour savoir a quel paquet appartient x commande:

$ apt-file search gnome-keybinding-properties
gnome-control-center: /usr/bin/gnome-keybinding-properties

On peut aussi utiliser “dpkg -S gnome-keybinding-properties” si le paquet est installé.[/quote]

Merci ,bien sympa ton petit “truc”.

[size=85]Ok, j’ai regardé ton source, y a rien de malveillant pour ceux qui doutent.(désolé Willy, mais on doute toujours un peu :stuck_out_tongue:) C’est juste des appels de amixer via dbus.

Le paquet n’est pas très propre (fichiers backup et sessions geany, pas /usr/share/p-d-s/ pour ton .py c’est /usr/lib/p-d-s/ etc.), mais il s’installe et se desinstalle parfaitement et proprement sur mon unstable.

J’ai testé bien sur, pas sur le matériel demandé par contre, ca marche à part le mute qui ne “revient pas” : quand j’appuie sur mute, le son ne revient pas à la normale quand je réappuie, vu que je n’ai pas de controle “front left”. Testé en plein écran et normal. [/size]

Maintenant je comprends bien ce que tu veux faire, faire tourner ton script contenu dans le paquet au démarrage de ta session graphique… dans ton cas précis, ca n’est pas a toi en tant que “mainteneur” du paquet de faire ce genre de choses, c’est à l’utilisateur de le faire.

Pour xfce, soit tu lances “xfce4-autostart-editor”, s’il n’est pas la tu vas dans “Paramètres > Session et démarrage”, onglet “démarrage automatique”.

Quoiqu’il en soit, tu devrais choisir le bureau que tu veux vraiment et poster cette question dans “support Debian” concernant le lancement de ton script au démarrage de la session, on parle que de programmation ici :stuck_out_tongue:

Pour le démarrage automatique j’ai utilisé la methode du /etc/rc.local

Dans mon script “postinst” ,j’ai ajouté :

#lance une fenêtre "question" de zenity.Si oui créer le fichier de démarrage
add_rc=$(zenity --question --text="python-dbus_soundctrl doit-il demarrer avec l'ordinateur?";echo $?)
if [ "$add_rc" == "0" ]
then
	#recuperer le "runlevel"
        runlevel=$(cat /etc/inittab | grep initdefault|cut -d':' -f2)

	#on arrête le script et notife une erreur si "runlevel" n'est pas trouvé
        test -z runlevel && exit 1

        #test si /etc/rc.local, s'il existe supprimer la dernière ligne (exit 0)
	test -e /etc/rc.local && cat /etc/rc.local |sed '/exit 0/d' >/etc/rc.local
        #     si le fichier n'existe pas créer le fichier
	test -e /etc/rc.local ||echo '#!/bin/sh -e' >> /etc/rc.local
	
        #   on insère la ligne correspondant au script a lancer et le exit 0 dans le fichier
        echo -e '/usr/bin/pdb_soundctrl &\nexit 0' >> /etc/rc.local

	#on modifie les droit sur le fichier pour le rendre exécutable
        chmod 774 /etc/init.d/rc.local
	# creation du lien dans le dossier correspondant au "runlevel"
        #demandera des modifications, pour détecter si un raccourci      existe déjà dans le "rc$runlevel".
        ln -s /etc/init.d/rc.local /etc/rc$runlevel.d/S99local
fi

Cet parti du script fonctionne ,je viens de le tester dans une machine virtuel avec une ubuntu 8.04 Gnome.

Pour la suppression des raccourcis clavier ,je laisserai faire l’utilisateur.

Merci Knucky. Pour les derniers renseignements ça va m’être utile, faut avoué que j’attendais que ça que quelqu’un y regarde de plus près,d’ailleurs je suis étonné qu’on ne m’ai parlé de code malveillant plus tôt. Si tu as des remarques a faire sur la parti que je viens de poster,je suis à l’écoute :smiley: .

Tout dépend de la “portée” du paquet, si ça n’est que pour toi ou des personnes proches, ça passe, sinon pour distribuer à grande échelle non. Un paquet ne touche JAMAIS à rc.local car tu ne sais JAMAIS ce qu’il y a dedans !

Au mieux, ajoute un script d’init propre et séparé, ou ne fais rien au niveau du paquet, comme cela se fait chez Debian.

Je vais t’expliquer le cheminement, et les alternatives peu recommandées :

Une autre solution qui va se montrer elle aussi inefficace serait de faire un script “python-dbus-soundctrl-config” avec le script shell. C’est dans ce cas, au niveau utilisateur, censé se lancer via le fichier ~/.xsession, bien souvent vide.

Maintenant tu tombes sur l’utilisateur pas-lambda, qui a un ~/.xsession rempli, genre :

$ cat ~/.xsession
numlockx &
xmodmap ~/.Xmodmap &
thunar --daemon &
#xbindkeys &
#startfluxbox
startxfce4

Tu peux bien sur ajouter l’appel du script en premier dans ce fichier, mais pareil, c’est comme si c’était un rc.local à l’échelle de l’utilisateur, tu ne sais absolument pas ce qu’il peut contenir, et la c’est du simple, mais j’en connais des très compliqués, genre ouverture de session X avec choix du bureau en console ou autre…

Au final soit ton script va pas se lancer, soit tu vas faire foirer le script de l’utilisateur !

Dans ce cas faut passer par une intégration dans les différents bureaux possibles. Pour un programme c’est simple avec le paquet menu qui gère ça de façon unifiée, mais dans le cas d’un “service” plutot orienté utilisateur comme toi cela s’avère plus complexe car à part xsession, tu n’as rien de standard, c’est au cas par cas selon le bureau, avec souvent des développements spécifiques.

Voila pourquoi pour les paquets ayants un role similaire et indépendants d’un bureau en particulier (xbindkeys par exemple), Debian ne fait rien du tout, l’utilisateur se démm…

Après c’est juste un conseil hein :wink:

[quote=“Knucky”][quote=“dric64”]en fait, gnome-keybinding-properties, c’est pas un paquet, mais une commande (qui fait partie d’un autre paquet de gnome, certainement, mais je ne sais pas lequel).
Essaye de la taper dans un terminal, voir si tu l’as sur lenny (moi je suis sur sid et squeeze)
:smt111[/quote]
Petit “truc” pour savoir a quel paquet appartient x commande:

$ apt-file search gnome-keybinding-properties
gnome-control-center: /usr/bin/gnome-keybinding-properties

On peut aussi utiliser “dpkg -S gnome-keybinding-properties” si le paquet est installé.[/quote]

Merci du tuyau :smt001

De rien :wink:

Willy, une autre solution serait de placer un script shell lançant ton script python dans le répertoire /etc/X11/Xsession.d, ça m’est revenu parce que j’en avais discuté dans un rapport de bogue:
bugs.debian.org/cgi-bin/bugrepor … =525886#30

Pour le Script de démarrage avec la session, le sujet est RÉSOLU ,en effet le script que j’ai posté fonctionne, il sera parfait pour mon usage personnel.

Suite aux conseils reçu sur le forum, par Knucky, j’ai recréer un paquet qui n’installe pas le demarrage automatique du script ,cela laisse le choix aux utilisateurs pour ce qui est du choix de la méthode.

Pour éviter le problème que Knucky a rencontré quand il a testé le script,j’ai créer un fichier de configuration où l’utilisateur peut choisir la commande à lancer.
Nouveau paquet est disponible ici:
viewtopic.php?f=3&t=24489&p=240826#p240826

Merci à Knucky et Dric64 pour leur aide.