Sommaire
|
Comme moi, vous vous êtes peut-être acheté un clavier confortable, plus adapté aux longues heures de coding ou d'irc que votre vieux tromblon 105 touches que vous avez eu avec votre premier 386. Et, oh comble du luxe, il y a sur ce clavier plein de petits boutons rigolos pour contrôler le volume, changer de chanson, mettre la machine en veille ainsi que plein d'autres choses du genre, parfaitement inutiles donc totalement indispensables...
Les drivers pour votre manchot favori ne vous seront sans-doute pas fournis avec la bête, nous allons donc voir ensemble comment associer à chacune de ces touches l'exécution d'une commande.
Tout d'abord, il va nous falloir espionner le clavier pour savoir ce qu'il renvoie quand vous appuyez sur les touches bonus.
Pour cela, il faut utiliser le programme xev, qui se trouvait sur d'anciennes versions de Mandriva dans le paquet X11R6-contrib et s'installe maintenant à partir d'un paquetage spécifique xev. Dans la 2007, si vous avez correctement configuré les sources urpmi, il vous suffit de taper ceci en tant que root : .
Lorsque tout est installé, lancez le programme . En appuyant sur les touches, vous devriez obtenir quelque chose ressemblant à ceci :
Le champ qui nous intéresse ici est le champ . Par exemple, la touche que j'ai ici espionnée renvoie la valeur .
Répétez cette opération pour chacune des touches spéciales, et notez quelque part la valeur de chacune de ces touches.
Il arrive fréquemment que ne réagisse pas à l'appuie sur certaines touches des claviers multimédia. C'est, la plupart du temps, du au fait que le kernel n'a pas connaissance de ces touches. Mais il existe une solution !
Dans un terminal (attention, il faut utiliser un vrai terminal, pas un terminal dans X), tapez :
Puis appuyez sur la touche qu' ne reconnaît pas, vous devriez voir apparaître quelque chose du genre :
Ce qui nous intéresse, c'est la valeur annoncée : e012. C'est le scancode de la touche en question. Tant que vous y êtes appuyez sur la plupart de touches de votre clavier pour voir s'il n'y a pas d'autre touche inconnue du noyau. Vérifiez aussi les touches après le verrouillage de la touche (enfin c'est son nom sur mon clavier) : elle donne accès à une douzaines de touches parallèlement aux touches de fonction.
Il faut maintenant affecter un keycode à ce scancode. C'est ce que dit le message d'erreur renvoyé par le noyau.
Un outil liste les keycodes utilisés : . Il renvoie une table qui liste les touches par scancode affiche leur keycodes associé.
Pour afficher uniquement les keycodes libres, on peut utiliser la commande :
Note : il semblerait que les versions récentes de setkeycodes ou du kernel ne permettent plus d'attribuer les keycodes supérieurs à 127, ce qui est plus que pénible.
Pour chaque scancode trouvé aux étapes précédantes, vous devez affecter un keycode libre (trouvé à l'étape précédante).
Par exemple, pour affecter le keycode : 200 à la touche dont le scancode est e012, il suffit de taper :
On peut affecter plusieurs touches en même temps, par exemple :
Un fois ceci fait, vous pourrez espionner vos touches avec comme préconisé ci-dessus.
PS: Pensez à ajouter à l'un de vos scripts de démarrage l'affectation des keycodes Sur ma gentoo, j'ai créé le script :
Je n'ai pas oublié de rendre ce script exécutable :
Et j'ai créé le fichier de configuration :
Ensuite j'ai demandé à ma gentoo de démarrer automatiquement ce fichier :
Pour que les touches soient reconnues, il faut associer leur avec un nom de touche g énérique connu par Xfree. Ces noms de touches sont listés dans le fichier (ou pour Debian) et commencent par . Il faut ensuite créer le fichier dans lequel on va définir ces fameuses correspondances...Comme un exemple vaut mieux qu'un long discours, voici le contenu de mon :
En fonction des que vous avez trouvé et des noms que vous souhaitez donner à vos touches, remplissez ce fichier avec cette syntaxe très simple.
Une fois cela fait, il faut taper la commande pour activer le nouveau mapping.
Pour que cela prenne effet à chaque démarrage de KDE, placez le fichier suivant dans le répertoire .
Rendez ensuite ce script exécutable : (si vous avez appelé le fichier bien entendu...)
Une méthode simple pour attribuer des touches à des commandes est de créer un menu caché.
Pour cela, lancez ou (sous Mandriva 2006 ou 2007), ou encore sous Mandriva 10.1 Kcontrol->Système->Touches spéciales du clavier. Créez un menu caché en mettant un point au début du nom de menu, par exemple : sera un menu caché.
Vous pouvez maintenant créer des entrées de menu avec un nom et une commande associée, chacune de ces commandes pourra ensuite être attribuée à une touche ou à une combinaison de touches.
Maintenant que vous avez créé les entrées, allez voir : "Centre de controle kde -> Régionalisation & accessibilité -> Raccourcis claviers -> raccourcis de commandes". Tout dépend de votre version de KDE, mais cela n'a pas beaucoup changé, vous devriez trouver cela en quelques secondes à peine. Vous avez maintenant tous vos menus, y compris votre menu caché. Pour chacune de entrées de menu, vous pouvez créer un raccourci personnalisé, et utiliser vos touches fraichement nommées ! Ça marche ! Qui a dit que les claviers multimédias ne sont pas compatibles avec Linux ?
Une autre méthode utilisant KDE pour lancer une commande avec un raccourci clavier consiste à utiliser la fonction d'"Actions d'entrées" disponible sous le versions les plus récentes de KDE. Pour ce faire allez dans : Centre de configuration de KDE () > Régionalisation & accessibilité > Actions d'entrées.
Ensuite, cliquez sur le bouton "Nouveau groupe" et nommez-le "Clavier", par exemple.
Cliquez sur le nom du goupe dans la liste de droite puis cliquez sur "Nouvelle action". Nommez-la comme vous le désirez et choisissez "Raccourci clavier -> Commande / URL (simple)" dans la liste déroulante "Type d'action : ". Vous pouvez dès à présent paramétrer le raccourci que vous voulez utliser et la commande à lancer dans les onglets "Raccourci clavier" et "Paramètres de la commande / URL". Il convient de répéter cette dernière procédure pour chaque commande à lancer.
| Action | Commande |
|---|---|
| Lecture-pause | |
| STOP | |
| Chanson précédente | |
| Chanson suivante | |
| Baisser le son | ici de 15%. |
| Monter le son | ici de 15%. |
| Couper le son | |
| Lancer kmail | |
| Relever les mails dans kMail | |
| Verrouiller l'écran | |
| Ejecter cdrom | |
| Avaler cdrom | |
| Calculatrice | |
| Chercher un fichier | |
| Konqueror comme gestionnaire de fichiers | |
| Konqueror comme navigateur | |
| Exécuter une commande |
Nous allons commencer par configurer notre clavier sous X : c'est-à-dire que nous allons faire en sorte que X sache quel modèle de clavier nous possédons. Pour cela, nous avons besoin de deux informations :
Pour la première, retournez votre clavier et lisez l'étiquette ;)
Pour la deuxième, éditez le fichier . S'il ne se trouve pas là, faites dans un shell).
Maintenant on va insérer tous ces paramètres dans le fichier de configuration de X, pour ce faire : éditez en root le fichier (ou selon votre version de X). Cherchez la section du clavier : Driver "keyboard" et insérez les paramètres :
Enregistrez, relancez vos sessions si vous voulez que les changements soit appliqués immédiatement. La configuration de X est terminée.
Les KeyCodes sont les numéros des touches qui définissent les touches de votre clavier, parfois c'est sous forme de chaîne de caractères comme ici. C'est très utile parce que grâce à ça on ne doit pas deviner à quel numéro est associée telle touche. Éditez le fichier (si le fichier ne se trouve pas là, essayez ), et recherchez le modèle de votre clavier. Vous trouverez ainsi tous les KeyCodes des touches supplémentaires de votre clavier étendu.
Associer une touche à une commande est chose facile si l'on utilise Lineak ou KHotKeys, je vous propose ici encore une autre méthode un peu moins évidente mais beaucoup plus légère que les autres. Vous aurez seulement besoin de KeyLaunch (68K). Sur Debian c'est le paquet keylaunch, pour Mandrake et RedHat : je n'ai pas trouvé le paquet (désolé) et pour ceux qui veulent compiler c'est par ici. (11k)
La configuration est très simple et très pratique : tout se fait dans que vous devez créer dans votre dossier home. Il y a un exemple du fichier dans (si vous avez installé le paquet Debian sinon c'est dans le dossier là où vous avez décompressé KeyLaunch).
Voici, en français, comment personnaliser ce fichier :
Une seule association par ligne, chaque association commence par : faites suivre ensuite par l'état des modificateurs. Insérez trois points si une simple pression sur la touche vous suffit. . (Le premier point est le modificateur [Shift], activez-le en remplaçant le point par une astérisque (*). Le second point est le modificateur [Ctrl] et enfin le dernier est le modificateur [Alt].) Et terminez enfin la ligne par la commande à exécuter précédée de ':'.
Et comme un bon exemple vaut mieux qu'un long discours :
Cet exemple-ci fait en sorte que lorsque vous appuyez sur la touche [Media] du clavier : il ouvre XMMS. Cependant, si vous appuyez simultanément sur [Alt] et [Media], KeyLaunch lancera GMPlayer.
Voici une petite aide pour savoir quels sont les commandes qu'il faut mettre pour réaliser telle ou telle action. Demandez sur le forum si cette aide est insuffisante.
| Démarrer XMMS | xmms |
| Démarrer la musique | xmms --play |
| Mettre en pause | xmms --pause |
| Basculement lecture/pause | xmms --play-pause |
| Arrêter | xmms --stop |
| Piste suivante | xmms --fwd |
| Piste précédente | xmms --rew |
Pour le reste, entrez dans une console et tapez .
| Couper le son | mute |
| Noatun | noatun |
| La calculatride de KDE | kcalc |
| Mozilla | mozilla |
| Mozilla Mail | mozilla -mail |
| KMail | kmail --check |
| Rechercher | kfind |
| Augmenter le volume de 10% | aumix -v+10 |
| Diminuer le volume de 10% | aumix -v-10 |
Vous pouvez également créer ce script que vous pouvez associer à la touche [Go], présente sur certains claviers Logitech. Il affiche simplement une boite de dialogue KDE, pour vous permettre d'entrez l'URL que Mozilla doit vous afficher :
ouvrira la boite de dialogue avec pour valeur par défaut : http://www.mozdex.com.
Voici comment associer un clic ou une pression sur une touche à une combinaison de touches et d'actions à la souris grâce à xbindkeys et xmacroplay.
XBindKeys est un programme qui permet d'associer une commande à une combinaison de touches ou de clics. Vous devez pour cela installer XBindKeys (xbindkeys sur Debian (152K)).
XMacro est un programme capable d'enregistrer vos actions de souris et de clavier, pour ensuite les reproduire. Remarquez que l'on ne fera que produire des actions. Cliquez ici pour le télécharger (paquet xmacro sur Debian (112K)).
Le mieux c'est de montrer en pratique ce que l'on peut faire avec tout ça avec Diablo II.
Je n'aborderai pas l'émulation ici. Merci de ne pas m'écrire à propos de ce jeu.
Le XBindKeys ne fonctionne que si le programme n'applique pas un "grab" sur les périphériques (i.e les capturer pour lui tout seul). Il faut donc lancer Diablo II en fenêtré tout en restant en plein-écran. Explication : une application lancée en fenêtrée, sans bordure, sans fenêtre et avec une résolution d'écran correspondant à la taille de la fenêtre, ça revient finalement à un plein écran sans capture des périphériques d'entrée.
Nous allons créer un script qui va lancer Diablo II sur la seconde session graphique, en fenêtré, et en 800x600 (de manière à ce que la fenêtre prenne tout l'écran). Pour cela il faut d'abord configurer X pour qu'il travail toujours en 800x600 lorsqu'il est en 16 bits de couleurs. (En supposant ici que vous travaillez habituellement en 24 bits de couleurs. Si vous travaillez en 16 bits, modifiez le 24 bits). Éditez le fichier (ou selon votre version de X) ; cherchez la section et trouvez ensuite la sous-section dont la (profondeur des couleurs) est égale à 16. Modifiez les modes pour n'avoir au maximum qu'une résolution de 800x600. La première étant celle utilisée par défaut.
De cette façon, X activera toujours la 800x600 lorsqu'il sera en 16 bits de couleurs.
Nous allons maintenant faire le petit script qui lancera Diablo II sur une nouvelle session.
Comme vous voyez, la commande de XBindKeys est déjà insérée, les explications arrivent...
Nous allons aborder ici l'utilisation de XBindKeys dans Diablo II. Comme vous le savez déjà, la roulette de la souris dans Diablo II sert à faire défiler les aptitudes. On va améliorer ça : la roulette vers le haut enclenchera une aptitude et remetra directement celle par défaut, celle du bas une autre aptitude et le clic au milieu encore une autre. Très pratique ;)
On va tout d'abord positionner tous les fichiers nécessaires à notre opération dans un dossier dans le répertoire home. Créez donc le dossier et mettez-y ce fichier de configuration XBindKeys :
Mais quel est cet étrange script aptitude.sh ? Et message.sh ? La suite, par ici...
On va maintenant faire deux petits scripts, l'un permet d'envoyer des messages rapidement l'autre permet d'appuyer sur une touche, faire un clic droit, temporiser et appuyer sur une autre touche du clavier.
Ce script va donc appuyer sur [Enter], taper tout le message contenu en paramètres et réappuyer sur [Enter].
Maintenant voyons voir l'autre script :
5... 6... Vous comprenez maintenant pourquoi c'est plus difficile en clavier français ou belge.
Ce script-ci va donc appuyer sur la touche du premier paramètre, appuyer sur le bouton du milieu de la souris, attendre la durée précisée au deuxième paramètre et, finalement, va appuyer immédiatement sur la touche 5.
Non ça ne marche pas encore, mais il ne reste qu'à configurer le jeu... ;)
Entrez dans le jeu, appuyez sur [Esc], rendez-vous ensuite dans le menu de configuration des touches. Associez les touches [5], [6], [7] et [8] à des aptitudes différentes. Sortez des menus et mettez votre aptitude principale en [5], et des aptitudes utilisées moins fréquemment en [6], [7] et [8]. Tout ça à une même main (coté gauche ou droit des aptitudes).
Bon amusement ;)
@ Retour à la rubrique Matériel
Copyright © 19/02/2004, Jean-Thomas MUYL --maston28
| | Ce document est publié sous licence Creative Commons Attribution, Partage à l'identique, Contexte non commercial 2.0 : http://creativecommons.org/licenses/by-nc-sa/2.0/fr/ |