<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
	<id>https://lea-linux.org/docs/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Ptyxs</id>
	<title>Lea Linux - Contributions [fr]</title>
	<link rel="self" type="application/atom+xml" href="https://lea-linux.org/docs/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Ptyxs"/>
	<link rel="alternate" type="text/html" href="https://lea-linux.org/documentations/Sp%C3%A9cial:Contributions/Ptyxs"/>
	<updated>2026-05-25T14:59:13Z</updated>
	<subtitle>Contributions</subtitle>
	<generator>MediaWiki 1.40.1</generator>
	<entry>
		<id>https://lea-linux.org/docs/index.php?title=Configurer_les_touches_de_son_clavier_multim%C3%A9dia&amp;diff=14216</id>
		<title>Configurer les touches de son clavier multimédia</title>
		<link rel="alternate" type="text/html" href="https://lea-linux.org/docs/index.php?title=Configurer_les_touches_de_son_clavier_multim%C3%A9dia&amp;diff=14216"/>
		<updated>2007-01-14T15:32:40Z</updated>

		<summary type="html">&lt;p&gt;Ptyxs : /* Attribuer des commandes aux touches */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Autres]]&lt;br /&gt;
= Configurer les touches de son clavier multimédia =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;leatitre&amp;quot;&amp;gt;Configurer les touches de son clavier multimédia&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;leapar&amp;quot;&amp;gt;par [mailto:jean-thomas.muyl@lea-linux.org Jean-Thomas MUYL --maston28 et [mailto:tuxnil@yahoo.fr NiL]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Comme moi, vous vous êtes peut-être acheté un clavier confortable, plus adapté aux longues heures de coding ou d&#039;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&#039;autres choses du genre, parfaitement inutiles donc totalement indispensables...&lt;br /&gt;
&lt;br /&gt;
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&#039;exécution d&#039;une commande.&lt;br /&gt;
&lt;br /&gt;
== Préliminaires ==&lt;br /&gt;
=== Espionnage des touches incriminées ===&lt;br /&gt;
&lt;br /&gt;
Tout d&#039;abord, il va nous falloir espionner le clavier pour savoir ce qu&#039;il renvoie quand vous appuyez sur les touches bonus.&lt;br /&gt;
&lt;br /&gt;
Pour cela, il faut utiliser le programme xev, qui se trouvait sur d&#039;anciennes versions de Mandriva dans le paquet X11R6-contrib et s&#039;installe maintenant à partir d&#039;un paquetage spécifique xev. Dans la 2007, si vous avez [http://groupes.lea-linux.org/fiches/ficheurpmi.html correctement configuré les sources urpmi], il vous suffit de taper ceci en tant que root : &amp;lt;code&amp;gt;urpmi xev&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Lorsque tout est installé, lancez le programme &amp;lt;code&amp;gt;xev&amp;lt;/code&amp;gt;. En appuyant sur les touches, vous devriez obtenir quelque chose ressemblant à ceci :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;[root@mastonsbox maston28]# xev&amp;lt;br /&amp;gt; KeyRelease event, serial 27, synthetic NO, window 0x3400001,&amp;lt;br /&amp;gt; root 0x48, subw 0x0, time 7029077, (249,-81), root:(252,517),&amp;lt;br /&amp;gt; state 0x0, keycode 233 (keysym 0x1008ff27, XF86Forward), same_screen YES,&amp;lt;br /&amp;gt; XLookupString gives 0 bytes: &amp;quot;&amp;quot;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le champ qui nous intéresse ici est le champ &amp;lt;code&amp;gt;keycode&amp;lt;/code&amp;gt;. Par exemple, la touche que j&#039;ai ici espionnée renvoie la valeur &amp;lt;code&amp;gt;keycode 233&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Répétez cette opération pour chacune des touches spéciales, et notez quelque part la valeur de chacune de ces touches.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;note&amp;quot;&amp;gt;Si certaines touches ne semblent rien renvoyer, vérifiez dans le fichier &amp;lt;code&amp;gt;/usr/X11R6/lib/X11/xkb/keycodes/xfree86&amp;lt;/code&amp;gt; que vous avez ceci :&amp;lt;br /&amp;gt;&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt; xkb_keycodes &amp;quot;basic&amp;quot; {&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; minimum= 8;&amp;lt;br /&amp;gt; maximum= 255;&amp;lt;br /&amp;gt; &amp;lt;/div&amp;gt;&amp;lt;br /&amp;gt; En effet, il arrive parfois que les valeurs soient plus petites, et donc que le programme ne scanne pas sur toute la plage possible. &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== xev ne réagit pas à vos touches ====&lt;br /&gt;
Il arrive fréquemment que &amp;lt;code&amp;gt;xev&amp;lt;/code&amp;gt; ne réagisse pas à l&#039;appuie sur certaines touches des claviers multimédia. C&#039;est, la plupart du temps, du au fait que le kernel n&#039;a pas connaissance de ces touches. Mais il existe une solution ! &lt;br /&gt;
&lt;br /&gt;
===== vérifier que le kernel est capable de gérer une touche =====&lt;br /&gt;
Dans un terminal tapez : &lt;br /&gt;
&amp;lt;code multi&amp;gt;tail -f /var/log/messages&amp;lt;/code&amp;gt;&lt;br /&gt;
Puis appuyez sur la touche qu&#039;&amp;lt;code&amp;gt;xev&amp;lt;/code&amp;gt; ne reconnaît pas, vous devriez voir apparaître quelque chose du genre :&lt;br /&gt;
&amp;lt;code multi&amp;gt;Feb  7 16:13:08 localhost atkbd.c: Use &#039;setkeycodes e012 &amp;lt;keycode&amp;gt;&#039; to make it known.&amp;lt;/code&amp;gt;&lt;br /&gt;
Ce qui nous intéresse, c&#039;est la valeur annoncée : &#039;&#039;&#039;e012&#039;&#039;&#039;. C&#039;est le &#039;&#039;&#039;scancode&#039;&#039;&#039; de la touche en question. Tant que vous y êtes appuyez sur la plupart de touches de votre clavier pour voir s&#039;il n&#039;y a pas d&#039;autre touche inconnue du noyau. Vérifiez aussi les touches après le verrouillage de la touche &amp;lt;key&amp;gt;Verr. F&amp;lt;/key&amp;gt; (enfin c&#039;est son nom sur mon clavier) : elle donne accès à une douzaines de &#039;&#039;&#039;touches&#039;&#039;&#039; parallèlement aux touches de fonction.&lt;br /&gt;
&lt;br /&gt;
Il faut maintenant affecter un &#039;&#039;&#039;keycode&#039;&#039;&#039; à ce &#039;&#039;&#039;scancode&#039;&#039;&#039;. C&#039;est ce que dit le message d&#039;erreur renvoyé par le noyau.&lt;br /&gt;
&lt;br /&gt;
===== vérifier les &#039;&#039;&#039;keycodes&#039;&#039;&#039; disponibles =====&lt;br /&gt;
Un outil liste les &#039;&#039;&#039;keycodes&#039;&#039;&#039; utilisés : &amp;lt;code&amp;gt;getkeycodes&amp;lt;/code&amp;gt;. Il renvoie une table qui liste les touches par &#039;&#039;&#039;scancode&#039;&#039;&#039; affiche leur &#039;&#039;&#039;keycodes&#039;&#039;&#039; associé. &lt;br /&gt;
&lt;br /&gt;
Pour afficher uniquement les &#039;&#039;&#039;keycodes&#039;&#039;&#039; libres, on peut utiliser la commande : &lt;br /&gt;
&amp;lt;code&amp;gt;root@localhost # IFS=$&#039;\n &#039; ; for i in $(getkeycodes | grep &amp;quot;[0-9]:&amp;quot; | cut -d &amp;quot;:&amp;quot; -f 2) ; do echo $i ; done | sort | uniq &amp;gt; list.codes&lt;br /&gt;
root@localhost # for ((i=80;i&amp;lt;=255;i++)) ; do if grep -E &amp;quot;^$i\$&amp;quot; list.codes &amp;gt; /dev/null ; then true ; else echo &amp;quot;$i&amp;quot; ; fi ; done &amp;gt; free.codes&lt;br /&gt;
root@localhost # cat free.codes&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note : &#039;&#039;&#039; il semblerait que les versions récentes de setkeycodes ou du kernel ne permettent plus d&#039;attribuer les keycodes supérieurs à 127, ce qui est plus que pénible.&lt;br /&gt;
&lt;br /&gt;
===== affectation d&#039;un &#039;&#039;&#039;keycode&#039;&#039;&#039; par &#039;&#039;&#039;scancode&#039;&#039;&#039; =====&lt;br /&gt;
Pour chaque &#039;&#039;&#039;scancode&#039;&#039;&#039; trouvé aux étapes précédantes, vous devez affecter un &#039;&#039;&#039;keycode&#039;&#039;&#039; libre (trouvé à l&#039;étape précédante).&lt;br /&gt;
&lt;br /&gt;
Par exemple, pour affecter le &#039;&#039;&#039;keycode&#039;&#039;&#039; : &#039;&#039;200&#039;&#039; à la touche dont le &#039;&#039;&#039;scancode&#039;&#039;&#039; est &#039;&#039;e012&#039;&#039;, il suffit de taper : &lt;br /&gt;
&amp;lt;code multi&amp;gt;setkeycodes e012 200&amp;lt;/code&amp;gt;&lt;br /&gt;
On peut affecter plusieurs touches en même temps, par exemple : &lt;br /&gt;
&amp;lt;code multi&amp;gt;setkeycodes e012 200 e013 201 e017 215&amp;lt;/code&amp;gt;&lt;br /&gt;
Un fois ceci fait, vous pourrez espionner vos touches avec &amp;lt;code&amp;gt;xev&amp;lt;/code&amp;gt; comme préconisé ci-dessus.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;PS:&#039;&#039;&#039; Pensez à ajouter à l&#039;un de vos scripts de démarrage l&#039;affectation des &#039;&#039;&#039;keycodes&#039;&#039;&#039;&lt;br /&gt;
Sur ma gentoo, j&#039;ai créé le script &amp;lt;code&amp;gt;/etc/init.d/keycodes&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;code&amp;gt;#!/sbin/runscript&lt;br /&gt;
# Distributed under the terms of the GNU General Public License v2 (and no other version)&lt;br /&gt;
#NB: Config is in /etc/conf.d/keycodes&lt;br /&gt;
&lt;br /&gt;
depend() {&lt;br /&gt;
        need localmount&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
checkconfig() {&lt;br /&gt;
        if [ -z &amp;quot;$KEYCODES&amp;quot; ] ; then&lt;br /&gt;
                eerror &amp;quot;You need to setup KEYCODES in /etc/conf.d/keycodes first&amp;quot;&lt;br /&gt;
                return 1&lt;br /&gt;
        fi&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
start() {&lt;br /&gt;
        checkconfig || return 1&lt;br /&gt;
        ebegin &amp;quot;Setting specific keycodes&amp;quot;&lt;br /&gt;
                setkeycodes $KEYCODES&lt;br /&gt;
        eend ${?}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
stop() {&lt;br /&gt;
        ewarn &amp;quot;nothing to stop&amp;quot;&lt;br /&gt;
}&amp;lt;/code&amp;gt;&lt;br /&gt;
Je n&#039;ai pas oublié de rendre ce script exécutable : &lt;br /&gt;
&amp;lt;code multi&amp;gt;root@localhost # chmod +x /etc/init.d/keycodes&amp;lt;/code&amp;gt;&lt;br /&gt;
Et j&#039;ai créé le fichier de configuration &amp;lt;code&amp;gt;/etc/conf.d/keycodes&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;code multi&amp;gt;KEYCODES=&amp;quot;e011 227 e012 228 e013 229 e014 230 e03b 190 e03c 191 e03d 192 e03e 193 e03f 194 e040 195 e041 196 e042 197 e043 198 e044 199 e057 201 e058 202&amp;quot;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Ensuite j&#039;ai demandé à ma gentoo de démarrer automatiquement ce fichier : &lt;br /&gt;
&amp;lt;code multi&amp;gt;root@localhost # rc-update add keycodes default&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Nommer les touches ===&lt;br /&gt;
&lt;br /&gt;
Pour que les touches soient reconnues, il faut associer leur &amp;lt;code&amp;gt;keycode&amp;lt;/code&amp;gt; avec un nom de touche g énérique connu par Xfree. Ces noms de touches sont listés dans le fichier &amp;lt;code&amp;gt;/usr/X11R6/lib/X11/XKeysymDB&amp;lt;/code&amp;gt; et commencent par &amp;lt;code&amp;gt;XF86&amp;lt;/code&amp;gt;. Il faut ensuite créer le fichier &amp;lt;code&amp;gt;~/.xmodmaprc&amp;lt;/code&amp;gt; dans lequel on va définir ces fameuses correspondances...Comme un exemple vaut mieux qu&#039;un long discours, voici le contenu de mon &amp;lt;code&amp;gt;~/.xmodmaprc&amp;lt;/code&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;keycode 234 = XF86Back&amp;lt;br /&amp;gt; keycode 233 = XF86Forward&amp;lt;br /&amp;gt; keycode 232 = XF86Stop&amp;lt;br /&amp;gt; keycode 231 = XF86Refresh&amp;lt;br /&amp;gt; keycode 229 = XF86Search&amp;lt;br /&amp;gt; keycode 230 = XF86Favorites&amp;lt;br /&amp;gt; keycode 178 = XF86VendorHome&amp;lt;br /&amp;gt; keycode 236 = XF86Mail&amp;lt;br /&amp;gt; keycode 160 = XF86AudioMute&amp;lt;br /&amp;gt; keycode 174 = XF86AudioLowerVolume&amp;lt;br /&amp;gt; keycode 176 = XF86AudioRaiseVolume&amp;lt;br /&amp;gt; keycode 162 = XF86AudioPlay&amp;lt;br /&amp;gt; keycode 164 = XF86AudioStop&amp;lt;br /&amp;gt; keycode 144 = XF86AudioPrev&amp;lt;br /&amp;gt; keycode 153 = XF86AudioNext&amp;lt;br /&amp;gt; keycode 237 = XF86Video&amp;lt;br /&amp;gt; keycode 235 = XF86OfficeHome&amp;lt;br /&amp;gt; keycode 161 = XF86Calculator&amp;lt;br /&amp;gt; keycode 222 = XF86PowerOff&amp;lt;br /&amp;gt; keycode 223 = XF86Sleep&amp;lt;br /&amp;gt; keycode 227 = XF86WakeUp&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
En fonction des &amp;lt;code&amp;gt;keycode&amp;lt;/code&amp;gt; que vous avez trouvé et des noms que vous souhaitez donner à vos touches, remplissez ce fichier avec cette syntaxe très simple.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;note&amp;quot;&amp;gt;L&#039;attribution de ces noms est totalement arbitraire du moment qu&#039;ils sont dans le fichier &amp;lt;code&amp;gt;/usr/X11R6/lib/X11/XKeysymDB&amp;lt;/code&amp;gt;. Le choix de ces noms n&#039;influera en rien sur les actions associées aux touches dans le futur. Une bonne chose est de choisir les noms qui se rapprochent le plus du dessin associé à la touche sur le clavier pour s&#039;y retrouver...&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Une fois cela fait, il faut taper la commande &amp;lt;code&amp;gt;xmodmap ~/.xmodmaprc&amp;lt;/code&amp;gt; pour activer le nouveau mapping.&lt;br /&gt;
&lt;br /&gt;
==== Charger les attributions automatiquement sous KDE ====&lt;br /&gt;
&lt;br /&gt;
Pour que cela prenne effet à chaque démarrage de KDE, placez le fichier suivant dans le répertoire &amp;lt;code&amp;gt;~/.kde/Autostart/&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;#!/bin/sh&amp;lt;/nowiki&amp;gt;&amp;lt;br /&amp;gt; xmodmap ~/.xmodmaprc&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Rendez ensuite ce script exécutable : &amp;lt;code&amp;gt; chmod +x ~/.kde/Autostart/clavier&amp;lt;/code&amp;gt; (si vous avez appelé le fichier &amp;lt;code&amp;gt;clavier&amp;lt;/code&amp;gt; bien entendu...)&lt;br /&gt;
&lt;br /&gt;
== KDE est installé sur ma machine ==&lt;br /&gt;
&lt;br /&gt;
=== Attribuer des commandes aux touches ===&lt;br /&gt;
&lt;br /&gt;
Une méthode simple pour attribuer des touches à des commandes est de créer un menu caché.&lt;br /&gt;
&lt;br /&gt;
Pour cela, lancez &amp;lt;code&amp;gt;kmenuedit&amp;lt;/code&amp;gt; ou &amp;lt;code&amp;gt;menudrake&amp;lt;/code&amp;gt; (sous Mandriva 2006 ou 2007), ou encore sous Mandriva 10.1 &#039;&#039;Kcontrol-&amp;gt;Système-&amp;gt;Touches spéciales du clavier&#039;&#039;. Créez un menu caché en mettant un point au début du nom de menu, par exemple : &amp;lt;code&amp;gt;.clavier&amp;lt;/code&amp;gt; sera un menu caché.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;note&amp;quot;&amp;gt;Vous trouverez à la fin de cet article quelques commandes utiles de gestion de son par exemple, ou de certains logiciels.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Maintenant que vous avez créé les entrées, allez voir : &amp;quot;Centre de controle kde -&amp;gt; Régionalisation &amp;amp; accessibilité -&amp;gt; Raccourcis claviers -&amp;gt; raccourcis de commandes&amp;quot;. Tout dépend de votre version de KDE, mais cela n&#039;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 ?&lt;br /&gt;
&lt;br /&gt;
Une autre méthode utilisant KDE pour lancer une commande avec un raccourci clavier consiste à utiliser la fonction d&#039;&amp;quot;Actions d&#039;entrées&amp;quot; disponible sous le versions les plus récentes de KDE. Pour ce faire allez dans : &lt;br /&gt;
Centre de configuration de KDE (&amp;lt;code&amp;gt;kcontrol&amp;lt;/code&amp;gt;) &amp;gt; Régionalisation &amp;amp; accessibilité &amp;gt; Actions d&#039;entrées.&lt;br /&gt;
&lt;br /&gt;
Ensuite, cliquez sur le bouton &amp;quot;Nouveau groupe&amp;quot; et nommez-le &amp;quot;Clavier&amp;quot;, par exemple. &lt;br /&gt;
&lt;br /&gt;
Cliquez sur le nom du goupe dans la liste de droite puis cliquez sur &amp;quot;Nouvelle action&amp;quot;. Nommez-la comme vous le désirez et choisissez  &amp;quot;Raccourci clavier -&amp;gt; Commande / URL (simple)&amp;quot; dans la liste déroulante &amp;quot;Type d&#039;action : &amp;quot;. Vous pouvez dès à présent paramétrer le raccourci que vous voulez utliser et la commande à lancer dans les onglets &amp;quot;Raccourci clavier&amp;quot; et &amp;quot;Paramètres de la commande / URL&amp;quot;. Il convient de répéter cette dernière procédure pour chaque commande à lancer.&lt;br /&gt;
&lt;br /&gt;
=== Liste de commandes utilisables ===&lt;br /&gt;
&lt;br /&gt;
{| width=&amp;quot;80%&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;10&amp;quot;&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
! Action&lt;br /&gt;
! Commande&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Lecture-pause&lt;br /&gt;
| &amp;lt;code&amp;gt;xmms --play-pause&amp;lt;/code&amp;gt;&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| STOP&lt;br /&gt;
| &amp;lt;code&amp;gt;xmms --stop&amp;lt;/code&amp;gt;&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Chanson précédente&lt;br /&gt;
| &amp;lt;code&amp;gt;xmms --rew&amp;lt;/code&amp;gt;&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Chanson suivante&lt;br /&gt;
| &amp;lt;code&amp;gt;xmms --fwd&amp;lt;/code&amp;gt;&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Baisser le son&lt;br /&gt;
| &amp;lt;code&amp;gt;aumix -v-15&amp;lt;/code&amp;gt; ici de 15%.&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Monter le son&lt;br /&gt;
| &amp;lt;code&amp;gt;aumix -v+15&amp;lt;/code&amp;gt; ici de 15%.&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Couper le son&lt;br /&gt;
| &amp;lt;code&amp;gt;aumix -vn&amp;lt;/code&amp;gt;&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Lancer kmail&lt;br /&gt;
| &amp;lt;code&amp;gt;kmail&amp;lt;/code&amp;gt;&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Relever les mails dans kMail&lt;br /&gt;
| &amp;lt;code&amp;gt;dcop kmail KMailIface checkMail&amp;lt;/code&amp;gt;&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Verrouiller l&#039;écran&lt;br /&gt;
| &amp;lt;code&amp;gt;dcop kdesktop KScreensaverIface lock&amp;lt;/code&amp;gt;&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Ejecter cdrom&lt;br /&gt;
| &amp;lt;code&amp;gt;eject /dev/cdrom&amp;lt;/code&amp;gt;&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Avaler cdrom&lt;br /&gt;
| &amp;lt;code&amp;gt;eject -t /dev/cdrom&amp;lt;/code&amp;gt;&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Calculatrice&lt;br /&gt;
| &amp;lt;code&amp;gt;kcalc&amp;lt;/code&amp;gt;&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Chercher un fichier&lt;br /&gt;
| &amp;lt;code&amp;gt;kfind&amp;lt;/code&amp;gt;&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Konqueror comme gestionnaire de fichiers&lt;br /&gt;
| &amp;lt;code&amp;gt;kfmclient openProfile filemanagement&amp;lt;/code&amp;gt;&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Konqueror comme navigateur&lt;br /&gt;
| &amp;lt;code&amp;gt;kfmclient openProfile webbrowsing&amp;lt;/code&amp;gt;&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Exécuter une commande&lt;br /&gt;
| &amp;lt;code&amp;gt;dcop kdesktop KDesktopIface popupExecuteCommand&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== KDE n&#039;est pas installé sur ma machine ==&lt;br /&gt;
&lt;br /&gt;
=== Configurer son clavier sous X ===&lt;br /&gt;
&lt;br /&gt;
Nous allons commencer par configurer notre clavier sous X : c&#039;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 :&lt;br /&gt;
&lt;br /&gt;
* Quel clavier nous possédons&lt;br /&gt;
* A quel modèle X associe t-il notre clavier&lt;br /&gt;
&lt;br /&gt;
Pour la première, retournez votre clavier et lisez l&#039;étiquette ;)&amp;lt;br /&amp;gt; Pour la deuxième, éditez le fichier &amp;lt;code&amp;gt;/usr/X11R6/lib/X11/xkb/rules/xfree86.lst&amp;lt;/code&amp;gt;. S&#039;il ne se trouve pas là, faites &amp;lt;code&amp;gt;locate *xkb*/xfree86.lst&amp;lt;/code&amp;gt; dans un shell).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;exemple&amp;quot;&amp;gt;Au dos de mon clavier il est écrit : &#039;&#039;Logitech Internet Naviguator Keyboard&#039;&#039;. Le modèle de X est donc &#039;&#039;logiink&#039;&#039;.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Maintenant on va insérer tous ces paramètres dans le fichier de configuration de X, pour ce faire : éditez en root le fichier &amp;lt;code&amp;gt;/etc/X11/XF86Config-4&amp;lt;/code&amp;gt; (ou &amp;lt;code&amp;gt;XF86Config&amp;lt;/code&amp;gt; selon votre version de X). Cherchez la section du clavier : &#039;&#039;Driver &amp;quot;keyboard&amp;quot;&#039;&#039; et insérez les paramètres :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;Section &amp;quot;InputDevice&amp;quot;&amp;lt;br /&amp;gt; Â Â Identifier &amp;quot;Generic Keyboard&amp;quot;&amp;lt;br /&amp;gt; Â Â Driver &amp;quot;keyboard&amp;quot;&amp;lt;br /&amp;gt; Â Â Option &amp;quot;CoreKeyboard&amp;quot;&amp;lt;br /&amp;gt; Â Â Option &amp;quot;XkbRules&amp;quot; &amp;quot;xfree86&amp;quot;&amp;lt;br /&amp;gt; Â Â Option &amp;quot;XkbModel&amp;quot; &amp;quot;&#039;&#039;&#039;logiink&#039;&#039;&#039;&amp;quot;&amp;lt;br /&amp;gt; Â Â Option &amp;quot;XkbLayout&amp;quot; &amp;quot;&#039;&#039;&#039;be&#039;&#039;&#039;&amp;quot;&amp;lt;br /&amp;gt; EndSection&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enregistrez, relancez vos sessions si vous voulez que les changements soit appliqués immédiatement. La configuration de X est terminée.&lt;br /&gt;
&lt;br /&gt;
=== Récupérer les KeyCodes de toutes les touches ===&lt;br /&gt;
&lt;br /&gt;
Les KeyCodes sont les numéros des touches qui définissent les touches de votre clavier, parfois c&#039;est sous forme de chaîne de caractères comme ici. C&#039;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 &amp;lt;code&amp;gt;/etc/X11/xkb/symbols/inet&amp;lt;/code&amp;gt; (si le fichier ne se trouve pas là, essayez &amp;lt;code&amp;gt;locate *xkb*/inet&amp;lt;/code&amp;gt;), et recherchez le modèle de votre clavier. Vous trouverez ainsi tous les KeyCodes des touches supplémentaires de votre clavier étendu.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;aparte&amp;quot;&amp;gt;Vous pouvez utiliser les touches pour des actions sous KDE, Gnome, Fluxbox, WindowMaker, etc...&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Association des touches supplémentaires à une commande ===&lt;br /&gt;
&lt;br /&gt;
==== Installation de KeyLaunch ====&lt;br /&gt;
&lt;br /&gt;
Associer une touche à une commande est chose facile si l&#039;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&#039;est le paquet keylaunch, pour Mandrake et RedHat : je n&#039;ai pas trouvé le paquet (désolé) et pour ceux qui veulent compiler [http://ftp.riken.go.jp/pub/Linux/debian/debian/pool/main/k/keylaunch/keylaunch_1.3.0-6.tar.gz c&#039;est par ici. (11k)]&lt;br /&gt;
&lt;br /&gt;
==== Configurer KeyLaunch ====&lt;br /&gt;
&lt;br /&gt;
La configuration est très simple et très pratique : tout se fait dans &amp;lt;code&amp;gt;.keylaunchrc&amp;lt;/code&amp;gt; que &#039;&#039;&#039; vous devez créer&#039;&#039;&#039; dans votre dossier home. Il y a un exemple du fichier dans &amp;lt;code&amp;gt;/usr/share/doc/keylaunch/examples&amp;lt;/code&amp;gt; (si vous avez installé le paquet Debian sinon c&#039;est dans le dossier &amp;lt;code&amp;gt;debian&amp;lt;/code&amp;gt; là où vous avez décompressé KeyLaunch).&lt;br /&gt;
&lt;br /&gt;
Voici, en français, comment personnaliser ce fichier :&amp;lt;br /&amp;gt; Une seule association par ligne, chaque association commence par : &amp;lt;code&amp;gt;key=&amp;lt;/code&amp;gt; faites suivre ensuite par l&#039;état des modificateurs. Insérez trois points si une simple pression sur la touche vous suffit. &amp;lt;code&amp;gt;key=...&amp;lt;/code&amp;gt;. (Le premier point est le modificateur &#039;&#039;&#039;[&amp;lt;tt&amp;gt;Shift&amp;lt;/tt&amp;gt;]&#039;&#039;&#039;, activez-le en remplaçant le point par une astérisque (*). Le second point est le modificateur &#039;&#039;&#039;[&amp;lt;tt&amp;gt;Ctrl&amp;lt;/tt&amp;gt;]&#039;&#039;&#039; et enfin le dernier est le modificateur &#039;&#039;&#039;[&amp;lt;tt&amp;gt;Alt&amp;lt;/tt&amp;gt;]&#039;&#039;&#039;.) Et terminez enfin la ligne par la commande à exécuter précédée de &#039;:&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;exemple&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Et comme un bon exemple vaut mieux qu&#039;un long discours :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt; key=...XF86AudioMedia:xmms&amp;lt;br /&amp;gt; key=.*.XF86AudioMedia:gmplayer&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cet exemple-ci fait en sorte que lorsque vous appuyez sur la touche &#039;&#039;&#039;[&amp;lt;tt&amp;gt;Media&amp;lt;/tt&amp;gt;]&#039;&#039;&#039; du clavier : il ouvre XMMS. Cependant, si vous appuyez simultanément sur &#039;&#039;&#039;[&amp;lt;tt&amp;gt;Alt&amp;lt;/tt&amp;gt;]&#039;&#039;&#039; et &#039;&#039;&#039;[&amp;lt;tt&amp;gt;Media&amp;lt;/tt&amp;gt;]&#039;&#039;&#039;, KeyLaunch lancera GMPlayer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;aparte&amp;quot;&amp;gt;Cette exemple est destiné à un clavier Logitech Internet Navigator, adaptez le fichier à vos besoins grâce à la liste des touches à laquelle j&#039;ai fait référence ci-dessus, dans la section KeyCodes.&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Aide pour les commandes ===&lt;br /&gt;
&lt;br /&gt;
Voici une petite aide pour savoir quels sont les commandes qu&#039;il faut mettre pour réaliser telle ou telle action. Demandez sur le forum si cette aide est insuffisante.&lt;br /&gt;
&lt;br /&gt;
==== XMMS ====&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
| Démarrer XMMS&lt;br /&gt;
| xmms&lt;br /&gt;
|-&lt;br /&gt;
| Démarrer la musique&lt;br /&gt;
| xmms --play&lt;br /&gt;
|-&lt;br /&gt;
| Mettre en pause&lt;br /&gt;
| xmms --pause&lt;br /&gt;
|-&lt;br /&gt;
| Basculement lecture/pause&lt;br /&gt;
| xmms --play-pause&lt;br /&gt;
|-&lt;br /&gt;
| Arrêter&lt;br /&gt;
| xmms --stop&lt;br /&gt;
|-&lt;br /&gt;
| Piste suivante&lt;br /&gt;
| xmms --fwd&lt;br /&gt;
|-&lt;br /&gt;
| Piste précédente&lt;br /&gt;
| xmms --rew&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Pour le reste, entrez dans une console et tapez &amp;lt;code&amp;gt;xmms --help&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Autre programme ====&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
| Couper le son&lt;br /&gt;
| mute&lt;br /&gt;
|-&lt;br /&gt;
| Noatun&lt;br /&gt;
| noatun&lt;br /&gt;
|-&lt;br /&gt;
| La calculatride de KDE&lt;br /&gt;
| kcalc&lt;br /&gt;
|-&lt;br /&gt;
| Mozilla&lt;br /&gt;
| mozilla&lt;br /&gt;
|-&lt;br /&gt;
| Mozilla Mail&lt;br /&gt;
| mozilla -mail&lt;br /&gt;
|-&lt;br /&gt;
| KMail&lt;br /&gt;
| kmail --check&lt;br /&gt;
|-&lt;br /&gt;
| Rechercher&lt;br /&gt;
| kfind&lt;br /&gt;
|-&lt;br /&gt;
| Augmenter le volume de 10%&lt;br /&gt;
| aumix -v+10&lt;br /&gt;
|-&lt;br /&gt;
| Diminuer le volume de 10%&lt;br /&gt;
| aumix -v-10&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Vous pouvez également créer ce script que vous pouvez associer à la touche &#039;&#039;&#039;[&amp;lt;tt&amp;gt;Go&amp;lt;/tt&amp;gt;]&#039;&#039;&#039;, présente sur certains claviers Logitech. Il affiche simplement une boite de dialogue KDE, pour vous permettre d&#039;entrez l&#039;URL que Mozilla doit vous afficher :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt; #!/bin/bash&amp;lt;br /&amp;gt; # kwebgo&amp;lt;br /&amp;gt; file=$(kdialog --inputbox &amp;quot;Site Web :&amp;quot; &amp;quot;$@&amp;quot;)&amp;lt;br /&amp;gt; if [ -n &amp;quot;$file&amp;quot; ]; then&amp;lt;br /&amp;gt; Â Â mozilla &amp;quot;$file&amp;quot;&amp;lt;br /&amp;gt; fi&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;kwebgo http://www.mozdex.com&amp;lt;/code&amp;gt; ouvrira la boite de dialogue avec pour valeur par défaut : [http://www.mozdex.com/ http://www.mozdex.com].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;note&amp;quot;&amp;gt;Changez &amp;lt;code&amp;gt;mozilla &amp;quot;$file&amp;quot;&amp;lt;/code&amp;gt; en &amp;lt;code&amp;gt;konqueror &amp;quot;$file&amp;quot;&amp;lt;/code&amp;gt;, et vous utiliserez ainsi Konqueror au lieu de Mozilla.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Comment associer une touche à une combinaison de touches ? ===&lt;br /&gt;
&lt;br /&gt;
Voici comment associer un clic ou une pression sur une touche à une combinaison de touches et d&#039;actions à la souris grâce à xbindkeys et xmacroplay.&lt;br /&gt;
&lt;br /&gt;
==== XBindKeys ====&lt;br /&gt;
&lt;br /&gt;
XBindKeys est un programme qui permet d&#039;associer une commande à une combinaison de touches ou de clics. Vous devez pour cela installer [http://www.easylinux.de/Download XBindKeys] (xbindkeys sur Debian (152K)).&lt;br /&gt;
&lt;br /&gt;
==== XMacro ====&lt;br /&gt;
&lt;br /&gt;
XMacro est un programme capable d&#039;enregistrer vos actions de souris et de clavier, pour ensuite les reproduire. Remarquez que l&#039;on ne fera que produire des actions. [http://xmacro.sourceforge.net/ Cliquez ici pour le télécharger] (paquet xmacro sur Debian (112K)).&lt;br /&gt;
&lt;br /&gt;
=== L&#039;exemple sur Diablo II ===&lt;br /&gt;
&lt;br /&gt;
Le mieux c&#039;est de montrer en pratique ce que l&#039;on peut faire avec tout ça avec Diablo II.&lt;br /&gt;
&lt;br /&gt;
Je n&#039;aborderai pas l&#039;émulation ici. Merci de ne pas m&#039;écrire à propos de ce jeu.&lt;br /&gt;
&lt;br /&gt;
==== Configurer X pour Diablo II ====&lt;br /&gt;
&lt;br /&gt;
Le XBindKeys ne fonctionne que si le programme n&#039;applique pas un &amp;quot;grab&amp;quot; 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&#039;écran correspondant à la taille de la fenêtre, ça revient finalement à un plein écran sans capture des périphériques d&#039;entrée.&lt;br /&gt;
&lt;br /&gt;
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&#039;écran). Pour cela il faut d&#039;abord configurer X pour qu&#039;il travail toujours en 800x600 lorsqu&#039;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 &amp;lt;code&amp;gt;/etc/X11/XF86Config-4&amp;lt;/code&amp;gt; (ou &amp;lt;code&amp;gt;XF86Config&amp;lt;/code&amp;gt; selon votre version de X) ; cherchez la section &amp;lt;code&amp;gt;Screen&amp;lt;/code&amp;gt; et trouvez ensuite la sous-section &amp;lt;code&amp;gt;Display&amp;lt;/code&amp;gt; dont la &amp;lt;code&amp;gt;Depth&amp;lt;/code&amp;gt; (profondeur des couleurs) est égale à 16. Modifiez les modes pour n&#039;avoir au maximum qu&#039;une résolution de 800x600. La première étant celle utilisée par défaut.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;SubSection &amp;quot;Display&amp;quot;&amp;lt;br /&amp;gt; Â Â Depth 16&amp;lt;br /&amp;gt; Â Â Modes &amp;quot;800x600&amp;quot; &amp;quot;640x480&amp;quot;&amp;lt;br /&amp;gt; EndSubSection&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
De cette façon, X activera toujours la 800x600 lorsqu&#039;il sera en 16 bits de couleurs.&lt;br /&gt;
&lt;br /&gt;
==== Configurer une commande Diablo II ====&lt;br /&gt;
&lt;br /&gt;
Nous allons maintenant faire le petit script qui lancera Diablo II sur une nouvelle session.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;#!/bin/bash&amp;lt;/nowiki&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; mv $HOME/.xinitrc $HOME/.xinitrc-diablo2-old&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; echo &amp;quot;xsetroot -solid black -cursor_name left_ptr&amp;lt;br /&amp;gt; #xset m 50/10 6 # accélération souris xset m &amp;lt;accel&amp;gt; &amp;lt;seuil&amp;gt;&amp;lt;br /&amp;gt; numlockx on # vérouillage pavé num&amp;lt;br /&amp;gt; setxkbmap -layout us&amp;lt;br /&amp;gt; cd /usr/local/games/Diablo\ II&amp;lt;br /&amp;gt; xbindkeys -f $HOME/.diablo2/xbindkeys.config -X :1&amp;lt;br /&amp;gt; wine Game.exe -- $@ &amp;quot;&amp;gt; /tmp/diablo2.logs&amp;lt;br /&amp;gt; killall -9 xbindkeys wine wineserver&amp;quot; &amp;gt; $HOME/.xinitrc&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; xinit -- :1 -depth 16&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; rm -f $HOME/.xinitrc&amp;lt;br /&amp;gt; mv $HOME/.xinitrc-diablo2-old $HOME/.xinitrc&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;note&amp;quot;&amp;gt;&amp;lt;code&amp;gt;setxkbmap -layout us&amp;lt;/code&amp;gt; nous sert à faire passer le clavier en QWERTY original. Ce n&#039;est pas indispensable mais préférable pour Diablo II qui ne comprend absolument rien aux touches numériques situées au dessus de la zone des lettres.&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;aparte&amp;quot;&amp;gt;Dans ce script, le NumLock est activé par numlockx : vérifiez que vous l&#039;avez installé !&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Comme vous voyez, la commande de XBindKeys est déjà insérée, les explications arrivent...&lt;br /&gt;
&lt;br /&gt;
==== XBindKeys et Diablo II ====&lt;br /&gt;
&lt;br /&gt;
Nous allons aborder ici l&#039;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 ;)&lt;br /&gt;
&lt;br /&gt;
On va tout d&#039;abord positionner tous les fichiers nécessaires à notre opération dans un dossier &amp;lt;code&amp;gt;.diablo2&amp;lt;/code&amp;gt; dans le répertoire home. Créez donc le dossier &amp;lt;code&amp;gt;$HOME/.diablo2&amp;lt;/code&amp;gt; et mettez-y ce fichier de configuration XBindKeys :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;# Aptitude 1&amp;lt;/nowiki&amp;gt;&amp;lt;br /&amp;gt; &amp;quot;~/.diablo2/aptitude.sh 6&amp;quot;&amp;lt;br /&amp;gt; Â b:4&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; # Aptitude 1-Copy&amp;lt;br /&amp;gt; &amp;quot;~/.diablo2/aptitude.sh 6&amp;quot;&amp;lt;br /&amp;gt; Â control + b:4&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; # Aptitude 2&amp;lt;br /&amp;gt; &amp;quot;~/.diablo2/aptitude.sh 7&amp;quot;&amp;lt;br /&amp;gt; Â b:5&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; # Aptitude 2-Copy&amp;lt;br /&amp;gt; &amp;quot;~/.diablo2/aptitude.sh 7&amp;quot;&amp;lt;br /&amp;gt; Â control + b:5&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; # Aptitude 3&amp;lt;br /&amp;gt; &amp;quot;~/.diablo2/aptitude.sh 8 0,09&amp;quot;&amp;lt;br /&amp;gt; Â b:2&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; # Aptitude 3-Copy&amp;lt;br /&amp;gt; &amp;quot;~/.diablo2/aptitude.sh 8 0,09&amp;quot;&amp;lt;br /&amp;gt; Â control + b:2&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; # Extended keyboard&amp;lt;br /&amp;gt; &amp;quot;~/.diablo2/message.sh &#039;***à bout de souffle*** on pourrait pas... faire un petit saut... en ville ? :) Je vous paye le TP :D&#039;&amp;quot;&amp;lt;br /&amp;gt; Â XF86HomePage&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; &amp;quot;aumix -v+10&amp;quot;&amp;lt;br /&amp;gt; Â XF86AudioRaiseVolume&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; &amp;quot;aumix -v-10&amp;quot;&amp;lt;br /&amp;gt; Â XF86AudioLowerVolume&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; &amp;quot;mute&amp;quot;&amp;lt;br /&amp;gt; Â XF86AudioMute&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;warning&amp;quot;&amp;gt;Faites attention au deuxième argument donné à aptitude.sh, ce sont des nombres décimaux et le séparateur est une virgule. Ça ne fonctionnera pas si vous mettez un point ! (dû à la commande sleep)&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;aparte&amp;quot;&amp;gt;Comme vous le voyez, j&#039;ai remis les mêmes associations deux fois. Une fois avec le &#039;&#039;&#039;[&amp;lt;tt&amp;gt;Ctrl&amp;lt;/tt&amp;gt;]&#039;&#039;&#039; enfoncé, et une fois sans. Étant donné qu&#039;il faut appuyer sur la touche &#039;&#039;&#039;[&amp;lt;tt&amp;gt;Ctrl&amp;lt;/tt&amp;gt;]&#039;&#039;&#039; pour courir.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mais quel est cet étrange script aptitude.sh ? Et message.sh ? La suite, par ici...&lt;br /&gt;
&lt;br /&gt;
==== XMacroPlay et Diablo II ====&lt;br /&gt;
&lt;br /&gt;
On va maintenant faire deux petits scripts, l&#039;un permet d&#039;envoyer des messages rapidement l&#039;autre permet d&#039;appuyer sur une touche, faire un clic droit, temporiser et appuyer sur une autre touche du clavier.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;#!/bin/bash&amp;lt;/nowiki&amp;gt;&amp;lt;br /&amp;gt; echo &amp;quot;KeyStr Return&amp;lt;br /&amp;gt; string $@&amp;lt;br /&amp;gt; KeyStr Return&amp;quot; &amp;gt; /tmp/message.$USER&amp;lt;br /&amp;gt; xmacroplay :1 &amp;lt; /tmp/message.$USER&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ce script va donc appuyer sur &#039;&#039;&#039;[&amp;lt;tt&amp;gt;Enter&amp;lt;/tt&amp;gt;]&#039;&#039;&#039;, taper tout le message contenu en paramètres et réappuyer sur &#039;&#039;&#039;[&amp;lt;tt&amp;gt;Enter&amp;lt;/tt&amp;gt;]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Maintenant voyons voir l&#039;autre script :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;#!/bin/bash&amp;lt;/nowiki&amp;gt;&amp;lt;br /&amp;gt; echo &amp;quot;KeyStr $1&amp;quot; &amp;gt; /tmp/macrokeys&amp;lt;br /&amp;gt; xmacroplay :1 &amp;lt; /tmp/macrokeys&amp;lt;br /&amp;gt; test -z &amp;quot;$2&amp;quot; || sleep $2&amp;lt;br /&amp;gt; echo &amp;quot;ButtonPress 3&amp;lt;br /&amp;gt; ButtonRelease 3&amp;lt;br /&amp;gt; KeyStr 5&amp;quot; &amp;gt; /tmp/macrokeys&amp;lt;br /&amp;gt; xmacroplay :1 &amp;lt; /tmp/macrokeys&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;note&amp;quot;&amp;gt;Changez le &amp;lt;code&amp;gt;ButtonPress 3&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;ButtonRelease 3&amp;lt;/code&amp;gt; en &amp;lt;code&amp;gt;ButtonPress 1&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;ButtonRelease 1&amp;lt;/code&amp;gt; si vous désirez que le script fasse un clic gauche au lieu d&#039;un clic droite.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5... 6... Vous comprenez maintenant pourquoi c&#039;est plus difficile en clavier français ou belge.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Non ça ne marche pas encore, mais il ne reste qu&#039;à configurer le jeu... ;)&lt;br /&gt;
&lt;br /&gt;
==== Configuration de Diablo II ====&lt;br /&gt;
&lt;br /&gt;
Entrez dans le jeu, appuyez sur &#039;&#039;&#039;[&amp;lt;tt&amp;gt;Esc&amp;lt;/tt&amp;gt;]&#039;&#039;&#039;, rendez-vous ensuite dans le menu de configuration des touches. Associez les touches &#039;&#039;&#039;[&amp;lt;tt&amp;gt;5&amp;lt;/tt&amp;gt;]&#039;&#039;&#039;, &#039;&#039;&#039;[&amp;lt;tt&amp;gt;6&amp;lt;/tt&amp;gt;]&#039;&#039;&#039;, &#039;&#039;&#039;[&amp;lt;tt&amp;gt;7&amp;lt;/tt&amp;gt;]&#039;&#039;&#039; et &#039;&#039;&#039;[&amp;lt;tt&amp;gt;8&amp;lt;/tt&amp;gt;]&#039;&#039;&#039; à des aptitudes différentes. Sortez des menus et mettez votre aptitude principale en &#039;&#039;&#039;[&amp;lt;tt&amp;gt;5&amp;lt;/tt&amp;gt;]&#039;&#039;&#039;, et des aptitudes utilisées moins fréquemment en &#039;&#039;&#039;[&amp;lt;tt&amp;gt;6&amp;lt;/tt&amp;gt;]&#039;&#039;&#039;, &#039;&#039;&#039;[&amp;lt;tt&amp;gt;7&amp;lt;/tt&amp;gt;]&#039;&#039;&#039; et &#039;&#039;&#039;[&amp;lt;tt&amp;gt;8&amp;lt;/tt&amp;gt;]&#039;&#039;&#039;. Tout ça à une même main (coté gauche ou droit des aptitudes).&lt;br /&gt;
&lt;br /&gt;
Bon amusement ;)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;note&amp;quot;&amp;gt;Si vous avez bien tout suivi : quand vous ferez défiler la roulette vers le haut, votre aptitude en &#039;&#039;&#039;[&amp;lt;tt&amp;gt;5&amp;lt;/tt&amp;gt;]&#039;&#039;&#039; va commuter vers la &#039;&#039;&#039;[&amp;lt;tt&amp;gt;7&amp;lt;/tt&amp;gt;]&#039;&#039;&#039; et l&#039;actionner, et reviendra immédiatement après en &#039;&#039;&#039;[&amp;lt;tt&amp;gt;5&amp;lt;/tt&amp;gt;]&#039;&#039;&#039;. &amp;lt;br /&amp;gt; Appuyez sur la touche &#039;&#039;&#039;[&amp;lt;tt&amp;gt;MyHome&amp;lt;/tt&amp;gt;]&#039;&#039;&#039; pour avoir un message &amp;quot;rapide&amp;quot; qui n&#039;a de rapide que le nom...&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;merci&amp;quot;&amp;gt;Cette page est issue de la documentation &#039;pré-wiki&#039; de Léa a été convertie avec HTML::WikiConverter. Elle fut créée par Jean-Thomas MUYL --maston28 le 19/02/2004.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Copyright =&lt;br /&gt;
Copyright &amp;amp;copy; 19/02/2004, Jean-Thomas MUYL --maston28&lt;br /&gt;
{{CC-BY-NC-SA}}&lt;/div&gt;</summary>
		<author><name>Ptyxs</name></author>
	</entry>
	<entry>
		<id>https://lea-linux.org/docs/index.php?title=Configurer_les_touches_de_son_clavier_multim%C3%A9dia&amp;diff=14215</id>
		<title>Configurer les touches de son clavier multimédia</title>
		<link rel="alternate" type="text/html" href="https://lea-linux.org/docs/index.php?title=Configurer_les_touches_de_son_clavier_multim%C3%A9dia&amp;diff=14215"/>
		<updated>2007-01-14T15:32:04Z</updated>

		<summary type="html">&lt;p&gt;Ptyxs : /* Attribuer des commandes aux touches */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Autres]]&lt;br /&gt;
= Configurer les touches de son clavier multimédia =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;leatitre&amp;quot;&amp;gt;Configurer les touches de son clavier multimédia&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;leapar&amp;quot;&amp;gt;par [mailto:jean-thomas.muyl@lea-linux.org Jean-Thomas MUYL --maston28 et [mailto:tuxnil@yahoo.fr NiL]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Comme moi, vous vous êtes peut-être acheté un clavier confortable, plus adapté aux longues heures de coding ou d&#039;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&#039;autres choses du genre, parfaitement inutiles donc totalement indispensables...&lt;br /&gt;
&lt;br /&gt;
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&#039;exécution d&#039;une commande.&lt;br /&gt;
&lt;br /&gt;
== Préliminaires ==&lt;br /&gt;
=== Espionnage des touches incriminées ===&lt;br /&gt;
&lt;br /&gt;
Tout d&#039;abord, il va nous falloir espionner le clavier pour savoir ce qu&#039;il renvoie quand vous appuyez sur les touches bonus.&lt;br /&gt;
&lt;br /&gt;
Pour cela, il faut utiliser le programme xev, qui se trouvait sur d&#039;anciennes versions de Mandriva dans le paquet X11R6-contrib et s&#039;installe maintenant à partir d&#039;un paquetage spécifique xev. Dans la 2007, si vous avez [http://groupes.lea-linux.org/fiches/ficheurpmi.html correctement configuré les sources urpmi], il vous suffit de taper ceci en tant que root : &amp;lt;code&amp;gt;urpmi xev&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Lorsque tout est installé, lancez le programme &amp;lt;code&amp;gt;xev&amp;lt;/code&amp;gt;. En appuyant sur les touches, vous devriez obtenir quelque chose ressemblant à ceci :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;[root@mastonsbox maston28]# xev&amp;lt;br /&amp;gt; KeyRelease event, serial 27, synthetic NO, window 0x3400001,&amp;lt;br /&amp;gt; root 0x48, subw 0x0, time 7029077, (249,-81), root:(252,517),&amp;lt;br /&amp;gt; state 0x0, keycode 233 (keysym 0x1008ff27, XF86Forward), same_screen YES,&amp;lt;br /&amp;gt; XLookupString gives 0 bytes: &amp;quot;&amp;quot;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le champ qui nous intéresse ici est le champ &amp;lt;code&amp;gt;keycode&amp;lt;/code&amp;gt;. Par exemple, la touche que j&#039;ai ici espionnée renvoie la valeur &amp;lt;code&amp;gt;keycode 233&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Répétez cette opération pour chacune des touches spéciales, et notez quelque part la valeur de chacune de ces touches.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;note&amp;quot;&amp;gt;Si certaines touches ne semblent rien renvoyer, vérifiez dans le fichier &amp;lt;code&amp;gt;/usr/X11R6/lib/X11/xkb/keycodes/xfree86&amp;lt;/code&amp;gt; que vous avez ceci :&amp;lt;br /&amp;gt;&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt; xkb_keycodes &amp;quot;basic&amp;quot; {&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; minimum= 8;&amp;lt;br /&amp;gt; maximum= 255;&amp;lt;br /&amp;gt; &amp;lt;/div&amp;gt;&amp;lt;br /&amp;gt; En effet, il arrive parfois que les valeurs soient plus petites, et donc que le programme ne scanne pas sur toute la plage possible. &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== xev ne réagit pas à vos touches ====&lt;br /&gt;
Il arrive fréquemment que &amp;lt;code&amp;gt;xev&amp;lt;/code&amp;gt; ne réagisse pas à l&#039;appuie sur certaines touches des claviers multimédia. C&#039;est, la plupart du temps, du au fait que le kernel n&#039;a pas connaissance de ces touches. Mais il existe une solution ! &lt;br /&gt;
&lt;br /&gt;
===== vérifier que le kernel est capable de gérer une touche =====&lt;br /&gt;
Dans un terminal tapez : &lt;br /&gt;
&amp;lt;code multi&amp;gt;tail -f /var/log/messages&amp;lt;/code&amp;gt;&lt;br /&gt;
Puis appuyez sur la touche qu&#039;&amp;lt;code&amp;gt;xev&amp;lt;/code&amp;gt; ne reconnaît pas, vous devriez voir apparaître quelque chose du genre :&lt;br /&gt;
&amp;lt;code multi&amp;gt;Feb  7 16:13:08 localhost atkbd.c: Use &#039;setkeycodes e012 &amp;lt;keycode&amp;gt;&#039; to make it known.&amp;lt;/code&amp;gt;&lt;br /&gt;
Ce qui nous intéresse, c&#039;est la valeur annoncée : &#039;&#039;&#039;e012&#039;&#039;&#039;. C&#039;est le &#039;&#039;&#039;scancode&#039;&#039;&#039; de la touche en question. Tant que vous y êtes appuyez sur la plupart de touches de votre clavier pour voir s&#039;il n&#039;y a pas d&#039;autre touche inconnue du noyau. Vérifiez aussi les touches après le verrouillage de la touche &amp;lt;key&amp;gt;Verr. F&amp;lt;/key&amp;gt; (enfin c&#039;est son nom sur mon clavier) : elle donne accès à une douzaines de &#039;&#039;&#039;touches&#039;&#039;&#039; parallèlement aux touches de fonction.&lt;br /&gt;
&lt;br /&gt;
Il faut maintenant affecter un &#039;&#039;&#039;keycode&#039;&#039;&#039; à ce &#039;&#039;&#039;scancode&#039;&#039;&#039;. C&#039;est ce que dit le message d&#039;erreur renvoyé par le noyau.&lt;br /&gt;
&lt;br /&gt;
===== vérifier les &#039;&#039;&#039;keycodes&#039;&#039;&#039; disponibles =====&lt;br /&gt;
Un outil liste les &#039;&#039;&#039;keycodes&#039;&#039;&#039; utilisés : &amp;lt;code&amp;gt;getkeycodes&amp;lt;/code&amp;gt;. Il renvoie une table qui liste les touches par &#039;&#039;&#039;scancode&#039;&#039;&#039; affiche leur &#039;&#039;&#039;keycodes&#039;&#039;&#039; associé. &lt;br /&gt;
&lt;br /&gt;
Pour afficher uniquement les &#039;&#039;&#039;keycodes&#039;&#039;&#039; libres, on peut utiliser la commande : &lt;br /&gt;
&amp;lt;code&amp;gt;root@localhost # IFS=$&#039;\n &#039; ; for i in $(getkeycodes | grep &amp;quot;[0-9]:&amp;quot; | cut -d &amp;quot;:&amp;quot; -f 2) ; do echo $i ; done | sort | uniq &amp;gt; list.codes&lt;br /&gt;
root@localhost # for ((i=80;i&amp;lt;=255;i++)) ; do if grep -E &amp;quot;^$i\$&amp;quot; list.codes &amp;gt; /dev/null ; then true ; else echo &amp;quot;$i&amp;quot; ; fi ; done &amp;gt; free.codes&lt;br /&gt;
root@localhost # cat free.codes&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note : &#039;&#039;&#039; il semblerait que les versions récentes de setkeycodes ou du kernel ne permettent plus d&#039;attribuer les keycodes supérieurs à 127, ce qui est plus que pénible.&lt;br /&gt;
&lt;br /&gt;
===== affectation d&#039;un &#039;&#039;&#039;keycode&#039;&#039;&#039; par &#039;&#039;&#039;scancode&#039;&#039;&#039; =====&lt;br /&gt;
Pour chaque &#039;&#039;&#039;scancode&#039;&#039;&#039; trouvé aux étapes précédantes, vous devez affecter un &#039;&#039;&#039;keycode&#039;&#039;&#039; libre (trouvé à l&#039;étape précédante).&lt;br /&gt;
&lt;br /&gt;
Par exemple, pour affecter le &#039;&#039;&#039;keycode&#039;&#039;&#039; : &#039;&#039;200&#039;&#039; à la touche dont le &#039;&#039;&#039;scancode&#039;&#039;&#039; est &#039;&#039;e012&#039;&#039;, il suffit de taper : &lt;br /&gt;
&amp;lt;code multi&amp;gt;setkeycodes e012 200&amp;lt;/code&amp;gt;&lt;br /&gt;
On peut affecter plusieurs touches en même temps, par exemple : &lt;br /&gt;
&amp;lt;code multi&amp;gt;setkeycodes e012 200 e013 201 e017 215&amp;lt;/code&amp;gt;&lt;br /&gt;
Un fois ceci fait, vous pourrez espionner vos touches avec &amp;lt;code&amp;gt;xev&amp;lt;/code&amp;gt; comme préconisé ci-dessus.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;PS:&#039;&#039;&#039; Pensez à ajouter à l&#039;un de vos scripts de démarrage l&#039;affectation des &#039;&#039;&#039;keycodes&#039;&#039;&#039;&lt;br /&gt;
Sur ma gentoo, j&#039;ai créé le script &amp;lt;code&amp;gt;/etc/init.d/keycodes&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;code&amp;gt;#!/sbin/runscript&lt;br /&gt;
# Distributed under the terms of the GNU General Public License v2 (and no other version)&lt;br /&gt;
#NB: Config is in /etc/conf.d/keycodes&lt;br /&gt;
&lt;br /&gt;
depend() {&lt;br /&gt;
        need localmount&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
checkconfig() {&lt;br /&gt;
        if [ -z &amp;quot;$KEYCODES&amp;quot; ] ; then&lt;br /&gt;
                eerror &amp;quot;You need to setup KEYCODES in /etc/conf.d/keycodes first&amp;quot;&lt;br /&gt;
                return 1&lt;br /&gt;
        fi&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
start() {&lt;br /&gt;
        checkconfig || return 1&lt;br /&gt;
        ebegin &amp;quot;Setting specific keycodes&amp;quot;&lt;br /&gt;
                setkeycodes $KEYCODES&lt;br /&gt;
        eend ${?}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
stop() {&lt;br /&gt;
        ewarn &amp;quot;nothing to stop&amp;quot;&lt;br /&gt;
}&amp;lt;/code&amp;gt;&lt;br /&gt;
Je n&#039;ai pas oublié de rendre ce script exécutable : &lt;br /&gt;
&amp;lt;code multi&amp;gt;root@localhost # chmod +x /etc/init.d/keycodes&amp;lt;/code&amp;gt;&lt;br /&gt;
Et j&#039;ai créé le fichier de configuration &amp;lt;code&amp;gt;/etc/conf.d/keycodes&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;code multi&amp;gt;KEYCODES=&amp;quot;e011 227 e012 228 e013 229 e014 230 e03b 190 e03c 191 e03d 192 e03e 193 e03f 194 e040 195 e041 196 e042 197 e043 198 e044 199 e057 201 e058 202&amp;quot;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Ensuite j&#039;ai demandé à ma gentoo de démarrer automatiquement ce fichier : &lt;br /&gt;
&amp;lt;code multi&amp;gt;root@localhost # rc-update add keycodes default&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Nommer les touches ===&lt;br /&gt;
&lt;br /&gt;
Pour que les touches soient reconnues, il faut associer leur &amp;lt;code&amp;gt;keycode&amp;lt;/code&amp;gt; avec un nom de touche g énérique connu par Xfree. Ces noms de touches sont listés dans le fichier &amp;lt;code&amp;gt;/usr/X11R6/lib/X11/XKeysymDB&amp;lt;/code&amp;gt; et commencent par &amp;lt;code&amp;gt;XF86&amp;lt;/code&amp;gt;. Il faut ensuite créer le fichier &amp;lt;code&amp;gt;~/.xmodmaprc&amp;lt;/code&amp;gt; dans lequel on va définir ces fameuses correspondances...Comme un exemple vaut mieux qu&#039;un long discours, voici le contenu de mon &amp;lt;code&amp;gt;~/.xmodmaprc&amp;lt;/code&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;keycode 234 = XF86Back&amp;lt;br /&amp;gt; keycode 233 = XF86Forward&amp;lt;br /&amp;gt; keycode 232 = XF86Stop&amp;lt;br /&amp;gt; keycode 231 = XF86Refresh&amp;lt;br /&amp;gt; keycode 229 = XF86Search&amp;lt;br /&amp;gt; keycode 230 = XF86Favorites&amp;lt;br /&amp;gt; keycode 178 = XF86VendorHome&amp;lt;br /&amp;gt; keycode 236 = XF86Mail&amp;lt;br /&amp;gt; keycode 160 = XF86AudioMute&amp;lt;br /&amp;gt; keycode 174 = XF86AudioLowerVolume&amp;lt;br /&amp;gt; keycode 176 = XF86AudioRaiseVolume&amp;lt;br /&amp;gt; keycode 162 = XF86AudioPlay&amp;lt;br /&amp;gt; keycode 164 = XF86AudioStop&amp;lt;br /&amp;gt; keycode 144 = XF86AudioPrev&amp;lt;br /&amp;gt; keycode 153 = XF86AudioNext&amp;lt;br /&amp;gt; keycode 237 = XF86Video&amp;lt;br /&amp;gt; keycode 235 = XF86OfficeHome&amp;lt;br /&amp;gt; keycode 161 = XF86Calculator&amp;lt;br /&amp;gt; keycode 222 = XF86PowerOff&amp;lt;br /&amp;gt; keycode 223 = XF86Sleep&amp;lt;br /&amp;gt; keycode 227 = XF86WakeUp&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
En fonction des &amp;lt;code&amp;gt;keycode&amp;lt;/code&amp;gt; que vous avez trouvé et des noms que vous souhaitez donner à vos touches, remplissez ce fichier avec cette syntaxe très simple.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;note&amp;quot;&amp;gt;L&#039;attribution de ces noms est totalement arbitraire du moment qu&#039;ils sont dans le fichier &amp;lt;code&amp;gt;/usr/X11R6/lib/X11/XKeysymDB&amp;lt;/code&amp;gt;. Le choix de ces noms n&#039;influera en rien sur les actions associées aux touches dans le futur. Une bonne chose est de choisir les noms qui se rapprochent le plus du dessin associé à la touche sur le clavier pour s&#039;y retrouver...&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Une fois cela fait, il faut taper la commande &amp;lt;code&amp;gt;xmodmap ~/.xmodmaprc&amp;lt;/code&amp;gt; pour activer le nouveau mapping.&lt;br /&gt;
&lt;br /&gt;
==== Charger les attributions automatiquement sous KDE ====&lt;br /&gt;
&lt;br /&gt;
Pour que cela prenne effet à chaque démarrage de KDE, placez le fichier suivant dans le répertoire &amp;lt;code&amp;gt;~/.kde/Autostart/&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;#!/bin/sh&amp;lt;/nowiki&amp;gt;&amp;lt;br /&amp;gt; xmodmap ~/.xmodmaprc&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Rendez ensuite ce script exécutable : &amp;lt;code&amp;gt; chmod +x ~/.kde/Autostart/clavier&amp;lt;/code&amp;gt; (si vous avez appelé le fichier &amp;lt;code&amp;gt;clavier&amp;lt;/code&amp;gt; bien entendu...)&lt;br /&gt;
&lt;br /&gt;
== KDE est installé sur ma machine ==&lt;br /&gt;
&lt;br /&gt;
=== Attribuer des commandes aux touches ===&lt;br /&gt;
&lt;br /&gt;
Une méthode simple pour attribuer des touches à des commandes est de créer un menu caché.&lt;br /&gt;
&lt;br /&gt;
Pour cela, lancez &amp;lt;code&amp;gt;kmenuedit&amp;lt;/code&amp;gt; ou &amp;lt;code&amp;gt;menudrake&amp;lt;/code&amp;gt; (sous Mandriva 2006 ou 2007), ou encore sous Mandriva 10.1 &#039;&#039;Kcontrol-&amp;gt;Système-&amp;gt;Touches spéciales du clavier&#039;&#039;. Créez un menu caché en mettant un point au début du nom de menu, par exemple : &amp;lt;code&amp;gt;.clavier&amp;lt;/code&amp;gt; sera un menu caché.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;note&amp;quot;&amp;gt;Vous trouverez à la fin de cet article quelques commandes utiles de gestion de son par exemple, ou de certains logiciels.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Maintenant que vous avez créé les entrées, allez voir : &amp;quot;Centre de controle kde -&amp;gt; Régionalisation &amp;amp; accessibilité -&amp;gt; Raccourcis claviers -&amp;gt; raccourcis de commandes&amp;quot;. Tout dépend de votre version de KDE, mais cela n&#039;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 ?&lt;br /&gt;
&lt;br /&gt;
Une autre méthode utilisant KDE pour lancer une commande avec un raccourci clavier consiste à utiliser la fonction d&#039;&amp;quot;Actions d&#039;entrées&amp;quot; disponnible sous le versions les plus récentes de KDE. Pour ce faire allez dans : &lt;br /&gt;
Centre de configuration de KDE (&amp;lt;code&amp;gt;kcontrol&amp;lt;/code&amp;gt;) &amp;gt; Régionalisation &amp;amp; accessibilité &amp;gt; Actions d&#039;entrées.&lt;br /&gt;
&lt;br /&gt;
Ensuite, cliquez sur le bouton &amp;quot;Nouveau groupe&amp;quot; et nommez-le &amp;quot;Clavier&amp;quot;, par exemple. &lt;br /&gt;
&lt;br /&gt;
Cliquez sur le nom du goupe dans la liste de droite puis cliquez sur &amp;quot;Nouvelle action&amp;quot;. Nommez-la comme vous le désirez et choisissez  &amp;quot;Raccourci clavier -&amp;gt; Commande / URL (simple)&amp;quot; dans la liste déroulante &amp;quot;Type d&#039;action : &amp;quot;. Vous pouvez dès à présent paramétrer le raccourci que vous voulez utliser et la commande à lancer dans les onglets &amp;quot;Raccourci clavier&amp;quot; et &amp;quot;Paramètres de la commande / URL&amp;quot;. Il convient de répéter cette dernière procédure pour chaque commande à lancer.&lt;br /&gt;
&lt;br /&gt;
=== Liste de commandes utilisables ===&lt;br /&gt;
&lt;br /&gt;
{| width=&amp;quot;80%&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;10&amp;quot;&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
! Action&lt;br /&gt;
! Commande&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Lecture-pause&lt;br /&gt;
| &amp;lt;code&amp;gt;xmms --play-pause&amp;lt;/code&amp;gt;&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| STOP&lt;br /&gt;
| &amp;lt;code&amp;gt;xmms --stop&amp;lt;/code&amp;gt;&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Chanson précédente&lt;br /&gt;
| &amp;lt;code&amp;gt;xmms --rew&amp;lt;/code&amp;gt;&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Chanson suivante&lt;br /&gt;
| &amp;lt;code&amp;gt;xmms --fwd&amp;lt;/code&amp;gt;&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Baisser le son&lt;br /&gt;
| &amp;lt;code&amp;gt;aumix -v-15&amp;lt;/code&amp;gt; ici de 15%.&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Monter le son&lt;br /&gt;
| &amp;lt;code&amp;gt;aumix -v+15&amp;lt;/code&amp;gt; ici de 15%.&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Couper le son&lt;br /&gt;
| &amp;lt;code&amp;gt;aumix -vn&amp;lt;/code&amp;gt;&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Lancer kmail&lt;br /&gt;
| &amp;lt;code&amp;gt;kmail&amp;lt;/code&amp;gt;&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Relever les mails dans kMail&lt;br /&gt;
| &amp;lt;code&amp;gt;dcop kmail KMailIface checkMail&amp;lt;/code&amp;gt;&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Verrouiller l&#039;écran&lt;br /&gt;
| &amp;lt;code&amp;gt;dcop kdesktop KScreensaverIface lock&amp;lt;/code&amp;gt;&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Ejecter cdrom&lt;br /&gt;
| &amp;lt;code&amp;gt;eject /dev/cdrom&amp;lt;/code&amp;gt;&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Avaler cdrom&lt;br /&gt;
| &amp;lt;code&amp;gt;eject -t /dev/cdrom&amp;lt;/code&amp;gt;&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Calculatrice&lt;br /&gt;
| &amp;lt;code&amp;gt;kcalc&amp;lt;/code&amp;gt;&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Chercher un fichier&lt;br /&gt;
| &amp;lt;code&amp;gt;kfind&amp;lt;/code&amp;gt;&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Konqueror comme gestionnaire de fichiers&lt;br /&gt;
| &amp;lt;code&amp;gt;kfmclient openProfile filemanagement&amp;lt;/code&amp;gt;&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Konqueror comme navigateur&lt;br /&gt;
| &amp;lt;code&amp;gt;kfmclient openProfile webbrowsing&amp;lt;/code&amp;gt;&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Exécuter une commande&lt;br /&gt;
| &amp;lt;code&amp;gt;dcop kdesktop KDesktopIface popupExecuteCommand&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== KDE n&#039;est pas installé sur ma machine ==&lt;br /&gt;
&lt;br /&gt;
=== Configurer son clavier sous X ===&lt;br /&gt;
&lt;br /&gt;
Nous allons commencer par configurer notre clavier sous X : c&#039;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 :&lt;br /&gt;
&lt;br /&gt;
* Quel clavier nous possédons&lt;br /&gt;
* A quel modèle X associe t-il notre clavier&lt;br /&gt;
&lt;br /&gt;
Pour la première, retournez votre clavier et lisez l&#039;étiquette ;)&amp;lt;br /&amp;gt; Pour la deuxième, éditez le fichier &amp;lt;code&amp;gt;/usr/X11R6/lib/X11/xkb/rules/xfree86.lst&amp;lt;/code&amp;gt;. S&#039;il ne se trouve pas là, faites &amp;lt;code&amp;gt;locate *xkb*/xfree86.lst&amp;lt;/code&amp;gt; dans un shell).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;exemple&amp;quot;&amp;gt;Au dos de mon clavier il est écrit : &#039;&#039;Logitech Internet Naviguator Keyboard&#039;&#039;. Le modèle de X est donc &#039;&#039;logiink&#039;&#039;.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Maintenant on va insérer tous ces paramètres dans le fichier de configuration de X, pour ce faire : éditez en root le fichier &amp;lt;code&amp;gt;/etc/X11/XF86Config-4&amp;lt;/code&amp;gt; (ou &amp;lt;code&amp;gt;XF86Config&amp;lt;/code&amp;gt; selon votre version de X). Cherchez la section du clavier : &#039;&#039;Driver &amp;quot;keyboard&amp;quot;&#039;&#039; et insérez les paramètres :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;Section &amp;quot;InputDevice&amp;quot;&amp;lt;br /&amp;gt; Â Â Identifier &amp;quot;Generic Keyboard&amp;quot;&amp;lt;br /&amp;gt; Â Â Driver &amp;quot;keyboard&amp;quot;&amp;lt;br /&amp;gt; Â Â Option &amp;quot;CoreKeyboard&amp;quot;&amp;lt;br /&amp;gt; Â Â Option &amp;quot;XkbRules&amp;quot; &amp;quot;xfree86&amp;quot;&amp;lt;br /&amp;gt; Â Â Option &amp;quot;XkbModel&amp;quot; &amp;quot;&#039;&#039;&#039;logiink&#039;&#039;&#039;&amp;quot;&amp;lt;br /&amp;gt; Â Â Option &amp;quot;XkbLayout&amp;quot; &amp;quot;&#039;&#039;&#039;be&#039;&#039;&#039;&amp;quot;&amp;lt;br /&amp;gt; EndSection&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enregistrez, relancez vos sessions si vous voulez que les changements soit appliqués immédiatement. La configuration de X est terminée.&lt;br /&gt;
&lt;br /&gt;
=== Récupérer les KeyCodes de toutes les touches ===&lt;br /&gt;
&lt;br /&gt;
Les KeyCodes sont les numéros des touches qui définissent les touches de votre clavier, parfois c&#039;est sous forme de chaîne de caractères comme ici. C&#039;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 &amp;lt;code&amp;gt;/etc/X11/xkb/symbols/inet&amp;lt;/code&amp;gt; (si le fichier ne se trouve pas là, essayez &amp;lt;code&amp;gt;locate *xkb*/inet&amp;lt;/code&amp;gt;), et recherchez le modèle de votre clavier. Vous trouverez ainsi tous les KeyCodes des touches supplémentaires de votre clavier étendu.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;aparte&amp;quot;&amp;gt;Vous pouvez utiliser les touches pour des actions sous KDE, Gnome, Fluxbox, WindowMaker, etc...&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Association des touches supplémentaires à une commande ===&lt;br /&gt;
&lt;br /&gt;
==== Installation de KeyLaunch ====&lt;br /&gt;
&lt;br /&gt;
Associer une touche à une commande est chose facile si l&#039;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&#039;est le paquet keylaunch, pour Mandrake et RedHat : je n&#039;ai pas trouvé le paquet (désolé) et pour ceux qui veulent compiler [http://ftp.riken.go.jp/pub/Linux/debian/debian/pool/main/k/keylaunch/keylaunch_1.3.0-6.tar.gz c&#039;est par ici. (11k)]&lt;br /&gt;
&lt;br /&gt;
==== Configurer KeyLaunch ====&lt;br /&gt;
&lt;br /&gt;
La configuration est très simple et très pratique : tout se fait dans &amp;lt;code&amp;gt;.keylaunchrc&amp;lt;/code&amp;gt; que &#039;&#039;&#039; vous devez créer&#039;&#039;&#039; dans votre dossier home. Il y a un exemple du fichier dans &amp;lt;code&amp;gt;/usr/share/doc/keylaunch/examples&amp;lt;/code&amp;gt; (si vous avez installé le paquet Debian sinon c&#039;est dans le dossier &amp;lt;code&amp;gt;debian&amp;lt;/code&amp;gt; là où vous avez décompressé KeyLaunch).&lt;br /&gt;
&lt;br /&gt;
Voici, en français, comment personnaliser ce fichier :&amp;lt;br /&amp;gt; Une seule association par ligne, chaque association commence par : &amp;lt;code&amp;gt;key=&amp;lt;/code&amp;gt; faites suivre ensuite par l&#039;état des modificateurs. Insérez trois points si une simple pression sur la touche vous suffit. &amp;lt;code&amp;gt;key=...&amp;lt;/code&amp;gt;. (Le premier point est le modificateur &#039;&#039;&#039;[&amp;lt;tt&amp;gt;Shift&amp;lt;/tt&amp;gt;]&#039;&#039;&#039;, activez-le en remplaçant le point par une astérisque (*). Le second point est le modificateur &#039;&#039;&#039;[&amp;lt;tt&amp;gt;Ctrl&amp;lt;/tt&amp;gt;]&#039;&#039;&#039; et enfin le dernier est le modificateur &#039;&#039;&#039;[&amp;lt;tt&amp;gt;Alt&amp;lt;/tt&amp;gt;]&#039;&#039;&#039;.) Et terminez enfin la ligne par la commande à exécuter précédée de &#039;:&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;exemple&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Et comme un bon exemple vaut mieux qu&#039;un long discours :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt; key=...XF86AudioMedia:xmms&amp;lt;br /&amp;gt; key=.*.XF86AudioMedia:gmplayer&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cet exemple-ci fait en sorte que lorsque vous appuyez sur la touche &#039;&#039;&#039;[&amp;lt;tt&amp;gt;Media&amp;lt;/tt&amp;gt;]&#039;&#039;&#039; du clavier : il ouvre XMMS. Cependant, si vous appuyez simultanément sur &#039;&#039;&#039;[&amp;lt;tt&amp;gt;Alt&amp;lt;/tt&amp;gt;]&#039;&#039;&#039; et &#039;&#039;&#039;[&amp;lt;tt&amp;gt;Media&amp;lt;/tt&amp;gt;]&#039;&#039;&#039;, KeyLaunch lancera GMPlayer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;aparte&amp;quot;&amp;gt;Cette exemple est destiné à un clavier Logitech Internet Navigator, adaptez le fichier à vos besoins grâce à la liste des touches à laquelle j&#039;ai fait référence ci-dessus, dans la section KeyCodes.&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Aide pour les commandes ===&lt;br /&gt;
&lt;br /&gt;
Voici une petite aide pour savoir quels sont les commandes qu&#039;il faut mettre pour réaliser telle ou telle action. Demandez sur le forum si cette aide est insuffisante.&lt;br /&gt;
&lt;br /&gt;
==== XMMS ====&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
| Démarrer XMMS&lt;br /&gt;
| xmms&lt;br /&gt;
|-&lt;br /&gt;
| Démarrer la musique&lt;br /&gt;
| xmms --play&lt;br /&gt;
|-&lt;br /&gt;
| Mettre en pause&lt;br /&gt;
| xmms --pause&lt;br /&gt;
|-&lt;br /&gt;
| Basculement lecture/pause&lt;br /&gt;
| xmms --play-pause&lt;br /&gt;
|-&lt;br /&gt;
| Arrêter&lt;br /&gt;
| xmms --stop&lt;br /&gt;
|-&lt;br /&gt;
| Piste suivante&lt;br /&gt;
| xmms --fwd&lt;br /&gt;
|-&lt;br /&gt;
| Piste précédente&lt;br /&gt;
| xmms --rew&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Pour le reste, entrez dans une console et tapez &amp;lt;code&amp;gt;xmms --help&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Autre programme ====&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
| Couper le son&lt;br /&gt;
| mute&lt;br /&gt;
|-&lt;br /&gt;
| Noatun&lt;br /&gt;
| noatun&lt;br /&gt;
|-&lt;br /&gt;
| La calculatride de KDE&lt;br /&gt;
| kcalc&lt;br /&gt;
|-&lt;br /&gt;
| Mozilla&lt;br /&gt;
| mozilla&lt;br /&gt;
|-&lt;br /&gt;
| Mozilla Mail&lt;br /&gt;
| mozilla -mail&lt;br /&gt;
|-&lt;br /&gt;
| KMail&lt;br /&gt;
| kmail --check&lt;br /&gt;
|-&lt;br /&gt;
| Rechercher&lt;br /&gt;
| kfind&lt;br /&gt;
|-&lt;br /&gt;
| Augmenter le volume de 10%&lt;br /&gt;
| aumix -v+10&lt;br /&gt;
|-&lt;br /&gt;
| Diminuer le volume de 10%&lt;br /&gt;
| aumix -v-10&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Vous pouvez également créer ce script que vous pouvez associer à la touche &#039;&#039;&#039;[&amp;lt;tt&amp;gt;Go&amp;lt;/tt&amp;gt;]&#039;&#039;&#039;, présente sur certains claviers Logitech. Il affiche simplement une boite de dialogue KDE, pour vous permettre d&#039;entrez l&#039;URL que Mozilla doit vous afficher :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt; #!/bin/bash&amp;lt;br /&amp;gt; # kwebgo&amp;lt;br /&amp;gt; file=$(kdialog --inputbox &amp;quot;Site Web :&amp;quot; &amp;quot;$@&amp;quot;)&amp;lt;br /&amp;gt; if [ -n &amp;quot;$file&amp;quot; ]; then&amp;lt;br /&amp;gt; Â Â mozilla &amp;quot;$file&amp;quot;&amp;lt;br /&amp;gt; fi&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;kwebgo http://www.mozdex.com&amp;lt;/code&amp;gt; ouvrira la boite de dialogue avec pour valeur par défaut : [http://www.mozdex.com/ http://www.mozdex.com].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;note&amp;quot;&amp;gt;Changez &amp;lt;code&amp;gt;mozilla &amp;quot;$file&amp;quot;&amp;lt;/code&amp;gt; en &amp;lt;code&amp;gt;konqueror &amp;quot;$file&amp;quot;&amp;lt;/code&amp;gt;, et vous utiliserez ainsi Konqueror au lieu de Mozilla.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Comment associer une touche à une combinaison de touches ? ===&lt;br /&gt;
&lt;br /&gt;
Voici comment associer un clic ou une pression sur une touche à une combinaison de touches et d&#039;actions à la souris grâce à xbindkeys et xmacroplay.&lt;br /&gt;
&lt;br /&gt;
==== XBindKeys ====&lt;br /&gt;
&lt;br /&gt;
XBindKeys est un programme qui permet d&#039;associer une commande à une combinaison de touches ou de clics. Vous devez pour cela installer [http://www.easylinux.de/Download XBindKeys] (xbindkeys sur Debian (152K)).&lt;br /&gt;
&lt;br /&gt;
==== XMacro ====&lt;br /&gt;
&lt;br /&gt;
XMacro est un programme capable d&#039;enregistrer vos actions de souris et de clavier, pour ensuite les reproduire. Remarquez que l&#039;on ne fera que produire des actions. [http://xmacro.sourceforge.net/ Cliquez ici pour le télécharger] (paquet xmacro sur Debian (112K)).&lt;br /&gt;
&lt;br /&gt;
=== L&#039;exemple sur Diablo II ===&lt;br /&gt;
&lt;br /&gt;
Le mieux c&#039;est de montrer en pratique ce que l&#039;on peut faire avec tout ça avec Diablo II.&lt;br /&gt;
&lt;br /&gt;
Je n&#039;aborderai pas l&#039;émulation ici. Merci de ne pas m&#039;écrire à propos de ce jeu.&lt;br /&gt;
&lt;br /&gt;
==== Configurer X pour Diablo II ====&lt;br /&gt;
&lt;br /&gt;
Le XBindKeys ne fonctionne que si le programme n&#039;applique pas un &amp;quot;grab&amp;quot; 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&#039;écran correspondant à la taille de la fenêtre, ça revient finalement à un plein écran sans capture des périphériques d&#039;entrée.&lt;br /&gt;
&lt;br /&gt;
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&#039;écran). Pour cela il faut d&#039;abord configurer X pour qu&#039;il travail toujours en 800x600 lorsqu&#039;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 &amp;lt;code&amp;gt;/etc/X11/XF86Config-4&amp;lt;/code&amp;gt; (ou &amp;lt;code&amp;gt;XF86Config&amp;lt;/code&amp;gt; selon votre version de X) ; cherchez la section &amp;lt;code&amp;gt;Screen&amp;lt;/code&amp;gt; et trouvez ensuite la sous-section &amp;lt;code&amp;gt;Display&amp;lt;/code&amp;gt; dont la &amp;lt;code&amp;gt;Depth&amp;lt;/code&amp;gt; (profondeur des couleurs) est égale à 16. Modifiez les modes pour n&#039;avoir au maximum qu&#039;une résolution de 800x600. La première étant celle utilisée par défaut.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;SubSection &amp;quot;Display&amp;quot;&amp;lt;br /&amp;gt; Â Â Depth 16&amp;lt;br /&amp;gt; Â Â Modes &amp;quot;800x600&amp;quot; &amp;quot;640x480&amp;quot;&amp;lt;br /&amp;gt; EndSubSection&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
De cette façon, X activera toujours la 800x600 lorsqu&#039;il sera en 16 bits de couleurs.&lt;br /&gt;
&lt;br /&gt;
==== Configurer une commande Diablo II ====&lt;br /&gt;
&lt;br /&gt;
Nous allons maintenant faire le petit script qui lancera Diablo II sur une nouvelle session.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;#!/bin/bash&amp;lt;/nowiki&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; mv $HOME/.xinitrc $HOME/.xinitrc-diablo2-old&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; echo &amp;quot;xsetroot -solid black -cursor_name left_ptr&amp;lt;br /&amp;gt; #xset m 50/10 6 # accélération souris xset m &amp;lt;accel&amp;gt; &amp;lt;seuil&amp;gt;&amp;lt;br /&amp;gt; numlockx on # vérouillage pavé num&amp;lt;br /&amp;gt; setxkbmap -layout us&amp;lt;br /&amp;gt; cd /usr/local/games/Diablo\ II&amp;lt;br /&amp;gt; xbindkeys -f $HOME/.diablo2/xbindkeys.config -X :1&amp;lt;br /&amp;gt; wine Game.exe -- $@ &amp;quot;&amp;gt; /tmp/diablo2.logs&amp;lt;br /&amp;gt; killall -9 xbindkeys wine wineserver&amp;quot; &amp;gt; $HOME/.xinitrc&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; xinit -- :1 -depth 16&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; rm -f $HOME/.xinitrc&amp;lt;br /&amp;gt; mv $HOME/.xinitrc-diablo2-old $HOME/.xinitrc&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;note&amp;quot;&amp;gt;&amp;lt;code&amp;gt;setxkbmap -layout us&amp;lt;/code&amp;gt; nous sert à faire passer le clavier en QWERTY original. Ce n&#039;est pas indispensable mais préférable pour Diablo II qui ne comprend absolument rien aux touches numériques situées au dessus de la zone des lettres.&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;aparte&amp;quot;&amp;gt;Dans ce script, le NumLock est activé par numlockx : vérifiez que vous l&#039;avez installé !&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Comme vous voyez, la commande de XBindKeys est déjà insérée, les explications arrivent...&lt;br /&gt;
&lt;br /&gt;
==== XBindKeys et Diablo II ====&lt;br /&gt;
&lt;br /&gt;
Nous allons aborder ici l&#039;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 ;)&lt;br /&gt;
&lt;br /&gt;
On va tout d&#039;abord positionner tous les fichiers nécessaires à notre opération dans un dossier &amp;lt;code&amp;gt;.diablo2&amp;lt;/code&amp;gt; dans le répertoire home. Créez donc le dossier &amp;lt;code&amp;gt;$HOME/.diablo2&amp;lt;/code&amp;gt; et mettez-y ce fichier de configuration XBindKeys :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;# Aptitude 1&amp;lt;/nowiki&amp;gt;&amp;lt;br /&amp;gt; &amp;quot;~/.diablo2/aptitude.sh 6&amp;quot;&amp;lt;br /&amp;gt; Â b:4&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; # Aptitude 1-Copy&amp;lt;br /&amp;gt; &amp;quot;~/.diablo2/aptitude.sh 6&amp;quot;&amp;lt;br /&amp;gt; Â control + b:4&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; # Aptitude 2&amp;lt;br /&amp;gt; &amp;quot;~/.diablo2/aptitude.sh 7&amp;quot;&amp;lt;br /&amp;gt; Â b:5&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; # Aptitude 2-Copy&amp;lt;br /&amp;gt; &amp;quot;~/.diablo2/aptitude.sh 7&amp;quot;&amp;lt;br /&amp;gt; Â control + b:5&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; # Aptitude 3&amp;lt;br /&amp;gt; &amp;quot;~/.diablo2/aptitude.sh 8 0,09&amp;quot;&amp;lt;br /&amp;gt; Â b:2&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; # Aptitude 3-Copy&amp;lt;br /&amp;gt; &amp;quot;~/.diablo2/aptitude.sh 8 0,09&amp;quot;&amp;lt;br /&amp;gt; Â control + b:2&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; # Extended keyboard&amp;lt;br /&amp;gt; &amp;quot;~/.diablo2/message.sh &#039;***à bout de souffle*** on pourrait pas... faire un petit saut... en ville ? :) Je vous paye le TP :D&#039;&amp;quot;&amp;lt;br /&amp;gt; Â XF86HomePage&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; &amp;quot;aumix -v+10&amp;quot;&amp;lt;br /&amp;gt; Â XF86AudioRaiseVolume&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; &amp;quot;aumix -v-10&amp;quot;&amp;lt;br /&amp;gt; Â XF86AudioLowerVolume&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; &amp;quot;mute&amp;quot;&amp;lt;br /&amp;gt; Â XF86AudioMute&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;warning&amp;quot;&amp;gt;Faites attention au deuxième argument donné à aptitude.sh, ce sont des nombres décimaux et le séparateur est une virgule. Ça ne fonctionnera pas si vous mettez un point ! (dû à la commande sleep)&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;aparte&amp;quot;&amp;gt;Comme vous le voyez, j&#039;ai remis les mêmes associations deux fois. Une fois avec le &#039;&#039;&#039;[&amp;lt;tt&amp;gt;Ctrl&amp;lt;/tt&amp;gt;]&#039;&#039;&#039; enfoncé, et une fois sans. Étant donné qu&#039;il faut appuyer sur la touche &#039;&#039;&#039;[&amp;lt;tt&amp;gt;Ctrl&amp;lt;/tt&amp;gt;]&#039;&#039;&#039; pour courir.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mais quel est cet étrange script aptitude.sh ? Et message.sh ? La suite, par ici...&lt;br /&gt;
&lt;br /&gt;
==== XMacroPlay et Diablo II ====&lt;br /&gt;
&lt;br /&gt;
On va maintenant faire deux petits scripts, l&#039;un permet d&#039;envoyer des messages rapidement l&#039;autre permet d&#039;appuyer sur une touche, faire un clic droit, temporiser et appuyer sur une autre touche du clavier.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;#!/bin/bash&amp;lt;/nowiki&amp;gt;&amp;lt;br /&amp;gt; echo &amp;quot;KeyStr Return&amp;lt;br /&amp;gt; string $@&amp;lt;br /&amp;gt; KeyStr Return&amp;quot; &amp;gt; /tmp/message.$USER&amp;lt;br /&amp;gt; xmacroplay :1 &amp;lt; /tmp/message.$USER&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ce script va donc appuyer sur &#039;&#039;&#039;[&amp;lt;tt&amp;gt;Enter&amp;lt;/tt&amp;gt;]&#039;&#039;&#039;, taper tout le message contenu en paramètres et réappuyer sur &#039;&#039;&#039;[&amp;lt;tt&amp;gt;Enter&amp;lt;/tt&amp;gt;]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Maintenant voyons voir l&#039;autre script :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;#!/bin/bash&amp;lt;/nowiki&amp;gt;&amp;lt;br /&amp;gt; echo &amp;quot;KeyStr $1&amp;quot; &amp;gt; /tmp/macrokeys&amp;lt;br /&amp;gt; xmacroplay :1 &amp;lt; /tmp/macrokeys&amp;lt;br /&amp;gt; test -z &amp;quot;$2&amp;quot; || sleep $2&amp;lt;br /&amp;gt; echo &amp;quot;ButtonPress 3&amp;lt;br /&amp;gt; ButtonRelease 3&amp;lt;br /&amp;gt; KeyStr 5&amp;quot; &amp;gt; /tmp/macrokeys&amp;lt;br /&amp;gt; xmacroplay :1 &amp;lt; /tmp/macrokeys&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;note&amp;quot;&amp;gt;Changez le &amp;lt;code&amp;gt;ButtonPress 3&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;ButtonRelease 3&amp;lt;/code&amp;gt; en &amp;lt;code&amp;gt;ButtonPress 1&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;ButtonRelease 1&amp;lt;/code&amp;gt; si vous désirez que le script fasse un clic gauche au lieu d&#039;un clic droite.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5... 6... Vous comprenez maintenant pourquoi c&#039;est plus difficile en clavier français ou belge.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Non ça ne marche pas encore, mais il ne reste qu&#039;à configurer le jeu... ;)&lt;br /&gt;
&lt;br /&gt;
==== Configuration de Diablo II ====&lt;br /&gt;
&lt;br /&gt;
Entrez dans le jeu, appuyez sur &#039;&#039;&#039;[&amp;lt;tt&amp;gt;Esc&amp;lt;/tt&amp;gt;]&#039;&#039;&#039;, rendez-vous ensuite dans le menu de configuration des touches. Associez les touches &#039;&#039;&#039;[&amp;lt;tt&amp;gt;5&amp;lt;/tt&amp;gt;]&#039;&#039;&#039;, &#039;&#039;&#039;[&amp;lt;tt&amp;gt;6&amp;lt;/tt&amp;gt;]&#039;&#039;&#039;, &#039;&#039;&#039;[&amp;lt;tt&amp;gt;7&amp;lt;/tt&amp;gt;]&#039;&#039;&#039; et &#039;&#039;&#039;[&amp;lt;tt&amp;gt;8&amp;lt;/tt&amp;gt;]&#039;&#039;&#039; à des aptitudes différentes. Sortez des menus et mettez votre aptitude principale en &#039;&#039;&#039;[&amp;lt;tt&amp;gt;5&amp;lt;/tt&amp;gt;]&#039;&#039;&#039;, et des aptitudes utilisées moins fréquemment en &#039;&#039;&#039;[&amp;lt;tt&amp;gt;6&amp;lt;/tt&amp;gt;]&#039;&#039;&#039;, &#039;&#039;&#039;[&amp;lt;tt&amp;gt;7&amp;lt;/tt&amp;gt;]&#039;&#039;&#039; et &#039;&#039;&#039;[&amp;lt;tt&amp;gt;8&amp;lt;/tt&amp;gt;]&#039;&#039;&#039;. Tout ça à une même main (coté gauche ou droit des aptitudes).&lt;br /&gt;
&lt;br /&gt;
Bon amusement ;)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;note&amp;quot;&amp;gt;Si vous avez bien tout suivi : quand vous ferez défiler la roulette vers le haut, votre aptitude en &#039;&#039;&#039;[&amp;lt;tt&amp;gt;5&amp;lt;/tt&amp;gt;]&#039;&#039;&#039; va commuter vers la &#039;&#039;&#039;[&amp;lt;tt&amp;gt;7&amp;lt;/tt&amp;gt;]&#039;&#039;&#039; et l&#039;actionner, et reviendra immédiatement après en &#039;&#039;&#039;[&amp;lt;tt&amp;gt;5&amp;lt;/tt&amp;gt;]&#039;&#039;&#039;. &amp;lt;br /&amp;gt; Appuyez sur la touche &#039;&#039;&#039;[&amp;lt;tt&amp;gt;MyHome&amp;lt;/tt&amp;gt;]&#039;&#039;&#039; pour avoir un message &amp;quot;rapide&amp;quot; qui n&#039;a de rapide que le nom...&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;merci&amp;quot;&amp;gt;Cette page est issue de la documentation &#039;pré-wiki&#039; de Léa a été convertie avec HTML::WikiConverter. Elle fut créée par Jean-Thomas MUYL --maston28 le 19/02/2004.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Copyright =&lt;br /&gt;
Copyright &amp;amp;copy; 19/02/2004, Jean-Thomas MUYL --maston28&lt;br /&gt;
{{CC-BY-NC-SA}}&lt;/div&gt;</summary>
		<author><name>Ptyxs</name></author>
	</entry>
	<entry>
		<id>https://lea-linux.org/docs/index.php?title=Configurer_les_touches_de_son_clavier_multim%C3%A9dia&amp;diff=14214</id>
		<title>Configurer les touches de son clavier multimédia</title>
		<link rel="alternate" type="text/html" href="https://lea-linux.org/docs/index.php?title=Configurer_les_touches_de_son_clavier_multim%C3%A9dia&amp;diff=14214"/>
		<updated>2007-01-14T14:40:07Z</updated>

		<summary type="html">&lt;p&gt;Ptyxs : /* Espionnage des touches incriminées */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Autres]]&lt;br /&gt;
= Configurer les touches de son clavier multimédia =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;leatitre&amp;quot;&amp;gt;Configurer les touches de son clavier multimédia&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;leapar&amp;quot;&amp;gt;par [mailto:jean-thomas.muyl@lea-linux.org Jean-Thomas MUYL --maston28 et [mailto:tuxnil@yahoo.fr NiL]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Comme moi, vous vous êtes peut-être acheté un clavier confortable, plus adapté aux longues heures de coding ou d&#039;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&#039;autres choses du genre, parfaitement inutiles donc totalement indispensables...&lt;br /&gt;
&lt;br /&gt;
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&#039;exécution d&#039;une commande.&lt;br /&gt;
&lt;br /&gt;
== Préliminaires ==&lt;br /&gt;
=== Espionnage des touches incriminées ===&lt;br /&gt;
&lt;br /&gt;
Tout d&#039;abord, il va nous falloir espionner le clavier pour savoir ce qu&#039;il renvoie quand vous appuyez sur les touches bonus.&lt;br /&gt;
&lt;br /&gt;
Pour cela, il faut utiliser le programme xev, qui se trouvait sur d&#039;anciennes versions de Mandriva dans le paquet X11R6-contrib et s&#039;installe maintenant à partir d&#039;un paquetage spécifique xev. Dans la 2007, si vous avez [http://groupes.lea-linux.org/fiches/ficheurpmi.html correctement configuré les sources urpmi], il vous suffit de taper ceci en tant que root : &amp;lt;code&amp;gt;urpmi xev&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Lorsque tout est installé, lancez le programme &amp;lt;code&amp;gt;xev&amp;lt;/code&amp;gt;. En appuyant sur les touches, vous devriez obtenir quelque chose ressemblant à ceci :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;[root@mastonsbox maston28]# xev&amp;lt;br /&amp;gt; KeyRelease event, serial 27, synthetic NO, window 0x3400001,&amp;lt;br /&amp;gt; root 0x48, subw 0x0, time 7029077, (249,-81), root:(252,517),&amp;lt;br /&amp;gt; state 0x0, keycode 233 (keysym 0x1008ff27, XF86Forward), same_screen YES,&amp;lt;br /&amp;gt; XLookupString gives 0 bytes: &amp;quot;&amp;quot;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le champ qui nous intéresse ici est le champ &amp;lt;code&amp;gt;keycode&amp;lt;/code&amp;gt;. Par exemple, la touche que j&#039;ai ici espionnée renvoie la valeur &amp;lt;code&amp;gt;keycode 233&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Répétez cette opération pour chacune des touches spéciales, et notez quelque part la valeur de chacune de ces touches.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;note&amp;quot;&amp;gt;Si certaines touches ne semblent rien renvoyer, vérifiez dans le fichier &amp;lt;code&amp;gt;/usr/X11R6/lib/X11/xkb/keycodes/xfree86&amp;lt;/code&amp;gt; que vous avez ceci :&amp;lt;br /&amp;gt;&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt; xkb_keycodes &amp;quot;basic&amp;quot; {&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; minimum= 8;&amp;lt;br /&amp;gt; maximum= 255;&amp;lt;br /&amp;gt; &amp;lt;/div&amp;gt;&amp;lt;br /&amp;gt; En effet, il arrive parfois que les valeurs soient plus petites, et donc que le programme ne scanne pas sur toute la plage possible. &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== xev ne réagit pas à vos touches ====&lt;br /&gt;
Il arrive fréquemment que &amp;lt;code&amp;gt;xev&amp;lt;/code&amp;gt; ne réagisse pas à l&#039;appuie sur certaines touches des claviers multimédia. C&#039;est, la plupart du temps, du au fait que le kernel n&#039;a pas connaissance de ces touches. Mais il existe une solution ! &lt;br /&gt;
&lt;br /&gt;
===== vérifier que le kernel est capable de gérer une touche =====&lt;br /&gt;
Dans un terminal tapez : &lt;br /&gt;
&amp;lt;code multi&amp;gt;tail -f /var/log/messages&amp;lt;/code&amp;gt;&lt;br /&gt;
Puis appuyez sur la touche qu&#039;&amp;lt;code&amp;gt;xev&amp;lt;/code&amp;gt; ne reconnaît pas, vous devriez voir apparaître quelque chose du genre :&lt;br /&gt;
&amp;lt;code multi&amp;gt;Feb  7 16:13:08 localhost atkbd.c: Use &#039;setkeycodes e012 &amp;lt;keycode&amp;gt;&#039; to make it known.&amp;lt;/code&amp;gt;&lt;br /&gt;
Ce qui nous intéresse, c&#039;est la valeur annoncée : &#039;&#039;&#039;e012&#039;&#039;&#039;. C&#039;est le &#039;&#039;&#039;scancode&#039;&#039;&#039; de la touche en question. Tant que vous y êtes appuyez sur la plupart de touches de votre clavier pour voir s&#039;il n&#039;y a pas d&#039;autre touche inconnue du noyau. Vérifiez aussi les touches après le verrouillage de la touche &amp;lt;key&amp;gt;Verr. F&amp;lt;/key&amp;gt; (enfin c&#039;est son nom sur mon clavier) : elle donne accès à une douzaines de &#039;&#039;&#039;touches&#039;&#039;&#039; parallèlement aux touches de fonction.&lt;br /&gt;
&lt;br /&gt;
Il faut maintenant affecter un &#039;&#039;&#039;keycode&#039;&#039;&#039; à ce &#039;&#039;&#039;scancode&#039;&#039;&#039;. C&#039;est ce que dit le message d&#039;erreur renvoyé par le noyau.&lt;br /&gt;
&lt;br /&gt;
===== vérifier les &#039;&#039;&#039;keycodes&#039;&#039;&#039; disponibles =====&lt;br /&gt;
Un outil liste les &#039;&#039;&#039;keycodes&#039;&#039;&#039; utilisés : &amp;lt;code&amp;gt;getkeycodes&amp;lt;/code&amp;gt;. Il renvoie une table qui liste les touches par &#039;&#039;&#039;scancode&#039;&#039;&#039; affiche leur &#039;&#039;&#039;keycodes&#039;&#039;&#039; associé. &lt;br /&gt;
&lt;br /&gt;
Pour afficher uniquement les &#039;&#039;&#039;keycodes&#039;&#039;&#039; libres, on peut utiliser la commande : &lt;br /&gt;
&amp;lt;code&amp;gt;root@localhost # IFS=$&#039;\n &#039; ; for i in $(getkeycodes | grep &amp;quot;[0-9]:&amp;quot; | cut -d &amp;quot;:&amp;quot; -f 2) ; do echo $i ; done | sort | uniq &amp;gt; list.codes&lt;br /&gt;
root@localhost # for ((i=80;i&amp;lt;=255;i++)) ; do if grep -E &amp;quot;^$i\$&amp;quot; list.codes &amp;gt; /dev/null ; then true ; else echo &amp;quot;$i&amp;quot; ; fi ; done &amp;gt; free.codes&lt;br /&gt;
root@localhost # cat free.codes&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note : &#039;&#039;&#039; il semblerait que les versions récentes de setkeycodes ou du kernel ne permettent plus d&#039;attribuer les keycodes supérieurs à 127, ce qui est plus que pénible.&lt;br /&gt;
&lt;br /&gt;
===== affectation d&#039;un &#039;&#039;&#039;keycode&#039;&#039;&#039; par &#039;&#039;&#039;scancode&#039;&#039;&#039; =====&lt;br /&gt;
Pour chaque &#039;&#039;&#039;scancode&#039;&#039;&#039; trouvé aux étapes précédantes, vous devez affecter un &#039;&#039;&#039;keycode&#039;&#039;&#039; libre (trouvé à l&#039;étape précédante).&lt;br /&gt;
&lt;br /&gt;
Par exemple, pour affecter le &#039;&#039;&#039;keycode&#039;&#039;&#039; : &#039;&#039;200&#039;&#039; à la touche dont le &#039;&#039;&#039;scancode&#039;&#039;&#039; est &#039;&#039;e012&#039;&#039;, il suffit de taper : &lt;br /&gt;
&amp;lt;code multi&amp;gt;setkeycodes e012 200&amp;lt;/code&amp;gt;&lt;br /&gt;
On peut affecter plusieurs touches en même temps, par exemple : &lt;br /&gt;
&amp;lt;code multi&amp;gt;setkeycodes e012 200 e013 201 e017 215&amp;lt;/code&amp;gt;&lt;br /&gt;
Un fois ceci fait, vous pourrez espionner vos touches avec &amp;lt;code&amp;gt;xev&amp;lt;/code&amp;gt; comme préconisé ci-dessus.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;PS:&#039;&#039;&#039; Pensez à ajouter à l&#039;un de vos scripts de démarrage l&#039;affectation des &#039;&#039;&#039;keycodes&#039;&#039;&#039;&lt;br /&gt;
Sur ma gentoo, j&#039;ai créé le script &amp;lt;code&amp;gt;/etc/init.d/keycodes&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;code&amp;gt;#!/sbin/runscript&lt;br /&gt;
# Distributed under the terms of the GNU General Public License v2 (and no other version)&lt;br /&gt;
#NB: Config is in /etc/conf.d/keycodes&lt;br /&gt;
&lt;br /&gt;
depend() {&lt;br /&gt;
        need localmount&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
checkconfig() {&lt;br /&gt;
        if [ -z &amp;quot;$KEYCODES&amp;quot; ] ; then&lt;br /&gt;
                eerror &amp;quot;You need to setup KEYCODES in /etc/conf.d/keycodes first&amp;quot;&lt;br /&gt;
                return 1&lt;br /&gt;
        fi&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
start() {&lt;br /&gt;
        checkconfig || return 1&lt;br /&gt;
        ebegin &amp;quot;Setting specific keycodes&amp;quot;&lt;br /&gt;
                setkeycodes $KEYCODES&lt;br /&gt;
        eend ${?}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
stop() {&lt;br /&gt;
        ewarn &amp;quot;nothing to stop&amp;quot;&lt;br /&gt;
}&amp;lt;/code&amp;gt;&lt;br /&gt;
Je n&#039;ai pas oublié de rendre ce script exécutable : &lt;br /&gt;
&amp;lt;code multi&amp;gt;root@localhost # chmod +x /etc/init.d/keycodes&amp;lt;/code&amp;gt;&lt;br /&gt;
Et j&#039;ai créé le fichier de configuration &amp;lt;code&amp;gt;/etc/conf.d/keycodes&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;code multi&amp;gt;KEYCODES=&amp;quot;e011 227 e012 228 e013 229 e014 230 e03b 190 e03c 191 e03d 192 e03e 193 e03f 194 e040 195 e041 196 e042 197 e043 198 e044 199 e057 201 e058 202&amp;quot;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Ensuite j&#039;ai demandé à ma gentoo de démarrer automatiquement ce fichier : &lt;br /&gt;
&amp;lt;code multi&amp;gt;root@localhost # rc-update add keycodes default&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Nommer les touches ===&lt;br /&gt;
&lt;br /&gt;
Pour que les touches soient reconnues, il faut associer leur &amp;lt;code&amp;gt;keycode&amp;lt;/code&amp;gt; avec un nom de touche g énérique connu par Xfree. Ces noms de touches sont listés dans le fichier &amp;lt;code&amp;gt;/usr/X11R6/lib/X11/XKeysymDB&amp;lt;/code&amp;gt; et commencent par &amp;lt;code&amp;gt;XF86&amp;lt;/code&amp;gt;. Il faut ensuite créer le fichier &amp;lt;code&amp;gt;~/.xmodmaprc&amp;lt;/code&amp;gt; dans lequel on va définir ces fameuses correspondances...Comme un exemple vaut mieux qu&#039;un long discours, voici le contenu de mon &amp;lt;code&amp;gt;~/.xmodmaprc&amp;lt;/code&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;keycode 234 = XF86Back&amp;lt;br /&amp;gt; keycode 233 = XF86Forward&amp;lt;br /&amp;gt; keycode 232 = XF86Stop&amp;lt;br /&amp;gt; keycode 231 = XF86Refresh&amp;lt;br /&amp;gt; keycode 229 = XF86Search&amp;lt;br /&amp;gt; keycode 230 = XF86Favorites&amp;lt;br /&amp;gt; keycode 178 = XF86VendorHome&amp;lt;br /&amp;gt; keycode 236 = XF86Mail&amp;lt;br /&amp;gt; keycode 160 = XF86AudioMute&amp;lt;br /&amp;gt; keycode 174 = XF86AudioLowerVolume&amp;lt;br /&amp;gt; keycode 176 = XF86AudioRaiseVolume&amp;lt;br /&amp;gt; keycode 162 = XF86AudioPlay&amp;lt;br /&amp;gt; keycode 164 = XF86AudioStop&amp;lt;br /&amp;gt; keycode 144 = XF86AudioPrev&amp;lt;br /&amp;gt; keycode 153 = XF86AudioNext&amp;lt;br /&amp;gt; keycode 237 = XF86Video&amp;lt;br /&amp;gt; keycode 235 = XF86OfficeHome&amp;lt;br /&amp;gt; keycode 161 = XF86Calculator&amp;lt;br /&amp;gt; keycode 222 = XF86PowerOff&amp;lt;br /&amp;gt; keycode 223 = XF86Sleep&amp;lt;br /&amp;gt; keycode 227 = XF86WakeUp&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
En fonction des &amp;lt;code&amp;gt;keycode&amp;lt;/code&amp;gt; que vous avez trouvé et des noms que vous souhaitez donner à vos touches, remplissez ce fichier avec cette syntaxe très simple.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;note&amp;quot;&amp;gt;L&#039;attribution de ces noms est totalement arbitraire du moment qu&#039;ils sont dans le fichier &amp;lt;code&amp;gt;/usr/X11R6/lib/X11/XKeysymDB&amp;lt;/code&amp;gt;. Le choix de ces noms n&#039;influera en rien sur les actions associées aux touches dans le futur. Une bonne chose est de choisir les noms qui se rapprochent le plus du dessin associé à la touche sur le clavier pour s&#039;y retrouver...&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Une fois cela fait, il faut taper la commande &amp;lt;code&amp;gt;xmodmap ~/.xmodmaprc&amp;lt;/code&amp;gt; pour activer le nouveau mapping.&lt;br /&gt;
&lt;br /&gt;
==== Charger les attributions automatiquement sous KDE ====&lt;br /&gt;
&lt;br /&gt;
Pour que cela prenne effet à chaque démarrage de KDE, placez le fichier suivant dans le répertoire &amp;lt;code&amp;gt;~/.kde/Autostart/&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;#!/bin/sh&amp;lt;/nowiki&amp;gt;&amp;lt;br /&amp;gt; xmodmap ~/.xmodmaprc&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Rendez ensuite ce script exécutable : &amp;lt;code&amp;gt; chmod +x ~/.kde/Autostart/clavier&amp;lt;/code&amp;gt; (si vous avez appelé le fichier &amp;lt;code&amp;gt;clavier&amp;lt;/code&amp;gt; bien entendu...)&lt;br /&gt;
&lt;br /&gt;
== KDE est installé sur ma machine ==&lt;br /&gt;
&lt;br /&gt;
=== Attribuer des commandes aux touches ===&lt;br /&gt;
&lt;br /&gt;
Une méthode simple pour attribuer des touches à des commandes est de créer un menu caché.&lt;br /&gt;
&lt;br /&gt;
Pour cela, lancez &amp;lt;code&amp;gt;kmenuedit&amp;lt;/code&amp;gt; ou &amp;lt;code&amp;gt;menudrake&amp;lt;/code&amp;gt; (sous mandrake), ou encore sous mandriva 10.1 Kcontrol-&amp;gt;Système-&amp;gt;Touches spéciales du clavier. Créez un menu caché en mettant un point au début du nom de menu, par exemple : &amp;lt;code&amp;gt;.clavier&amp;lt;/code&amp;gt; sera un menu caché.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;note&amp;quot;&amp;gt;Vous trouverez à la fin de cet article quelques commandes utiles de gestion de son par exemple, ou de certains logiciels.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Maintenant que vous avez créé les entrées, allez voir : &amp;quot;centre de controle kde -&amp;gt; Régionalisation &amp;amp; accessibilité -&amp;gt; raccourcis claviers -&amp;gt; raccourcis de commandes&amp;quot;. Tout dépend de votre version de KDE, mais cela n&#039;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 ?&lt;br /&gt;
&lt;br /&gt;
Une autre méthode utilisant KDE pour lancer une commande avec un raccourci clavier consiste à utiliser la fonction d&#039;&amp;quot;Actions d&#039;entrées&amp;quot; disponnible sous le versions les plus récentes de KDE. Pour ce faire allez dans : &lt;br /&gt;
Centre de configuration de KDE (&amp;lt;code&amp;gt;kcontrol&amp;lt;/code&amp;gt;) &amp;gt; Régionalisation &amp;amp; accessibilité &amp;gt; Actions d&#039;entrées.&lt;br /&gt;
&lt;br /&gt;
Ensuite, cliquez sur le bouton &amp;quot;Nouveau groupe&amp;quot; et nommez-le &amp;quot;Clavier&amp;quot;, par exemple. &lt;br /&gt;
&lt;br /&gt;
Cliquez sur le nom du goupe dans la liste de droite puis cliquez sur &amp;quot;Nouvelle action&amp;quot;. Nommez-la comme vous le désirez et choisissez  &amp;quot;Raccourci clavier -&amp;gt; Commande / URL (simple)&amp;quot; dans la liste déroulante &amp;quot;Type d&#039;action : &amp;quot;. Vous pouvez dès à présent paramétrer le raccourci que vous voulez utliser et la commande à lancer dans les onglets &amp;quot;Raccourci clavier&amp;quot; et &amp;quot;Paramètres de la commande / URL&amp;quot;. Il convient de répéter cette dernière procédure pour chaque commande à lancer.&lt;br /&gt;
&lt;br /&gt;
=== Liste de commandes utilisables ===&lt;br /&gt;
&lt;br /&gt;
{| width=&amp;quot;80%&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;10&amp;quot;&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
! Action&lt;br /&gt;
! Commande&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Lecture-pause&lt;br /&gt;
| &amp;lt;code&amp;gt;xmms --play-pause&amp;lt;/code&amp;gt;&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| STOP&lt;br /&gt;
| &amp;lt;code&amp;gt;xmms --stop&amp;lt;/code&amp;gt;&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Chanson précédente&lt;br /&gt;
| &amp;lt;code&amp;gt;xmms --rew&amp;lt;/code&amp;gt;&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Chanson suivante&lt;br /&gt;
| &amp;lt;code&amp;gt;xmms --fwd&amp;lt;/code&amp;gt;&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Baisser le son&lt;br /&gt;
| &amp;lt;code&amp;gt;aumix -v-15&amp;lt;/code&amp;gt; ici de 15%.&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Monter le son&lt;br /&gt;
| &amp;lt;code&amp;gt;aumix -v+15&amp;lt;/code&amp;gt; ici de 15%.&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Couper le son&lt;br /&gt;
| &amp;lt;code&amp;gt;aumix -vn&amp;lt;/code&amp;gt;&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Lancer kmail&lt;br /&gt;
| &amp;lt;code&amp;gt;kmail&amp;lt;/code&amp;gt;&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Relever les mails dans kMail&lt;br /&gt;
| &amp;lt;code&amp;gt;dcop kmail KMailIface checkMail&amp;lt;/code&amp;gt;&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Verrouiller l&#039;écran&lt;br /&gt;
| &amp;lt;code&amp;gt;dcop kdesktop KScreensaverIface lock&amp;lt;/code&amp;gt;&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Ejecter cdrom&lt;br /&gt;
| &amp;lt;code&amp;gt;eject /dev/cdrom&amp;lt;/code&amp;gt;&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Avaler cdrom&lt;br /&gt;
| &amp;lt;code&amp;gt;eject -t /dev/cdrom&amp;lt;/code&amp;gt;&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Calculatrice&lt;br /&gt;
| &amp;lt;code&amp;gt;kcalc&amp;lt;/code&amp;gt;&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Chercher un fichier&lt;br /&gt;
| &amp;lt;code&amp;gt;kfind&amp;lt;/code&amp;gt;&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Konqueror comme gestionnaire de fichiers&lt;br /&gt;
| &amp;lt;code&amp;gt;kfmclient openProfile filemanagement&amp;lt;/code&amp;gt;&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Konqueror comme navigateur&lt;br /&gt;
| &amp;lt;code&amp;gt;kfmclient openProfile webbrowsing&amp;lt;/code&amp;gt;&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Exécuter une commande&lt;br /&gt;
| &amp;lt;code&amp;gt;dcop kdesktop KDesktopIface popupExecuteCommand&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== KDE n&#039;est pas installé sur ma machine ==&lt;br /&gt;
&lt;br /&gt;
=== Configurer son clavier sous X ===&lt;br /&gt;
&lt;br /&gt;
Nous allons commencer par configurer notre clavier sous X : c&#039;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 :&lt;br /&gt;
&lt;br /&gt;
* Quel clavier nous possédons&lt;br /&gt;
* A quel modèle X associe t-il notre clavier&lt;br /&gt;
&lt;br /&gt;
Pour la première, retournez votre clavier et lisez l&#039;étiquette ;)&amp;lt;br /&amp;gt; Pour la deuxième, éditez le fichier &amp;lt;code&amp;gt;/usr/X11R6/lib/X11/xkb/rules/xfree86.lst&amp;lt;/code&amp;gt;. S&#039;il ne se trouve pas là, faites &amp;lt;code&amp;gt;locate *xkb*/xfree86.lst&amp;lt;/code&amp;gt; dans un shell).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;exemple&amp;quot;&amp;gt;Au dos de mon clavier il est écrit : &#039;&#039;Logitech Internet Naviguator Keyboard&#039;&#039;. Le modèle de X est donc &#039;&#039;logiink&#039;&#039;.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Maintenant on va insérer tous ces paramètres dans le fichier de configuration de X, pour ce faire : éditez en root le fichier &amp;lt;code&amp;gt;/etc/X11/XF86Config-4&amp;lt;/code&amp;gt; (ou &amp;lt;code&amp;gt;XF86Config&amp;lt;/code&amp;gt; selon votre version de X). Cherchez la section du clavier : &#039;&#039;Driver &amp;quot;keyboard&amp;quot;&#039;&#039; et insérez les paramètres :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;Section &amp;quot;InputDevice&amp;quot;&amp;lt;br /&amp;gt;   Identifier &amp;quot;Generic Keyboard&amp;quot;&amp;lt;br /&amp;gt;   Driver &amp;quot;keyboard&amp;quot;&amp;lt;br /&amp;gt;   Option &amp;quot;CoreKeyboard&amp;quot;&amp;lt;br /&amp;gt;   Option &amp;quot;XkbRules&amp;quot; &amp;quot;xfree86&amp;quot;&amp;lt;br /&amp;gt;   Option &amp;quot;XkbModel&amp;quot; &amp;quot;&#039;&#039;&#039;logiink&#039;&#039;&#039;&amp;quot;&amp;lt;br /&amp;gt;   Option &amp;quot;XkbLayout&amp;quot; &amp;quot;&#039;&#039;&#039;be&#039;&#039;&#039;&amp;quot;&amp;lt;br /&amp;gt; EndSection&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enregistrez, relancez vos sessions si vous voulez que les changements soit appliqués immédiatement. La configuration de X est terminée.&lt;br /&gt;
&lt;br /&gt;
=== Récupérer les KeyCodes de toutes les touches ===&lt;br /&gt;
&lt;br /&gt;
Les KeyCodes sont les numéros des touches qui définissent les touches de votre clavier, parfois c&#039;est sous forme de chaîne de caractères comme ici. C&#039;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 &amp;lt;code&amp;gt;/etc/X11/xkb/symbols/inet&amp;lt;/code&amp;gt; (si le fichier ne se trouve pas là, essayez &amp;lt;code&amp;gt;locate *xkb*/inet&amp;lt;/code&amp;gt;), et recherchez le modèle de votre clavier. Vous trouverez ainsi tous les KeyCodes des touches supplémentaires de votre clavier étendu.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;aparte&amp;quot;&amp;gt;Vous pouvez utiliser les touches pour des actions sous KDE, Gnome, Fluxbox, WindowMaker, etc...&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Association des touches supplémentaires à une commande ===&lt;br /&gt;
&lt;br /&gt;
==== Installation de KeyLaunch ====&lt;br /&gt;
&lt;br /&gt;
Associer une touche à une commande est chose facile si l&#039;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&#039;est le paquet keylaunch, pour Mandrake et RedHat : je n&#039;ai pas trouvé le paquet (désolé) et pour ceux qui veulent compiler [http://ftp.riken.go.jp/pub/Linux/debian/debian/pool/main/k/keylaunch/keylaunch_1.3.0-6.tar.gz c&#039;est par ici. (11k)]&lt;br /&gt;
&lt;br /&gt;
==== Configurer KeyLaunch ====&lt;br /&gt;
&lt;br /&gt;
La configuration est très simple et très pratique : tout se fait dans &amp;lt;code&amp;gt;.keylaunchrc&amp;lt;/code&amp;gt; que &#039;&#039;&#039; vous devez créer&#039;&#039;&#039; dans votre dossier home. Il y a un exemple du fichier dans &amp;lt;code&amp;gt;/usr/share/doc/keylaunch/examples&amp;lt;/code&amp;gt; (si vous avez installé le paquet Debian sinon c&#039;est dans le dossier &amp;lt;code&amp;gt;debian&amp;lt;/code&amp;gt; là où vous avez décompressé KeyLaunch).&lt;br /&gt;
&lt;br /&gt;
Voici, en français, comment personnaliser ce fichier :&amp;lt;br /&amp;gt; Une seule association par ligne, chaque association commence par : &amp;lt;code&amp;gt;key=&amp;lt;/code&amp;gt; faites suivre ensuite par l&#039;état des modificateurs. Insérez trois points si une simple pression sur la touche vous suffit. &amp;lt;code&amp;gt;key=...&amp;lt;/code&amp;gt;. (Le premier point est le modificateur &#039;&#039;&#039;[&amp;lt;tt&amp;gt;Shift&amp;lt;/tt&amp;gt;]&#039;&#039;&#039;, activez-le en remplaçant le point par une astérisque (*). Le second point est le modificateur &#039;&#039;&#039;[&amp;lt;tt&amp;gt;Ctrl&amp;lt;/tt&amp;gt;]&#039;&#039;&#039; et enfin le dernier est le modificateur &#039;&#039;&#039;[&amp;lt;tt&amp;gt;Alt&amp;lt;/tt&amp;gt;]&#039;&#039;&#039;.) Et terminez enfin la ligne par la commande à exécuter précédée de &#039;:&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;exemple&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Et comme un bon exemple vaut mieux qu&#039;un long discours :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt; key=...XF86AudioMedia:xmms&amp;lt;br /&amp;gt; key=.*.XF86AudioMedia:gmplayer&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cet exemple-ci fait en sorte que lorsque vous appuyez sur la touche &#039;&#039;&#039;[&amp;lt;tt&amp;gt;Media&amp;lt;/tt&amp;gt;]&#039;&#039;&#039; du clavier : il ouvre XMMS. Cependant, si vous appuyez simultanément sur &#039;&#039;&#039;[&amp;lt;tt&amp;gt;Alt&amp;lt;/tt&amp;gt;]&#039;&#039;&#039; et &#039;&#039;&#039;[&amp;lt;tt&amp;gt;Media&amp;lt;/tt&amp;gt;]&#039;&#039;&#039;, KeyLaunch lancera GMPlayer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;aparte&amp;quot;&amp;gt;Cette exemple est destiné à un clavier Logitech Internet Navigator, adaptez le fichier à vos besoins grâce à la liste des touches à laquelle j&#039;ai fait référence ci-dessus, dans la section KeyCodes.&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Aide pour les commandes ===&lt;br /&gt;
&lt;br /&gt;
Voici une petite aide pour savoir quels sont les commandes qu&#039;il faut mettre pour réaliser telle ou telle action. Demandez sur le forum si cette aide est insuffisante.&lt;br /&gt;
&lt;br /&gt;
==== XMMS ====&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
| Démarrer XMMS&lt;br /&gt;
| xmms&lt;br /&gt;
|-&lt;br /&gt;
| Démarrer la musique&lt;br /&gt;
| xmms --play&lt;br /&gt;
|-&lt;br /&gt;
| Mettre en pause&lt;br /&gt;
| xmms --pause&lt;br /&gt;
|-&lt;br /&gt;
| Basculement lecture/pause&lt;br /&gt;
| xmms --play-pause&lt;br /&gt;
|-&lt;br /&gt;
| Arrêter&lt;br /&gt;
| xmms --stop&lt;br /&gt;
|-&lt;br /&gt;
| Piste suivante&lt;br /&gt;
| xmms --fwd&lt;br /&gt;
|-&lt;br /&gt;
| Piste précédente&lt;br /&gt;
| xmms --rew&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Pour le reste, entrez dans une console et tapez &amp;lt;code&amp;gt;xmms --help&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Autre programme ====&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
| Couper le son&lt;br /&gt;
| mute&lt;br /&gt;
|-&lt;br /&gt;
| Noatun&lt;br /&gt;
| noatun&lt;br /&gt;
|-&lt;br /&gt;
| La calculatride de KDE&lt;br /&gt;
| kcalc&lt;br /&gt;
|-&lt;br /&gt;
| Mozilla&lt;br /&gt;
| mozilla&lt;br /&gt;
|-&lt;br /&gt;
| Mozilla Mail&lt;br /&gt;
| mozilla -mail&lt;br /&gt;
|-&lt;br /&gt;
| KMail&lt;br /&gt;
| kmail --check&lt;br /&gt;
|-&lt;br /&gt;
| Rechercher&lt;br /&gt;
| kfind&lt;br /&gt;
|-&lt;br /&gt;
| Augmenter le volume de 10%&lt;br /&gt;
| aumix -v+10&lt;br /&gt;
|-&lt;br /&gt;
| Diminuer le volume de 10%&lt;br /&gt;
| aumix -v-10&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Vous pouvez également créer ce script que vous pouvez associer à la touche &#039;&#039;&#039;[&amp;lt;tt&amp;gt;Go&amp;lt;/tt&amp;gt;]&#039;&#039;&#039;, présente sur certains claviers Logitech. Il affiche simplement une boite de dialogue KDE, pour vous permettre d&#039;entrez l&#039;URL que Mozilla doit vous afficher :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt; #!/bin/bash&amp;lt;br /&amp;gt; # kwebgo&amp;lt;br /&amp;gt; file=$(kdialog --inputbox &amp;quot;Site Web :&amp;quot; &amp;quot;$@&amp;quot;)&amp;lt;br /&amp;gt; if [ -n &amp;quot;$file&amp;quot; ]; then&amp;lt;br /&amp;gt;   mozilla &amp;quot;$file&amp;quot;&amp;lt;br /&amp;gt; fi&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;kwebgo http://www.mozdex.com&amp;lt;/code&amp;gt; ouvrira la boite de dialogue avec pour valeur par défaut : [http://www.mozdex.com/ http://www.mozdex.com].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;note&amp;quot;&amp;gt;Changez &amp;lt;code&amp;gt;mozilla &amp;quot;$file&amp;quot;&amp;lt;/code&amp;gt; en &amp;lt;code&amp;gt;konqueror &amp;quot;$file&amp;quot;&amp;lt;/code&amp;gt;, et vous utiliserez ainsi Konqueror au lieu de Mozilla.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Comment associer une touche à une combinaison de touches ? ===&lt;br /&gt;
&lt;br /&gt;
Voici comment associer un clic ou une pression sur une touche à une combinaison de touches et d&#039;actions à la souris grâce à xbindkeys et xmacroplay.&lt;br /&gt;
&lt;br /&gt;
==== XBindKeys ====&lt;br /&gt;
&lt;br /&gt;
XBindKeys est un programme qui permet d&#039;associer une commande à une combinaison de touches ou de clics. Vous devez pour cela installer [http://www.easylinux.de/Download XBindKeys] (xbindkeys sur Debian (152K)).&lt;br /&gt;
&lt;br /&gt;
==== XMacro ====&lt;br /&gt;
&lt;br /&gt;
XMacro est un programme capable d&#039;enregistrer vos actions de souris et de clavier, pour ensuite les reproduire. Remarquez que l&#039;on ne fera que produire des actions. [http://xmacro.sourceforge.net/ Cliquez ici pour le télécharger] (paquet xmacro sur Debian (112K)).&lt;br /&gt;
&lt;br /&gt;
=== L&#039;exemple sur Diablo II ===&lt;br /&gt;
&lt;br /&gt;
Le mieux c&#039;est de montrer en pratique ce que l&#039;on peut faire avec tout ça avec Diablo II.&lt;br /&gt;
&lt;br /&gt;
Je n&#039;aborderai pas l&#039;émulation ici. Merci de ne pas m&#039;écrire à propos de ce jeu.&lt;br /&gt;
&lt;br /&gt;
==== Configurer X pour Diablo II ====&lt;br /&gt;
&lt;br /&gt;
Le XBindKeys ne fonctionne que si le programme n&#039;applique pas un &amp;quot;grab&amp;quot; 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&#039;écran correspondant à la taille de la fenêtre, ça revient finalement à un plein écran sans capture des périphériques d&#039;entrée.&lt;br /&gt;
&lt;br /&gt;
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&#039;écran). Pour cela il faut d&#039;abord configurer X pour qu&#039;il travail toujours en 800x600 lorsqu&#039;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 &amp;lt;code&amp;gt;/etc/X11/XF86Config-4&amp;lt;/code&amp;gt; (ou &amp;lt;code&amp;gt;XF86Config&amp;lt;/code&amp;gt; selon votre version de X) ; cherchez la section &amp;lt;code&amp;gt;Screen&amp;lt;/code&amp;gt; et trouvez ensuite la sous-section &amp;lt;code&amp;gt;Display&amp;lt;/code&amp;gt; dont la &amp;lt;code&amp;gt;Depth&amp;lt;/code&amp;gt; (profondeur des couleurs) est égale à 16. Modifiez les modes pour n&#039;avoir au maximum qu&#039;une résolution de 800x600. La première étant celle utilisée par défaut.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;SubSection &amp;quot;Display&amp;quot;&amp;lt;br /&amp;gt;   Depth 16&amp;lt;br /&amp;gt;   Modes &amp;quot;800x600&amp;quot; &amp;quot;640x480&amp;quot;&amp;lt;br /&amp;gt; EndSubSection&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
De cette façon, X activera toujours la 800x600 lorsqu&#039;il sera en 16 bits de couleurs.&lt;br /&gt;
&lt;br /&gt;
==== Configurer une commande Diablo II ====&lt;br /&gt;
&lt;br /&gt;
Nous allons maintenant faire le petit script qui lancera Diablo II sur une nouvelle session.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;#!/bin/bash&amp;lt;/nowiki&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; mv $HOME/.xinitrc $HOME/.xinitrc-diablo2-old&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; echo &amp;quot;xsetroot -solid black -cursor_name left_ptr&amp;lt;br /&amp;gt; #xset m 50/10 6 # accélération souris xset m &amp;lt;accel&amp;gt; &amp;lt;seuil&amp;gt;&amp;lt;br /&amp;gt; numlockx on # vérouillage pavé num&amp;lt;br /&amp;gt; setxkbmap -layout us&amp;lt;br /&amp;gt; cd /usr/local/games/Diablo\ II&amp;lt;br /&amp;gt; xbindkeys -f $HOME/.diablo2/xbindkeys.config -X :1&amp;lt;br /&amp;gt; wine Game.exe -- $@ &amp;quot;&amp;gt; /tmp/diablo2.logs&amp;lt;br /&amp;gt; killall -9 xbindkeys wine wineserver&amp;quot; &amp;gt; $HOME/.xinitrc&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; xinit -- :1 -depth 16&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; rm -f $HOME/.xinitrc&amp;lt;br /&amp;gt; mv $HOME/.xinitrc-diablo2-old $HOME/.xinitrc&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;note&amp;quot;&amp;gt;&amp;lt;code&amp;gt;setxkbmap -layout us&amp;lt;/code&amp;gt; nous sert à faire passer le clavier en QWERTY original. Ce n&#039;est pas indispensable mais préférable pour Diablo II qui ne comprend absolument rien aux touches numériques situées au dessus de la zone des lettres.&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;aparte&amp;quot;&amp;gt;Dans ce script, le NumLock est activé par numlockx : vérifiez que vous l&#039;avez installé !&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Comme vous voyez, la commande de XBindKeys est déjà insérée, les explications arrivent...&lt;br /&gt;
&lt;br /&gt;
==== XBindKeys et Diablo II ====&lt;br /&gt;
&lt;br /&gt;
Nous allons aborder ici l&#039;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 ;)&lt;br /&gt;
&lt;br /&gt;
On va tout d&#039;abord positionner tous les fichiers nécessaires à notre opération dans un dossier &amp;lt;code&amp;gt;.diablo2&amp;lt;/code&amp;gt; dans le répertoire home. Créez donc le dossier &amp;lt;code&amp;gt;$HOME/.diablo2&amp;lt;/code&amp;gt; et mettez-y ce fichier de configuration XBindKeys :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;# Aptitude 1&amp;lt;/nowiki&amp;gt;&amp;lt;br /&amp;gt; &amp;quot;~/.diablo2/aptitude.sh 6&amp;quot;&amp;lt;br /&amp;gt;  b:4&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; # Aptitude 1-Copy&amp;lt;br /&amp;gt; &amp;quot;~/.diablo2/aptitude.sh 6&amp;quot;&amp;lt;br /&amp;gt;  control + b:4&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; # Aptitude 2&amp;lt;br /&amp;gt; &amp;quot;~/.diablo2/aptitude.sh 7&amp;quot;&amp;lt;br /&amp;gt;  b:5&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; # Aptitude 2-Copy&amp;lt;br /&amp;gt; &amp;quot;~/.diablo2/aptitude.sh 7&amp;quot;&amp;lt;br /&amp;gt;  control + b:5&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; # Aptitude 3&amp;lt;br /&amp;gt; &amp;quot;~/.diablo2/aptitude.sh 8 0,09&amp;quot;&amp;lt;br /&amp;gt;  b:2&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; # Aptitude 3-Copy&amp;lt;br /&amp;gt; &amp;quot;~/.diablo2/aptitude.sh 8 0,09&amp;quot;&amp;lt;br /&amp;gt;  control + b:2&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; # Extended keyboard&amp;lt;br /&amp;gt; &amp;quot;~/.diablo2/message.sh &#039;***à bout de souffle*** on pourrait pas... faire un petit saut... en ville ? :) Je vous paye le TP :D&#039;&amp;quot;&amp;lt;br /&amp;gt;  XF86HomePage&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; &amp;quot;aumix -v+10&amp;quot;&amp;lt;br /&amp;gt;  XF86AudioRaiseVolume&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; &amp;quot;aumix -v-10&amp;quot;&amp;lt;br /&amp;gt;  XF86AudioLowerVolume&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; &amp;quot;mute&amp;quot;&amp;lt;br /&amp;gt;  XF86AudioMute&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;warning&amp;quot;&amp;gt;Faites attention au deuxième argument donné à aptitude.sh, ce sont des nombres décimaux et le séparateur est une virgule. Ça ne fonctionnera pas si vous mettez un point ! (dû à la commande sleep)&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;aparte&amp;quot;&amp;gt;Comme vous le voyez, j&#039;ai remis les mêmes associations deux fois. Une fois avec le &#039;&#039;&#039;[&amp;lt;tt&amp;gt;Ctrl&amp;lt;/tt&amp;gt;]&#039;&#039;&#039; enfoncé, et une fois sans. Étant donné qu&#039;il faut appuyer sur la touche &#039;&#039;&#039;[&amp;lt;tt&amp;gt;Ctrl&amp;lt;/tt&amp;gt;]&#039;&#039;&#039; pour courir.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mais quel est cet étrange script aptitude.sh ? Et message.sh ? La suite, par ici...&lt;br /&gt;
&lt;br /&gt;
==== XMacroPlay et Diablo II ====&lt;br /&gt;
&lt;br /&gt;
On va maintenant faire deux petits scripts, l&#039;un permet d&#039;envoyer des messages rapidement l&#039;autre permet d&#039;appuyer sur une touche, faire un clic droit, temporiser et appuyer sur une autre touche du clavier.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;#!/bin/bash&amp;lt;/nowiki&amp;gt;&amp;lt;br /&amp;gt; echo &amp;quot;KeyStr Return&amp;lt;br /&amp;gt; string $@&amp;lt;br /&amp;gt; KeyStr Return&amp;quot; &amp;gt; /tmp/message.$USER&amp;lt;br /&amp;gt; xmacroplay :1 &amp;lt; /tmp/message.$USER&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ce script va donc appuyer sur &#039;&#039;&#039;[&amp;lt;tt&amp;gt;Enter&amp;lt;/tt&amp;gt;]&#039;&#039;&#039;, taper tout le message contenu en paramètres et réappuyer sur &#039;&#039;&#039;[&amp;lt;tt&amp;gt;Enter&amp;lt;/tt&amp;gt;]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Maintenant voyons voir l&#039;autre script :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;#!/bin/bash&amp;lt;/nowiki&amp;gt;&amp;lt;br /&amp;gt; echo &amp;quot;KeyStr $1&amp;quot; &amp;gt; /tmp/macrokeys&amp;lt;br /&amp;gt; xmacroplay :1 &amp;lt; /tmp/macrokeys&amp;lt;br /&amp;gt; test -z &amp;quot;$2&amp;quot; || sleep $2&amp;lt;br /&amp;gt; echo &amp;quot;ButtonPress 3&amp;lt;br /&amp;gt; ButtonRelease 3&amp;lt;br /&amp;gt; KeyStr 5&amp;quot; &amp;gt; /tmp/macrokeys&amp;lt;br /&amp;gt; xmacroplay :1 &amp;lt; /tmp/macrokeys&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;note&amp;quot;&amp;gt;Changez le &amp;lt;code&amp;gt;ButtonPress 3&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;ButtonRelease 3&amp;lt;/code&amp;gt; en &amp;lt;code&amp;gt;ButtonPress 1&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;ButtonRelease 1&amp;lt;/code&amp;gt; si vous désirez que le script fasse un clic gauche au lieu d&#039;un clic droite.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5... 6... Vous comprenez maintenant pourquoi c&#039;est plus difficile en clavier français ou belge.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Non ça ne marche pas encore, mais il ne reste qu&#039;à configurer le jeu... ;)&lt;br /&gt;
&lt;br /&gt;
==== Configuration de Diablo II ====&lt;br /&gt;
&lt;br /&gt;
Entrez dans le jeu, appuyez sur &#039;&#039;&#039;[&amp;lt;tt&amp;gt;Esc&amp;lt;/tt&amp;gt;]&#039;&#039;&#039;, rendez-vous ensuite dans le menu de configuration des touches. Associez les touches &#039;&#039;&#039;[&amp;lt;tt&amp;gt;5&amp;lt;/tt&amp;gt;]&#039;&#039;&#039;, &#039;&#039;&#039;[&amp;lt;tt&amp;gt;6&amp;lt;/tt&amp;gt;]&#039;&#039;&#039;, &#039;&#039;&#039;[&amp;lt;tt&amp;gt;7&amp;lt;/tt&amp;gt;]&#039;&#039;&#039; et &#039;&#039;&#039;[&amp;lt;tt&amp;gt;8&amp;lt;/tt&amp;gt;]&#039;&#039;&#039; à des aptitudes différentes. Sortez des menus et mettez votre aptitude principale en &#039;&#039;&#039;[&amp;lt;tt&amp;gt;5&amp;lt;/tt&amp;gt;]&#039;&#039;&#039;, et des aptitudes utilisées moins fréquemment en &#039;&#039;&#039;[&amp;lt;tt&amp;gt;6&amp;lt;/tt&amp;gt;]&#039;&#039;&#039;, &#039;&#039;&#039;[&amp;lt;tt&amp;gt;7&amp;lt;/tt&amp;gt;]&#039;&#039;&#039; et &#039;&#039;&#039;[&amp;lt;tt&amp;gt;8&amp;lt;/tt&amp;gt;]&#039;&#039;&#039;. Tout ça à une même main (coté gauche ou droit des aptitudes).&lt;br /&gt;
&lt;br /&gt;
Bon amusement ;)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;note&amp;quot;&amp;gt;Si vous avez bien tout suivi : quand vous ferez défiler la roulette vers le haut, votre aptitude en &#039;&#039;&#039;[&amp;lt;tt&amp;gt;5&amp;lt;/tt&amp;gt;]&#039;&#039;&#039; va commuter vers la &#039;&#039;&#039;[&amp;lt;tt&amp;gt;7&amp;lt;/tt&amp;gt;]&#039;&#039;&#039; et l&#039;actionner, et reviendra immédiatement après en &#039;&#039;&#039;[&amp;lt;tt&amp;gt;5&amp;lt;/tt&amp;gt;]&#039;&#039;&#039;. &amp;lt;br /&amp;gt; Appuyez sur la touche &#039;&#039;&#039;[&amp;lt;tt&amp;gt;MyHome&amp;lt;/tt&amp;gt;]&#039;&#039;&#039; pour avoir un message &amp;quot;rapide&amp;quot; qui n&#039;a de rapide que le nom...&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;merci&amp;quot;&amp;gt;Cette page est issue de la documentation &#039;pré-wiki&#039; de Léa a été convertie avec HTML::WikiConverter. Elle fut créée par Jean-Thomas MUYL --maston28 le 19/02/2004.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Copyright =&lt;br /&gt;
Copyright &amp;amp;copy; 19/02/2004, Jean-Thomas MUYL --maston28&lt;br /&gt;
{{CC-BY-NC-SA}}&lt;/div&gt;</summary>
		<author><name>Ptyxs</name></author>
	</entry>
	<entry>
		<id>https://lea-linux.org/docs/index.php?title=Configurer_les_touches_de_son_clavier_multim%C3%A9dia&amp;diff=14213</id>
		<title>Configurer les touches de son clavier multimédia</title>
		<link rel="alternate" type="text/html" href="https://lea-linux.org/docs/index.php?title=Configurer_les_touches_de_son_clavier_multim%C3%A9dia&amp;diff=14213"/>
		<updated>2007-01-14T14:37:38Z</updated>

		<summary type="html">&lt;p&gt;Ptyxs : /* vérifier les &amp;#039;&amp;#039;&amp;#039;keycodes&amp;#039;&amp;#039;&amp;#039; disponibles */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Autres]]&lt;br /&gt;
= Configurer les touches de son clavier multimédia =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;leatitre&amp;quot;&amp;gt;Configurer les touches de son clavier multimédia&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;leapar&amp;quot;&amp;gt;par [mailto:jean-thomas.muyl@lea-linux.org Jean-Thomas MUYL --maston28 et [mailto:tuxnil@yahoo.fr NiL]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Comme moi, vous vous êtes peut-être acheté un clavier confortable, plus adapté aux longues heures de coding ou d&#039;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&#039;autres choses du genre, parfaitement inutiles donc totalement indispensables...&lt;br /&gt;
&lt;br /&gt;
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&#039;exécution d&#039;une commande.&lt;br /&gt;
&lt;br /&gt;
== Préliminaires ==&lt;br /&gt;
=== Espionnage des touches incriminées ===&lt;br /&gt;
&lt;br /&gt;
Tout d&#039;abord, il va nous falloir espionner le clavier pour savoir ce qu&#039;il renvoie quand vous appuyez sur les touches bonus.&lt;br /&gt;
&lt;br /&gt;
Pour cela, il faut utiliser le programme xev, qui se trouve sur mandrake dans le paquet X11R6-contrib. Si vous avez [http://groupes.lea-linux.org/fiches/ficheurpmi.html correctement configuré les sources urpmi], il vous suffit de taper ceci en tant que root : &amp;lt;code&amp;gt;urpmi X11R6-contrib&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Lorsque tout est installé, lancez le programme &amp;lt;code&amp;gt;xev&amp;lt;/code&amp;gt;. En appuyant sur les touches, vous devriez obtenir quelque chose ressemblant à ceci :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;[root@mastonsbox maston28]# xev&amp;lt;br /&amp;gt; KeyRelease event, serial 27, synthetic NO, window 0x3400001,&amp;lt;br /&amp;gt; root 0x48, subw 0x0, time 7029077, (249,-81), root:(252,517),&amp;lt;br /&amp;gt; state 0x0, keycode 233 (keysym 0x1008ff27, XF86Forward), same_screen YES,&amp;lt;br /&amp;gt; XLookupString gives 0 bytes: &amp;quot;&amp;quot;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le champ qui nous intéresse ici est le champ &amp;lt;code&amp;gt;keycode&amp;lt;/code&amp;gt;. Par exemple, la touche que j&#039;ai ici espionnée renvoie la valeur &amp;lt;code&amp;gt;keycode 233&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Répétez cette opération pour chacune des touches spéciales, et notez quelque part la valeur de chacune de ces touches.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;note&amp;quot;&amp;gt;Si certaines touches ne semblent rien renvoyer, vérifiez dans le fichier &amp;lt;code&amp;gt;/usr/X11R6/lib/X11/xkb/keycodes/xfree86&amp;lt;/code&amp;gt; que vous avez ceci :&amp;lt;br /&amp;gt;&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt; xkb_keycodes &amp;quot;basic&amp;quot; {&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; minimum= 8;&amp;lt;br /&amp;gt; maximum= 255;&amp;lt;br /&amp;gt; &amp;lt;/div&amp;gt;&amp;lt;br /&amp;gt; En effet, il arrive parfois que les valeurs soient plus petites, et donc que le programme ne scanne pas sur toute la plage possible. &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== xev ne réagit pas à vos touches ====&lt;br /&gt;
Il arrive fréquemment que &amp;lt;code&amp;gt;xev&amp;lt;/code&amp;gt; ne réagisse pas à l&#039;appuie sur certaines touches des claviers multimédia. C&#039;est, la plupart du temps, du au fait que le kernel n&#039;a pas connaissance de ces touches. Mais il existe une solution ! &lt;br /&gt;
&lt;br /&gt;
===== vérifier que le kernel est capable de gérer une touche =====&lt;br /&gt;
Dans un terminal tapez : &lt;br /&gt;
&amp;lt;code multi&amp;gt;tail -f /var/log/messages&amp;lt;/code&amp;gt;&lt;br /&gt;
Puis appuyez sur la touche qu&#039;&amp;lt;code&amp;gt;xev&amp;lt;/code&amp;gt; ne reconnaît pas, vous devriez voir apparaître quelque chose du genre :&lt;br /&gt;
&amp;lt;code multi&amp;gt;Feb  7 16:13:08 localhost atkbd.c: Use &#039;setkeycodes e012 &amp;lt;keycode&amp;gt;&#039; to make it known.&amp;lt;/code&amp;gt;&lt;br /&gt;
Ce qui nous intéresse, c&#039;est la valeur annoncée : &#039;&#039;&#039;e012&#039;&#039;&#039;. C&#039;est le &#039;&#039;&#039;scancode&#039;&#039;&#039; de la touche en question. Tant que vous y êtes appuyez sur la plupart de touches de votre clavier pour voir s&#039;il n&#039;y a pas d&#039;autre touche inconnue du noyau. Vérifiez aussi les touches après le verrouillage de la touche &amp;lt;key&amp;gt;Verr. F&amp;lt;/key&amp;gt; (enfin c&#039;est son nom sur mon clavier) : elle donne accès à une douzaines de &#039;&#039;&#039;touches&#039;&#039;&#039; parallèlement aux touches de fonction.&lt;br /&gt;
&lt;br /&gt;
Il faut maintenant affecter un &#039;&#039;&#039;keycode&#039;&#039;&#039; à ce &#039;&#039;&#039;scancode&#039;&#039;&#039;. C&#039;est ce que dit le message d&#039;erreur renvoyé par le noyau.&lt;br /&gt;
&lt;br /&gt;
===== vérifier les &#039;&#039;&#039;keycodes&#039;&#039;&#039; disponibles =====&lt;br /&gt;
Un outil liste les &#039;&#039;&#039;keycodes&#039;&#039;&#039; utilisés : &amp;lt;code&amp;gt;getkeycodes&amp;lt;/code&amp;gt;. Il renvoie une table qui liste les touches par &#039;&#039;&#039;scancode&#039;&#039;&#039; affiche leur &#039;&#039;&#039;keycodes&#039;&#039;&#039; associé. &lt;br /&gt;
&lt;br /&gt;
Pour afficher uniquement les &#039;&#039;&#039;keycodes&#039;&#039;&#039; libres, on peut utiliser la commande : &lt;br /&gt;
&amp;lt;code&amp;gt;root@localhost # IFS=$&#039;\n &#039; ; for i in $(getkeycodes | grep &amp;quot;[0-9]:&amp;quot; | cut -d &amp;quot;:&amp;quot; -f 2) ; do echo $i ; done | sort | uniq &amp;gt; list.codes&lt;br /&gt;
root@localhost # for ((i=80;i&amp;lt;=255;i++)) ; do if grep -E &amp;quot;^$i\$&amp;quot; list.codes &amp;gt; /dev/null ; then true ; else echo &amp;quot;$i&amp;quot; ; fi ; done &amp;gt; free.codes&lt;br /&gt;
root@localhost # cat free.codes&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note : &#039;&#039;&#039; il semblerait que les versions récentes de setkeycodes ou du kernel ne permettent plus d&#039;attribuer les keycodes supérieurs à 127, ce qui est plus que pénible.&lt;br /&gt;
&lt;br /&gt;
===== affectation d&#039;un &#039;&#039;&#039;keycode&#039;&#039;&#039; par &#039;&#039;&#039;scancode&#039;&#039;&#039; =====&lt;br /&gt;
Pour chaque &#039;&#039;&#039;scancode&#039;&#039;&#039; trouvé aux étapes précédantes, vous devez affecter un &#039;&#039;&#039;keycode&#039;&#039;&#039; libre (trouvé à l&#039;étape précédante).&lt;br /&gt;
&lt;br /&gt;
Par exemple, pour affecter le &#039;&#039;&#039;keycode&#039;&#039;&#039; : &#039;&#039;200&#039;&#039; à la touche dont le &#039;&#039;&#039;scancode&#039;&#039;&#039; est &#039;&#039;e012&#039;&#039;, il suffit de taper : &lt;br /&gt;
&amp;lt;code multi&amp;gt;setkeycodes e012 200&amp;lt;/code&amp;gt;&lt;br /&gt;
On peut affecter plusieurs touches en même temps, par exemple : &lt;br /&gt;
&amp;lt;code multi&amp;gt;setkeycodes e012 200 e013 201 e017 215&amp;lt;/code&amp;gt;&lt;br /&gt;
Un fois ceci fait, vous pourrez espionner vos touches avec &amp;lt;code&amp;gt;xev&amp;lt;/code&amp;gt; comme préconisé ci-dessus.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;PS:&#039;&#039;&#039; Pensez à ajouter à l&#039;un de vos scripts de démarrage l&#039;affectation des &#039;&#039;&#039;keycodes&#039;&#039;&#039;&lt;br /&gt;
Sur ma gentoo, j&#039;ai créé le script &amp;lt;code&amp;gt;/etc/init.d/keycodes&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;code&amp;gt;#!/sbin/runscript&lt;br /&gt;
# Distributed under the terms of the GNU General Public License v2 (and no other version)&lt;br /&gt;
#NB: Config is in /etc/conf.d/keycodes&lt;br /&gt;
&lt;br /&gt;
depend() {&lt;br /&gt;
        need localmount&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
checkconfig() {&lt;br /&gt;
        if [ -z &amp;quot;$KEYCODES&amp;quot; ] ; then&lt;br /&gt;
                eerror &amp;quot;You need to setup KEYCODES in /etc/conf.d/keycodes first&amp;quot;&lt;br /&gt;
                return 1&lt;br /&gt;
        fi&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
start() {&lt;br /&gt;
        checkconfig || return 1&lt;br /&gt;
        ebegin &amp;quot;Setting specific keycodes&amp;quot;&lt;br /&gt;
                setkeycodes $KEYCODES&lt;br /&gt;
        eend ${?}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
stop() {&lt;br /&gt;
        ewarn &amp;quot;nothing to stop&amp;quot;&lt;br /&gt;
}&amp;lt;/code&amp;gt;&lt;br /&gt;
Je n&#039;ai pas oublié de rendre ce script exécutable : &lt;br /&gt;
&amp;lt;code multi&amp;gt;root@localhost # chmod +x /etc/init.d/keycodes&amp;lt;/code&amp;gt;&lt;br /&gt;
Et j&#039;ai créé le fichier de configuration &amp;lt;code&amp;gt;/etc/conf.d/keycodes&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;code multi&amp;gt;KEYCODES=&amp;quot;e011 227 e012 228 e013 229 e014 230 e03b 190 e03c 191 e03d 192 e03e 193 e03f 194 e040 195 e041 196 e042 197 e043 198 e044 199 e057 201 e058 202&amp;quot;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Ensuite j&#039;ai demandé à ma gentoo de démarrer automatiquement ce fichier : &lt;br /&gt;
&amp;lt;code multi&amp;gt;root@localhost # rc-update add keycodes default&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Nommer les touches ===&lt;br /&gt;
&lt;br /&gt;
Pour que les touches soient reconnues, il faut associer leur &amp;lt;code&amp;gt;keycode&amp;lt;/code&amp;gt; avec un nom de touche g énérique connu par Xfree. Ces noms de touches sont listés dans le fichier &amp;lt;code&amp;gt;/usr/X11R6/lib/X11/XKeysymDB&amp;lt;/code&amp;gt; et commencent par &amp;lt;code&amp;gt;XF86&amp;lt;/code&amp;gt;. Il faut ensuite créer le fichier &amp;lt;code&amp;gt;~/.xmodmaprc&amp;lt;/code&amp;gt; dans lequel on va définir ces fameuses correspondances...Comme un exemple vaut mieux qu&#039;un long discours, voici le contenu de mon &amp;lt;code&amp;gt;~/.xmodmaprc&amp;lt;/code&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;keycode 234 = XF86Back&amp;lt;br /&amp;gt; keycode 233 = XF86Forward&amp;lt;br /&amp;gt; keycode 232 = XF86Stop&amp;lt;br /&amp;gt; keycode 231 = XF86Refresh&amp;lt;br /&amp;gt; keycode 229 = XF86Search&amp;lt;br /&amp;gt; keycode 230 = XF86Favorites&amp;lt;br /&amp;gt; keycode 178 = XF86VendorHome&amp;lt;br /&amp;gt; keycode 236 = XF86Mail&amp;lt;br /&amp;gt; keycode 160 = XF86AudioMute&amp;lt;br /&amp;gt; keycode 174 = XF86AudioLowerVolume&amp;lt;br /&amp;gt; keycode 176 = XF86AudioRaiseVolume&amp;lt;br /&amp;gt; keycode 162 = XF86AudioPlay&amp;lt;br /&amp;gt; keycode 164 = XF86AudioStop&amp;lt;br /&amp;gt; keycode 144 = XF86AudioPrev&amp;lt;br /&amp;gt; keycode 153 = XF86AudioNext&amp;lt;br /&amp;gt; keycode 237 = XF86Video&amp;lt;br /&amp;gt; keycode 235 = XF86OfficeHome&amp;lt;br /&amp;gt; keycode 161 = XF86Calculator&amp;lt;br /&amp;gt; keycode 222 = XF86PowerOff&amp;lt;br /&amp;gt; keycode 223 = XF86Sleep&amp;lt;br /&amp;gt; keycode 227 = XF86WakeUp&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
En fonction des &amp;lt;code&amp;gt;keycode&amp;lt;/code&amp;gt; que vous avez trouvé et des noms que vous souhaitez donner à vos touches, remplissez ce fichier avec cette syntaxe très simple.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;note&amp;quot;&amp;gt;L&#039;attribution de ces noms est totalement arbitraire du moment qu&#039;ils sont dans le fichier &amp;lt;code&amp;gt;/usr/X11R6/lib/X11/XKeysymDB&amp;lt;/code&amp;gt;. Le choix de ces noms n&#039;influera en rien sur les actions associées aux touches dans le futur. Une bonne chose est de choisir les noms qui se rapprochent le plus du dessin associé à la touche sur le clavier pour s&#039;y retrouver...&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Une fois cela fait, il faut taper la commande &amp;lt;code&amp;gt;xmodmap ~/.xmodmaprc&amp;lt;/code&amp;gt; pour activer le nouveau mapping.&lt;br /&gt;
&lt;br /&gt;
==== Charger les attributions automatiquement sous KDE ====&lt;br /&gt;
&lt;br /&gt;
Pour que cela prenne effet à chaque démarrage de KDE, placez le fichier suivant dans le répertoire &amp;lt;code&amp;gt;~/.kde/Autostart/&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;#!/bin/sh&amp;lt;/nowiki&amp;gt;&amp;lt;br /&amp;gt; xmodmap ~/.xmodmaprc&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Rendez ensuite ce script exécutable : &amp;lt;code&amp;gt; chmod +x ~/.kde/Autostart/clavier&amp;lt;/code&amp;gt; (si vous avez appelé le fichier &amp;lt;code&amp;gt;clavier&amp;lt;/code&amp;gt; bien entendu...)&lt;br /&gt;
&lt;br /&gt;
== KDE est installé sur ma machine ==&lt;br /&gt;
&lt;br /&gt;
=== Attribuer des commandes aux touches ===&lt;br /&gt;
&lt;br /&gt;
Une méthode simple pour attribuer des touches à des commandes est de créer un menu caché.&lt;br /&gt;
&lt;br /&gt;
Pour cela, lancez &amp;lt;code&amp;gt;kmenuedit&amp;lt;/code&amp;gt; ou &amp;lt;code&amp;gt;menudrake&amp;lt;/code&amp;gt; (sous mandrake), ou encore sous mandriva 10.1 Kcontrol-&amp;gt;Système-&amp;gt;Touches spéciales du clavier. Créez un menu caché en mettant un point au début du nom de menu, par exemple : &amp;lt;code&amp;gt;.clavier&amp;lt;/code&amp;gt; sera un menu caché.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;note&amp;quot;&amp;gt;Vous trouverez à la fin de cet article quelques commandes utiles de gestion de son par exemple, ou de certains logiciels.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Maintenant que vous avez créé les entrées, allez voir : &amp;quot;centre de controle kde -&amp;gt; Régionalisation &amp;amp; accessibilité -&amp;gt; raccourcis claviers -&amp;gt; raccourcis de commandes&amp;quot;. Tout dépend de votre version de KDE, mais cela n&#039;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 ?&lt;br /&gt;
&lt;br /&gt;
Une autre méthode utilisant KDE pour lancer une commande avec un raccourci clavier consiste à utiliser la fonction d&#039;&amp;quot;Actions d&#039;entrées&amp;quot; disponnible sous le versions les plus récentes de KDE. Pour ce faire allez dans : &lt;br /&gt;
Centre de configuration de KDE (&amp;lt;code&amp;gt;kcontrol&amp;lt;/code&amp;gt;) &amp;gt; Régionalisation &amp;amp; accessibilité &amp;gt; Actions d&#039;entrées.&lt;br /&gt;
&lt;br /&gt;
Ensuite, cliquez sur le bouton &amp;quot;Nouveau groupe&amp;quot; et nommez-le &amp;quot;Clavier&amp;quot;, par exemple. &lt;br /&gt;
&lt;br /&gt;
Cliquez sur le nom du goupe dans la liste de droite puis cliquez sur &amp;quot;Nouvelle action&amp;quot;. Nommez-la comme vous le désirez et choisissez  &amp;quot;Raccourci clavier -&amp;gt; Commande / URL (simple)&amp;quot; dans la liste déroulante &amp;quot;Type d&#039;action : &amp;quot;. Vous pouvez dès à présent paramétrer le raccourci que vous voulez utliser et la commande à lancer dans les onglets &amp;quot;Raccourci clavier&amp;quot; et &amp;quot;Paramètres de la commande / URL&amp;quot;. Il convient de répéter cette dernière procédure pour chaque commande à lancer.&lt;br /&gt;
&lt;br /&gt;
=== Liste de commandes utilisables ===&lt;br /&gt;
&lt;br /&gt;
{| width=&amp;quot;80%&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;10&amp;quot;&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
! Action&lt;br /&gt;
! Commande&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Lecture-pause&lt;br /&gt;
| &amp;lt;code&amp;gt;xmms --play-pause&amp;lt;/code&amp;gt;&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| STOP&lt;br /&gt;
| &amp;lt;code&amp;gt;xmms --stop&amp;lt;/code&amp;gt;&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Chanson précédente&lt;br /&gt;
| &amp;lt;code&amp;gt;xmms --rew&amp;lt;/code&amp;gt;&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Chanson suivante&lt;br /&gt;
| &amp;lt;code&amp;gt;xmms --fwd&amp;lt;/code&amp;gt;&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Baisser le son&lt;br /&gt;
| &amp;lt;code&amp;gt;aumix -v-15&amp;lt;/code&amp;gt; ici de 15%.&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Monter le son&lt;br /&gt;
| &amp;lt;code&amp;gt;aumix -v+15&amp;lt;/code&amp;gt; ici de 15%.&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Couper le son&lt;br /&gt;
| &amp;lt;code&amp;gt;aumix -vn&amp;lt;/code&amp;gt;&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Lancer kmail&lt;br /&gt;
| &amp;lt;code&amp;gt;kmail&amp;lt;/code&amp;gt;&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Relever les mails dans kMail&lt;br /&gt;
| &amp;lt;code&amp;gt;dcop kmail KMailIface checkMail&amp;lt;/code&amp;gt;&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Verrouiller l&#039;écran&lt;br /&gt;
| &amp;lt;code&amp;gt;dcop kdesktop KScreensaverIface lock&amp;lt;/code&amp;gt;&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Ejecter cdrom&lt;br /&gt;
| &amp;lt;code&amp;gt;eject /dev/cdrom&amp;lt;/code&amp;gt;&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Avaler cdrom&lt;br /&gt;
| &amp;lt;code&amp;gt;eject -t /dev/cdrom&amp;lt;/code&amp;gt;&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Calculatrice&lt;br /&gt;
| &amp;lt;code&amp;gt;kcalc&amp;lt;/code&amp;gt;&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Chercher un fichier&lt;br /&gt;
| &amp;lt;code&amp;gt;kfind&amp;lt;/code&amp;gt;&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Konqueror comme gestionnaire de fichiers&lt;br /&gt;
| &amp;lt;code&amp;gt;kfmclient openProfile filemanagement&amp;lt;/code&amp;gt;&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Konqueror comme navigateur&lt;br /&gt;
| &amp;lt;code&amp;gt;kfmclient openProfile webbrowsing&amp;lt;/code&amp;gt;&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Exécuter une commande&lt;br /&gt;
| &amp;lt;code&amp;gt;dcop kdesktop KDesktopIface popupExecuteCommand&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== KDE n&#039;est pas installé sur ma machine ==&lt;br /&gt;
&lt;br /&gt;
=== Configurer son clavier sous X ===&lt;br /&gt;
&lt;br /&gt;
Nous allons commencer par configurer notre clavier sous X : c&#039;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 :&lt;br /&gt;
&lt;br /&gt;
* Quel clavier nous possédons&lt;br /&gt;
* A quel modèle X associe t-il notre clavier&lt;br /&gt;
&lt;br /&gt;
Pour la première, retournez votre clavier et lisez l&#039;étiquette ;)&amp;lt;br /&amp;gt; Pour la deuxième, éditez le fichier &amp;lt;code&amp;gt;/usr/X11R6/lib/X11/xkb/rules/xfree86.lst&amp;lt;/code&amp;gt;. S&#039;il ne se trouve pas là, faites &amp;lt;code&amp;gt;locate *xkb*/xfree86.lst&amp;lt;/code&amp;gt; dans un shell).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;exemple&amp;quot;&amp;gt;Au dos de mon clavier il est écrit : &#039;&#039;Logitech Internet Naviguator Keyboard&#039;&#039;. Le modèle de X est donc &#039;&#039;logiink&#039;&#039;.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Maintenant on va insérer tous ces paramètres dans le fichier de configuration de X, pour ce faire : éditez en root le fichier &amp;lt;code&amp;gt;/etc/X11/XF86Config-4&amp;lt;/code&amp;gt; (ou &amp;lt;code&amp;gt;XF86Config&amp;lt;/code&amp;gt; selon votre version de X). Cherchez la section du clavier : &#039;&#039;Driver &amp;quot;keyboard&amp;quot;&#039;&#039; et insérez les paramètres :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;Section &amp;quot;InputDevice&amp;quot;&amp;lt;br /&amp;gt;   Identifier &amp;quot;Generic Keyboard&amp;quot;&amp;lt;br /&amp;gt;   Driver &amp;quot;keyboard&amp;quot;&amp;lt;br /&amp;gt;   Option &amp;quot;CoreKeyboard&amp;quot;&amp;lt;br /&amp;gt;   Option &amp;quot;XkbRules&amp;quot; &amp;quot;xfree86&amp;quot;&amp;lt;br /&amp;gt;   Option &amp;quot;XkbModel&amp;quot; &amp;quot;&#039;&#039;&#039;logiink&#039;&#039;&#039;&amp;quot;&amp;lt;br /&amp;gt;   Option &amp;quot;XkbLayout&amp;quot; &amp;quot;&#039;&#039;&#039;be&#039;&#039;&#039;&amp;quot;&amp;lt;br /&amp;gt; EndSection&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enregistrez, relancez vos sessions si vous voulez que les changements soit appliqués immédiatement. La configuration de X est terminée.&lt;br /&gt;
&lt;br /&gt;
=== Récupérer les KeyCodes de toutes les touches ===&lt;br /&gt;
&lt;br /&gt;
Les KeyCodes sont les numéros des touches qui définissent les touches de votre clavier, parfois c&#039;est sous forme de chaîne de caractères comme ici. C&#039;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 &amp;lt;code&amp;gt;/etc/X11/xkb/symbols/inet&amp;lt;/code&amp;gt; (si le fichier ne se trouve pas là, essayez &amp;lt;code&amp;gt;locate *xkb*/inet&amp;lt;/code&amp;gt;), et recherchez le modèle de votre clavier. Vous trouverez ainsi tous les KeyCodes des touches supplémentaires de votre clavier étendu.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;aparte&amp;quot;&amp;gt;Vous pouvez utiliser les touches pour des actions sous KDE, Gnome, Fluxbox, WindowMaker, etc...&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Association des touches supplémentaires à une commande ===&lt;br /&gt;
&lt;br /&gt;
==== Installation de KeyLaunch ====&lt;br /&gt;
&lt;br /&gt;
Associer une touche à une commande est chose facile si l&#039;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&#039;est le paquet keylaunch, pour Mandrake et RedHat : je n&#039;ai pas trouvé le paquet (désolé) et pour ceux qui veulent compiler [http://ftp.riken.go.jp/pub/Linux/debian/debian/pool/main/k/keylaunch/keylaunch_1.3.0-6.tar.gz c&#039;est par ici. (11k)]&lt;br /&gt;
&lt;br /&gt;
==== Configurer KeyLaunch ====&lt;br /&gt;
&lt;br /&gt;
La configuration est très simple et très pratique : tout se fait dans &amp;lt;code&amp;gt;.keylaunchrc&amp;lt;/code&amp;gt; que &#039;&#039;&#039; vous devez créer&#039;&#039;&#039; dans votre dossier home. Il y a un exemple du fichier dans &amp;lt;code&amp;gt;/usr/share/doc/keylaunch/examples&amp;lt;/code&amp;gt; (si vous avez installé le paquet Debian sinon c&#039;est dans le dossier &amp;lt;code&amp;gt;debian&amp;lt;/code&amp;gt; là où vous avez décompressé KeyLaunch).&lt;br /&gt;
&lt;br /&gt;
Voici, en français, comment personnaliser ce fichier :&amp;lt;br /&amp;gt; Une seule association par ligne, chaque association commence par : &amp;lt;code&amp;gt;key=&amp;lt;/code&amp;gt; faites suivre ensuite par l&#039;état des modificateurs. Insérez trois points si une simple pression sur la touche vous suffit. &amp;lt;code&amp;gt;key=...&amp;lt;/code&amp;gt;. (Le premier point est le modificateur &#039;&#039;&#039;[&amp;lt;tt&amp;gt;Shift&amp;lt;/tt&amp;gt;]&#039;&#039;&#039;, activez-le en remplaçant le point par une astérisque (*). Le second point est le modificateur &#039;&#039;&#039;[&amp;lt;tt&amp;gt;Ctrl&amp;lt;/tt&amp;gt;]&#039;&#039;&#039; et enfin le dernier est le modificateur &#039;&#039;&#039;[&amp;lt;tt&amp;gt;Alt&amp;lt;/tt&amp;gt;]&#039;&#039;&#039;.) Et terminez enfin la ligne par la commande à exécuter précédée de &#039;:&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;exemple&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Et comme un bon exemple vaut mieux qu&#039;un long discours :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt; key=...XF86AudioMedia:xmms&amp;lt;br /&amp;gt; key=.*.XF86AudioMedia:gmplayer&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cet exemple-ci fait en sorte que lorsque vous appuyez sur la touche &#039;&#039;&#039;[&amp;lt;tt&amp;gt;Media&amp;lt;/tt&amp;gt;]&#039;&#039;&#039; du clavier : il ouvre XMMS. Cependant, si vous appuyez simultanément sur &#039;&#039;&#039;[&amp;lt;tt&amp;gt;Alt&amp;lt;/tt&amp;gt;]&#039;&#039;&#039; et &#039;&#039;&#039;[&amp;lt;tt&amp;gt;Media&amp;lt;/tt&amp;gt;]&#039;&#039;&#039;, KeyLaunch lancera GMPlayer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;aparte&amp;quot;&amp;gt;Cette exemple est destiné à un clavier Logitech Internet Navigator, adaptez le fichier à vos besoins grâce à la liste des touches à laquelle j&#039;ai fait référence ci-dessus, dans la section KeyCodes.&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Aide pour les commandes ===&lt;br /&gt;
&lt;br /&gt;
Voici une petite aide pour savoir quels sont les commandes qu&#039;il faut mettre pour réaliser telle ou telle action. Demandez sur le forum si cette aide est insuffisante.&lt;br /&gt;
&lt;br /&gt;
==== XMMS ====&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
| Démarrer XMMS&lt;br /&gt;
| xmms&lt;br /&gt;
|-&lt;br /&gt;
| Démarrer la musique&lt;br /&gt;
| xmms --play&lt;br /&gt;
|-&lt;br /&gt;
| Mettre en pause&lt;br /&gt;
| xmms --pause&lt;br /&gt;
|-&lt;br /&gt;
| Basculement lecture/pause&lt;br /&gt;
| xmms --play-pause&lt;br /&gt;
|-&lt;br /&gt;
| Arrêter&lt;br /&gt;
| xmms --stop&lt;br /&gt;
|-&lt;br /&gt;
| Piste suivante&lt;br /&gt;
| xmms --fwd&lt;br /&gt;
|-&lt;br /&gt;
| Piste précédente&lt;br /&gt;
| xmms --rew&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Pour le reste, entrez dans une console et tapez &amp;lt;code&amp;gt;xmms --help&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Autre programme ====&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
| Couper le son&lt;br /&gt;
| mute&lt;br /&gt;
|-&lt;br /&gt;
| Noatun&lt;br /&gt;
| noatun&lt;br /&gt;
|-&lt;br /&gt;
| La calculatride de KDE&lt;br /&gt;
| kcalc&lt;br /&gt;
|-&lt;br /&gt;
| Mozilla&lt;br /&gt;
| mozilla&lt;br /&gt;
|-&lt;br /&gt;
| Mozilla Mail&lt;br /&gt;
| mozilla -mail&lt;br /&gt;
|-&lt;br /&gt;
| KMail&lt;br /&gt;
| kmail --check&lt;br /&gt;
|-&lt;br /&gt;
| Rechercher&lt;br /&gt;
| kfind&lt;br /&gt;
|-&lt;br /&gt;
| Augmenter le volume de 10%&lt;br /&gt;
| aumix -v+10&lt;br /&gt;
|-&lt;br /&gt;
| Diminuer le volume de 10%&lt;br /&gt;
| aumix -v-10&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Vous pouvez également créer ce script que vous pouvez associer à la touche &#039;&#039;&#039;[&amp;lt;tt&amp;gt;Go&amp;lt;/tt&amp;gt;]&#039;&#039;&#039;, présente sur certains claviers Logitech. Il affiche simplement une boite de dialogue KDE, pour vous permettre d&#039;entrez l&#039;URL que Mozilla doit vous afficher :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt; #!/bin/bash&amp;lt;br /&amp;gt; # kwebgo&amp;lt;br /&amp;gt; file=$(kdialog --inputbox &amp;quot;Site Web :&amp;quot; &amp;quot;$@&amp;quot;)&amp;lt;br /&amp;gt; if [ -n &amp;quot;$file&amp;quot; ]; then&amp;lt;br /&amp;gt;   mozilla &amp;quot;$file&amp;quot;&amp;lt;br /&amp;gt; fi&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;kwebgo http://www.mozdex.com&amp;lt;/code&amp;gt; ouvrira la boite de dialogue avec pour valeur par défaut : [http://www.mozdex.com/ http://www.mozdex.com].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;note&amp;quot;&amp;gt;Changez &amp;lt;code&amp;gt;mozilla &amp;quot;$file&amp;quot;&amp;lt;/code&amp;gt; en &amp;lt;code&amp;gt;konqueror &amp;quot;$file&amp;quot;&amp;lt;/code&amp;gt;, et vous utiliserez ainsi Konqueror au lieu de Mozilla.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Comment associer une touche à une combinaison de touches ? ===&lt;br /&gt;
&lt;br /&gt;
Voici comment associer un clic ou une pression sur une touche à une combinaison de touches et d&#039;actions à la souris grâce à xbindkeys et xmacroplay.&lt;br /&gt;
&lt;br /&gt;
==== XBindKeys ====&lt;br /&gt;
&lt;br /&gt;
XBindKeys est un programme qui permet d&#039;associer une commande à une combinaison de touches ou de clics. Vous devez pour cela installer [http://www.easylinux.de/Download XBindKeys] (xbindkeys sur Debian (152K)).&lt;br /&gt;
&lt;br /&gt;
==== XMacro ====&lt;br /&gt;
&lt;br /&gt;
XMacro est un programme capable d&#039;enregistrer vos actions de souris et de clavier, pour ensuite les reproduire. Remarquez que l&#039;on ne fera que produire des actions. [http://xmacro.sourceforge.net/ Cliquez ici pour le télécharger] (paquet xmacro sur Debian (112K)).&lt;br /&gt;
&lt;br /&gt;
=== L&#039;exemple sur Diablo II ===&lt;br /&gt;
&lt;br /&gt;
Le mieux c&#039;est de montrer en pratique ce que l&#039;on peut faire avec tout ça avec Diablo II.&lt;br /&gt;
&lt;br /&gt;
Je n&#039;aborderai pas l&#039;émulation ici. Merci de ne pas m&#039;écrire à propos de ce jeu.&lt;br /&gt;
&lt;br /&gt;
==== Configurer X pour Diablo II ====&lt;br /&gt;
&lt;br /&gt;
Le XBindKeys ne fonctionne que si le programme n&#039;applique pas un &amp;quot;grab&amp;quot; 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&#039;écran correspondant à la taille de la fenêtre, ça revient finalement à un plein écran sans capture des périphériques d&#039;entrée.&lt;br /&gt;
&lt;br /&gt;
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&#039;écran). Pour cela il faut d&#039;abord configurer X pour qu&#039;il travail toujours en 800x600 lorsqu&#039;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 &amp;lt;code&amp;gt;/etc/X11/XF86Config-4&amp;lt;/code&amp;gt; (ou &amp;lt;code&amp;gt;XF86Config&amp;lt;/code&amp;gt; selon votre version de X) ; cherchez la section &amp;lt;code&amp;gt;Screen&amp;lt;/code&amp;gt; et trouvez ensuite la sous-section &amp;lt;code&amp;gt;Display&amp;lt;/code&amp;gt; dont la &amp;lt;code&amp;gt;Depth&amp;lt;/code&amp;gt; (profondeur des couleurs) est égale à 16. Modifiez les modes pour n&#039;avoir au maximum qu&#039;une résolution de 800x600. La première étant celle utilisée par défaut.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;SubSection &amp;quot;Display&amp;quot;&amp;lt;br /&amp;gt;   Depth 16&amp;lt;br /&amp;gt;   Modes &amp;quot;800x600&amp;quot; &amp;quot;640x480&amp;quot;&amp;lt;br /&amp;gt; EndSubSection&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
De cette façon, X activera toujours la 800x600 lorsqu&#039;il sera en 16 bits de couleurs.&lt;br /&gt;
&lt;br /&gt;
==== Configurer une commande Diablo II ====&lt;br /&gt;
&lt;br /&gt;
Nous allons maintenant faire le petit script qui lancera Diablo II sur une nouvelle session.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;#!/bin/bash&amp;lt;/nowiki&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; mv $HOME/.xinitrc $HOME/.xinitrc-diablo2-old&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; echo &amp;quot;xsetroot -solid black -cursor_name left_ptr&amp;lt;br /&amp;gt; #xset m 50/10 6 # accélération souris xset m &amp;lt;accel&amp;gt; &amp;lt;seuil&amp;gt;&amp;lt;br /&amp;gt; numlockx on # vérouillage pavé num&amp;lt;br /&amp;gt; setxkbmap -layout us&amp;lt;br /&amp;gt; cd /usr/local/games/Diablo\ II&amp;lt;br /&amp;gt; xbindkeys -f $HOME/.diablo2/xbindkeys.config -X :1&amp;lt;br /&amp;gt; wine Game.exe -- $@ &amp;quot;&amp;gt; /tmp/diablo2.logs&amp;lt;br /&amp;gt; killall -9 xbindkeys wine wineserver&amp;quot; &amp;gt; $HOME/.xinitrc&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; xinit -- :1 -depth 16&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; rm -f $HOME/.xinitrc&amp;lt;br /&amp;gt; mv $HOME/.xinitrc-diablo2-old $HOME/.xinitrc&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;note&amp;quot;&amp;gt;&amp;lt;code&amp;gt;setxkbmap -layout us&amp;lt;/code&amp;gt; nous sert à faire passer le clavier en QWERTY original. Ce n&#039;est pas indispensable mais préférable pour Diablo II qui ne comprend absolument rien aux touches numériques situées au dessus de la zone des lettres.&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;aparte&amp;quot;&amp;gt;Dans ce script, le NumLock est activé par numlockx : vérifiez que vous l&#039;avez installé !&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Comme vous voyez, la commande de XBindKeys est déjà insérée, les explications arrivent...&lt;br /&gt;
&lt;br /&gt;
==== XBindKeys et Diablo II ====&lt;br /&gt;
&lt;br /&gt;
Nous allons aborder ici l&#039;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 ;)&lt;br /&gt;
&lt;br /&gt;
On va tout d&#039;abord positionner tous les fichiers nécessaires à notre opération dans un dossier &amp;lt;code&amp;gt;.diablo2&amp;lt;/code&amp;gt; dans le répertoire home. Créez donc le dossier &amp;lt;code&amp;gt;$HOME/.diablo2&amp;lt;/code&amp;gt; et mettez-y ce fichier de configuration XBindKeys :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;# Aptitude 1&amp;lt;/nowiki&amp;gt;&amp;lt;br /&amp;gt; &amp;quot;~/.diablo2/aptitude.sh 6&amp;quot;&amp;lt;br /&amp;gt;  b:4&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; # Aptitude 1-Copy&amp;lt;br /&amp;gt; &amp;quot;~/.diablo2/aptitude.sh 6&amp;quot;&amp;lt;br /&amp;gt;  control + b:4&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; # Aptitude 2&amp;lt;br /&amp;gt; &amp;quot;~/.diablo2/aptitude.sh 7&amp;quot;&amp;lt;br /&amp;gt;  b:5&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; # Aptitude 2-Copy&amp;lt;br /&amp;gt; &amp;quot;~/.diablo2/aptitude.sh 7&amp;quot;&amp;lt;br /&amp;gt;  control + b:5&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; # Aptitude 3&amp;lt;br /&amp;gt; &amp;quot;~/.diablo2/aptitude.sh 8 0,09&amp;quot;&amp;lt;br /&amp;gt;  b:2&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; # Aptitude 3-Copy&amp;lt;br /&amp;gt; &amp;quot;~/.diablo2/aptitude.sh 8 0,09&amp;quot;&amp;lt;br /&amp;gt;  control + b:2&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; # Extended keyboard&amp;lt;br /&amp;gt; &amp;quot;~/.diablo2/message.sh &#039;***à bout de souffle*** on pourrait pas... faire un petit saut... en ville ? :) Je vous paye le TP :D&#039;&amp;quot;&amp;lt;br /&amp;gt;  XF86HomePage&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; &amp;quot;aumix -v+10&amp;quot;&amp;lt;br /&amp;gt;  XF86AudioRaiseVolume&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; &amp;quot;aumix -v-10&amp;quot;&amp;lt;br /&amp;gt;  XF86AudioLowerVolume&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; &amp;quot;mute&amp;quot;&amp;lt;br /&amp;gt;  XF86AudioMute&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;warning&amp;quot;&amp;gt;Faites attention au deuxième argument donné à aptitude.sh, ce sont des nombres décimaux et le séparateur est une virgule. Ça ne fonctionnera pas si vous mettez un point ! (dû à la commande sleep)&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;aparte&amp;quot;&amp;gt;Comme vous le voyez, j&#039;ai remis les mêmes associations deux fois. Une fois avec le &#039;&#039;&#039;[&amp;lt;tt&amp;gt;Ctrl&amp;lt;/tt&amp;gt;]&#039;&#039;&#039; enfoncé, et une fois sans. Étant donné qu&#039;il faut appuyer sur la touche &#039;&#039;&#039;[&amp;lt;tt&amp;gt;Ctrl&amp;lt;/tt&amp;gt;]&#039;&#039;&#039; pour courir.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mais quel est cet étrange script aptitude.sh ? Et message.sh ? La suite, par ici...&lt;br /&gt;
&lt;br /&gt;
==== XMacroPlay et Diablo II ====&lt;br /&gt;
&lt;br /&gt;
On va maintenant faire deux petits scripts, l&#039;un permet d&#039;envoyer des messages rapidement l&#039;autre permet d&#039;appuyer sur une touche, faire un clic droit, temporiser et appuyer sur une autre touche du clavier.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;#!/bin/bash&amp;lt;/nowiki&amp;gt;&amp;lt;br /&amp;gt; echo &amp;quot;KeyStr Return&amp;lt;br /&amp;gt; string $@&amp;lt;br /&amp;gt; KeyStr Return&amp;quot; &amp;gt; /tmp/message.$USER&amp;lt;br /&amp;gt; xmacroplay :1 &amp;lt; /tmp/message.$USER&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ce script va donc appuyer sur &#039;&#039;&#039;[&amp;lt;tt&amp;gt;Enter&amp;lt;/tt&amp;gt;]&#039;&#039;&#039;, taper tout le message contenu en paramètres et réappuyer sur &#039;&#039;&#039;[&amp;lt;tt&amp;gt;Enter&amp;lt;/tt&amp;gt;]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Maintenant voyons voir l&#039;autre script :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;#!/bin/bash&amp;lt;/nowiki&amp;gt;&amp;lt;br /&amp;gt; echo &amp;quot;KeyStr $1&amp;quot; &amp;gt; /tmp/macrokeys&amp;lt;br /&amp;gt; xmacroplay :1 &amp;lt; /tmp/macrokeys&amp;lt;br /&amp;gt; test -z &amp;quot;$2&amp;quot; || sleep $2&amp;lt;br /&amp;gt; echo &amp;quot;ButtonPress 3&amp;lt;br /&amp;gt; ButtonRelease 3&amp;lt;br /&amp;gt; KeyStr 5&amp;quot; &amp;gt; /tmp/macrokeys&amp;lt;br /&amp;gt; xmacroplay :1 &amp;lt; /tmp/macrokeys&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;note&amp;quot;&amp;gt;Changez le &amp;lt;code&amp;gt;ButtonPress 3&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;ButtonRelease 3&amp;lt;/code&amp;gt; en &amp;lt;code&amp;gt;ButtonPress 1&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;ButtonRelease 1&amp;lt;/code&amp;gt; si vous désirez que le script fasse un clic gauche au lieu d&#039;un clic droite.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5... 6... Vous comprenez maintenant pourquoi c&#039;est plus difficile en clavier français ou belge.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Non ça ne marche pas encore, mais il ne reste qu&#039;à configurer le jeu... ;)&lt;br /&gt;
&lt;br /&gt;
==== Configuration de Diablo II ====&lt;br /&gt;
&lt;br /&gt;
Entrez dans le jeu, appuyez sur &#039;&#039;&#039;[&amp;lt;tt&amp;gt;Esc&amp;lt;/tt&amp;gt;]&#039;&#039;&#039;, rendez-vous ensuite dans le menu de configuration des touches. Associez les touches &#039;&#039;&#039;[&amp;lt;tt&amp;gt;5&amp;lt;/tt&amp;gt;]&#039;&#039;&#039;, &#039;&#039;&#039;[&amp;lt;tt&amp;gt;6&amp;lt;/tt&amp;gt;]&#039;&#039;&#039;, &#039;&#039;&#039;[&amp;lt;tt&amp;gt;7&amp;lt;/tt&amp;gt;]&#039;&#039;&#039; et &#039;&#039;&#039;[&amp;lt;tt&amp;gt;8&amp;lt;/tt&amp;gt;]&#039;&#039;&#039; à des aptitudes différentes. Sortez des menus et mettez votre aptitude principale en &#039;&#039;&#039;[&amp;lt;tt&amp;gt;5&amp;lt;/tt&amp;gt;]&#039;&#039;&#039;, et des aptitudes utilisées moins fréquemment en &#039;&#039;&#039;[&amp;lt;tt&amp;gt;6&amp;lt;/tt&amp;gt;]&#039;&#039;&#039;, &#039;&#039;&#039;[&amp;lt;tt&amp;gt;7&amp;lt;/tt&amp;gt;]&#039;&#039;&#039; et &#039;&#039;&#039;[&amp;lt;tt&amp;gt;8&amp;lt;/tt&amp;gt;]&#039;&#039;&#039;. Tout ça à une même main (coté gauche ou droit des aptitudes).&lt;br /&gt;
&lt;br /&gt;
Bon amusement ;)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;note&amp;quot;&amp;gt;Si vous avez bien tout suivi : quand vous ferez défiler la roulette vers le haut, votre aptitude en &#039;&#039;&#039;[&amp;lt;tt&amp;gt;5&amp;lt;/tt&amp;gt;]&#039;&#039;&#039; va commuter vers la &#039;&#039;&#039;[&amp;lt;tt&amp;gt;7&amp;lt;/tt&amp;gt;]&#039;&#039;&#039; et l&#039;actionner, et reviendra immédiatement après en &#039;&#039;&#039;[&amp;lt;tt&amp;gt;5&amp;lt;/tt&amp;gt;]&#039;&#039;&#039;. &amp;lt;br /&amp;gt; Appuyez sur la touche &#039;&#039;&#039;[&amp;lt;tt&amp;gt;MyHome&amp;lt;/tt&amp;gt;]&#039;&#039;&#039; pour avoir un message &amp;quot;rapide&amp;quot; qui n&#039;a de rapide que le nom...&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;merci&amp;quot;&amp;gt;Cette page est issue de la documentation &#039;pré-wiki&#039; de Léa a été convertie avec HTML::WikiConverter. Elle fut créée par Jean-Thomas MUYL --maston28 le 19/02/2004.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Copyright =&lt;br /&gt;
Copyright &amp;amp;copy; 19/02/2004, Jean-Thomas MUYL --maston28&lt;br /&gt;
{{CC-BY-NC-SA}}&lt;/div&gt;</summary>
		<author><name>Ptyxs</name></author>
	</entry>
	<entry>
		<id>https://lea-linux.org/docs/index.php?title=Configurer_les_touches_de_son_clavier_multim%C3%A9dia&amp;diff=14212</id>
		<title>Configurer les touches de son clavier multimédia</title>
		<link rel="alternate" type="text/html" href="https://lea-linux.org/docs/index.php?title=Configurer_les_touches_de_son_clavier_multim%C3%A9dia&amp;diff=14212"/>
		<updated>2007-01-14T14:36:25Z</updated>

		<summary type="html">&lt;p&gt;Ptyxs : /* vérifier que le kernel est capable de gérer une touche */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Autres]]&lt;br /&gt;
= Configurer les touches de son clavier multimédia =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;leatitre&amp;quot;&amp;gt;Configurer les touches de son clavier multimédia&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;leapar&amp;quot;&amp;gt;par [mailto:jean-thomas.muyl@lea-linux.org Jean-Thomas MUYL --maston28 et [mailto:tuxnil@yahoo.fr NiL]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Comme moi, vous vous êtes peut-être acheté un clavier confortable, plus adapté aux longues heures de coding ou d&#039;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&#039;autres choses du genre, parfaitement inutiles donc totalement indispensables...&lt;br /&gt;
&lt;br /&gt;
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&#039;exécution d&#039;une commande.&lt;br /&gt;
&lt;br /&gt;
== Préliminaires ==&lt;br /&gt;
=== Espionnage des touches incriminées ===&lt;br /&gt;
&lt;br /&gt;
Tout d&#039;abord, il va nous falloir espionner le clavier pour savoir ce qu&#039;il renvoie quand vous appuyez sur les touches bonus.&lt;br /&gt;
&lt;br /&gt;
Pour cela, il faut utiliser le programme xev, qui se trouve sur mandrake dans le paquet X11R6-contrib. Si vous avez [http://groupes.lea-linux.org/fiches/ficheurpmi.html correctement configuré les sources urpmi], il vous suffit de taper ceci en tant que root : &amp;lt;code&amp;gt;urpmi X11R6-contrib&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Lorsque tout est installé, lancez le programme &amp;lt;code&amp;gt;xev&amp;lt;/code&amp;gt;. En appuyant sur les touches, vous devriez obtenir quelque chose ressemblant à ceci :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;[root@mastonsbox maston28]# xev&amp;lt;br /&amp;gt; KeyRelease event, serial 27, synthetic NO, window 0x3400001,&amp;lt;br /&amp;gt; root 0x48, subw 0x0, time 7029077, (249,-81), root:(252,517),&amp;lt;br /&amp;gt; state 0x0, keycode 233 (keysym 0x1008ff27, XF86Forward), same_screen YES,&amp;lt;br /&amp;gt; XLookupString gives 0 bytes: &amp;quot;&amp;quot;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le champ qui nous intéresse ici est le champ &amp;lt;code&amp;gt;keycode&amp;lt;/code&amp;gt;. Par exemple, la touche que j&#039;ai ici espionnée renvoie la valeur &amp;lt;code&amp;gt;keycode 233&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Répétez cette opération pour chacune des touches spéciales, et notez quelque part la valeur de chacune de ces touches.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;note&amp;quot;&amp;gt;Si certaines touches ne semblent rien renvoyer, vérifiez dans le fichier &amp;lt;code&amp;gt;/usr/X11R6/lib/X11/xkb/keycodes/xfree86&amp;lt;/code&amp;gt; que vous avez ceci :&amp;lt;br /&amp;gt;&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt; xkb_keycodes &amp;quot;basic&amp;quot; {&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; minimum= 8;&amp;lt;br /&amp;gt; maximum= 255;&amp;lt;br /&amp;gt; &amp;lt;/div&amp;gt;&amp;lt;br /&amp;gt; En effet, il arrive parfois que les valeurs soient plus petites, et donc que le programme ne scanne pas sur toute la plage possible. &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== xev ne réagit pas à vos touches ====&lt;br /&gt;
Il arrive fréquemment que &amp;lt;code&amp;gt;xev&amp;lt;/code&amp;gt; ne réagisse pas à l&#039;appuie sur certaines touches des claviers multimédia. C&#039;est, la plupart du temps, du au fait que le kernel n&#039;a pas connaissance de ces touches. Mais il existe une solution ! &lt;br /&gt;
&lt;br /&gt;
===== vérifier que le kernel est capable de gérer une touche =====&lt;br /&gt;
Dans un terminal tapez : &lt;br /&gt;
&amp;lt;code multi&amp;gt;tail -f /var/log/messages&amp;lt;/code&amp;gt;&lt;br /&gt;
Puis appuyez sur la touche qu&#039;&amp;lt;code&amp;gt;xev&amp;lt;/code&amp;gt; ne reconnaît pas, vous devriez voir apparaître quelque chose du genre :&lt;br /&gt;
&amp;lt;code multi&amp;gt;Feb  7 16:13:08 localhost atkbd.c: Use &#039;setkeycodes e012 &amp;lt;keycode&amp;gt;&#039; to make it known.&amp;lt;/code&amp;gt;&lt;br /&gt;
Ce qui nous intéresse, c&#039;est la valeur annoncée : &#039;&#039;&#039;e012&#039;&#039;&#039;. C&#039;est le &#039;&#039;&#039;scancode&#039;&#039;&#039; de la touche en question. Tant que vous y êtes appuyez sur la plupart de touches de votre clavier pour voir s&#039;il n&#039;y a pas d&#039;autre touche inconnue du noyau. Vérifiez aussi les touches après le verrouillage de la touche &amp;lt;key&amp;gt;Verr. F&amp;lt;/key&amp;gt; (enfin c&#039;est son nom sur mon clavier) : elle donne accès à une douzaines de &#039;&#039;&#039;touches&#039;&#039;&#039; parallèlement aux touches de fonction.&lt;br /&gt;
&lt;br /&gt;
Il faut maintenant affecter un &#039;&#039;&#039;keycode&#039;&#039;&#039; à ce &#039;&#039;&#039;scancode&#039;&#039;&#039;. C&#039;est ce que dit le message d&#039;erreur renvoyé par le noyau.&lt;br /&gt;
&lt;br /&gt;
===== vérifier les &#039;&#039;&#039;keycodes&#039;&#039;&#039; disponibles =====&lt;br /&gt;
Un outils liste les &#039;&#039;&#039;keycodes&#039;&#039;&#039; utilisé : &amp;lt;code&amp;gt;getkeycodes&amp;lt;/code&amp;gt;. Il renvoie une table qui liste les touches par &#039;&#039;&#039;scancode&#039;&#039;&#039; affiche leur &#039;&#039;&#039;keycodes&#039;&#039;&#039; associé. &lt;br /&gt;
&lt;br /&gt;
Pour afficher uniquement les &#039;&#039;&#039;keycodes&#039;&#039;&#039; libres, on peut utiliser la commande : &lt;br /&gt;
&amp;lt;code&amp;gt;root@localhost # IFS=$&#039;\n &#039; ; for i in $(getkeycodes | grep &amp;quot;[0-9]:&amp;quot; | cut -d &amp;quot;:&amp;quot; -f 2) ; do echo $i ; done | sort | uniq &amp;gt; list.codes&lt;br /&gt;
root@localhost # for ((i=80;i&amp;lt;=255;i++)) ; do if grep -E &amp;quot;^$i\$&amp;quot; list.codes &amp;gt; /dev/null ; then true ; else echo &amp;quot;$i&amp;quot; ; fi ; done &amp;gt; free.codes&lt;br /&gt;
root@localhost # cat free.codes&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note : &#039;&#039;&#039; il semblerait que les versions récentes de setkeycodes ou du kernel ne permettent plus d&#039;attribuer les keycodes supérieurs à 127, ce qui est plus que pénible.&lt;br /&gt;
&lt;br /&gt;
===== affectation d&#039;un &#039;&#039;&#039;keycode&#039;&#039;&#039; par &#039;&#039;&#039;scancode&#039;&#039;&#039; =====&lt;br /&gt;
Pour chaque &#039;&#039;&#039;scancode&#039;&#039;&#039; trouvé aux étapes précédantes, vous devez affecter un &#039;&#039;&#039;keycode&#039;&#039;&#039; libre (trouvé à l&#039;étape précédante).&lt;br /&gt;
&lt;br /&gt;
Par exemple, pour affecter le &#039;&#039;&#039;keycode&#039;&#039;&#039; : &#039;&#039;200&#039;&#039; à la touche dont le &#039;&#039;&#039;scancode&#039;&#039;&#039; est &#039;&#039;e012&#039;&#039;, il suffit de taper : &lt;br /&gt;
&amp;lt;code multi&amp;gt;setkeycodes e012 200&amp;lt;/code&amp;gt;&lt;br /&gt;
On peut affecter plusieurs touches en même temps, par exemple : &lt;br /&gt;
&amp;lt;code multi&amp;gt;setkeycodes e012 200 e013 201 e017 215&amp;lt;/code&amp;gt;&lt;br /&gt;
Un fois ceci fait, vous pourrez espionner vos touches avec &amp;lt;code&amp;gt;xev&amp;lt;/code&amp;gt; comme préconisé ci-dessus.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;PS:&#039;&#039;&#039; Pensez à ajouter à l&#039;un de vos scripts de démarrage l&#039;affectation des &#039;&#039;&#039;keycodes&#039;&#039;&#039;&lt;br /&gt;
Sur ma gentoo, j&#039;ai créé le script &amp;lt;code&amp;gt;/etc/init.d/keycodes&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;code&amp;gt;#!/sbin/runscript&lt;br /&gt;
# Distributed under the terms of the GNU General Public License v2 (and no other version)&lt;br /&gt;
#NB: Config is in /etc/conf.d/keycodes&lt;br /&gt;
&lt;br /&gt;
depend() {&lt;br /&gt;
        need localmount&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
checkconfig() {&lt;br /&gt;
        if [ -z &amp;quot;$KEYCODES&amp;quot; ] ; then&lt;br /&gt;
                eerror &amp;quot;You need to setup KEYCODES in /etc/conf.d/keycodes first&amp;quot;&lt;br /&gt;
                return 1&lt;br /&gt;
        fi&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
start() {&lt;br /&gt;
        checkconfig || return 1&lt;br /&gt;
        ebegin &amp;quot;Setting specific keycodes&amp;quot;&lt;br /&gt;
                setkeycodes $KEYCODES&lt;br /&gt;
        eend ${?}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
stop() {&lt;br /&gt;
        ewarn &amp;quot;nothing to stop&amp;quot;&lt;br /&gt;
}&amp;lt;/code&amp;gt;&lt;br /&gt;
Je n&#039;ai pas oublié de rendre ce script exécutable : &lt;br /&gt;
&amp;lt;code multi&amp;gt;root@localhost # chmod +x /etc/init.d/keycodes&amp;lt;/code&amp;gt;&lt;br /&gt;
Et j&#039;ai créé le fichier de configuration &amp;lt;code&amp;gt;/etc/conf.d/keycodes&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;code multi&amp;gt;KEYCODES=&amp;quot;e011 227 e012 228 e013 229 e014 230 e03b 190 e03c 191 e03d 192 e03e 193 e03f 194 e040 195 e041 196 e042 197 e043 198 e044 199 e057 201 e058 202&amp;quot;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Ensuite j&#039;ai demandé à ma gentoo de démarrer automatiquement ce fichier : &lt;br /&gt;
&amp;lt;code multi&amp;gt;root@localhost # rc-update add keycodes default&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Nommer les touches ===&lt;br /&gt;
&lt;br /&gt;
Pour que les touches soient reconnues, il faut associer leur &amp;lt;code&amp;gt;keycode&amp;lt;/code&amp;gt; avec un nom de touche g énérique connu par Xfree. Ces noms de touches sont listés dans le fichier &amp;lt;code&amp;gt;/usr/X11R6/lib/X11/XKeysymDB&amp;lt;/code&amp;gt; et commencent par &amp;lt;code&amp;gt;XF86&amp;lt;/code&amp;gt;. Il faut ensuite créer le fichier &amp;lt;code&amp;gt;~/.xmodmaprc&amp;lt;/code&amp;gt; dans lequel on va définir ces fameuses correspondances...Comme un exemple vaut mieux qu&#039;un long discours, voici le contenu de mon &amp;lt;code&amp;gt;~/.xmodmaprc&amp;lt;/code&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;keycode 234 = XF86Back&amp;lt;br /&amp;gt; keycode 233 = XF86Forward&amp;lt;br /&amp;gt; keycode 232 = XF86Stop&amp;lt;br /&amp;gt; keycode 231 = XF86Refresh&amp;lt;br /&amp;gt; keycode 229 = XF86Search&amp;lt;br /&amp;gt; keycode 230 = XF86Favorites&amp;lt;br /&amp;gt; keycode 178 = XF86VendorHome&amp;lt;br /&amp;gt; keycode 236 = XF86Mail&amp;lt;br /&amp;gt; keycode 160 = XF86AudioMute&amp;lt;br /&amp;gt; keycode 174 = XF86AudioLowerVolume&amp;lt;br /&amp;gt; keycode 176 = XF86AudioRaiseVolume&amp;lt;br /&amp;gt; keycode 162 = XF86AudioPlay&amp;lt;br /&amp;gt; keycode 164 = XF86AudioStop&amp;lt;br /&amp;gt; keycode 144 = XF86AudioPrev&amp;lt;br /&amp;gt; keycode 153 = XF86AudioNext&amp;lt;br /&amp;gt; keycode 237 = XF86Video&amp;lt;br /&amp;gt; keycode 235 = XF86OfficeHome&amp;lt;br /&amp;gt; keycode 161 = XF86Calculator&amp;lt;br /&amp;gt; keycode 222 = XF86PowerOff&amp;lt;br /&amp;gt; keycode 223 = XF86Sleep&amp;lt;br /&amp;gt; keycode 227 = XF86WakeUp&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
En fonction des &amp;lt;code&amp;gt;keycode&amp;lt;/code&amp;gt; que vous avez trouvé et des noms que vous souhaitez donner à vos touches, remplissez ce fichier avec cette syntaxe très simple.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;note&amp;quot;&amp;gt;L&#039;attribution de ces noms est totalement arbitraire du moment qu&#039;ils sont dans le fichier &amp;lt;code&amp;gt;/usr/X11R6/lib/X11/XKeysymDB&amp;lt;/code&amp;gt;. Le choix de ces noms n&#039;influera en rien sur les actions associées aux touches dans le futur. Une bonne chose est de choisir les noms qui se rapprochent le plus du dessin associé à la touche sur le clavier pour s&#039;y retrouver...&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Une fois cela fait, il faut taper la commande &amp;lt;code&amp;gt;xmodmap ~/.xmodmaprc&amp;lt;/code&amp;gt; pour activer le nouveau mapping.&lt;br /&gt;
&lt;br /&gt;
==== Charger les attributions automatiquement sous KDE ====&lt;br /&gt;
&lt;br /&gt;
Pour que cela prenne effet à chaque démarrage de KDE, placez le fichier suivant dans le répertoire &amp;lt;code&amp;gt;~/.kde/Autostart/&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;#!/bin/sh&amp;lt;/nowiki&amp;gt;&amp;lt;br /&amp;gt; xmodmap ~/.xmodmaprc&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Rendez ensuite ce script exécutable : &amp;lt;code&amp;gt; chmod +x ~/.kde/Autostart/clavier&amp;lt;/code&amp;gt; (si vous avez appelé le fichier &amp;lt;code&amp;gt;clavier&amp;lt;/code&amp;gt; bien entendu...)&lt;br /&gt;
&lt;br /&gt;
== KDE est installé sur ma machine ==&lt;br /&gt;
&lt;br /&gt;
=== Attribuer des commandes aux touches ===&lt;br /&gt;
&lt;br /&gt;
Une méthode simple pour attribuer des touches à des commandes est de créer un menu caché.&lt;br /&gt;
&lt;br /&gt;
Pour cela, lancez &amp;lt;code&amp;gt;kmenuedit&amp;lt;/code&amp;gt; ou &amp;lt;code&amp;gt;menudrake&amp;lt;/code&amp;gt; (sous mandrake), ou encore sous mandriva 10.1 Kcontrol-&amp;gt;Système-&amp;gt;Touches spéciales du clavier. Créez un menu caché en mettant un point au début du nom de menu, par exemple : &amp;lt;code&amp;gt;.clavier&amp;lt;/code&amp;gt; sera un menu caché.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;note&amp;quot;&amp;gt;Vous trouverez à la fin de cet article quelques commandes utiles de gestion de son par exemple, ou de certains logiciels.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Maintenant que vous avez créé les entrées, allez voir : &amp;quot;centre de controle kde -&amp;gt; Régionalisation &amp;amp; accessibilité -&amp;gt; raccourcis claviers -&amp;gt; raccourcis de commandes&amp;quot;. Tout dépend de votre version de KDE, mais cela n&#039;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 ?&lt;br /&gt;
&lt;br /&gt;
Une autre méthode utilisant KDE pour lancer une commande avec un raccourci clavier consiste à utiliser la fonction d&#039;&amp;quot;Actions d&#039;entrées&amp;quot; disponnible sous le versions les plus récentes de KDE. Pour ce faire allez dans : &lt;br /&gt;
Centre de configuration de KDE (&amp;lt;code&amp;gt;kcontrol&amp;lt;/code&amp;gt;) &amp;gt; Régionalisation &amp;amp; accessibilité &amp;gt; Actions d&#039;entrées.&lt;br /&gt;
&lt;br /&gt;
Ensuite, cliquez sur le bouton &amp;quot;Nouveau groupe&amp;quot; et nommez-le &amp;quot;Clavier&amp;quot;, par exemple. &lt;br /&gt;
&lt;br /&gt;
Cliquez sur le nom du goupe dans la liste de droite puis cliquez sur &amp;quot;Nouvelle action&amp;quot;. Nommez-la comme vous le désirez et choisissez  &amp;quot;Raccourci clavier -&amp;gt; Commande / URL (simple)&amp;quot; dans la liste déroulante &amp;quot;Type d&#039;action : &amp;quot;. Vous pouvez dès à présent paramétrer le raccourci que vous voulez utliser et la commande à lancer dans les onglets &amp;quot;Raccourci clavier&amp;quot; et &amp;quot;Paramètres de la commande / URL&amp;quot;. Il convient de répéter cette dernière procédure pour chaque commande à lancer.&lt;br /&gt;
&lt;br /&gt;
=== Liste de commandes utilisables ===&lt;br /&gt;
&lt;br /&gt;
{| width=&amp;quot;80%&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;10&amp;quot;&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
! Action&lt;br /&gt;
! Commande&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Lecture-pause&lt;br /&gt;
| &amp;lt;code&amp;gt;xmms --play-pause&amp;lt;/code&amp;gt;&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| STOP&lt;br /&gt;
| &amp;lt;code&amp;gt;xmms --stop&amp;lt;/code&amp;gt;&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Chanson précédente&lt;br /&gt;
| &amp;lt;code&amp;gt;xmms --rew&amp;lt;/code&amp;gt;&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Chanson suivante&lt;br /&gt;
| &amp;lt;code&amp;gt;xmms --fwd&amp;lt;/code&amp;gt;&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Baisser le son&lt;br /&gt;
| &amp;lt;code&amp;gt;aumix -v-15&amp;lt;/code&amp;gt; ici de 15%.&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Monter le son&lt;br /&gt;
| &amp;lt;code&amp;gt;aumix -v+15&amp;lt;/code&amp;gt; ici de 15%.&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Couper le son&lt;br /&gt;
| &amp;lt;code&amp;gt;aumix -vn&amp;lt;/code&amp;gt;&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Lancer kmail&lt;br /&gt;
| &amp;lt;code&amp;gt;kmail&amp;lt;/code&amp;gt;&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Relever les mails dans kMail&lt;br /&gt;
| &amp;lt;code&amp;gt;dcop kmail KMailIface checkMail&amp;lt;/code&amp;gt;&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Verrouiller l&#039;écran&lt;br /&gt;
| &amp;lt;code&amp;gt;dcop kdesktop KScreensaverIface lock&amp;lt;/code&amp;gt;&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Ejecter cdrom&lt;br /&gt;
| &amp;lt;code&amp;gt;eject /dev/cdrom&amp;lt;/code&amp;gt;&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Avaler cdrom&lt;br /&gt;
| &amp;lt;code&amp;gt;eject -t /dev/cdrom&amp;lt;/code&amp;gt;&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Calculatrice&lt;br /&gt;
| &amp;lt;code&amp;gt;kcalc&amp;lt;/code&amp;gt;&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Chercher un fichier&lt;br /&gt;
| &amp;lt;code&amp;gt;kfind&amp;lt;/code&amp;gt;&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Konqueror comme gestionnaire de fichiers&lt;br /&gt;
| &amp;lt;code&amp;gt;kfmclient openProfile filemanagement&amp;lt;/code&amp;gt;&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Konqueror comme navigateur&lt;br /&gt;
| &amp;lt;code&amp;gt;kfmclient openProfile webbrowsing&amp;lt;/code&amp;gt;&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Exécuter une commande&lt;br /&gt;
| &amp;lt;code&amp;gt;dcop kdesktop KDesktopIface popupExecuteCommand&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== KDE n&#039;est pas installé sur ma machine ==&lt;br /&gt;
&lt;br /&gt;
=== Configurer son clavier sous X ===&lt;br /&gt;
&lt;br /&gt;
Nous allons commencer par configurer notre clavier sous X : c&#039;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 :&lt;br /&gt;
&lt;br /&gt;
* Quel clavier nous possédons&lt;br /&gt;
* A quel modèle X associe t-il notre clavier&lt;br /&gt;
&lt;br /&gt;
Pour la première, retournez votre clavier et lisez l&#039;étiquette ;)&amp;lt;br /&amp;gt; Pour la deuxième, éditez le fichier &amp;lt;code&amp;gt;/usr/X11R6/lib/X11/xkb/rules/xfree86.lst&amp;lt;/code&amp;gt;. S&#039;il ne se trouve pas là, faites &amp;lt;code&amp;gt;locate *xkb*/xfree86.lst&amp;lt;/code&amp;gt; dans un shell).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;exemple&amp;quot;&amp;gt;Au dos de mon clavier il est écrit : &#039;&#039;Logitech Internet Naviguator Keyboard&#039;&#039;. Le modèle de X est donc &#039;&#039;logiink&#039;&#039;.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Maintenant on va insérer tous ces paramètres dans le fichier de configuration de X, pour ce faire : éditez en root le fichier &amp;lt;code&amp;gt;/etc/X11/XF86Config-4&amp;lt;/code&amp;gt; (ou &amp;lt;code&amp;gt;XF86Config&amp;lt;/code&amp;gt; selon votre version de X). Cherchez la section du clavier : &#039;&#039;Driver &amp;quot;keyboard&amp;quot;&#039;&#039; et insérez les paramètres :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;Section &amp;quot;InputDevice&amp;quot;&amp;lt;br /&amp;gt;   Identifier &amp;quot;Generic Keyboard&amp;quot;&amp;lt;br /&amp;gt;   Driver &amp;quot;keyboard&amp;quot;&amp;lt;br /&amp;gt;   Option &amp;quot;CoreKeyboard&amp;quot;&amp;lt;br /&amp;gt;   Option &amp;quot;XkbRules&amp;quot; &amp;quot;xfree86&amp;quot;&amp;lt;br /&amp;gt;   Option &amp;quot;XkbModel&amp;quot; &amp;quot;&#039;&#039;&#039;logiink&#039;&#039;&#039;&amp;quot;&amp;lt;br /&amp;gt;   Option &amp;quot;XkbLayout&amp;quot; &amp;quot;&#039;&#039;&#039;be&#039;&#039;&#039;&amp;quot;&amp;lt;br /&amp;gt; EndSection&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enregistrez, relancez vos sessions si vous voulez que les changements soit appliqués immédiatement. La configuration de X est terminée.&lt;br /&gt;
&lt;br /&gt;
=== Récupérer les KeyCodes de toutes les touches ===&lt;br /&gt;
&lt;br /&gt;
Les KeyCodes sont les numéros des touches qui définissent les touches de votre clavier, parfois c&#039;est sous forme de chaîne de caractères comme ici. C&#039;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 &amp;lt;code&amp;gt;/etc/X11/xkb/symbols/inet&amp;lt;/code&amp;gt; (si le fichier ne se trouve pas là, essayez &amp;lt;code&amp;gt;locate *xkb*/inet&amp;lt;/code&amp;gt;), et recherchez le modèle de votre clavier. Vous trouverez ainsi tous les KeyCodes des touches supplémentaires de votre clavier étendu.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;aparte&amp;quot;&amp;gt;Vous pouvez utiliser les touches pour des actions sous KDE, Gnome, Fluxbox, WindowMaker, etc...&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Association des touches supplémentaires à une commande ===&lt;br /&gt;
&lt;br /&gt;
==== Installation de KeyLaunch ====&lt;br /&gt;
&lt;br /&gt;
Associer une touche à une commande est chose facile si l&#039;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&#039;est le paquet keylaunch, pour Mandrake et RedHat : je n&#039;ai pas trouvé le paquet (désolé) et pour ceux qui veulent compiler [http://ftp.riken.go.jp/pub/Linux/debian/debian/pool/main/k/keylaunch/keylaunch_1.3.0-6.tar.gz c&#039;est par ici. (11k)]&lt;br /&gt;
&lt;br /&gt;
==== Configurer KeyLaunch ====&lt;br /&gt;
&lt;br /&gt;
La configuration est très simple et très pratique : tout se fait dans &amp;lt;code&amp;gt;.keylaunchrc&amp;lt;/code&amp;gt; que &#039;&#039;&#039; vous devez créer&#039;&#039;&#039; dans votre dossier home. Il y a un exemple du fichier dans &amp;lt;code&amp;gt;/usr/share/doc/keylaunch/examples&amp;lt;/code&amp;gt; (si vous avez installé le paquet Debian sinon c&#039;est dans le dossier &amp;lt;code&amp;gt;debian&amp;lt;/code&amp;gt; là où vous avez décompressé KeyLaunch).&lt;br /&gt;
&lt;br /&gt;
Voici, en français, comment personnaliser ce fichier :&amp;lt;br /&amp;gt; Une seule association par ligne, chaque association commence par : &amp;lt;code&amp;gt;key=&amp;lt;/code&amp;gt; faites suivre ensuite par l&#039;état des modificateurs. Insérez trois points si une simple pression sur la touche vous suffit. &amp;lt;code&amp;gt;key=...&amp;lt;/code&amp;gt;. (Le premier point est le modificateur &#039;&#039;&#039;[&amp;lt;tt&amp;gt;Shift&amp;lt;/tt&amp;gt;]&#039;&#039;&#039;, activez-le en remplaçant le point par une astérisque (*). Le second point est le modificateur &#039;&#039;&#039;[&amp;lt;tt&amp;gt;Ctrl&amp;lt;/tt&amp;gt;]&#039;&#039;&#039; et enfin le dernier est le modificateur &#039;&#039;&#039;[&amp;lt;tt&amp;gt;Alt&amp;lt;/tt&amp;gt;]&#039;&#039;&#039;.) Et terminez enfin la ligne par la commande à exécuter précédée de &#039;:&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;exemple&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Et comme un bon exemple vaut mieux qu&#039;un long discours :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt; key=...XF86AudioMedia:xmms&amp;lt;br /&amp;gt; key=.*.XF86AudioMedia:gmplayer&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cet exemple-ci fait en sorte que lorsque vous appuyez sur la touche &#039;&#039;&#039;[&amp;lt;tt&amp;gt;Media&amp;lt;/tt&amp;gt;]&#039;&#039;&#039; du clavier : il ouvre XMMS. Cependant, si vous appuyez simultanément sur &#039;&#039;&#039;[&amp;lt;tt&amp;gt;Alt&amp;lt;/tt&amp;gt;]&#039;&#039;&#039; et &#039;&#039;&#039;[&amp;lt;tt&amp;gt;Media&amp;lt;/tt&amp;gt;]&#039;&#039;&#039;, KeyLaunch lancera GMPlayer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;aparte&amp;quot;&amp;gt;Cette exemple est destiné à un clavier Logitech Internet Navigator, adaptez le fichier à vos besoins grâce à la liste des touches à laquelle j&#039;ai fait référence ci-dessus, dans la section KeyCodes.&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Aide pour les commandes ===&lt;br /&gt;
&lt;br /&gt;
Voici une petite aide pour savoir quels sont les commandes qu&#039;il faut mettre pour réaliser telle ou telle action. Demandez sur le forum si cette aide est insuffisante.&lt;br /&gt;
&lt;br /&gt;
==== XMMS ====&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
| Démarrer XMMS&lt;br /&gt;
| xmms&lt;br /&gt;
|-&lt;br /&gt;
| Démarrer la musique&lt;br /&gt;
| xmms --play&lt;br /&gt;
|-&lt;br /&gt;
| Mettre en pause&lt;br /&gt;
| xmms --pause&lt;br /&gt;
|-&lt;br /&gt;
| Basculement lecture/pause&lt;br /&gt;
| xmms --play-pause&lt;br /&gt;
|-&lt;br /&gt;
| Arrêter&lt;br /&gt;
| xmms --stop&lt;br /&gt;
|-&lt;br /&gt;
| Piste suivante&lt;br /&gt;
| xmms --fwd&lt;br /&gt;
|-&lt;br /&gt;
| Piste précédente&lt;br /&gt;
| xmms --rew&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Pour le reste, entrez dans une console et tapez &amp;lt;code&amp;gt;xmms --help&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Autre programme ====&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
| Couper le son&lt;br /&gt;
| mute&lt;br /&gt;
|-&lt;br /&gt;
| Noatun&lt;br /&gt;
| noatun&lt;br /&gt;
|-&lt;br /&gt;
| La calculatride de KDE&lt;br /&gt;
| kcalc&lt;br /&gt;
|-&lt;br /&gt;
| Mozilla&lt;br /&gt;
| mozilla&lt;br /&gt;
|-&lt;br /&gt;
| Mozilla Mail&lt;br /&gt;
| mozilla -mail&lt;br /&gt;
|-&lt;br /&gt;
| KMail&lt;br /&gt;
| kmail --check&lt;br /&gt;
|-&lt;br /&gt;
| Rechercher&lt;br /&gt;
| kfind&lt;br /&gt;
|-&lt;br /&gt;
| Augmenter le volume de 10%&lt;br /&gt;
| aumix -v+10&lt;br /&gt;
|-&lt;br /&gt;
| Diminuer le volume de 10%&lt;br /&gt;
| aumix -v-10&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Vous pouvez également créer ce script que vous pouvez associer à la touche &#039;&#039;&#039;[&amp;lt;tt&amp;gt;Go&amp;lt;/tt&amp;gt;]&#039;&#039;&#039;, présente sur certains claviers Logitech. Il affiche simplement une boite de dialogue KDE, pour vous permettre d&#039;entrez l&#039;URL que Mozilla doit vous afficher :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt; #!/bin/bash&amp;lt;br /&amp;gt; # kwebgo&amp;lt;br /&amp;gt; file=$(kdialog --inputbox &amp;quot;Site Web :&amp;quot; &amp;quot;$@&amp;quot;)&amp;lt;br /&amp;gt; if [ -n &amp;quot;$file&amp;quot; ]; then&amp;lt;br /&amp;gt;   mozilla &amp;quot;$file&amp;quot;&amp;lt;br /&amp;gt; fi&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;kwebgo http://www.mozdex.com&amp;lt;/code&amp;gt; ouvrira la boite de dialogue avec pour valeur par défaut : [http://www.mozdex.com/ http://www.mozdex.com].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;note&amp;quot;&amp;gt;Changez &amp;lt;code&amp;gt;mozilla &amp;quot;$file&amp;quot;&amp;lt;/code&amp;gt; en &amp;lt;code&amp;gt;konqueror &amp;quot;$file&amp;quot;&amp;lt;/code&amp;gt;, et vous utiliserez ainsi Konqueror au lieu de Mozilla.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Comment associer une touche à une combinaison de touches ? ===&lt;br /&gt;
&lt;br /&gt;
Voici comment associer un clic ou une pression sur une touche à une combinaison de touches et d&#039;actions à la souris grâce à xbindkeys et xmacroplay.&lt;br /&gt;
&lt;br /&gt;
==== XBindKeys ====&lt;br /&gt;
&lt;br /&gt;
XBindKeys est un programme qui permet d&#039;associer une commande à une combinaison de touches ou de clics. Vous devez pour cela installer [http://www.easylinux.de/Download XBindKeys] (xbindkeys sur Debian (152K)).&lt;br /&gt;
&lt;br /&gt;
==== XMacro ====&lt;br /&gt;
&lt;br /&gt;
XMacro est un programme capable d&#039;enregistrer vos actions de souris et de clavier, pour ensuite les reproduire. Remarquez que l&#039;on ne fera que produire des actions. [http://xmacro.sourceforge.net/ Cliquez ici pour le télécharger] (paquet xmacro sur Debian (112K)).&lt;br /&gt;
&lt;br /&gt;
=== L&#039;exemple sur Diablo II ===&lt;br /&gt;
&lt;br /&gt;
Le mieux c&#039;est de montrer en pratique ce que l&#039;on peut faire avec tout ça avec Diablo II.&lt;br /&gt;
&lt;br /&gt;
Je n&#039;aborderai pas l&#039;émulation ici. Merci de ne pas m&#039;écrire à propos de ce jeu.&lt;br /&gt;
&lt;br /&gt;
==== Configurer X pour Diablo II ====&lt;br /&gt;
&lt;br /&gt;
Le XBindKeys ne fonctionne que si le programme n&#039;applique pas un &amp;quot;grab&amp;quot; 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&#039;écran correspondant à la taille de la fenêtre, ça revient finalement à un plein écran sans capture des périphériques d&#039;entrée.&lt;br /&gt;
&lt;br /&gt;
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&#039;écran). Pour cela il faut d&#039;abord configurer X pour qu&#039;il travail toujours en 800x600 lorsqu&#039;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 &amp;lt;code&amp;gt;/etc/X11/XF86Config-4&amp;lt;/code&amp;gt; (ou &amp;lt;code&amp;gt;XF86Config&amp;lt;/code&amp;gt; selon votre version de X) ; cherchez la section &amp;lt;code&amp;gt;Screen&amp;lt;/code&amp;gt; et trouvez ensuite la sous-section &amp;lt;code&amp;gt;Display&amp;lt;/code&amp;gt; dont la &amp;lt;code&amp;gt;Depth&amp;lt;/code&amp;gt; (profondeur des couleurs) est égale à 16. Modifiez les modes pour n&#039;avoir au maximum qu&#039;une résolution de 800x600. La première étant celle utilisée par défaut.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;SubSection &amp;quot;Display&amp;quot;&amp;lt;br /&amp;gt;   Depth 16&amp;lt;br /&amp;gt;   Modes &amp;quot;800x600&amp;quot; &amp;quot;640x480&amp;quot;&amp;lt;br /&amp;gt; EndSubSection&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
De cette façon, X activera toujours la 800x600 lorsqu&#039;il sera en 16 bits de couleurs.&lt;br /&gt;
&lt;br /&gt;
==== Configurer une commande Diablo II ====&lt;br /&gt;
&lt;br /&gt;
Nous allons maintenant faire le petit script qui lancera Diablo II sur une nouvelle session.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;#!/bin/bash&amp;lt;/nowiki&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; mv $HOME/.xinitrc $HOME/.xinitrc-diablo2-old&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; echo &amp;quot;xsetroot -solid black -cursor_name left_ptr&amp;lt;br /&amp;gt; #xset m 50/10 6 # accélération souris xset m &amp;lt;accel&amp;gt; &amp;lt;seuil&amp;gt;&amp;lt;br /&amp;gt; numlockx on # vérouillage pavé num&amp;lt;br /&amp;gt; setxkbmap -layout us&amp;lt;br /&amp;gt; cd /usr/local/games/Diablo\ II&amp;lt;br /&amp;gt; xbindkeys -f $HOME/.diablo2/xbindkeys.config -X :1&amp;lt;br /&amp;gt; wine Game.exe -- $@ &amp;quot;&amp;gt; /tmp/diablo2.logs&amp;lt;br /&amp;gt; killall -9 xbindkeys wine wineserver&amp;quot; &amp;gt; $HOME/.xinitrc&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; xinit -- :1 -depth 16&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; rm -f $HOME/.xinitrc&amp;lt;br /&amp;gt; mv $HOME/.xinitrc-diablo2-old $HOME/.xinitrc&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;note&amp;quot;&amp;gt;&amp;lt;code&amp;gt;setxkbmap -layout us&amp;lt;/code&amp;gt; nous sert à faire passer le clavier en QWERTY original. Ce n&#039;est pas indispensable mais préférable pour Diablo II qui ne comprend absolument rien aux touches numériques situées au dessus de la zone des lettres.&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;aparte&amp;quot;&amp;gt;Dans ce script, le NumLock est activé par numlockx : vérifiez que vous l&#039;avez installé !&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Comme vous voyez, la commande de XBindKeys est déjà insérée, les explications arrivent...&lt;br /&gt;
&lt;br /&gt;
==== XBindKeys et Diablo II ====&lt;br /&gt;
&lt;br /&gt;
Nous allons aborder ici l&#039;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 ;)&lt;br /&gt;
&lt;br /&gt;
On va tout d&#039;abord positionner tous les fichiers nécessaires à notre opération dans un dossier &amp;lt;code&amp;gt;.diablo2&amp;lt;/code&amp;gt; dans le répertoire home. Créez donc le dossier &amp;lt;code&amp;gt;$HOME/.diablo2&amp;lt;/code&amp;gt; et mettez-y ce fichier de configuration XBindKeys :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;# Aptitude 1&amp;lt;/nowiki&amp;gt;&amp;lt;br /&amp;gt; &amp;quot;~/.diablo2/aptitude.sh 6&amp;quot;&amp;lt;br /&amp;gt;  b:4&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; # Aptitude 1-Copy&amp;lt;br /&amp;gt; &amp;quot;~/.diablo2/aptitude.sh 6&amp;quot;&amp;lt;br /&amp;gt;  control + b:4&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; # Aptitude 2&amp;lt;br /&amp;gt; &amp;quot;~/.diablo2/aptitude.sh 7&amp;quot;&amp;lt;br /&amp;gt;  b:5&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; # Aptitude 2-Copy&amp;lt;br /&amp;gt; &amp;quot;~/.diablo2/aptitude.sh 7&amp;quot;&amp;lt;br /&amp;gt;  control + b:5&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; # Aptitude 3&amp;lt;br /&amp;gt; &amp;quot;~/.diablo2/aptitude.sh 8 0,09&amp;quot;&amp;lt;br /&amp;gt;  b:2&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; # Aptitude 3-Copy&amp;lt;br /&amp;gt; &amp;quot;~/.diablo2/aptitude.sh 8 0,09&amp;quot;&amp;lt;br /&amp;gt;  control + b:2&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; # Extended keyboard&amp;lt;br /&amp;gt; &amp;quot;~/.diablo2/message.sh &#039;***à bout de souffle*** on pourrait pas... faire un petit saut... en ville ? :) Je vous paye le TP :D&#039;&amp;quot;&amp;lt;br /&amp;gt;  XF86HomePage&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; &amp;quot;aumix -v+10&amp;quot;&amp;lt;br /&amp;gt;  XF86AudioRaiseVolume&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; &amp;quot;aumix -v-10&amp;quot;&amp;lt;br /&amp;gt;  XF86AudioLowerVolume&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; &amp;quot;mute&amp;quot;&amp;lt;br /&amp;gt;  XF86AudioMute&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;warning&amp;quot;&amp;gt;Faites attention au deuxième argument donné à aptitude.sh, ce sont des nombres décimaux et le séparateur est une virgule. Ça ne fonctionnera pas si vous mettez un point ! (dû à la commande sleep)&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;aparte&amp;quot;&amp;gt;Comme vous le voyez, j&#039;ai remis les mêmes associations deux fois. Une fois avec le &#039;&#039;&#039;[&amp;lt;tt&amp;gt;Ctrl&amp;lt;/tt&amp;gt;]&#039;&#039;&#039; enfoncé, et une fois sans. Étant donné qu&#039;il faut appuyer sur la touche &#039;&#039;&#039;[&amp;lt;tt&amp;gt;Ctrl&amp;lt;/tt&amp;gt;]&#039;&#039;&#039; pour courir.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mais quel est cet étrange script aptitude.sh ? Et message.sh ? La suite, par ici...&lt;br /&gt;
&lt;br /&gt;
==== XMacroPlay et Diablo II ====&lt;br /&gt;
&lt;br /&gt;
On va maintenant faire deux petits scripts, l&#039;un permet d&#039;envoyer des messages rapidement l&#039;autre permet d&#039;appuyer sur une touche, faire un clic droit, temporiser et appuyer sur une autre touche du clavier.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;#!/bin/bash&amp;lt;/nowiki&amp;gt;&amp;lt;br /&amp;gt; echo &amp;quot;KeyStr Return&amp;lt;br /&amp;gt; string $@&amp;lt;br /&amp;gt; KeyStr Return&amp;quot; &amp;gt; /tmp/message.$USER&amp;lt;br /&amp;gt; xmacroplay :1 &amp;lt; /tmp/message.$USER&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ce script va donc appuyer sur &#039;&#039;&#039;[&amp;lt;tt&amp;gt;Enter&amp;lt;/tt&amp;gt;]&#039;&#039;&#039;, taper tout le message contenu en paramètres et réappuyer sur &#039;&#039;&#039;[&amp;lt;tt&amp;gt;Enter&amp;lt;/tt&amp;gt;]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Maintenant voyons voir l&#039;autre script :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;#!/bin/bash&amp;lt;/nowiki&amp;gt;&amp;lt;br /&amp;gt; echo &amp;quot;KeyStr $1&amp;quot; &amp;gt; /tmp/macrokeys&amp;lt;br /&amp;gt; xmacroplay :1 &amp;lt; /tmp/macrokeys&amp;lt;br /&amp;gt; test -z &amp;quot;$2&amp;quot; || sleep $2&amp;lt;br /&amp;gt; echo &amp;quot;ButtonPress 3&amp;lt;br /&amp;gt; ButtonRelease 3&amp;lt;br /&amp;gt; KeyStr 5&amp;quot; &amp;gt; /tmp/macrokeys&amp;lt;br /&amp;gt; xmacroplay :1 &amp;lt; /tmp/macrokeys&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;note&amp;quot;&amp;gt;Changez le &amp;lt;code&amp;gt;ButtonPress 3&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;ButtonRelease 3&amp;lt;/code&amp;gt; en &amp;lt;code&amp;gt;ButtonPress 1&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;ButtonRelease 1&amp;lt;/code&amp;gt; si vous désirez que le script fasse un clic gauche au lieu d&#039;un clic droite.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5... 6... Vous comprenez maintenant pourquoi c&#039;est plus difficile en clavier français ou belge.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Non ça ne marche pas encore, mais il ne reste qu&#039;à configurer le jeu... ;)&lt;br /&gt;
&lt;br /&gt;
==== Configuration de Diablo II ====&lt;br /&gt;
&lt;br /&gt;
Entrez dans le jeu, appuyez sur &#039;&#039;&#039;[&amp;lt;tt&amp;gt;Esc&amp;lt;/tt&amp;gt;]&#039;&#039;&#039;, rendez-vous ensuite dans le menu de configuration des touches. Associez les touches &#039;&#039;&#039;[&amp;lt;tt&amp;gt;5&amp;lt;/tt&amp;gt;]&#039;&#039;&#039;, &#039;&#039;&#039;[&amp;lt;tt&amp;gt;6&amp;lt;/tt&amp;gt;]&#039;&#039;&#039;, &#039;&#039;&#039;[&amp;lt;tt&amp;gt;7&amp;lt;/tt&amp;gt;]&#039;&#039;&#039; et &#039;&#039;&#039;[&amp;lt;tt&amp;gt;8&amp;lt;/tt&amp;gt;]&#039;&#039;&#039; à des aptitudes différentes. Sortez des menus et mettez votre aptitude principale en &#039;&#039;&#039;[&amp;lt;tt&amp;gt;5&amp;lt;/tt&amp;gt;]&#039;&#039;&#039;, et des aptitudes utilisées moins fréquemment en &#039;&#039;&#039;[&amp;lt;tt&amp;gt;6&amp;lt;/tt&amp;gt;]&#039;&#039;&#039;, &#039;&#039;&#039;[&amp;lt;tt&amp;gt;7&amp;lt;/tt&amp;gt;]&#039;&#039;&#039; et &#039;&#039;&#039;[&amp;lt;tt&amp;gt;8&amp;lt;/tt&amp;gt;]&#039;&#039;&#039;. Tout ça à une même main (coté gauche ou droit des aptitudes).&lt;br /&gt;
&lt;br /&gt;
Bon amusement ;)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;note&amp;quot;&amp;gt;Si vous avez bien tout suivi : quand vous ferez défiler la roulette vers le haut, votre aptitude en &#039;&#039;&#039;[&amp;lt;tt&amp;gt;5&amp;lt;/tt&amp;gt;]&#039;&#039;&#039; va commuter vers la &#039;&#039;&#039;[&amp;lt;tt&amp;gt;7&amp;lt;/tt&amp;gt;]&#039;&#039;&#039; et l&#039;actionner, et reviendra immédiatement après en &#039;&#039;&#039;[&amp;lt;tt&amp;gt;5&amp;lt;/tt&amp;gt;]&#039;&#039;&#039;. &amp;lt;br /&amp;gt; Appuyez sur la touche &#039;&#039;&#039;[&amp;lt;tt&amp;gt;MyHome&amp;lt;/tt&amp;gt;]&#039;&#039;&#039; pour avoir un message &amp;quot;rapide&amp;quot; qui n&#039;a de rapide que le nom...&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;merci&amp;quot;&amp;gt;Cette page est issue de la documentation &#039;pré-wiki&#039; de Léa a été convertie avec HTML::WikiConverter. Elle fut créée par Jean-Thomas MUYL --maston28 le 19/02/2004.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Copyright =&lt;br /&gt;
Copyright &amp;amp;copy; 19/02/2004, Jean-Thomas MUYL --maston28&lt;br /&gt;
{{CC-BY-NC-SA}}&lt;/div&gt;</summary>
		<author><name>Ptyxs</name></author>
	</entry>
	<entry>
		<id>https://lea-linux.org/docs/index.php?title=Configurer_les_touches_de_son_clavier_multim%C3%A9dia&amp;diff=13954</id>
		<title>Configurer les touches de son clavier multimédia</title>
		<link rel="alternate" type="text/html" href="https://lea-linux.org/docs/index.php?title=Configurer_les_touches_de_son_clavier_multim%C3%A9dia&amp;diff=13954"/>
		<updated>2006-11-11T20:14:17Z</updated>

		<summary type="html">&lt;p&gt;Ptyxs : /* Liste de commandes utilisables */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Autres]]&lt;br /&gt;
= Configurer les touches de son clavier multimédia =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;leatitre&amp;quot;&amp;gt;Configurer les touches de son clavier multimédia&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;leapar&amp;quot;&amp;gt;par [mailto:jean-thomas.muyl@lea-linux.org Jean-Thomas MUYL --maston28 et [mailto:tuxnil@yahoo.fr NiL]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Comme moi, vous vous êtes peut-être acheté un clavier confortable, plus adapté aux longues heures de coding ou d&#039;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&#039;autres choses du genre, parfaitement inutiles donc totalement indispensables...&lt;br /&gt;
&lt;br /&gt;
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&#039;exécution d&#039;une commande.&lt;br /&gt;
&lt;br /&gt;
== Préliminaires ==&lt;br /&gt;
=== Espionnage des touches incriminées ===&lt;br /&gt;
&lt;br /&gt;
Tout d&#039;abord, il va nous falloir espionner le clavier pour savoir ce qu&#039;il renvoie quand vous appuyez sur les touches bonus.&lt;br /&gt;
&lt;br /&gt;
Pour cela, il faut utiliser le programme xev, qui se trouve sur mandrake dans le paquet X11R6-contrib. Si vous avez [http://groupes.lea-linux.org/fiches/ficheurpmi.html correctement configuré les sources urpmi], il vous suffit de taper ceci en tant que root : &amp;lt;code&amp;gt;urpmi X11R6-contrib&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Lorsque tout est installé, lancez le programme &amp;lt;code&amp;gt;xev&amp;lt;/code&amp;gt;. En appuyant sur les touches, vous devriez obtenir quelque chose ressemblant à ceci :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;[root@mastonsbox maston28]# xev&amp;lt;br /&amp;gt; KeyRelease event, serial 27, synthetic NO, window 0x3400001,&amp;lt;br /&amp;gt; root 0x48, subw 0x0, time 7029077, (249,-81), root:(252,517),&amp;lt;br /&amp;gt; state 0x0, keycode 233 (keysym 0x1008ff27, XF86Forward), same_screen YES,&amp;lt;br /&amp;gt; XLookupString gives 0 bytes: &amp;quot;&amp;quot;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le champ qui nous intéresse ici est le champ &amp;lt;code&amp;gt;keycode&amp;lt;/code&amp;gt;. Par exemple, la touche que j&#039;ai ici espionnée renvoie la valeur &amp;lt;code&amp;gt;keycode 233&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Répétez cette opération pour chacune des touches spéciales, et notez quelque part la valeur de chacune de ces touches.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;note&amp;quot;&amp;gt;Si certaines touches ne semblent rien renvoyer, vérifiez dans le fichier &amp;lt;code&amp;gt;/usr/X11R6/lib/X11/xkb/keycodes/xfree86&amp;lt;/code&amp;gt; que vous avez ceci :&amp;lt;br /&amp;gt;&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt; xkb_keycodes &amp;quot;basic&amp;quot; {&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; minimum= 8;&amp;lt;br /&amp;gt; maximum= 255;&amp;lt;br /&amp;gt; &amp;lt;/div&amp;gt;&amp;lt;br /&amp;gt; En effet, il arrive parfois que les valeurs soient plus petites, et donc que le programme ne scanne pas sur toute la plage possible. &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== xev ne réagit pas à vos touches ====&lt;br /&gt;
Il arrive fréquemment que &amp;lt;code&amp;gt;xev&amp;lt;/code&amp;gt; ne réagisse pas à l&#039;appuie sur certaines touches des claviers multimédia. C&#039;est, la plupart du temps, du au fait que le kernel n&#039;a pas connaissance de ces touches. Mais il existe une solution ! &lt;br /&gt;
&lt;br /&gt;
===== vérifier que le kernel est capable de gérer une touche =====&lt;br /&gt;
Dans un terminal tapez : &lt;br /&gt;
&amp;lt;code multi&amp;gt;tail -f /var/log/messages&amp;lt;/code&amp;gt;&lt;br /&gt;
Puis appuyez sur la touche qu&#039;&amp;lt;code&amp;gt;xev&amp;lt;/code&amp;gt; ne reconnaît pas, vous devriez voir apparaître quelque chose du genre :&lt;br /&gt;
&amp;lt;code multi&amp;gt;Feb  7 16:13:08 localhost atkbd.c: Use &#039;setkeycodes e012 &amp;lt;keycode&amp;gt;&#039; to make it known.&amp;lt;/code&amp;gt;&lt;br /&gt;
Ce qui nous intéresse, c&#039;est la valeur annoncée : &#039;&#039;&#039;e012&#039;&#039;&#039;. C&#039;est le &#039;&#039;&#039;scancode&#039;&#039;&#039; de la touche en question. Tant que vous y êtes appuyez sur la plupart de touches de votre clavier pour voir s&#039;il n&#039;y a pas d&#039;autre touche inconnue du noyau. Vérifiez aussi les touches aprés le vérouillage de la touche &amp;lt;key&amp;gt;Verr. F&amp;lt;/key&amp;gt; (enfin c&#039;est son nom sur mon clavier) : elle donne accès à une douzaines de &#039;&#039;&#039;touches&#039;&#039;&#039; parallélement aux touches de fonction.&lt;br /&gt;
&lt;br /&gt;
Il faut maintenant affecter un &#039;&#039;&#039;keycode&#039;&#039;&#039; à ce &#039;&#039;&#039;scancode&#039;&#039;&#039;. C&#039;est ce que dit le message d&#039;erreur renvoyé par le noyau.&lt;br /&gt;
===== vérifier les &#039;&#039;&#039;keycodes&#039;&#039;&#039; disponibles =====&lt;br /&gt;
Un outils liste les &#039;&#039;&#039;keycodes&#039;&#039;&#039; utilisé : &amp;lt;code&amp;gt;getkeycodes&amp;lt;/code&amp;gt;. Il renvoie une table qui liste les touches par &#039;&#039;&#039;scancode&#039;&#039;&#039; affiche leur &#039;&#039;&#039;keycodes&#039;&#039;&#039; associé. &lt;br /&gt;
&lt;br /&gt;
Pour afficher uniquement les &#039;&#039;&#039;keycodes&#039;&#039;&#039; libres, on peut utiliser la commande : &lt;br /&gt;
&amp;lt;code&amp;gt;root@localhost # IFS=$&#039;\n &#039; ; for i in $(getkeycodes | grep &amp;quot;[0-9]:&amp;quot; | cut -d &amp;quot;:&amp;quot; -f 2) ; do echo $i ; done | sort | uniq &amp;gt; list.codes&lt;br /&gt;
root@localhost # for ((i=80;i&amp;lt;=255;i++)) ; do if grep -E &amp;quot;^$i\$&amp;quot; list.codes &amp;gt; /dev/null ; then true ; else echo &amp;quot;$i&amp;quot; ; fi ; done &amp;gt; free.codes&lt;br /&gt;
root@localhost # cat free.codes&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note : &#039;&#039;&#039; il semblerait que les versions récentes de setkeycodes ou du kernel ne permettent plus d&#039;attribuer les keycodes supérieurs à 127, ce qui est plus que pénible.&lt;br /&gt;
&lt;br /&gt;
===== affectation d&#039;un &#039;&#039;&#039;keycode&#039;&#039;&#039; par &#039;&#039;&#039;scancode&#039;&#039;&#039; =====&lt;br /&gt;
Pour chaque &#039;&#039;&#039;scancode&#039;&#039;&#039; trouvé aux étapes précédantes, vous devez affecter un &#039;&#039;&#039;keycode&#039;&#039;&#039; libre (trouvé à l&#039;étape précédante).&lt;br /&gt;
&lt;br /&gt;
Par exemple, pour affecter le &#039;&#039;&#039;keycode&#039;&#039;&#039; : &#039;&#039;200&#039;&#039; à la touche dont le &#039;&#039;&#039;scancode&#039;&#039;&#039; est &#039;&#039;e012&#039;&#039;, il suffit de taper : &lt;br /&gt;
&amp;lt;code multi&amp;gt;setkeycodes e012 200&amp;lt;/code&amp;gt;&lt;br /&gt;
On peut affecter plusieurs touches en même temps, par exemple : &lt;br /&gt;
&amp;lt;code multi&amp;gt;setkeycodes e012 200 e013 201 e017 215&amp;lt;/code&amp;gt;&lt;br /&gt;
Un fois ceci fait, vous pourrez espionner vos touches avec &amp;lt;code&amp;gt;xev&amp;lt;/code&amp;gt; comme préconisé ci-dessus.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;PS:&#039;&#039;&#039; Pensez à ajouter à l&#039;un de vos scripts de démarrage l&#039;affectation des &#039;&#039;&#039;keycodes&#039;&#039;&#039;&lt;br /&gt;
Sur ma gentoo, j&#039;ai créé le script &amp;lt;code&amp;gt;/etc/init.d/keycodes&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;code&amp;gt;#!/sbin/runscript&lt;br /&gt;
# Distributed under the terms of the GNU General Public License v2 (and no other version)&lt;br /&gt;
#NB: Config is in /etc/conf.d/keycodes&lt;br /&gt;
&lt;br /&gt;
depend() {&lt;br /&gt;
        need localmount&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
checkconfig() {&lt;br /&gt;
        if [ -z &amp;quot;$KEYCODES&amp;quot; ] ; then&lt;br /&gt;
                eerror &amp;quot;You need to setup KEYCODES in /etc/conf.d/keycodes first&amp;quot;&lt;br /&gt;
                return 1&lt;br /&gt;
        fi&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
start() {&lt;br /&gt;
        checkconfig || return 1&lt;br /&gt;
        ebegin &amp;quot;Setting specific keycodes&amp;quot;&lt;br /&gt;
                setkeycodes $KEYCODES&lt;br /&gt;
        eend ${?}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
stop() {&lt;br /&gt;
        ewarn &amp;quot;nothing to stop&amp;quot;&lt;br /&gt;
}&amp;lt;/code&amp;gt;&lt;br /&gt;
Je n&#039;ai pas oublié de rendre ce script exécutable : &lt;br /&gt;
&amp;lt;code multi&amp;gt;root@localhost # chmod +x /etc/init.d/keycodes&amp;lt;/code&amp;gt;&lt;br /&gt;
Et j&#039;ai créé le fichier de configuration &amp;lt;code&amp;gt;/etc/conf.d/keycodes&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;code multi&amp;gt;KEYCODES=&amp;quot;e011 227 e012 228 e013 229 e014 230 e03b 190 e03c 191 e03d 192 e03e 193 e03f 194 e040 195 e041 196 e042 197 e043 198 e044 199 e057 201 e058 202&amp;quot;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Ensuite j&#039;ai demandé à ma gentoo de démarrer automatiquement ce fichier : &lt;br /&gt;
&amp;lt;code multi&amp;gt;root@localhost # rc-update add keycodes default&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Nommer les touches ===&lt;br /&gt;
&lt;br /&gt;
Pour que les touches soient reconnues, il faut associer leur &amp;lt;code&amp;gt;keycode&amp;lt;/code&amp;gt; avec un nom de touche g énérique connu par Xfree. Ces noms de touches sont listés dans le fichier &amp;lt;code&amp;gt;/usr/X11R6/lib/X11/XKeysymDB&amp;lt;/code&amp;gt; et commencent par &amp;lt;code&amp;gt;XF86&amp;lt;/code&amp;gt;. Il faut ensuite créer le fichier &amp;lt;code&amp;gt;~/.xmodmaprc&amp;lt;/code&amp;gt; dans lequel on va définir ces fameuses correspondances...Comme un exemple vaut mieux qu&#039;un long discours, voici le contenu de mon &amp;lt;code&amp;gt;~/.xmodmaprc&amp;lt;/code&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;keycode 234 = XF86Back&amp;lt;br /&amp;gt; keycode 233 = XF86Forward&amp;lt;br /&amp;gt; keycode 232 = XF86Stop&amp;lt;br /&amp;gt; keycode 231 = XF86Refresh&amp;lt;br /&amp;gt; keycode 229 = XF86Search&amp;lt;br /&amp;gt; keycode 230 = XF86Favorites&amp;lt;br /&amp;gt; keycode 178 = XF86VendorHome&amp;lt;br /&amp;gt; keycode 236 = XF86Mail&amp;lt;br /&amp;gt; keycode 160 = XF86AudioMute&amp;lt;br /&amp;gt; keycode 174 = XF86AudioLowerVolume&amp;lt;br /&amp;gt; keycode 176 = XF86AudioRaiseVolume&amp;lt;br /&amp;gt; keycode 162 = XF86AudioPlay&amp;lt;br /&amp;gt; keycode 164 = XF86AudioStop&amp;lt;br /&amp;gt; keycode 144 = XF86AudioPrev&amp;lt;br /&amp;gt; keycode 153 = XF86AudioNext&amp;lt;br /&amp;gt; keycode 237 = XF86Video&amp;lt;br /&amp;gt; keycode 235 = XF86OfficeHome&amp;lt;br /&amp;gt; keycode 161 = XF86Calculator&amp;lt;br /&amp;gt; keycode 222 = XF86PowerOff&amp;lt;br /&amp;gt; keycode 223 = XF86Sleep&amp;lt;br /&amp;gt; keycode 227 = XF86WakeUp&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
En fonction des &amp;lt;code&amp;gt;keycode&amp;lt;/code&amp;gt; que vous avez trouvé et des noms que vous souhaitez donner à vos touches, remplissez ce fichier avec cette syntaxe très simple.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;note&amp;quot;&amp;gt;L&#039;attribution de ces noms est totalement arbitraire du moment qu&#039;ils sont dans le fichier &amp;lt;code&amp;gt;/usr/X11R6/lib/X11/XKeysymDB&amp;lt;/code&amp;gt;. Le choix de ces noms n&#039;influera en rien sur les actions associées aux touches dans le futur. Une bonne chose est de choisir les noms qui se rapprochent le plus du dessin associé à la touche sur le clavier pour s&#039;y retrouver...&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Une fois cela fait, il faut taper la commande &amp;lt;code&amp;gt;xmodmap ~/.xmodmaprc&amp;lt;/code&amp;gt; pour activer le nouveau mapping.&lt;br /&gt;
&lt;br /&gt;
==== Charger les attributions automatiquement sous KDE ====&lt;br /&gt;
&lt;br /&gt;
Pour que cela prenne effet à chaque démarrage de KDE, placez le fichier suivant dans le répertoire &amp;lt;code&amp;gt;~/.kde/Autostart/&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;#!/bin/sh&amp;lt;/nowiki&amp;gt;&amp;lt;br /&amp;gt; xmodmap ~/.xmodmaprc&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Rendez ensuite ce script exécutable : &amp;lt;code&amp;gt; chmod +x ~/.kde/Autostart/clavier&amp;lt;/code&amp;gt; (si vous avez appelé le fichier &amp;lt;code&amp;gt;clavier&amp;lt;/code&amp;gt; bien entendu...)&lt;br /&gt;
&lt;br /&gt;
== KDE est installé sur ma machine ==&lt;br /&gt;
&lt;br /&gt;
=== Attribuer des commandes aux touches ===&lt;br /&gt;
&lt;br /&gt;
Une méthode simple pour attribuer des touches à des commandes est de créer un menu caché.&lt;br /&gt;
&lt;br /&gt;
Pour cela, lancez &amp;lt;code&amp;gt;kmenuedit&amp;lt;/code&amp;gt; ou &amp;lt;code&amp;gt;menudrake&amp;lt;/code&amp;gt; (sous mandrake), ou encore sous mandriva 10.1 Kcontrol-&amp;gt;Système-&amp;gt;Touches spéciales du clavier. Créez un menu caché en mettant un point au début du nom de menu, par exemple : &amp;lt;code&amp;gt;.clavier&amp;lt;/code&amp;gt; sera un menu caché.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;note&amp;quot;&amp;gt;Vous trouverez à la fin de cet article quelques commandes utiles de gestion de son par exemple, ou de certains logiciels.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Maintenant que vous avez créé les entrées, allez voir : &amp;quot;centre de controle kde -&amp;gt; Régionalisation &amp;amp; accessibilité -&amp;gt; raccourcis claviers -&amp;gt; raccourcis de commandes&amp;quot;. Tout dépend de votre version de KDE, mais cela n&#039;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 ?&lt;br /&gt;
&lt;br /&gt;
Une autre méthode utilisant KDE pour lancer une commande avec un raccourci clavier consiste à utiliser la fonction d&#039;&amp;quot;Actions d&#039;entrées&amp;quot; disponnible sous le versions les plus récentes de KDE. Pour ce faire allez dans : &lt;br /&gt;
Centre de configuration de KDE (&amp;lt;code&amp;gt;kcontrol&amp;lt;/code&amp;gt;) &amp;gt; Régionalisation &amp;amp; accessibilité &amp;gt; Actions d&#039;entrées.&lt;br /&gt;
&lt;br /&gt;
Ensuite, cliquez sur le bouton &amp;quot;Nouveau groupe&amp;quot; et nommez-le &amp;quot;Clavier&amp;quot;, par exemple. &lt;br /&gt;
&lt;br /&gt;
Cliquez sur le nom du goupe dans la liste de droite puis cliquez sur &amp;quot;Nouvelle action&amp;quot;. Nommez-la comme vous le désirez et choisissez  &amp;quot;Raccourci clavier -&amp;gt; Commande / URL (simple)&amp;quot; dans la liste déroulante &amp;quot;Type d&#039;action : &amp;quot;. Vous pouvez dès à présent paramétrer le raccourci que vous voulez utliser et la commande à lancer dans les onglets &amp;quot;Raccourci clavier&amp;quot; et &amp;quot;Paramètres de la commande / URL&amp;quot;. Il convient de répéter cette dernière procédure pour chaque commande à lancer.&lt;br /&gt;
&lt;br /&gt;
=== Liste de commandes utilisables ===&lt;br /&gt;
&lt;br /&gt;
{| width=&amp;quot;80%&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;10&amp;quot;&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
! Action&lt;br /&gt;
! Commande&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Lecture-pause&lt;br /&gt;
| &amp;lt;code&amp;gt;xmms --play-pause&amp;lt;/code&amp;gt;&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| STOP&lt;br /&gt;
| &amp;lt;code&amp;gt;xmms --stop&amp;lt;/code&amp;gt;&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Chanson précédente&lt;br /&gt;
| &amp;lt;code&amp;gt;xmms --rew&amp;lt;/code&amp;gt;&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Chanson suivante&lt;br /&gt;
| &amp;lt;code&amp;gt;xmms --fwd&amp;lt;/code&amp;gt;&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Baisser le son&lt;br /&gt;
| &amp;lt;code&amp;gt;aumix -v-15&amp;lt;/code&amp;gt; ici de 15%.&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Monter le son&lt;br /&gt;
| &amp;lt;code&amp;gt;aumix -v+15&amp;lt;/code&amp;gt; ici de 15%.&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Couper le son&lt;br /&gt;
| &amp;lt;code&amp;gt;aumix -vn&amp;lt;/code&amp;gt;&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Lancer kmail&lt;br /&gt;
| &amp;lt;code&amp;gt;kmail&amp;lt;/code&amp;gt;&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Relever les mails dans kMail&lt;br /&gt;
| &amp;lt;code&amp;gt;dcop kmail KMailIface checkMail&amp;lt;/code&amp;gt;&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Verrouiller l&#039;écran&lt;br /&gt;
| &amp;lt;code&amp;gt;dcop kdesktop KScreensaverIface lock&amp;lt;/code&amp;gt;&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Ejecter cdrom&lt;br /&gt;
| &amp;lt;code&amp;gt;eject /dev/cdrom&amp;lt;/code&amp;gt;&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Avaler cdrom&lt;br /&gt;
| &amp;lt;code&amp;gt;eject -t /dev/cdrom&amp;lt;/code&amp;gt;&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Calculatrice&lt;br /&gt;
| &amp;lt;code&amp;gt;kcalc&amp;lt;/code&amp;gt;&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Chercher un fichier&lt;br /&gt;
| &amp;lt;code&amp;gt;kfind&amp;lt;/code&amp;gt;&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Konqueror comme gestionnaire de fichiers&lt;br /&gt;
| &amp;lt;code&amp;gt;kfmclient openProfile filemanagement&amp;lt;/code&amp;gt;&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Konqueror comme navigateur&lt;br /&gt;
| &amp;lt;code&amp;gt;kfmclient openProfile webbrowsing&amp;lt;/code&amp;gt;&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Exécuter une commande&lt;br /&gt;
| &amp;lt;code&amp;gt;dcop kdesktop KDesktopIface popupExecuteCommand&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== KDE n&#039;est pas installé sur ma machine ==&lt;br /&gt;
&lt;br /&gt;
=== Configurer son clavier sous X ===&lt;br /&gt;
&lt;br /&gt;
Nous allons commencer par configurer notre clavier sous X : c&#039;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 :&lt;br /&gt;
&lt;br /&gt;
* Quel clavier nous possédons&lt;br /&gt;
* A quel modèle X associe t-il notre clavier&lt;br /&gt;
&lt;br /&gt;
Pour la première, retournez votre clavier et lisez l&#039;étiquette ;)&amp;lt;br /&amp;gt; Pour la deuxième, éditez le fichier &amp;lt;code&amp;gt;/usr/X11R6/lib/X11/xkb/rules/xfree86.lst&amp;lt;/code&amp;gt;. S&#039;il ne se trouve pas là, faites &amp;lt;code&amp;gt;locate *xkb*/xfree86.lst&amp;lt;/code&amp;gt; dans un shell).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;exemple&amp;quot;&amp;gt;Au dos de mon clavier il est écrit : &#039;&#039;Logitech Internet Naviguator Keyboard&#039;&#039;. Le modèle de X est donc &#039;&#039;logiink&#039;&#039;.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Maintenant on va insérer tous ces paramètres dans le fichier de configuration de X, pour ce faire : éditez en root le fichier &amp;lt;code&amp;gt;/etc/X11/XF86Config-4&amp;lt;/code&amp;gt; (ou &amp;lt;code&amp;gt;XF86Config&amp;lt;/code&amp;gt; selon votre version de X). Cherchez la section du clavier : &#039;&#039;Driver &amp;quot;keyboard&amp;quot;&#039;&#039; et insérez les paramètres :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;Section &amp;quot;InputDevice&amp;quot;&amp;lt;br /&amp;gt;   Identifier &amp;quot;Generic Keyboard&amp;quot;&amp;lt;br /&amp;gt;   Driver &amp;quot;keyboard&amp;quot;&amp;lt;br /&amp;gt;   Option &amp;quot;CoreKeyboard&amp;quot;&amp;lt;br /&amp;gt;   Option &amp;quot;XkbRules&amp;quot; &amp;quot;xfree86&amp;quot;&amp;lt;br /&amp;gt;   Option &amp;quot;XkbModel&amp;quot; &amp;quot;&#039;&#039;&#039;logiink&#039;&#039;&#039;&amp;quot;&amp;lt;br /&amp;gt;   Option &amp;quot;XkbLayout&amp;quot; &amp;quot;&#039;&#039;&#039;be&#039;&#039;&#039;&amp;quot;&amp;lt;br /&amp;gt; EndSection&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enregistrez, relancez vos sessions si vous voulez que les changements soit appliqués immédiatement. La configuration de X est terminée.&lt;br /&gt;
&lt;br /&gt;
=== Récupérer les KeyCodes de toutes les touches ===&lt;br /&gt;
&lt;br /&gt;
Les KeyCodes sont les numéros des touches qui définissent les touches de votre clavier, parfois c&#039;est sous forme de chaîne de caractères comme ici. C&#039;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 &amp;lt;code&amp;gt;/etc/X11/xkb/symbols/inet&amp;lt;/code&amp;gt; (si le fichier ne se trouve pas là, essayez &amp;lt;code&amp;gt;locate *xkb*/inet&amp;lt;/code&amp;gt;), et recherchez le modèle de votre clavier. Vous trouverez ainsi tous les KeyCodes des touches supplémentaires de votre clavier étendu.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;aparte&amp;quot;&amp;gt;Vous pouvez utiliser les touches pour des actions sous KDE, Gnome, Fluxbox, WindowMaker, etc...&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Association des touches supplémentaires à une commande ===&lt;br /&gt;
&lt;br /&gt;
==== Installation de KeyLaunch ====&lt;br /&gt;
&lt;br /&gt;
Associer une touche à une commande est chose facile si l&#039;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&#039;est le paquet keylaunch, pour Mandrake et RedHat : je n&#039;ai pas trouvé le paquet (désolé) et pour ceux qui veulent compiler [http://ftp.riken.go.jp/pub/Linux/debian/debian/pool/main/k/keylaunch/keylaunch_1.3.0-6.tar.gz c&#039;est par ici. (11k)]&lt;br /&gt;
&lt;br /&gt;
==== Configurer KeyLaunch ====&lt;br /&gt;
&lt;br /&gt;
La configuration est très simple et très pratique : tout se fait dans &amp;lt;code&amp;gt;.keylaunchrc&amp;lt;/code&amp;gt; que &#039;&#039;&#039; vous devez créer&#039;&#039;&#039; dans votre dossier home. Il y a un exemple du fichier dans &amp;lt;code&amp;gt;/usr/share/doc/keylaunch/examples&amp;lt;/code&amp;gt; (si vous avez installé le paquet Debian sinon c&#039;est dans le dossier &amp;lt;code&amp;gt;debian&amp;lt;/code&amp;gt; là où vous avez décompressé KeyLaunch).&lt;br /&gt;
&lt;br /&gt;
Voici, en français, comment personnaliser ce fichier :&amp;lt;br /&amp;gt; Une seule association par ligne, chaque association commence par : &amp;lt;code&amp;gt;key=&amp;lt;/code&amp;gt; faites suivre ensuite par l&#039;état des modificateurs. Insérez trois points si une simple pression sur la touche vous suffit. &amp;lt;code&amp;gt;key=...&amp;lt;/code&amp;gt;. (Le premier point est le modificateur &#039;&#039;&#039;[&amp;lt;tt&amp;gt;Shift&amp;lt;/tt&amp;gt;]&#039;&#039;&#039;, activez-le en remplaçant le point par une astérisque (*). Le second point est le modificateur &#039;&#039;&#039;[&amp;lt;tt&amp;gt;Ctrl&amp;lt;/tt&amp;gt;]&#039;&#039;&#039; et enfin le dernier est le modificateur &#039;&#039;&#039;[&amp;lt;tt&amp;gt;Alt&amp;lt;/tt&amp;gt;]&#039;&#039;&#039;.) Et terminez enfin la ligne par la commande à exécuter précédée de &#039;:&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;exemple&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Et comme un bon exemple vaut mieux qu&#039;un long discours :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt; key=...XF86AudioMedia:xmms&amp;lt;br /&amp;gt; key=.*.XF86AudioMedia:gmplayer&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cet exemple-ci fait en sorte que lorsque vous appuyez sur la touche &#039;&#039;&#039;[&amp;lt;tt&amp;gt;Media&amp;lt;/tt&amp;gt;]&#039;&#039;&#039; du clavier : il ouvre XMMS. Cependant, si vous appuyez simultanément sur &#039;&#039;&#039;[&amp;lt;tt&amp;gt;Alt&amp;lt;/tt&amp;gt;]&#039;&#039;&#039; et &#039;&#039;&#039;[&amp;lt;tt&amp;gt;Media&amp;lt;/tt&amp;gt;]&#039;&#039;&#039;, KeyLaunch lancera GMPlayer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;aparte&amp;quot;&amp;gt;Cette exemple est destiné à un clavier Logitech Internet Navigator, adaptez le fichier à vos besoins grâce à la liste des touches à laquelle j&#039;ai fait référence ci-dessus, dans la section KeyCodes.&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Aide pour les commandes ===&lt;br /&gt;
&lt;br /&gt;
Voici une petite aide pour savoir quels sont les commandes qu&#039;il faut mettre pour réaliser telle ou telle action. Demandez sur le forum si cette aide est insuffisante.&lt;br /&gt;
&lt;br /&gt;
==== XMMS ====&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
| Démarrer XMMS&lt;br /&gt;
| xmms&lt;br /&gt;
|-&lt;br /&gt;
| Démarrer la musique&lt;br /&gt;
| xmms --play&lt;br /&gt;
|-&lt;br /&gt;
| Mettre en pause&lt;br /&gt;
| xmms --pause&lt;br /&gt;
|-&lt;br /&gt;
| Basculement lecture/pause&lt;br /&gt;
| xmms --play-pause&lt;br /&gt;
|-&lt;br /&gt;
| Arrêter&lt;br /&gt;
| xmms --stop&lt;br /&gt;
|-&lt;br /&gt;
| Piste suivante&lt;br /&gt;
| xmms --fwd&lt;br /&gt;
|-&lt;br /&gt;
| Piste précédente&lt;br /&gt;
| xmms --rew&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Pour le reste, entrez dans une console et tapez &amp;lt;code&amp;gt;xmms --help&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Autre programme ====&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
| Couper le son&lt;br /&gt;
| mute&lt;br /&gt;
|-&lt;br /&gt;
| Noatun&lt;br /&gt;
| noatun&lt;br /&gt;
|-&lt;br /&gt;
| La calculatride de KDE&lt;br /&gt;
| kcalc&lt;br /&gt;
|-&lt;br /&gt;
| Mozilla&lt;br /&gt;
| mozilla&lt;br /&gt;
|-&lt;br /&gt;
| Mozilla Mail&lt;br /&gt;
| mozilla -mail&lt;br /&gt;
|-&lt;br /&gt;
| KMail&lt;br /&gt;
| kmail --check&lt;br /&gt;
|-&lt;br /&gt;
| Rechercher&lt;br /&gt;
| kfind&lt;br /&gt;
|-&lt;br /&gt;
| Augmenter le volume de 10%&lt;br /&gt;
| aumix -v+10&lt;br /&gt;
|-&lt;br /&gt;
| Diminuer le volume de 10%&lt;br /&gt;
| aumix -v-10&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Vous pouvez également créer ce script que vous pouvez associer à la touche &#039;&#039;&#039;[&amp;lt;tt&amp;gt;Go&amp;lt;/tt&amp;gt;]&#039;&#039;&#039;, présente sur certains claviers Logitech. Il affiche simplement une boite de dialogue KDE, pour vous permettre d&#039;entrez l&#039;URL que Mozilla doit vous afficher :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt; #!/bin/bash&amp;lt;br /&amp;gt; # kwebgo&amp;lt;br /&amp;gt; file=$(kdialog --inputbox &amp;quot;Site Web :&amp;quot; &amp;quot;$@&amp;quot;)&amp;lt;br /&amp;gt; if [ -n &amp;quot;$file&amp;quot; ]; then&amp;lt;br /&amp;gt;   mozilla &amp;quot;$file&amp;quot;&amp;lt;br /&amp;gt; fi&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;kwebgo http://www.mozdex.com&amp;lt;/code&amp;gt; ouvrira la boite de dialogue avec pour valeur par défaut : [http://www.mozdex.com/ http://www.mozdex.com].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;note&amp;quot;&amp;gt;Changez &amp;lt;code&amp;gt;mozilla &amp;quot;$file&amp;quot;&amp;lt;/code&amp;gt; en &amp;lt;code&amp;gt;konqueror &amp;quot;$file&amp;quot;&amp;lt;/code&amp;gt;, et vous utiliserez ainsi Konqueror au lieu de Mozilla.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Comment associer une touche à une combinaison de touches ? ===&lt;br /&gt;
&lt;br /&gt;
Voici comment associer un clic ou une pression sur une touche à une combinaison de touches et d&#039;actions à la souris grâce à xbindkeys et xmacroplay.&lt;br /&gt;
&lt;br /&gt;
==== XBindKeys ====&lt;br /&gt;
&lt;br /&gt;
XBindKeys est un programme qui permet d&#039;associer une commande à une combinaison de touches ou de clics. Vous devez pour cela installer [http://www.easylinux.de/Download XBindKeys] (xbindkeys sur Debian (152K)).&lt;br /&gt;
&lt;br /&gt;
==== XMacro ====&lt;br /&gt;
&lt;br /&gt;
XMacro est un programme capable d&#039;enregistrer vos actions de souris et de clavier, pour ensuite les reproduire. Remarquez que l&#039;on ne fera que produire des actions. [http://xmacro.sourceforge.net/ Cliquez ici pour le télécharger] (paquet xmacro sur Debian (112K)).&lt;br /&gt;
&lt;br /&gt;
=== L&#039;exemple sur Diablo II ===&lt;br /&gt;
&lt;br /&gt;
Le mieux c&#039;est de montrer en pratique ce que l&#039;on peut faire avec tout ça avec Diablo II.&lt;br /&gt;
&lt;br /&gt;
Je n&#039;aborderai pas l&#039;émulation ici. Merci de ne pas m&#039;écrire à propos de ce jeu.&lt;br /&gt;
&lt;br /&gt;
==== Configurer X pour Diablo II ====&lt;br /&gt;
&lt;br /&gt;
Le XBindKeys ne fonctionne que si le programme n&#039;applique pas un &amp;quot;grab&amp;quot; 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&#039;écran correspondant à la taille de la fenêtre, ça revient finalement à un plein écran sans capture des périphériques d&#039;entrée.&lt;br /&gt;
&lt;br /&gt;
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&#039;écran). Pour cela il faut d&#039;abord configurer X pour qu&#039;il travail toujours en 800x600 lorsqu&#039;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 &amp;lt;code&amp;gt;/etc/X11/XF86Config-4&amp;lt;/code&amp;gt; (ou &amp;lt;code&amp;gt;XF86Config&amp;lt;/code&amp;gt; selon votre version de X) ; cherchez la section &amp;lt;code&amp;gt;Screen&amp;lt;/code&amp;gt; et trouvez ensuite la sous-section &amp;lt;code&amp;gt;Display&amp;lt;/code&amp;gt; dont la &amp;lt;code&amp;gt;Depth&amp;lt;/code&amp;gt; (profondeur des couleurs) est égale à 16. Modifiez les modes pour n&#039;avoir au maximum qu&#039;une résolution de 800x600. La première étant celle utilisée par défaut.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;SubSection &amp;quot;Display&amp;quot;&amp;lt;br /&amp;gt;   Depth 16&amp;lt;br /&amp;gt;   Modes &amp;quot;800x600&amp;quot; &amp;quot;640x480&amp;quot;&amp;lt;br /&amp;gt; EndSubSection&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
De cette façon, X activera toujours la 800x600 lorsqu&#039;il sera en 16 bits de couleurs.&lt;br /&gt;
&lt;br /&gt;
==== Configurer une commande Diablo II ====&lt;br /&gt;
&lt;br /&gt;
Nous allons maintenant faire le petit script qui lancera Diablo II sur une nouvelle session.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;#!/bin/bash&amp;lt;/nowiki&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; mv $HOME/.xinitrc $HOME/.xinitrc-diablo2-old&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; echo &amp;quot;xsetroot -solid black -cursor_name left_ptr&amp;lt;br /&amp;gt; #xset m 50/10 6 # accélération souris xset m &amp;lt;accel&amp;gt; &amp;lt;seuil&amp;gt;&amp;lt;br /&amp;gt; numlockx on # vérouillage pavé num&amp;lt;br /&amp;gt; setxkbmap -layout us&amp;lt;br /&amp;gt; cd /usr/local/games/Diablo\ II&amp;lt;br /&amp;gt; xbindkeys -f $HOME/.diablo2/xbindkeys.config -X :1&amp;lt;br /&amp;gt; wine Game.exe -- $@ &amp;quot;&amp;gt; /tmp/diablo2.logs&amp;lt;br /&amp;gt; killall -9 xbindkeys wine wineserver&amp;quot; &amp;gt; $HOME/.xinitrc&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; xinit -- :1 -depth 16&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; rm -f $HOME/.xinitrc&amp;lt;br /&amp;gt; mv $HOME/.xinitrc-diablo2-old $HOME/.xinitrc&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;note&amp;quot;&amp;gt;&amp;lt;code&amp;gt;setxkbmap -layout us&amp;lt;/code&amp;gt; nous sert à faire passer le clavier en QWERTY original. Ce n&#039;est pas indispensable mais préférable pour Diablo II qui ne comprend absolument rien aux touches numériques situées au dessus de la zone des lettres.&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;aparte&amp;quot;&amp;gt;Dans ce script, le NumLock est activé par numlockx : vérifiez que vous l&#039;avez installé !&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Comme vous voyez, la commande de XBindKeys est déjà insérée, les explications arrivent...&lt;br /&gt;
&lt;br /&gt;
==== XBindKeys et Diablo II ====&lt;br /&gt;
&lt;br /&gt;
Nous allons aborder ici l&#039;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 ;)&lt;br /&gt;
&lt;br /&gt;
On va tout d&#039;abord positionner tous les fichiers nécessaires à notre opération dans un dossier &amp;lt;code&amp;gt;.diablo2&amp;lt;/code&amp;gt; dans le répertoire home. Créez donc le dossier &amp;lt;code&amp;gt;$HOME/.diablo2&amp;lt;/code&amp;gt; et mettez-y ce fichier de configuration XBindKeys :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;# Aptitude 1&amp;lt;/nowiki&amp;gt;&amp;lt;br /&amp;gt; &amp;quot;~/.diablo2/aptitude.sh 6&amp;quot;&amp;lt;br /&amp;gt;  b:4&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; # Aptitude 1-Copy&amp;lt;br /&amp;gt; &amp;quot;~/.diablo2/aptitude.sh 6&amp;quot;&amp;lt;br /&amp;gt;  control + b:4&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; # Aptitude 2&amp;lt;br /&amp;gt; &amp;quot;~/.diablo2/aptitude.sh 7&amp;quot;&amp;lt;br /&amp;gt;  b:5&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; # Aptitude 2-Copy&amp;lt;br /&amp;gt; &amp;quot;~/.diablo2/aptitude.sh 7&amp;quot;&amp;lt;br /&amp;gt;  control + b:5&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; # Aptitude 3&amp;lt;br /&amp;gt; &amp;quot;~/.diablo2/aptitude.sh 8 0,09&amp;quot;&amp;lt;br /&amp;gt;  b:2&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; # Aptitude 3-Copy&amp;lt;br /&amp;gt; &amp;quot;~/.diablo2/aptitude.sh 8 0,09&amp;quot;&amp;lt;br /&amp;gt;  control + b:2&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; # Extended keyboard&amp;lt;br /&amp;gt; &amp;quot;~/.diablo2/message.sh &#039;***à bout de souffle*** on pourrait pas... faire un petit saut... en ville ? :) Je vous paye le TP :D&#039;&amp;quot;&amp;lt;br /&amp;gt;  XF86HomePage&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; &amp;quot;aumix -v+10&amp;quot;&amp;lt;br /&amp;gt;  XF86AudioRaiseVolume&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; &amp;quot;aumix -v-10&amp;quot;&amp;lt;br /&amp;gt;  XF86AudioLowerVolume&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; &amp;quot;mute&amp;quot;&amp;lt;br /&amp;gt;  XF86AudioMute&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;warning&amp;quot;&amp;gt;Faites attention au deuxième argument donné à aptitude.sh, ce sont des nombres décimaux et le séparateur est une virgule. Ça ne fonctionnera pas si vous mettez un point ! (dû à la commande sleep)&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;aparte&amp;quot;&amp;gt;Comme vous le voyez, j&#039;ai remis les mêmes associations deux fois. Une fois avec le &#039;&#039;&#039;[&amp;lt;tt&amp;gt;Ctrl&amp;lt;/tt&amp;gt;]&#039;&#039;&#039; enfoncé, et une fois sans. Étant donné qu&#039;il faut appuyer sur la touche &#039;&#039;&#039;[&amp;lt;tt&amp;gt;Ctrl&amp;lt;/tt&amp;gt;]&#039;&#039;&#039; pour courir.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mais quel est cet étrange script aptitude.sh ? Et message.sh ? La suite, par ici...&lt;br /&gt;
&lt;br /&gt;
==== XMacroPlay et Diablo II ====&lt;br /&gt;
&lt;br /&gt;
On va maintenant faire deux petits scripts, l&#039;un permet d&#039;envoyer des messages rapidement l&#039;autre permet d&#039;appuyer sur une touche, faire un clic droit, temporiser et appuyer sur une autre touche du clavier.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;#!/bin/bash&amp;lt;/nowiki&amp;gt;&amp;lt;br /&amp;gt; echo &amp;quot;KeyStr Return&amp;lt;br /&amp;gt; string $@&amp;lt;br /&amp;gt; KeyStr Return&amp;quot; &amp;gt; /tmp/message.$USER&amp;lt;br /&amp;gt; xmacroplay :1 &amp;lt; /tmp/message.$USER&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ce script va donc appuyer sur &#039;&#039;&#039;[&amp;lt;tt&amp;gt;Enter&amp;lt;/tt&amp;gt;]&#039;&#039;&#039;, taper tout le message contenu en paramètres et réappuyer sur &#039;&#039;&#039;[&amp;lt;tt&amp;gt;Enter&amp;lt;/tt&amp;gt;]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Maintenant voyons voir l&#039;autre script :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;#!/bin/bash&amp;lt;/nowiki&amp;gt;&amp;lt;br /&amp;gt; echo &amp;quot;KeyStr $1&amp;quot; &amp;gt; /tmp/macrokeys&amp;lt;br /&amp;gt; xmacroplay :1 &amp;lt; /tmp/macrokeys&amp;lt;br /&amp;gt; test -z &amp;quot;$2&amp;quot; || sleep $2&amp;lt;br /&amp;gt; echo &amp;quot;ButtonPress 3&amp;lt;br /&amp;gt; ButtonRelease 3&amp;lt;br /&amp;gt; KeyStr 5&amp;quot; &amp;gt; /tmp/macrokeys&amp;lt;br /&amp;gt; xmacroplay :1 &amp;lt; /tmp/macrokeys&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;note&amp;quot;&amp;gt;Changez le &amp;lt;code&amp;gt;ButtonPress 3&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;ButtonRelease 3&amp;lt;/code&amp;gt; en &amp;lt;code&amp;gt;ButtonPress 1&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;ButtonRelease 1&amp;lt;/code&amp;gt; si vous désirez que le script fasse un clic gauche au lieu d&#039;un clic droite.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5... 6... Vous comprenez maintenant pourquoi c&#039;est plus difficile en clavier français ou belge.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Non ça ne marche pas encore, mais il ne reste qu&#039;à configurer le jeu... ;)&lt;br /&gt;
&lt;br /&gt;
==== Configuration de Diablo II ====&lt;br /&gt;
&lt;br /&gt;
Entrez dans le jeu, appuyez sur &#039;&#039;&#039;[&amp;lt;tt&amp;gt;Esc&amp;lt;/tt&amp;gt;]&#039;&#039;&#039;, rendez-vous ensuite dans le menu de configuration des touches. Associez les touches &#039;&#039;&#039;[&amp;lt;tt&amp;gt;5&amp;lt;/tt&amp;gt;]&#039;&#039;&#039;, &#039;&#039;&#039;[&amp;lt;tt&amp;gt;6&amp;lt;/tt&amp;gt;]&#039;&#039;&#039;, &#039;&#039;&#039;[&amp;lt;tt&amp;gt;7&amp;lt;/tt&amp;gt;]&#039;&#039;&#039; et &#039;&#039;&#039;[&amp;lt;tt&amp;gt;8&amp;lt;/tt&amp;gt;]&#039;&#039;&#039; à des aptitudes différentes. Sortez des menus et mettez votre aptitude principale en &#039;&#039;&#039;[&amp;lt;tt&amp;gt;5&amp;lt;/tt&amp;gt;]&#039;&#039;&#039;, et des aptitudes utilisées moins fréquemment en &#039;&#039;&#039;[&amp;lt;tt&amp;gt;6&amp;lt;/tt&amp;gt;]&#039;&#039;&#039;, &#039;&#039;&#039;[&amp;lt;tt&amp;gt;7&amp;lt;/tt&amp;gt;]&#039;&#039;&#039; et &#039;&#039;&#039;[&amp;lt;tt&amp;gt;8&amp;lt;/tt&amp;gt;]&#039;&#039;&#039;. Tout ça à une même main (coté gauche ou droit des aptitudes).&lt;br /&gt;
&lt;br /&gt;
Bon amusement ;)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;note&amp;quot;&amp;gt;Si vous avez bien tout suivi : quand vous ferez défiler la roulette vers le haut, votre aptitude en &#039;&#039;&#039;[&amp;lt;tt&amp;gt;5&amp;lt;/tt&amp;gt;]&#039;&#039;&#039; va commuter vers la &#039;&#039;&#039;[&amp;lt;tt&amp;gt;7&amp;lt;/tt&amp;gt;]&#039;&#039;&#039; et l&#039;actionner, et reviendra immédiatement après en &#039;&#039;&#039;[&amp;lt;tt&amp;gt;5&amp;lt;/tt&amp;gt;]&#039;&#039;&#039;. &amp;lt;br /&amp;gt; Appuyez sur la touche &#039;&#039;&#039;[&amp;lt;tt&amp;gt;MyHome&amp;lt;/tt&amp;gt;]&#039;&#039;&#039; pour avoir un message &amp;quot;rapide&amp;quot; qui n&#039;a de rapide que le nom...&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;merci&amp;quot;&amp;gt;Cette page est issue de la documentation &#039;pré-wiki&#039; de Léa a été convertie avec HTML::WikiConverter. Elle fut créée par Jean-Thomas MUYL --maston28 le 19/02/2004.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Copyright =&lt;br /&gt;
Copyright &amp;amp;copy; 19/02/2004, Jean-Thomas MUYL --maston28&lt;br /&gt;
{{CC-BY-NC-SA}}&lt;/div&gt;</summary>
		<author><name>Ptyxs</name></author>
	</entry>
	<entry>
		<id>https://lea-linux.org/docs/index.php?title=Configurer_les_touches_de_son_clavier_multim%C3%A9dia&amp;diff=13953</id>
		<title>Configurer les touches de son clavier multimédia</title>
		<link rel="alternate" type="text/html" href="https://lea-linux.org/docs/index.php?title=Configurer_les_touches_de_son_clavier_multim%C3%A9dia&amp;diff=13953"/>
		<updated>2006-11-11T20:11:26Z</updated>

		<summary type="html">&lt;p&gt;Ptyxs : /* Liste de commandes utilisables */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Autres]]&lt;br /&gt;
= Configurer les touches de son clavier multimédia =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;leatitre&amp;quot;&amp;gt;Configurer les touches de son clavier multimédia&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;leapar&amp;quot;&amp;gt;par [mailto:jean-thomas.muyl@lea-linux.org Jean-Thomas MUYL --maston28 et [mailto:tuxnil@yahoo.fr NiL]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Comme moi, vous vous êtes peut-être acheté un clavier confortable, plus adapté aux longues heures de coding ou d&#039;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&#039;autres choses du genre, parfaitement inutiles donc totalement indispensables...&lt;br /&gt;
&lt;br /&gt;
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&#039;exécution d&#039;une commande.&lt;br /&gt;
&lt;br /&gt;
== Préliminaires ==&lt;br /&gt;
=== Espionnage des touches incriminées ===&lt;br /&gt;
&lt;br /&gt;
Tout d&#039;abord, il va nous falloir espionner le clavier pour savoir ce qu&#039;il renvoie quand vous appuyez sur les touches bonus.&lt;br /&gt;
&lt;br /&gt;
Pour cela, il faut utiliser le programme xev, qui se trouve sur mandrake dans le paquet X11R6-contrib. Si vous avez [http://groupes.lea-linux.org/fiches/ficheurpmi.html correctement configuré les sources urpmi], il vous suffit de taper ceci en tant que root : &amp;lt;code&amp;gt;urpmi X11R6-contrib&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Lorsque tout est installé, lancez le programme &amp;lt;code&amp;gt;xev&amp;lt;/code&amp;gt;. En appuyant sur les touches, vous devriez obtenir quelque chose ressemblant à ceci :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;[root@mastonsbox maston28]# xev&amp;lt;br /&amp;gt; KeyRelease event, serial 27, synthetic NO, window 0x3400001,&amp;lt;br /&amp;gt; root 0x48, subw 0x0, time 7029077, (249,-81), root:(252,517),&amp;lt;br /&amp;gt; state 0x0, keycode 233 (keysym 0x1008ff27, XF86Forward), same_screen YES,&amp;lt;br /&amp;gt; XLookupString gives 0 bytes: &amp;quot;&amp;quot;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le champ qui nous intéresse ici est le champ &amp;lt;code&amp;gt;keycode&amp;lt;/code&amp;gt;. Par exemple, la touche que j&#039;ai ici espionnée renvoie la valeur &amp;lt;code&amp;gt;keycode 233&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Répétez cette opération pour chacune des touches spéciales, et notez quelque part la valeur de chacune de ces touches.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;note&amp;quot;&amp;gt;Si certaines touches ne semblent rien renvoyer, vérifiez dans le fichier &amp;lt;code&amp;gt;/usr/X11R6/lib/X11/xkb/keycodes/xfree86&amp;lt;/code&amp;gt; que vous avez ceci :&amp;lt;br /&amp;gt;&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt; xkb_keycodes &amp;quot;basic&amp;quot; {&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; minimum= 8;&amp;lt;br /&amp;gt; maximum= 255;&amp;lt;br /&amp;gt; &amp;lt;/div&amp;gt;&amp;lt;br /&amp;gt; En effet, il arrive parfois que les valeurs soient plus petites, et donc que le programme ne scanne pas sur toute la plage possible. &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== xev ne réagit pas à vos touches ====&lt;br /&gt;
Il arrive fréquemment que &amp;lt;code&amp;gt;xev&amp;lt;/code&amp;gt; ne réagisse pas à l&#039;appuie sur certaines touches des claviers multimédia. C&#039;est, la plupart du temps, du au fait que le kernel n&#039;a pas connaissance de ces touches. Mais il existe une solution ! &lt;br /&gt;
&lt;br /&gt;
===== vérifier que le kernel est capable de gérer une touche =====&lt;br /&gt;
Dans un terminal tapez : &lt;br /&gt;
&amp;lt;code multi&amp;gt;tail -f /var/log/messages&amp;lt;/code&amp;gt;&lt;br /&gt;
Puis appuyez sur la touche qu&#039;&amp;lt;code&amp;gt;xev&amp;lt;/code&amp;gt; ne reconnaît pas, vous devriez voir apparaître quelque chose du genre :&lt;br /&gt;
&amp;lt;code multi&amp;gt;Feb  7 16:13:08 localhost atkbd.c: Use &#039;setkeycodes e012 &amp;lt;keycode&amp;gt;&#039; to make it known.&amp;lt;/code&amp;gt;&lt;br /&gt;
Ce qui nous intéresse, c&#039;est la valeur annoncée : &#039;&#039;&#039;e012&#039;&#039;&#039;. C&#039;est le &#039;&#039;&#039;scancode&#039;&#039;&#039; de la touche en question. Tant que vous y êtes appuyez sur la plupart de touches de votre clavier pour voir s&#039;il n&#039;y a pas d&#039;autre touche inconnue du noyau. Vérifiez aussi les touches aprés le vérouillage de la touche &amp;lt;key&amp;gt;Verr. F&amp;lt;/key&amp;gt; (enfin c&#039;est son nom sur mon clavier) : elle donne accès à une douzaines de &#039;&#039;&#039;touches&#039;&#039;&#039; parallélement aux touches de fonction.&lt;br /&gt;
&lt;br /&gt;
Il faut maintenant affecter un &#039;&#039;&#039;keycode&#039;&#039;&#039; à ce &#039;&#039;&#039;scancode&#039;&#039;&#039;. C&#039;est ce que dit le message d&#039;erreur renvoyé par le noyau.&lt;br /&gt;
===== vérifier les &#039;&#039;&#039;keycodes&#039;&#039;&#039; disponibles =====&lt;br /&gt;
Un outils liste les &#039;&#039;&#039;keycodes&#039;&#039;&#039; utilisé : &amp;lt;code&amp;gt;getkeycodes&amp;lt;/code&amp;gt;. Il renvoie une table qui liste les touches par &#039;&#039;&#039;scancode&#039;&#039;&#039; affiche leur &#039;&#039;&#039;keycodes&#039;&#039;&#039; associé. &lt;br /&gt;
&lt;br /&gt;
Pour afficher uniquement les &#039;&#039;&#039;keycodes&#039;&#039;&#039; libres, on peut utiliser la commande : &lt;br /&gt;
&amp;lt;code&amp;gt;root@localhost # IFS=$&#039;\n &#039; ; for i in $(getkeycodes | grep &amp;quot;[0-9]:&amp;quot; | cut -d &amp;quot;:&amp;quot; -f 2) ; do echo $i ; done | sort | uniq &amp;gt; list.codes&lt;br /&gt;
root@localhost # for ((i=80;i&amp;lt;=255;i++)) ; do if grep -E &amp;quot;^$i\$&amp;quot; list.codes &amp;gt; /dev/null ; then true ; else echo &amp;quot;$i&amp;quot; ; fi ; done &amp;gt; free.codes&lt;br /&gt;
root@localhost # cat free.codes&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note : &#039;&#039;&#039; il semblerait que les versions récentes de setkeycodes ou du kernel ne permettent plus d&#039;attribuer les keycodes supérieurs à 127, ce qui est plus que pénible.&lt;br /&gt;
&lt;br /&gt;
===== affectation d&#039;un &#039;&#039;&#039;keycode&#039;&#039;&#039; par &#039;&#039;&#039;scancode&#039;&#039;&#039; =====&lt;br /&gt;
Pour chaque &#039;&#039;&#039;scancode&#039;&#039;&#039; trouvé aux étapes précédantes, vous devez affecter un &#039;&#039;&#039;keycode&#039;&#039;&#039; libre (trouvé à l&#039;étape précédante).&lt;br /&gt;
&lt;br /&gt;
Par exemple, pour affecter le &#039;&#039;&#039;keycode&#039;&#039;&#039; : &#039;&#039;200&#039;&#039; à la touche dont le &#039;&#039;&#039;scancode&#039;&#039;&#039; est &#039;&#039;e012&#039;&#039;, il suffit de taper : &lt;br /&gt;
&amp;lt;code multi&amp;gt;setkeycodes e012 200&amp;lt;/code&amp;gt;&lt;br /&gt;
On peut affecter plusieurs touches en même temps, par exemple : &lt;br /&gt;
&amp;lt;code multi&amp;gt;setkeycodes e012 200 e013 201 e017 215&amp;lt;/code&amp;gt;&lt;br /&gt;
Un fois ceci fait, vous pourrez espionner vos touches avec &amp;lt;code&amp;gt;xev&amp;lt;/code&amp;gt; comme préconisé ci-dessus.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;PS:&#039;&#039;&#039; Pensez à ajouter à l&#039;un de vos scripts de démarrage l&#039;affectation des &#039;&#039;&#039;keycodes&#039;&#039;&#039;&lt;br /&gt;
Sur ma gentoo, j&#039;ai créé le script &amp;lt;code&amp;gt;/etc/init.d/keycodes&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;code&amp;gt;#!/sbin/runscript&lt;br /&gt;
# Distributed under the terms of the GNU General Public License v2 (and no other version)&lt;br /&gt;
#NB: Config is in /etc/conf.d/keycodes&lt;br /&gt;
&lt;br /&gt;
depend() {&lt;br /&gt;
        need localmount&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
checkconfig() {&lt;br /&gt;
        if [ -z &amp;quot;$KEYCODES&amp;quot; ] ; then&lt;br /&gt;
                eerror &amp;quot;You need to setup KEYCODES in /etc/conf.d/keycodes first&amp;quot;&lt;br /&gt;
                return 1&lt;br /&gt;
        fi&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
start() {&lt;br /&gt;
        checkconfig || return 1&lt;br /&gt;
        ebegin &amp;quot;Setting specific keycodes&amp;quot;&lt;br /&gt;
                setkeycodes $KEYCODES&lt;br /&gt;
        eend ${?}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
stop() {&lt;br /&gt;
        ewarn &amp;quot;nothing to stop&amp;quot;&lt;br /&gt;
}&amp;lt;/code&amp;gt;&lt;br /&gt;
Je n&#039;ai pas oublié de rendre ce script exécutable : &lt;br /&gt;
&amp;lt;code multi&amp;gt;root@localhost # chmod +x /etc/init.d/keycodes&amp;lt;/code&amp;gt;&lt;br /&gt;
Et j&#039;ai créé le fichier de configuration &amp;lt;code&amp;gt;/etc/conf.d/keycodes&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;code multi&amp;gt;KEYCODES=&amp;quot;e011 227 e012 228 e013 229 e014 230 e03b 190 e03c 191 e03d 192 e03e 193 e03f 194 e040 195 e041 196 e042 197 e043 198 e044 199 e057 201 e058 202&amp;quot;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Ensuite j&#039;ai demandé à ma gentoo de démarrer automatiquement ce fichier : &lt;br /&gt;
&amp;lt;code multi&amp;gt;root@localhost # rc-update add keycodes default&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Nommer les touches ===&lt;br /&gt;
&lt;br /&gt;
Pour que les touches soient reconnues, il faut associer leur &amp;lt;code&amp;gt;keycode&amp;lt;/code&amp;gt; avec un nom de touche g énérique connu par Xfree. Ces noms de touches sont listés dans le fichier &amp;lt;code&amp;gt;/usr/X11R6/lib/X11/XKeysymDB&amp;lt;/code&amp;gt; et commencent par &amp;lt;code&amp;gt;XF86&amp;lt;/code&amp;gt;. Il faut ensuite créer le fichier &amp;lt;code&amp;gt;~/.xmodmaprc&amp;lt;/code&amp;gt; dans lequel on va définir ces fameuses correspondances...Comme un exemple vaut mieux qu&#039;un long discours, voici le contenu de mon &amp;lt;code&amp;gt;~/.xmodmaprc&amp;lt;/code&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;keycode 234 = XF86Back&amp;lt;br /&amp;gt; keycode 233 = XF86Forward&amp;lt;br /&amp;gt; keycode 232 = XF86Stop&amp;lt;br /&amp;gt; keycode 231 = XF86Refresh&amp;lt;br /&amp;gt; keycode 229 = XF86Search&amp;lt;br /&amp;gt; keycode 230 = XF86Favorites&amp;lt;br /&amp;gt; keycode 178 = XF86VendorHome&amp;lt;br /&amp;gt; keycode 236 = XF86Mail&amp;lt;br /&amp;gt; keycode 160 = XF86AudioMute&amp;lt;br /&amp;gt; keycode 174 = XF86AudioLowerVolume&amp;lt;br /&amp;gt; keycode 176 = XF86AudioRaiseVolume&amp;lt;br /&amp;gt; keycode 162 = XF86AudioPlay&amp;lt;br /&amp;gt; keycode 164 = XF86AudioStop&amp;lt;br /&amp;gt; keycode 144 = XF86AudioPrev&amp;lt;br /&amp;gt; keycode 153 = XF86AudioNext&amp;lt;br /&amp;gt; keycode 237 = XF86Video&amp;lt;br /&amp;gt; keycode 235 = XF86OfficeHome&amp;lt;br /&amp;gt; keycode 161 = XF86Calculator&amp;lt;br /&amp;gt; keycode 222 = XF86PowerOff&amp;lt;br /&amp;gt; keycode 223 = XF86Sleep&amp;lt;br /&amp;gt; keycode 227 = XF86WakeUp&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
En fonction des &amp;lt;code&amp;gt;keycode&amp;lt;/code&amp;gt; que vous avez trouvé et des noms que vous souhaitez donner à vos touches, remplissez ce fichier avec cette syntaxe très simple.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;note&amp;quot;&amp;gt;L&#039;attribution de ces noms est totalement arbitraire du moment qu&#039;ils sont dans le fichier &amp;lt;code&amp;gt;/usr/X11R6/lib/X11/XKeysymDB&amp;lt;/code&amp;gt;. Le choix de ces noms n&#039;influera en rien sur les actions associées aux touches dans le futur. Une bonne chose est de choisir les noms qui se rapprochent le plus du dessin associé à la touche sur le clavier pour s&#039;y retrouver...&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Une fois cela fait, il faut taper la commande &amp;lt;code&amp;gt;xmodmap ~/.xmodmaprc&amp;lt;/code&amp;gt; pour activer le nouveau mapping.&lt;br /&gt;
&lt;br /&gt;
==== Charger les attributions automatiquement sous KDE ====&lt;br /&gt;
&lt;br /&gt;
Pour que cela prenne effet à chaque démarrage de KDE, placez le fichier suivant dans le répertoire &amp;lt;code&amp;gt;~/.kde/Autostart/&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;#!/bin/sh&amp;lt;/nowiki&amp;gt;&amp;lt;br /&amp;gt; xmodmap ~/.xmodmaprc&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Rendez ensuite ce script exécutable : &amp;lt;code&amp;gt; chmod +x ~/.kde/Autostart/clavier&amp;lt;/code&amp;gt; (si vous avez appelé le fichier &amp;lt;code&amp;gt;clavier&amp;lt;/code&amp;gt; bien entendu...)&lt;br /&gt;
&lt;br /&gt;
== KDE est installé sur ma machine ==&lt;br /&gt;
&lt;br /&gt;
=== Attribuer des commandes aux touches ===&lt;br /&gt;
&lt;br /&gt;
Une méthode simple pour attribuer des touches à des commandes est de créer un menu caché.&lt;br /&gt;
&lt;br /&gt;
Pour cela, lancez &amp;lt;code&amp;gt;kmenuedit&amp;lt;/code&amp;gt; ou &amp;lt;code&amp;gt;menudrake&amp;lt;/code&amp;gt; (sous mandrake), ou encore sous mandriva 10.1 Kcontrol-&amp;gt;Système-&amp;gt;Touches spéciales du clavier. Créez un menu caché en mettant un point au début du nom de menu, par exemple : &amp;lt;code&amp;gt;.clavier&amp;lt;/code&amp;gt; sera un menu caché.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;note&amp;quot;&amp;gt;Vous trouverez à la fin de cet article quelques commandes utiles de gestion de son par exemple, ou de certains logiciels.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Maintenant que vous avez créé les entrées, allez voir : &amp;quot;centre de controle kde -&amp;gt; Régionalisation &amp;amp; accessibilité -&amp;gt; raccourcis claviers -&amp;gt; raccourcis de commandes&amp;quot;. Tout dépend de votre version de KDE, mais cela n&#039;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 ?&lt;br /&gt;
&lt;br /&gt;
Une autre méthode utilisant KDE pour lancer une commande avec un raccourci clavier consiste à utiliser la fonction d&#039;&amp;quot;Actions d&#039;entrées&amp;quot; disponnible sous le versions les plus récentes de KDE. Pour ce faire allez dans : &lt;br /&gt;
Centre de configuration de KDE (&amp;lt;code&amp;gt;kcontrol&amp;lt;/code&amp;gt;) &amp;gt; Régionalisation &amp;amp; accessibilité &amp;gt; Actions d&#039;entrées.&lt;br /&gt;
&lt;br /&gt;
Ensuite, cliquez sur le bouton &amp;quot;Nouveau groupe&amp;quot; et nommez-le &amp;quot;Clavier&amp;quot;, par exemple. &lt;br /&gt;
&lt;br /&gt;
Cliquez sur le nom du goupe dans la liste de droite puis cliquez sur &amp;quot;Nouvelle action&amp;quot;. Nommez-la comme vous le désirez et choisissez  &amp;quot;Raccourci clavier -&amp;gt; Commande / URL (simple)&amp;quot; dans la liste déroulante &amp;quot;Type d&#039;action : &amp;quot;. Vous pouvez dès à présent paramétrer le raccourci que vous voulez utliser et la commande à lancer dans les onglets &amp;quot;Raccourci clavier&amp;quot; et &amp;quot;Paramètres de la commande / URL&amp;quot;. Il convient de répéter cette dernière procédure pour chaque commande à lancer.&lt;br /&gt;
&lt;br /&gt;
=== Liste de commandes utilisables ===&lt;br /&gt;
&lt;br /&gt;
{| width=&amp;quot;80%&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;10&amp;quot;&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
! Action&lt;br /&gt;
! Commande&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Lecture-pause&lt;br /&gt;
| &amp;lt;code&amp;gt;xmms --play-pause&amp;lt;/code&amp;gt;&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| STOP&lt;br /&gt;
| &amp;lt;code&amp;gt;xmms --stop&amp;lt;/code&amp;gt;&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Chanson précédente&lt;br /&gt;
| &amp;lt;code&amp;gt;xmms --rew&amp;lt;/code&amp;gt;&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Chanson suivante&lt;br /&gt;
| &amp;lt;code&amp;gt;xmms --fwd&amp;lt;/code&amp;gt;&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Baisser le son&lt;br /&gt;
| &amp;lt;code&amp;gt;aumix -v-15&amp;lt;/code&amp;gt; ici de 15%.&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Monter le son&lt;br /&gt;
| &amp;lt;code&amp;gt;aumix -v+15&amp;lt;/code&amp;gt; ici de 15%.&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Couper le son&lt;br /&gt;
| &amp;lt;code&amp;gt;aumix -vn&amp;lt;/code&amp;gt;&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Lancer kmail&lt;br /&gt;
| &amp;lt;code&amp;gt;kmail&amp;lt;/code&amp;gt;&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Relever les mails dans kMail&lt;br /&gt;
| &amp;lt;code&amp;gt;dcop kmail KMailIface checkMail&amp;lt;/code&amp;gt;&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Verrouiller l&#039;écran&lt;br /&gt;
| &amp;lt;code&amp;gt;dcop kdesktop KScreensaverIface lock&amp;lt;/code&amp;gt;&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Ejecter cdrom&lt;br /&gt;
| &amp;lt;code&amp;gt;eject /dev/cdrom&amp;lt;/code&amp;gt;&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Avaler cdrom&lt;br /&gt;
| &amp;lt;code&amp;gt;eject -t /dev/cdrom&amp;lt;/code&amp;gt;&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Calculatrice&lt;br /&gt;
| &amp;lt;code&amp;gt;kcalc&amp;lt;/code&amp;gt;&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Chercher un fichier&lt;br /&gt;
| &amp;lt;code&amp;gt;kfind&amp;lt;/code&amp;gt;&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Konqueror comme gestionnaire de fichiers&lt;br /&gt;
| &amp;lt;code&amp;gt;kfmclient openProfile filemanagement&amp;lt;/code&amp;gt;&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Konqueror comme navigateur&lt;br /&gt;
| &amp;lt;code&amp;gt;kfmclient openProfile webbrowsing&amp;lt;/code&amp;gt;&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Éxécuter une commande&lt;br /&gt;
| &amp;lt;code&amp;gt;dcop kdesktop KDesktopIface popupExecuteCommand&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== KDE n&#039;est pas installé sur ma machine ==&lt;br /&gt;
&lt;br /&gt;
=== Configurer son clavier sous X ===&lt;br /&gt;
&lt;br /&gt;
Nous allons commencer par configurer notre clavier sous X : c&#039;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 :&lt;br /&gt;
&lt;br /&gt;
* Quel clavier nous possédons&lt;br /&gt;
* A quel modèle X associe t-il notre clavier&lt;br /&gt;
&lt;br /&gt;
Pour la première, retournez votre clavier et lisez l&#039;étiquette ;)&amp;lt;br /&amp;gt; Pour la deuxième, éditez le fichier &amp;lt;code&amp;gt;/usr/X11R6/lib/X11/xkb/rules/xfree86.lst&amp;lt;/code&amp;gt;. S&#039;il ne se trouve pas là, faites &amp;lt;code&amp;gt;locate *xkb*/xfree86.lst&amp;lt;/code&amp;gt; dans un shell).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;exemple&amp;quot;&amp;gt;Au dos de mon clavier il est écrit : &#039;&#039;Logitech Internet Naviguator Keyboard&#039;&#039;. Le modèle de X est donc &#039;&#039;logiink&#039;&#039;.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Maintenant on va insérer tous ces paramètres dans le fichier de configuration de X, pour ce faire : éditez en root le fichier &amp;lt;code&amp;gt;/etc/X11/XF86Config-4&amp;lt;/code&amp;gt; (ou &amp;lt;code&amp;gt;XF86Config&amp;lt;/code&amp;gt; selon votre version de X). Cherchez la section du clavier : &#039;&#039;Driver &amp;quot;keyboard&amp;quot;&#039;&#039; et insérez les paramètres :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;Section &amp;quot;InputDevice&amp;quot;&amp;lt;br /&amp;gt;   Identifier &amp;quot;Generic Keyboard&amp;quot;&amp;lt;br /&amp;gt;   Driver &amp;quot;keyboard&amp;quot;&amp;lt;br /&amp;gt;   Option &amp;quot;CoreKeyboard&amp;quot;&amp;lt;br /&amp;gt;   Option &amp;quot;XkbRules&amp;quot; &amp;quot;xfree86&amp;quot;&amp;lt;br /&amp;gt;   Option &amp;quot;XkbModel&amp;quot; &amp;quot;&#039;&#039;&#039;logiink&#039;&#039;&#039;&amp;quot;&amp;lt;br /&amp;gt;   Option &amp;quot;XkbLayout&amp;quot; &amp;quot;&#039;&#039;&#039;be&#039;&#039;&#039;&amp;quot;&amp;lt;br /&amp;gt; EndSection&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enregistrez, relancez vos sessions si vous voulez que les changements soit appliqués immédiatement. La configuration de X est terminée.&lt;br /&gt;
&lt;br /&gt;
=== Récupérer les KeyCodes de toutes les touches ===&lt;br /&gt;
&lt;br /&gt;
Les KeyCodes sont les numéros des touches qui définissent les touches de votre clavier, parfois c&#039;est sous forme de chaîne de caractères comme ici. C&#039;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 &amp;lt;code&amp;gt;/etc/X11/xkb/symbols/inet&amp;lt;/code&amp;gt; (si le fichier ne se trouve pas là, essayez &amp;lt;code&amp;gt;locate *xkb*/inet&amp;lt;/code&amp;gt;), et recherchez le modèle de votre clavier. Vous trouverez ainsi tous les KeyCodes des touches supplémentaires de votre clavier étendu.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;aparte&amp;quot;&amp;gt;Vous pouvez utiliser les touches pour des actions sous KDE, Gnome, Fluxbox, WindowMaker, etc...&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Association des touches supplémentaires à une commande ===&lt;br /&gt;
&lt;br /&gt;
==== Installation de KeyLaunch ====&lt;br /&gt;
&lt;br /&gt;
Associer une touche à une commande est chose facile si l&#039;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&#039;est le paquet keylaunch, pour Mandrake et RedHat : je n&#039;ai pas trouvé le paquet (désolé) et pour ceux qui veulent compiler [http://ftp.riken.go.jp/pub/Linux/debian/debian/pool/main/k/keylaunch/keylaunch_1.3.0-6.tar.gz c&#039;est par ici. (11k)]&lt;br /&gt;
&lt;br /&gt;
==== Configurer KeyLaunch ====&lt;br /&gt;
&lt;br /&gt;
La configuration est très simple et très pratique : tout se fait dans &amp;lt;code&amp;gt;.keylaunchrc&amp;lt;/code&amp;gt; que &#039;&#039;&#039; vous devez créer&#039;&#039;&#039; dans votre dossier home. Il y a un exemple du fichier dans &amp;lt;code&amp;gt;/usr/share/doc/keylaunch/examples&amp;lt;/code&amp;gt; (si vous avez installé le paquet Debian sinon c&#039;est dans le dossier &amp;lt;code&amp;gt;debian&amp;lt;/code&amp;gt; là où vous avez décompressé KeyLaunch).&lt;br /&gt;
&lt;br /&gt;
Voici, en français, comment personnaliser ce fichier :&amp;lt;br /&amp;gt; Une seule association par ligne, chaque association commence par : &amp;lt;code&amp;gt;key=&amp;lt;/code&amp;gt; faites suivre ensuite par l&#039;état des modificateurs. Insérez trois points si une simple pression sur la touche vous suffit. &amp;lt;code&amp;gt;key=...&amp;lt;/code&amp;gt;. (Le premier point est le modificateur &#039;&#039;&#039;[&amp;lt;tt&amp;gt;Shift&amp;lt;/tt&amp;gt;]&#039;&#039;&#039;, activez-le en remplaçant le point par une astérisque (*). Le second point est le modificateur &#039;&#039;&#039;[&amp;lt;tt&amp;gt;Ctrl&amp;lt;/tt&amp;gt;]&#039;&#039;&#039; et enfin le dernier est le modificateur &#039;&#039;&#039;[&amp;lt;tt&amp;gt;Alt&amp;lt;/tt&amp;gt;]&#039;&#039;&#039;.) Et terminez enfin la ligne par la commande à exécuter précédée de &#039;:&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;exemple&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Et comme un bon exemple vaut mieux qu&#039;un long discours :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt; key=...XF86AudioMedia:xmms&amp;lt;br /&amp;gt; key=.*.XF86AudioMedia:gmplayer&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cet exemple-ci fait en sorte que lorsque vous appuyez sur la touche &#039;&#039;&#039;[&amp;lt;tt&amp;gt;Media&amp;lt;/tt&amp;gt;]&#039;&#039;&#039; du clavier : il ouvre XMMS. Cependant, si vous appuyez simultanément sur &#039;&#039;&#039;[&amp;lt;tt&amp;gt;Alt&amp;lt;/tt&amp;gt;]&#039;&#039;&#039; et &#039;&#039;&#039;[&amp;lt;tt&amp;gt;Media&amp;lt;/tt&amp;gt;]&#039;&#039;&#039;, KeyLaunch lancera GMPlayer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;aparte&amp;quot;&amp;gt;Cette exemple est destiné à un clavier Logitech Internet Navigator, adaptez le fichier à vos besoins grâce à la liste des touches à laquelle j&#039;ai fait référence ci-dessus, dans la section KeyCodes.&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Aide pour les commandes ===&lt;br /&gt;
&lt;br /&gt;
Voici une petite aide pour savoir quels sont les commandes qu&#039;il faut mettre pour réaliser telle ou telle action. Demandez sur le forum si cette aide est insuffisante.&lt;br /&gt;
&lt;br /&gt;
==== XMMS ====&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
| Démarrer XMMS&lt;br /&gt;
| xmms&lt;br /&gt;
|-&lt;br /&gt;
| Démarrer la musique&lt;br /&gt;
| xmms --play&lt;br /&gt;
|-&lt;br /&gt;
| Mettre en pause&lt;br /&gt;
| xmms --pause&lt;br /&gt;
|-&lt;br /&gt;
| Basculement lecture/pause&lt;br /&gt;
| xmms --play-pause&lt;br /&gt;
|-&lt;br /&gt;
| Arrêter&lt;br /&gt;
| xmms --stop&lt;br /&gt;
|-&lt;br /&gt;
| Piste suivante&lt;br /&gt;
| xmms --fwd&lt;br /&gt;
|-&lt;br /&gt;
| Piste précédente&lt;br /&gt;
| xmms --rew&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Pour le reste, entrez dans une console et tapez &amp;lt;code&amp;gt;xmms --help&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Autre programme ====&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
| Couper le son&lt;br /&gt;
| mute&lt;br /&gt;
|-&lt;br /&gt;
| Noatun&lt;br /&gt;
| noatun&lt;br /&gt;
|-&lt;br /&gt;
| La calculatride de KDE&lt;br /&gt;
| kcalc&lt;br /&gt;
|-&lt;br /&gt;
| Mozilla&lt;br /&gt;
| mozilla&lt;br /&gt;
|-&lt;br /&gt;
| Mozilla Mail&lt;br /&gt;
| mozilla -mail&lt;br /&gt;
|-&lt;br /&gt;
| KMail&lt;br /&gt;
| kmail --check&lt;br /&gt;
|-&lt;br /&gt;
| Rechercher&lt;br /&gt;
| kfind&lt;br /&gt;
|-&lt;br /&gt;
| Augmenter le volume de 10%&lt;br /&gt;
| aumix -v+10&lt;br /&gt;
|-&lt;br /&gt;
| Diminuer le volume de 10%&lt;br /&gt;
| aumix -v-10&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Vous pouvez également créer ce script que vous pouvez associer à la touche &#039;&#039;&#039;[&amp;lt;tt&amp;gt;Go&amp;lt;/tt&amp;gt;]&#039;&#039;&#039;, présente sur certains claviers Logitech. Il affiche simplement une boite de dialogue KDE, pour vous permettre d&#039;entrez l&#039;URL que Mozilla doit vous afficher :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt; #!/bin/bash&amp;lt;br /&amp;gt; # kwebgo&amp;lt;br /&amp;gt; file=$(kdialog --inputbox &amp;quot;Site Web :&amp;quot; &amp;quot;$@&amp;quot;)&amp;lt;br /&amp;gt; if [ -n &amp;quot;$file&amp;quot; ]; then&amp;lt;br /&amp;gt;   mozilla &amp;quot;$file&amp;quot;&amp;lt;br /&amp;gt; fi&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;kwebgo http://www.mozdex.com&amp;lt;/code&amp;gt; ouvrira la boite de dialogue avec pour valeur par défaut : [http://www.mozdex.com/ http://www.mozdex.com].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;note&amp;quot;&amp;gt;Changez &amp;lt;code&amp;gt;mozilla &amp;quot;$file&amp;quot;&amp;lt;/code&amp;gt; en &amp;lt;code&amp;gt;konqueror &amp;quot;$file&amp;quot;&amp;lt;/code&amp;gt;, et vous utiliserez ainsi Konqueror au lieu de Mozilla.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Comment associer une touche à une combinaison de touches ? ===&lt;br /&gt;
&lt;br /&gt;
Voici comment associer un clic ou une pression sur une touche à une combinaison de touches et d&#039;actions à la souris grâce à xbindkeys et xmacroplay.&lt;br /&gt;
&lt;br /&gt;
==== XBindKeys ====&lt;br /&gt;
&lt;br /&gt;
XBindKeys est un programme qui permet d&#039;associer une commande à une combinaison de touches ou de clics. Vous devez pour cela installer [http://www.easylinux.de/Download XBindKeys] (xbindkeys sur Debian (152K)).&lt;br /&gt;
&lt;br /&gt;
==== XMacro ====&lt;br /&gt;
&lt;br /&gt;
XMacro est un programme capable d&#039;enregistrer vos actions de souris et de clavier, pour ensuite les reproduire. Remarquez que l&#039;on ne fera que produire des actions. [http://xmacro.sourceforge.net/ Cliquez ici pour le télécharger] (paquet xmacro sur Debian (112K)).&lt;br /&gt;
&lt;br /&gt;
=== L&#039;exemple sur Diablo II ===&lt;br /&gt;
&lt;br /&gt;
Le mieux c&#039;est de montrer en pratique ce que l&#039;on peut faire avec tout ça avec Diablo II.&lt;br /&gt;
&lt;br /&gt;
Je n&#039;aborderai pas l&#039;émulation ici. Merci de ne pas m&#039;écrire à propos de ce jeu.&lt;br /&gt;
&lt;br /&gt;
==== Configurer X pour Diablo II ====&lt;br /&gt;
&lt;br /&gt;
Le XBindKeys ne fonctionne que si le programme n&#039;applique pas un &amp;quot;grab&amp;quot; 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&#039;écran correspondant à la taille de la fenêtre, ça revient finalement à un plein écran sans capture des périphériques d&#039;entrée.&lt;br /&gt;
&lt;br /&gt;
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&#039;écran). Pour cela il faut d&#039;abord configurer X pour qu&#039;il travail toujours en 800x600 lorsqu&#039;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 &amp;lt;code&amp;gt;/etc/X11/XF86Config-4&amp;lt;/code&amp;gt; (ou &amp;lt;code&amp;gt;XF86Config&amp;lt;/code&amp;gt; selon votre version de X) ; cherchez la section &amp;lt;code&amp;gt;Screen&amp;lt;/code&amp;gt; et trouvez ensuite la sous-section &amp;lt;code&amp;gt;Display&amp;lt;/code&amp;gt; dont la &amp;lt;code&amp;gt;Depth&amp;lt;/code&amp;gt; (profondeur des couleurs) est égale à 16. Modifiez les modes pour n&#039;avoir au maximum qu&#039;une résolution de 800x600. La première étant celle utilisée par défaut.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;SubSection &amp;quot;Display&amp;quot;&amp;lt;br /&amp;gt;   Depth 16&amp;lt;br /&amp;gt;   Modes &amp;quot;800x600&amp;quot; &amp;quot;640x480&amp;quot;&amp;lt;br /&amp;gt; EndSubSection&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
De cette façon, X activera toujours la 800x600 lorsqu&#039;il sera en 16 bits de couleurs.&lt;br /&gt;
&lt;br /&gt;
==== Configurer une commande Diablo II ====&lt;br /&gt;
&lt;br /&gt;
Nous allons maintenant faire le petit script qui lancera Diablo II sur une nouvelle session.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;#!/bin/bash&amp;lt;/nowiki&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; mv $HOME/.xinitrc $HOME/.xinitrc-diablo2-old&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; echo &amp;quot;xsetroot -solid black -cursor_name left_ptr&amp;lt;br /&amp;gt; #xset m 50/10 6 # accélération souris xset m &amp;lt;accel&amp;gt; &amp;lt;seuil&amp;gt;&amp;lt;br /&amp;gt; numlockx on # vérouillage pavé num&amp;lt;br /&amp;gt; setxkbmap -layout us&amp;lt;br /&amp;gt; cd /usr/local/games/Diablo\ II&amp;lt;br /&amp;gt; xbindkeys -f $HOME/.diablo2/xbindkeys.config -X :1&amp;lt;br /&amp;gt; wine Game.exe -- $@ &amp;quot;&amp;gt; /tmp/diablo2.logs&amp;lt;br /&amp;gt; killall -9 xbindkeys wine wineserver&amp;quot; &amp;gt; $HOME/.xinitrc&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; xinit -- :1 -depth 16&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; rm -f $HOME/.xinitrc&amp;lt;br /&amp;gt; mv $HOME/.xinitrc-diablo2-old $HOME/.xinitrc&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;note&amp;quot;&amp;gt;&amp;lt;code&amp;gt;setxkbmap -layout us&amp;lt;/code&amp;gt; nous sert à faire passer le clavier en QWERTY original. Ce n&#039;est pas indispensable mais préférable pour Diablo II qui ne comprend absolument rien aux touches numériques situées au dessus de la zone des lettres.&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;aparte&amp;quot;&amp;gt;Dans ce script, le NumLock est activé par numlockx : vérifiez que vous l&#039;avez installé !&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Comme vous voyez, la commande de XBindKeys est déjà insérée, les explications arrivent...&lt;br /&gt;
&lt;br /&gt;
==== XBindKeys et Diablo II ====&lt;br /&gt;
&lt;br /&gt;
Nous allons aborder ici l&#039;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 ;)&lt;br /&gt;
&lt;br /&gt;
On va tout d&#039;abord positionner tous les fichiers nécessaires à notre opération dans un dossier &amp;lt;code&amp;gt;.diablo2&amp;lt;/code&amp;gt; dans le répertoire home. Créez donc le dossier &amp;lt;code&amp;gt;$HOME/.diablo2&amp;lt;/code&amp;gt; et mettez-y ce fichier de configuration XBindKeys :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;# Aptitude 1&amp;lt;/nowiki&amp;gt;&amp;lt;br /&amp;gt; &amp;quot;~/.diablo2/aptitude.sh 6&amp;quot;&amp;lt;br /&amp;gt;  b:4&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; # Aptitude 1-Copy&amp;lt;br /&amp;gt; &amp;quot;~/.diablo2/aptitude.sh 6&amp;quot;&amp;lt;br /&amp;gt;  control + b:4&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; # Aptitude 2&amp;lt;br /&amp;gt; &amp;quot;~/.diablo2/aptitude.sh 7&amp;quot;&amp;lt;br /&amp;gt;  b:5&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; # Aptitude 2-Copy&amp;lt;br /&amp;gt; &amp;quot;~/.diablo2/aptitude.sh 7&amp;quot;&amp;lt;br /&amp;gt;  control + b:5&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; # Aptitude 3&amp;lt;br /&amp;gt; &amp;quot;~/.diablo2/aptitude.sh 8 0,09&amp;quot;&amp;lt;br /&amp;gt;  b:2&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; # Aptitude 3-Copy&amp;lt;br /&amp;gt; &amp;quot;~/.diablo2/aptitude.sh 8 0,09&amp;quot;&amp;lt;br /&amp;gt;  control + b:2&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; # Extended keyboard&amp;lt;br /&amp;gt; &amp;quot;~/.diablo2/message.sh &#039;***à bout de souffle*** on pourrait pas... faire un petit saut... en ville ? :) Je vous paye le TP :D&#039;&amp;quot;&amp;lt;br /&amp;gt;  XF86HomePage&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; &amp;quot;aumix -v+10&amp;quot;&amp;lt;br /&amp;gt;  XF86AudioRaiseVolume&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; &amp;quot;aumix -v-10&amp;quot;&amp;lt;br /&amp;gt;  XF86AudioLowerVolume&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; &amp;quot;mute&amp;quot;&amp;lt;br /&amp;gt;  XF86AudioMute&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;warning&amp;quot;&amp;gt;Faites attention au deuxième argument donné à aptitude.sh, ce sont des nombres décimaux et le séparateur est une virgule. Ça ne fonctionnera pas si vous mettez un point ! (dû à la commande sleep)&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;aparte&amp;quot;&amp;gt;Comme vous le voyez, j&#039;ai remis les mêmes associations deux fois. Une fois avec le &#039;&#039;&#039;[&amp;lt;tt&amp;gt;Ctrl&amp;lt;/tt&amp;gt;]&#039;&#039;&#039; enfoncé, et une fois sans. Étant donné qu&#039;il faut appuyer sur la touche &#039;&#039;&#039;[&amp;lt;tt&amp;gt;Ctrl&amp;lt;/tt&amp;gt;]&#039;&#039;&#039; pour courir.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mais quel est cet étrange script aptitude.sh ? Et message.sh ? La suite, par ici...&lt;br /&gt;
&lt;br /&gt;
==== XMacroPlay et Diablo II ====&lt;br /&gt;
&lt;br /&gt;
On va maintenant faire deux petits scripts, l&#039;un permet d&#039;envoyer des messages rapidement l&#039;autre permet d&#039;appuyer sur une touche, faire un clic droit, temporiser et appuyer sur une autre touche du clavier.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;#!/bin/bash&amp;lt;/nowiki&amp;gt;&amp;lt;br /&amp;gt; echo &amp;quot;KeyStr Return&amp;lt;br /&amp;gt; string $@&amp;lt;br /&amp;gt; KeyStr Return&amp;quot; &amp;gt; /tmp/message.$USER&amp;lt;br /&amp;gt; xmacroplay :1 &amp;lt; /tmp/message.$USER&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ce script va donc appuyer sur &#039;&#039;&#039;[&amp;lt;tt&amp;gt;Enter&amp;lt;/tt&amp;gt;]&#039;&#039;&#039;, taper tout le message contenu en paramètres et réappuyer sur &#039;&#039;&#039;[&amp;lt;tt&amp;gt;Enter&amp;lt;/tt&amp;gt;]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Maintenant voyons voir l&#039;autre script :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;#!/bin/bash&amp;lt;/nowiki&amp;gt;&amp;lt;br /&amp;gt; echo &amp;quot;KeyStr $1&amp;quot; &amp;gt; /tmp/macrokeys&amp;lt;br /&amp;gt; xmacroplay :1 &amp;lt; /tmp/macrokeys&amp;lt;br /&amp;gt; test -z &amp;quot;$2&amp;quot; || sleep $2&amp;lt;br /&amp;gt; echo &amp;quot;ButtonPress 3&amp;lt;br /&amp;gt; ButtonRelease 3&amp;lt;br /&amp;gt; KeyStr 5&amp;quot; &amp;gt; /tmp/macrokeys&amp;lt;br /&amp;gt; xmacroplay :1 &amp;lt; /tmp/macrokeys&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;note&amp;quot;&amp;gt;Changez le &amp;lt;code&amp;gt;ButtonPress 3&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;ButtonRelease 3&amp;lt;/code&amp;gt; en &amp;lt;code&amp;gt;ButtonPress 1&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;ButtonRelease 1&amp;lt;/code&amp;gt; si vous désirez que le script fasse un clic gauche au lieu d&#039;un clic droite.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5... 6... Vous comprenez maintenant pourquoi c&#039;est plus difficile en clavier français ou belge.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Non ça ne marche pas encore, mais il ne reste qu&#039;à configurer le jeu... ;)&lt;br /&gt;
&lt;br /&gt;
==== Configuration de Diablo II ====&lt;br /&gt;
&lt;br /&gt;
Entrez dans le jeu, appuyez sur &#039;&#039;&#039;[&amp;lt;tt&amp;gt;Esc&amp;lt;/tt&amp;gt;]&#039;&#039;&#039;, rendez-vous ensuite dans le menu de configuration des touches. Associez les touches &#039;&#039;&#039;[&amp;lt;tt&amp;gt;5&amp;lt;/tt&amp;gt;]&#039;&#039;&#039;, &#039;&#039;&#039;[&amp;lt;tt&amp;gt;6&amp;lt;/tt&amp;gt;]&#039;&#039;&#039;, &#039;&#039;&#039;[&amp;lt;tt&amp;gt;7&amp;lt;/tt&amp;gt;]&#039;&#039;&#039; et &#039;&#039;&#039;[&amp;lt;tt&amp;gt;8&amp;lt;/tt&amp;gt;]&#039;&#039;&#039; à des aptitudes différentes. Sortez des menus et mettez votre aptitude principale en &#039;&#039;&#039;[&amp;lt;tt&amp;gt;5&amp;lt;/tt&amp;gt;]&#039;&#039;&#039;, et des aptitudes utilisées moins fréquemment en &#039;&#039;&#039;[&amp;lt;tt&amp;gt;6&amp;lt;/tt&amp;gt;]&#039;&#039;&#039;, &#039;&#039;&#039;[&amp;lt;tt&amp;gt;7&amp;lt;/tt&amp;gt;]&#039;&#039;&#039; et &#039;&#039;&#039;[&amp;lt;tt&amp;gt;8&amp;lt;/tt&amp;gt;]&#039;&#039;&#039;. Tout ça à une même main (coté gauche ou droit des aptitudes).&lt;br /&gt;
&lt;br /&gt;
Bon amusement ;)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;note&amp;quot;&amp;gt;Si vous avez bien tout suivi : quand vous ferez défiler la roulette vers le haut, votre aptitude en &#039;&#039;&#039;[&amp;lt;tt&amp;gt;5&amp;lt;/tt&amp;gt;]&#039;&#039;&#039; va commuter vers la &#039;&#039;&#039;[&amp;lt;tt&amp;gt;7&amp;lt;/tt&amp;gt;]&#039;&#039;&#039; et l&#039;actionner, et reviendra immédiatement après en &#039;&#039;&#039;[&amp;lt;tt&amp;gt;5&amp;lt;/tt&amp;gt;]&#039;&#039;&#039;. &amp;lt;br /&amp;gt; Appuyez sur la touche &#039;&#039;&#039;[&amp;lt;tt&amp;gt;MyHome&amp;lt;/tt&amp;gt;]&#039;&#039;&#039; pour avoir un message &amp;quot;rapide&amp;quot; qui n&#039;a de rapide que le nom...&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;merci&amp;quot;&amp;gt;Cette page est issue de la documentation &#039;pré-wiki&#039; de Léa a été convertie avec HTML::WikiConverter. Elle fut créée par Jean-Thomas MUYL --maston28 le 19/02/2004.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Copyright =&lt;br /&gt;
Copyright &amp;amp;copy; 19/02/2004, Jean-Thomas MUYL --maston28&lt;br /&gt;
{{CC-BY-NC-SA}}&lt;/div&gt;</summary>
		<author><name>Ptyxs</name></author>
	</entry>
	<entry>
		<id>https://lea-linux.org/docs/index.php?title=Discussion:Chroot&amp;diff=12798</id>
		<title>Discussion:Chroot</title>
		<link rel="alternate" type="text/html" href="https://lea-linux.org/docs/index.php?title=Discussion:Chroot&amp;diff=12798"/>
		<updated>2006-06-15T21:15:19Z</updated>

		<summary type="html">&lt;p&gt;Ptyxs : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== marche pas ==&lt;br /&gt;
&lt;br /&gt;
j&#039;ai testé la procédure en manuel et le script&lt;br /&gt;
lors du logging j&#039;ai le message d&#039;erreur&lt;br /&gt;
/usr/sbin/chroot: cannot run command `/bin/bash&#039;: No such file or directory&lt;br /&gt;
méthode incompléte ?, erreur ?&lt;br /&gt;
qui as une solution ?&lt;br /&gt;
merci par avance&lt;br /&gt;
nota : ai testé sur mandriva 2006, suse 10.1, kubuntu breezy, fedora core  4&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== pb avec la commande LDD et AWK ==&lt;br /&gt;
&lt;br /&gt;
le code suivant ne fonctionne pas correctement (mandriva 2006) :&lt;br /&gt;
&lt;br /&gt;
ldd /bin/$I | awk -v &amp;quot;LOGIN=$LOGIN&amp;quot; &#039;{ print &amp;quot;cp &amp;quot;$3 $REP&amp;quot;/&amp;quot;LOGIN&amp;quot;/lib/&amp;quot; }&#039; | bash&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
$REP renvoit (dans le print) un des trois type d&#039;affichage &lt;br /&gt;
&lt;br /&gt;
        linux-gate.so.1 =&amp;gt;  (0xffffe000)&lt;br /&gt;
&lt;br /&gt;
        libc.so.6 =&amp;gt; /lib/tls/libc.so.6 (0xb7e56000)&lt;br /&gt;
&lt;br /&gt;
        /lib/ld-linux.so.2 (0xb7f9b000)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
$3 renvoit en réponse :&lt;br /&gt;
&lt;br /&gt;
 (0xffffe000)&lt;br /&gt;
&lt;br /&gt;
/lib/tls/libc.so.6 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;vide&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Création du script /bin/chroot par un &#039;document en ligne&#039; (here document) ==&lt;br /&gt;
&lt;br /&gt;
Est-ce que ces lignes du script final :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
cat &amp;lt; /bin/chroot&lt;br /&gt;
    #!/bin/bash&lt;br /&gt;
    exec -c /usr/sbin/chroot /home/chroot\$USER /bin/bash&lt;br /&gt;
    EOF&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ne devraient pas être remplacées par ceci :&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
cat&amp;lt;&amp;lt;&#039;EOF&#039;&lt;br /&gt;
    #!/bin/bash&lt;br /&gt;
    exec -c /usr/sbin/chroot /home/chroot/$USER   /bin/bash&lt;br /&gt;
    EOF&lt;br /&gt;
}&amp;gt;/bin/chroot&lt;/div&gt;</summary>
		<author><name>Ptyxs</name></author>
	</entry>
	<entry>
		<id>https://lea-linux.org/docs/index.php?title=Discussion:Chroot&amp;diff=12797</id>
		<title>Discussion:Chroot</title>
		<link rel="alternate" type="text/html" href="https://lea-linux.org/docs/index.php?title=Discussion:Chroot&amp;diff=12797"/>
		<updated>2006-06-15T21:12:39Z</updated>

		<summary type="html">&lt;p&gt;Ptyxs : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== marche pas ==&lt;br /&gt;
&lt;br /&gt;
j&#039;ai testé la procédure en manuel et le script&lt;br /&gt;
lors du logging j&#039;ai le message d&#039;erreur&lt;br /&gt;
/usr/sbin/chroot: cannot run command `/bin/bash&#039;: No such file or directory&lt;br /&gt;
méthode incompléte ?, erreur ?&lt;br /&gt;
qui as une solution ?&lt;br /&gt;
merci par avance&lt;br /&gt;
nota : ai testé sur mandriva 2006, suse 10.1, kubuntu breezy, fedora core  4&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== pb avec la commande LDD et AWK ==&lt;br /&gt;
&lt;br /&gt;
le code suivant ne fonctionne pas correctement (mandriva 2006) :&lt;br /&gt;
&lt;br /&gt;
ldd /bin/$I | awk -v &amp;quot;LOGIN=$LOGIN&amp;quot; &#039;{ print &amp;quot;cp &amp;quot;$3 $REP&amp;quot;/&amp;quot;LOGIN&amp;quot;/lib/&amp;quot; }&#039; | bash&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
$REP renvoit (dans le print) un des trois type d&#039;affichage &lt;br /&gt;
&lt;br /&gt;
        linux-gate.so.1 =&amp;gt;  (0xffffe000)&lt;br /&gt;
&lt;br /&gt;
        libc.so.6 =&amp;gt; /lib/tls/libc.so.6 (0xb7e56000)&lt;br /&gt;
&lt;br /&gt;
        /lib/ld-linux.so.2 (0xb7f9b000)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
$3 renvoit en réponse :&lt;br /&gt;
&lt;br /&gt;
 (0xffffe000)&lt;br /&gt;
&lt;br /&gt;
/lib/tls/libc.so.6 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;vide&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Est-ce que ces lignes du script final :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
cat &amp;lt; /bin/chroot&lt;br /&gt;
    #!/bin/bash&lt;br /&gt;
    exec -c /usr/sbin/chroot /home/chroot\$USER /bin/bash&lt;br /&gt;
    EOF&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ne devraient pas être remplacées par ceci :&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
cat&amp;lt;&amp;lt;&#039;EOF&#039;&lt;br /&gt;
    #!/bin/bash&lt;br /&gt;
    exec -c /usr/sbin/chroot /home/chroot/$USER   /bin/bash&lt;br /&gt;
    EOF&lt;br /&gt;
}&amp;gt;/bin/chroot&lt;/div&gt;</summary>
		<author><name>Ptyxs</name></author>
	</entry>
	<entry>
		<id>https://lea-linux.org/docs/index.php?title=Postfix&amp;diff=11506</id>
		<title>Postfix</title>
		<link rel="alternate" type="text/html" href="https://lea-linux.org/docs/index.php?title=Postfix&amp;diff=11506"/>
		<updated>2006-01-29T08:40:39Z</updated>

		<summary type="html">&lt;p&gt;Ptyxs : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Services de messagerie]]&lt;br /&gt;
= Postfix =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;leatitre&amp;quot;&amp;gt;Postfix&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;leapar&amp;quot;&amp;gt;par [mailto:nicolas_agius%20chez%20yahoo%20point%20fr Nicolas Agius]&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;leadesc&amp;quot;&amp;gt;Ce document va vous permettre d&#039;installer un serveur mail complet (smtp, pop3, imap) avec filtrage anti-spams et anti-virus. Vous pourrez ensuite y ajouter apache avec Squirrelmail, par exemple, pour un accès webmail.&amp;lt;/div&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Pour réaliser ceci, vous aurez besoin des logiciels suivants :&lt;br /&gt;
&lt;br /&gt;
* [http://www.postfix.org/ Postfix] (serveur smtp) &lt;br /&gt;
* [http://www.spamassassin.org/ SpamAssassin] (filtrage spam) &lt;br /&gt;
* [http://mailtools.anomy.net/ Anomy Sanitizer] (filtrage mails erronés et douteux) &lt;br /&gt;
* [http://www.clamav.net/ ClamAV] (antivirus) &lt;br /&gt;
* [http://www.washington.edu/imap/ UW-IMAP] (serveur pop3 et imap) &lt;br /&gt;
&lt;br /&gt;
Ainsi que l&#039;ensemble des scripts et fichiers que j&#039;ai utilisés pour cette configuration : [../_src/reseau/fichiers.tgz fichiers.tgz]&lt;br /&gt;
&lt;br /&gt;
Cette documentation a été écrite avec les versions suivantes (du 04/2004) :&lt;br /&gt;
&lt;br /&gt;
* postfix-2.0.19.tar.gz&lt;br /&gt;
* Mail-SpamAssassin-2.63.tar.gz&lt;br /&gt;
* anomy-sanitizer-1.66.tar.gz&lt;br /&gt;
* clamav-0.65.tar.gz&lt;br /&gt;
* imap-2004.RC7.tar.Z&lt;br /&gt;
&lt;br /&gt;
Copiez ces fichiers dans &amp;lt;code&amp;gt;/usr/src/&amp;lt;/code&amp;gt; par exemple, vous en aurez besoins par la suite.&lt;br /&gt;
&lt;br /&gt;
== Postfix ==&lt;br /&gt;
&lt;br /&gt;
Postfix est un serveur smtp performant, simple à configurer et sécurisé. C&#039;est un équivalent à Qmail, mais il est plus facile à mettre en place.&lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
&lt;br /&gt;
Exécutez les commandes suivantes :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;# tar -xvzf postfix-2.0.19.tar.gz&amp;lt;/nowiki&amp;gt;&amp;lt;br /&amp;gt; # cd postfix-2.0.19/&amp;lt;br /&amp;gt; # make&amp;lt;br /&amp;gt; # groupadd postdrop&amp;lt;br /&amp;gt; # useradd postfix -d /dev/null -s /bin/false -c postfix&amp;lt;br /&amp;gt; # echo &amp;quot;postfix: root&amp;quot; &amp;gt;&amp;gt;/etc/aliases&amp;lt;br /&amp;gt; # make install&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cette dernière commande va vous demander des informations : donnez les réponses par défaut.&lt;br /&gt;
&lt;br /&gt;
Si vous utilisez Mandrake, tapez simplement :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;# urpmi postfix&amp;lt;/nowiki&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Postfix est installé et les alias sont créés par défaut dans /etc/postfix/aliases.&lt;br /&gt;
&lt;br /&gt;
Éditer le fichier &amp;lt;code&amp;gt;/etc/postfix/main.cf&amp;lt;/code&amp;gt; et modifier les lignes suivantes afin de mettre des paramètres adaptés :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;myhostname = mail.chezmoi.fr&amp;lt;br /&amp;gt; mydomain = chezmoi.fr&amp;lt;br /&amp;gt; myorigin = $mydomain&amp;lt;br /&amp;gt; mynetworks = 192.168.1.0/24, 127.0.0.0/8&amp;lt;br /&amp;gt; #inet_interfaces = 192.168.1.1&amp;lt;br /&amp;gt; mydestination = $myhostname, localhost.$mydomain, $mydomain&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;note&amp;quot;&amp;gt;&#039;&#039;Rq: le serveur DNS de votre domaine devra contenir l&#039;enregistrement de mail.chezmoi.fr&#039;&#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour définir des alias, ajouter à la fin du fichier &amp;lt;code&amp;gt;/etc/aliases&amp;lt;/code&amp;gt; des lignes de la forme :&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;nom_alias: destinataire&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Exemple : &amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;operateur: root&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
N&#039;oubliez pas de faire &amp;lt;code&amp;gt;postalias /etc/aliases&amp;lt;/code&amp;gt; pour mettre à jour les modifications.&lt;br /&gt;
&lt;br /&gt;
=== Lancement ===&lt;br /&gt;
&lt;br /&gt;
Copier ce script [postfix_postfix.txt postfix] dans &amp;lt;code&amp;gt;/etc/rc.d/init.d (sans l&#039;extension .txt)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Lancement : &amp;lt;code&amp;gt;/etc/rc.d/init.d/postfix start&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour lancer Postfix à chaque démarrage faites :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;# chkconfig --add postfix&amp;lt;/nowiki&amp;gt;&amp;lt;br /&amp;gt; # chkconfig --level 345 postfix on&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Quelques commandes d&#039;administration :&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Rechargement de la config : postfix reload&lt;br /&gt;
* Forcer l&#039;envoi des messages en attente : sendmail -q&lt;br /&gt;
* Supprimer tous les messages en attente : postsuper -d aLL&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Plus d&#039;info &amp;lt;/u&amp;gt;&amp;lt;nowiki&amp;gt;: man postfix&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== SpamAssassin ==&lt;br /&gt;
&lt;br /&gt;
SpamAssassin est un filtre anti-spam performant avec des fonctionnalités d&#039;auto-apprentissage.&lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
&lt;br /&gt;
SpamAssassin a besoin d&#039;un certain nombre de modules Perl (certains sont sans doute déjà installés sur votre machine) que l&#039;on peut récupérer en utilisant la mise à jour par Internet CPAN (résolution des dépendances entre les modules).&lt;br /&gt;
&lt;br /&gt;
Si vous ne disposez pas de la mise à jour par internet, vous pouvez télécharger les modules manuellement sur http://www.cpan.org/ .&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;# perl -MCPAN -e shell&amp;lt;/nowiki&amp;gt;&amp;lt;br /&amp;gt; o conf prerequisites_policy ask &amp;lt;br /&amp;gt; install MIME::Base64 &amp;lt;br /&amp;gt; install MIME::QuotedPrint&amp;lt;br /&amp;gt; install HTML::Parser&amp;lt;br /&amp;gt; install Net::DNS &amp;lt;br /&amp;gt; install DB_File &amp;lt;br /&amp;gt; install Digest::SHA1&amp;lt;br /&amp;gt; install Mail::SpamAssassin&amp;lt;br /&amp;gt; quit &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vous pouvez aussi installer SpamAssassin à partir du tarball (Mail-SpamAssassin-2.63.tar.gz) , mais les modules perl devront être installés auparavant.&lt;br /&gt;
&lt;br /&gt;
Ensuite, copiez ce script de démarrage (sans l&#039;extension .txt) [postfix_spamd.txt spamd] (présent dans les sources) dans le répertoire &amp;lt;code&amp;gt;/etc/rc.d/init.d&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Configuration ===&lt;br /&gt;
&lt;br /&gt;
La configuration se fait dans le fichier &amp;lt;code&amp;gt;/etc/mail/spamassassin/local.cf&amp;lt;/code&amp;gt;, ajoutez-y les lignes suivantes :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt; rewrite_subject 1&amp;lt;br /&amp;gt; subject_tag [***SPAM***]&amp;lt;br /&amp;gt; &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Avec cette configuration, les messages détectés comme spam (avec un score supérieur à 5) auront leur champ Subject commençant par [***SPAM***] et un tag X-Spam-Level indiquant le score du message.&lt;br /&gt;
&lt;br /&gt;
Pour ne pas filter les messages des personnes que vous savez sûres, vous pouvez constituer une &amp;quot;liste blanche&amp;quot; en ajoutant à la fin de ce fichier (local.cf) des lignes de la forme :&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;whitelist_from monpote@chezlui.fr&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Plus d&#039;infos&amp;lt;/u&amp;gt; : perldoc Mail::SpamAssassin::Conf&lt;br /&gt;
&lt;br /&gt;
=== Lancement ===&lt;br /&gt;
&lt;br /&gt;
La commande classique : &amp;lt;code&amp;gt;/etc/rc.d/init.d/spamd start&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour lancer spamassassin à chaque démarrage :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;# chkconfig --add spamd&amp;lt;/nowiki&amp;gt;&amp;lt;br /&amp;gt; # chkconfig --level 345 spamd on&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Anomy Sanitizer ==&lt;br /&gt;
&lt;br /&gt;
Anomy Sanitizer est un filtre mail qui corrige les messages défectueux et bloque les pièces jointes suspectes. Il se charge aussi d&#039;appeler l&#039;antivirus.&lt;br /&gt;
&lt;br /&gt;
Copiez le tarball dans &amp;lt;code&amp;gt;/usr/local&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;# cd /usr/local/&amp;lt;/nowiki&amp;gt;&amp;lt;br /&amp;gt; # tar -xzvf anomy-sanitizer-1.66.tar.gz&amp;lt;br /&amp;gt; # chown -R root:filter /usr/local/anomy&amp;lt;br /&amp;gt; # chmod 0750 /usr/local/anomy&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La configuration se fait dans le fichier &amp;lt;code&amp;gt;/etc/sanitizer.cfg&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt; Voici un exemple de configuration : [postfix_sanitizer.cfg  sanitizer.cfg] à copier dans &amp;lt;code&amp;gt;/etc&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour tester si cela fonctionne bien, faites :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;# cd /usr/local/anomy/testcases/&amp;lt;/nowiki&amp;gt;&amp;lt;br /&amp;gt; # ./testall.sh&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Plus d&#039;informations&amp;lt;/u&amp;gt; : /usr/local/anomy/sanitizer.html&lt;br /&gt;
&lt;br /&gt;
== Filtrage avec Postfix : ==&lt;br /&gt;
&lt;br /&gt;
La technique de filtrage utilisée ici est celle proposée par la documentation de Postfix. Nous aurions pu utiliser maildrop, qui permet de mettre des règles de filtrages différentes pour chaque utilisateur mais la &amp;quot;méthode postfix&amp;quot; est plus simple et plus flexible.&lt;br /&gt;
&lt;br /&gt;
La méthode choisie ici est le filtrage par script, idéale pour les petits et moyens serveurs. Si vous avez besoin de plus de performances, vous pouvez utiliser un filtrage par daemon, avec amavisd-new (http://www.ijs.si/software/amavisd/) .&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;# groupadd filter&amp;lt;/nowiki&amp;gt;&amp;lt;br /&amp;gt; # useradd filter -s /bin/false -d /var/spool/filter -g filter&amp;lt;br /&amp;gt; # rm -f /var/spool/filter/.*&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Voici le script dont a besoin Postfix pour effectuer le filtrage : [postfix_filter.sh.txt filter.sh]&lt;br /&gt;
&lt;br /&gt;
Cette méthode offre aussi la possibilité de filtrer les mails en émission ( cela peut être intéressant si vous ne voulez pas qu&#039;un de vos utilisateurs envoie des spams ou des virus ... )&lt;br /&gt;
&lt;br /&gt;
Copier le script dans &amp;lt;code&amp;gt;/usr/local/anomy/&amp;lt;/code&amp;gt; et ensuite :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;# cd /usr/local/anomy/&amp;lt;/nowiki&amp;gt;&amp;lt;br /&amp;gt; # chown root:filter filter.sh&amp;lt;br /&amp;gt; # chmod 750 filter.sh&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ajoutez à la fin de &amp;lt;code&amp;gt;/etc/postfix/master.cf&amp;lt;/code&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt; filter unix - n n - - pipe&amp;lt;br /&amp;gt; flags=Rq user=filter argv=/usr/local/anomy/filter.sh -f ${sender} -- ${recipient}&amp;lt;br /&amp;gt; &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Pour un filtrage entrant et sortant&#039;&#039;&#039; : toujours dans &amp;lt;code&amp;gt;master.cf&amp;lt;/code&amp;gt;, après la ligne :&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;smtp inet n - n - - smtpd&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt; ajouter :&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;-o content_filter=filter:dummy&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Pour filtrage entrant seulement&#039;&#039;&#039; : il faut spécifier une liste d&#039;adresses de destination à filtrer.&amp;lt;br /&amp;gt; Créez le fichier &amp;lt;code&amp;gt;/etc/postfix/filtered_domains&amp;lt;/code&amp;gt; contenant :&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;chezmoi.fr FILTER filter:dummy&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt; (évidemment, remplacer chezmoi.fr par votre nom de domaine)&amp;lt;br /&amp;gt; Faites : &amp;lt;code&amp;gt;postmap filtered_domains&amp;lt;/code&amp;gt; pour générer la map correspondante.&amp;lt;br /&amp;gt; Ensuite, ajoutez à la fin de &amp;lt;code&amp;gt;/etc/postfix/main.cf&amp;lt;/code&amp;gt; : &amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt; smtpd_recipient_restrictions = permit_mynetworks&amp;lt;br /&amp;gt; check_recipient_access hash:/etc/postfix/filtered_domains&amp;lt;br /&amp;gt; reject_unauth_destination&amp;lt;br /&amp;gt; &amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;note&amp;quot;&amp;gt;&#039;&#039;Rq : remplacer hash si besoin par la valeur donnée par la commande :&amp;lt;br /&amp;gt; postconf default_database_type&#039;&#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour prendre en compte les modifications : &amp;lt;code&amp;gt;postfix reload&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Plus d&#039;info&amp;lt;/u&amp;gt; : postfix-2.0.19/README_FILES/FILTER_README (dans les sources)&lt;br /&gt;
&lt;br /&gt;
== ClamAV ==&lt;br /&gt;
&lt;br /&gt;
ClamAV est un antivirus Unix sous licence GPL basé sur le projet OpenAntivirus.&lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
&lt;br /&gt;
Exécutez les commandes suivantes :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt; # tar -xzvf clamav-0.65.tar.gz&amp;lt;br /&amp;gt; # cd clamav-0.65&amp;lt;br /&amp;gt; # groupadd clamav&amp;lt;br /&amp;gt; # useradd -g clamav -s /bin/false -c &amp;quot;Clam AntiVirus&amp;quot; -d /dev/null clamav&amp;lt;br /&amp;gt; # ./configure --sysconfdir=/etc&amp;lt;br /&amp;gt; # make&amp;lt;br /&amp;gt; # make install&amp;lt;br /&amp;gt; # cp contrib/init/RedHat/clamd /etc/rc.d/init.d&amp;lt;br /&amp;gt; &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La configuration du daemon clamd se fait dans le fichier &amp;lt;code&amp;gt;/etc/clamav.conf&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt; Editez-le et supprimez la ligne &amp;quot;Example&amp;quot;, enlevez aussi le # devant la ligne &amp;lt;code&amp;gt;ScanMail&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Plus d&#039;informations&amp;lt;/u&amp;gt; : man clamav.conf&lt;br /&gt;
&lt;br /&gt;
=== Lancement ===&lt;br /&gt;
&lt;br /&gt;
Pour démarrer le daemon, faites :&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;/etc/rc.d/init.d/clamd start&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Et pour le lancer à chaque démarrage :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;# chkconfig --add clamd&amp;lt;/nowiki&amp;gt;&amp;lt;br /&amp;gt; # chkconfig --level 345 clamd on&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;note&amp;quot;&amp;gt;&#039;&#039;Rq: La vérification manuelle d&#039;un ficher se fait avec la commande clamdscan&#039;&#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Configuration de la mise à jour automatique : ===&lt;br /&gt;
&lt;br /&gt;
La mise à jour automatique permet de télécharger les dernières définitions de virus.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt; # touch /var/log/clam-update&amp;lt;br /&amp;gt; # chmod 600 /var/log/clam-update&amp;lt;br /&amp;gt; # chown clamav /var/log/clam-update&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ajoutez la ligne suivante dans &amp;lt;code&amp;gt;/etc/crontab&amp;lt;/code&amp;gt; pour télécharger la mise à jour tous les jours à 12h00 :&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;00 12 * * * root /usr/local/bin/freshclam --quiet -l /var/log/clam-update&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Plus d&#039;informations&amp;lt;/u&amp;gt; : man freshclam&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Intégration de l&#039;antivirus dans Anomy Sanitizer ===&lt;br /&gt;
&lt;br /&gt;
Voici un patch qui permet d&#039;intégrer ClamAV dans anomy : [postfix_anomy-clamav.patch anomy-clamav.patch]&amp;lt;br /&amp;gt; Copiez le dans &amp;lt;code&amp;gt;/usr/local/anomy/contrib&amp;lt;/code&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt; # cd /usr/local/anomy/contrib&amp;lt;br /&amp;gt; # patch &amp;lt;anomy-clamav.patch&amp;lt;br /&amp;gt; # cp check_for_virus ../chk_virus.sh&amp;lt;br /&amp;gt; # cd ..&amp;lt;br /&amp;gt; # chown root:filter chk_virus.sh&amp;lt;br /&amp;gt; # chmod 750 chk_virus.sh&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il faut ensuite modifier la configuration dans le fichier &amp;lt;code&amp;gt;/etc/sanitizer.cfg&amp;lt;/code&amp;gt; :&amp;lt;br /&amp;gt; Modifier les lignes :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt; file_list_1_policy = drop&amp;lt;br /&amp;gt; file_list_1_scanner = 0&amp;lt;br /&amp;gt; &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
en :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt; file_list_1_policy = accept:accept:drop:save&amp;lt;br /&amp;gt; file_list_1_scanner = 0:1:3:/usr/local/anomy/chk_virus.sh %FILENAME %REPLY_TO&amp;lt;br /&amp;gt; &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Avec cette configuration, les pièces jointes susceptibles de contenir des virus seront scannées.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Plus d&#039;informations&amp;lt;/u&amp;gt; sur les actions et les stratégies de sécurité à mener avec l&#039;antivirus : &amp;lt;code&amp;gt;/usr/local/anomy/sanitizer.html &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Optimisation des performances (facultatif) ==&lt;br /&gt;
&lt;br /&gt;
Les fichiers temporaires utilisés par ce filtrage sont créés dans le répertoire &amp;lt;code&amp;gt;/var/spool/filter&amp;lt;/code&amp;gt;. En montant ce répertoire en mémoire vive (grâce à tmpfs), nous gagnons du temps sur les opérations de création/lecture/écriture.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;note&amp;quot;&amp;gt;&#039;&#039;Rq : en cas de traitement de mail très volumineux, tmpfs n&#039;utilisera au maximum que la moitié de la ram de la machine.&#039;&#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour ceci faites :&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;mount -t tmpfs tmpfs /var/spool/filter/ -o mode=700,gid=filter,uid=filter,noexec&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour que le montage s&#039;effectue à chaque démarage, ajoutez la ligne suivante dans le fichier &amp;lt;code&amp;gt;/etc/fstab&amp;lt;/code&amp;gt; :&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;tmpfs /var/spool/filter tmpfs mode=700,gid=filter,uid=filter,noexec 0 0&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les fichiers de ce répertoire étant stockés dans la ram, il sont perdus à chaque arrêt de la machine. Pour ne pas recréer les préférences utilisateurs de Spamassassin à chaque démarrage (enregistrées dans ce répertoire) , il faut modifier les paramètre du daemon spamd :&lt;br /&gt;
&lt;br /&gt;
Créez le fichier &amp;lt;code&amp;gt;/etc/sysconfig/spamassassin&amp;lt;/code&amp;gt; contenant : &amp;lt;code&amp;gt;SPAMDOPTIONS=&amp;quot;-d -m5 -H&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Plus d&#039;informations&amp;lt;/u&amp;gt; : man spamd&lt;br /&gt;
&lt;br /&gt;
Faites &amp;lt;code&amp;gt;/etc/rc.d/init.d/spamd restart&amp;lt;/code&amp;gt; pour prendre en compte les modifications.&lt;br /&gt;
&lt;br /&gt;
== UW-IMAP (pop3 et imap avec ssl) ==&lt;br /&gt;
&lt;br /&gt;
UW-IMAP est le serveur imap/pop3 de l&#039;Université de Washington, plus facile à mettre en place que Courrier-Imap. Il utilise le super daemon xinetd.&lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
&lt;br /&gt;
Pour bénéficier des fonctionnalités de chiffrement, OpenSSL doit être déjà installé. Vous pouvez modifier ci-dessous les valeurs de SSLINCLUDE, SSLLIB et SSLDIR pour correspondre à votre installation. (les chemins utilisés ici sont ceux d&#039;une RedHat 7.3)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt; # tar -xzvf imap-2004.RC7.tar.Z&amp;lt;br /&amp;gt; # cd imap-2004.RC7&amp;lt;br /&amp;gt; # make slx SSLINCLUDE=/usr/include/openssl SSLLIB=/usr/lib SSLDIR=/usr/share/ssl EXtraDRIVERS= SSLTYPE=unix&amp;lt;br /&amp;gt; # cp ipopd/ipop3d /usr/sbin&amp;lt;br /&amp;gt; # cp imapd/imapd /usr/sbin&amp;lt;br /&amp;gt; # chmod 1777 /var/spool/mail&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Avec cette configuration, à la fois les connections normales (pop3) et les connecions sécurisées (pop3s) sont possibles.&lt;br /&gt;
&lt;br /&gt;
=== Création des certificats ===&lt;br /&gt;
&lt;br /&gt;
Ces certificats sont nécessaires à l&#039;authentification SSL.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt; # cd /usr/share/ssl/certs&amp;lt;br /&amp;gt; # openssl req -new -x509 -nodes -out imapd.pem -keyout imapd.pem -days 365&amp;lt;br /&amp;gt; # openssl req -new -x509 -nodes -out ipop3d.pem -keyout ipop3d.pem -days 365&amp;lt;br /&amp;gt; # chmod 600 ipop3d.pem&amp;lt;br /&amp;gt; # chmod 600 imapd.pem&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Plus d&#039;informations&amp;lt;/u&amp;gt; : man openssl&lt;br /&gt;
&lt;br /&gt;
=== Configuration ===&lt;br /&gt;
&lt;br /&gt;
UW-IMAP utilise le super-daemon xinetd, qui doit être configuré pour faire appel à ipop3d et imapd.&amp;lt;br /&amp;gt; Vérifiez que les entrées suivantes sont présentes dans &amp;lt;code&amp;gt;/etc/services&amp;lt;/code&amp;gt; (si besoin est, ajoutez-les) :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt; pop3 110/tcp&amp;lt;br /&amp;gt; imap 143/tcp&amp;lt;br /&amp;gt; imaps 993/tcp&amp;lt;br /&amp;gt; pop3s 995/tcp &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Créez les 4 fichiers suivants dans &amp;lt;code&amp;gt;/etc/xinetd.d&amp;lt;/code&amp;gt; (supprimez l&#039;extension .txt) : [postfix_pop3.txt pop3], [postfix_pop3s.txt pop3s], [postfix_imap.txt imap], [postfix_imaps.txt imaps] .&lt;br /&gt;
&lt;br /&gt;
Ajouter ensuite dans le fichier &amp;lt;code&amp;gt;/etc/hosts.allow&amp;lt;/code&amp;gt; les lignes (en adaptant à votre réseau) :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt; ipop3d : 192.168.1.0/255.255.255.0&amp;lt;br /&amp;gt; imapd : 192.168.1.0/255.255.255.0 &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ces deux lignes permettent de définir les permissions d&#039;accès réseaux aux services fournis par xinetd.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Plus d&#039;informations&amp;lt;/u&amp;gt; : man hosts.allow&lt;br /&gt;
&lt;br /&gt;
Faites &amp;lt;code&amp;gt;/etc/rc.d/init.d/xinetd restart&amp;lt;/code&amp;gt; pour prendre en compte les modifications.&lt;br /&gt;
&lt;br /&gt;
Voila, c&#039;est terminé. Si tout s&#039;est bien passé, votre serveur mail fonctionne.&amp;lt;br /&amp;gt; N&#039;oubliez pas de vérifier que votre firewall et votre service DNS sont bien configurés (notamment l&#039;enregistrement MX de votre nom de domaine, pour que votre serveur smtp soit connu du monde extérieur) .&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;merci&amp;quot;&amp;gt;Cette page est issue de la documentation &#039;pré-wiki&#039; de Léa a été convertie avec HTML::WikiConverter. Elle fut créée par Nicolas AGIUS le 10/10/2004.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Copyright =&lt;br /&gt;
Copyright &amp;amp;copy; 10/10/2004, Nicolas AGIUS&lt;br /&gt;
{{CC-BY}}&lt;/div&gt;</summary>
		<author><name>Ptyxs</name></author>
	</entry>
	<entry>
		<id>https://lea-linux.org/docs/index.php?title=Shell&amp;diff=11069</id>
		<title>Shell</title>
		<link rel="alternate" type="text/html" href="https://lea-linux.org/docs/index.php?title=Shell&amp;diff=11069"/>
		<updated>2005-12-09T14:44:05Z</updated>

		<summary type="html">&lt;p&gt;Ptyxs : /* Index des commandes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Environnement système]]&lt;br /&gt;
= Le shell ou le retour du C:&amp;gt; ! (et les commandes) =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;leatitre&amp;quot;&amp;gt;Le shell ou le retour du C:&amp;gt; ! &amp;lt;br /&amp;gt; (et les commandes)&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;leapar&amp;quot;&amp;gt;par Jean-Christophe, [mailto:SPI.MJ%20%3Cspi.mj%20chez%20wanadoo.fr%3E Marc] et Anne&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;leadesc&amp;quot;&amp;gt;Le shell, un environnement écrit au temps ou les hommes étaient des hommes :-)&amp;lt;/div&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Qu&#039;est-ce que &#039;&#039;&#039;shell&#039;&#039;&#039; me direz vous ? Certains diront que c&#039;est ça le vrai Linux. il n&#039;y a pas que du faux là-dedans, puisque étymologiquement parlant, &amp;quot;Linux&amp;quot; est juste le nom du noyau du système d&#039;exploitation, et qu&#039;on a tendance par abus de langage à utiliser &amp;quot;Linux&amp;quot; pour désigner l&#039;ensemble de Linux, du serveur X et des nombreuses applications.&lt;br /&gt;
&lt;br /&gt;
Bref, le shell c&#039;est le bon vieux &#039;&#039;mode texte&#039;&#039;, mon copain le &#039;&#039;prompt&#039;&#039;, qui sous Linux revêt une importance capitale. En effet, la philosophie Unix veut que toute action puisse être réalisée en ligne de commande, avant d&#039;être accessible dans une boîte de dialogue. Ainsi de nombreuses applications X ne sont en fait que des &#039;&#039;front ends&#039;&#039; (des façades) à des applications en ligne de commande, se contentant de construire la bonne ligne de commande à partir de vos clics (XCDRoast / cdrecord, mkisofs, etc. ; kppp / pppd ; etc.).&lt;br /&gt;
&lt;br /&gt;
Comme Linux prône le règne de la liberté, vous n&#039;avez pas qu&#039;un seul &#039;&#039;shell&#039;&#039; disponible. Vous pouvez utiliser &#039;&#039;&#039;bash&#039;&#039;&#039;, &#039;&#039;&#039;tcsh&#039;&#039;&#039;, &#039;&#039;&#039;ksh&#039;&#039;&#039;, &#039;&#039;&#039;ash&#039;&#039;&#039;, &#039;&#039;&#039;sh&#039;&#039;&#039;, &#039;&#039;&#039;csh&#039;&#039;&#039;, etc. Néanmoins, la plupart des distributions actuelles proposent &#039;&#039;&#039;bash&#039;&#039;&#039; par défaut, et je vous recommande donc de l&#039;utiliser, surtout si vous débutez sous Unix et que vous n&#039;avez pas encore d&#039;habitudes. Si plus tard, vous tombez sur un ordinateur ne disposant que de tcsh, ne vous inquiétez pas : la différence n&#039;est pas flagrante, et vous pourrez toujours consulter &amp;quot;&amp;lt;code&amp;gt;man tcsh&amp;lt;/code&amp;gt;&amp;quot; ! &amp;lt;br /&amp;gt;&#039;&#039;à noter que le choix du shell pour un utilisateur se configure dans &amp;lt;code&amp;gt;/etc/passwd&amp;lt;/code&amp;gt;.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Le shell n&#039;est pas seulement le prompt vous permettant de taper vos commandes, c&#039;est aussi un puissant &#039;&#039;langage de commande&#039;&#039;, vous permettant d&#039;automatiser des tâches, etc. via l&#039;écriture de &#039;&#039;scripts shell&#039;&#039;. Apprendre le langage du shell peut être très enrichissant et utile ; néanmoins, cela dépasse le cadre de cette rubrique. Et pis j&#039;ai pas le courage de taper une leçon sur bash :) Par contre, vous trouverez ici les commandes de base, ainsi que les raccourcis clavier et les raccourcis du shell, les aliases, les variables d&#039;environnement, la configuration du shell et j&#039;en passe. C&#039;est déjà pas mal non ? &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Commandes pour débuter ==&lt;br /&gt;
&lt;br /&gt;
Avant de commencer, il faut savoir que Linux est &#039;&#039;&#039;sensible à la casse&#039;&#039;&#039; (&#039;&#039;case sensitive&#039;&#039; en anglais), c&#039;est à dire qu&#039;il distingue les majuscules des minuscules. Ainsi, si je vous dit que la commande est &#039;&amp;lt;code&amp;gt;mkdir&amp;lt;/code&amp;gt;&#039;, ce n&#039;est pas la peine d&#039;essayer &amp;lt;code&amp;gt;MKDIR&amp;lt;/code&amp;gt; ou &amp;lt;code&amp;gt;mKdiR&amp;lt;/code&amp;gt;, cela ne fonctionnera pas. De même, les noms de fichiers et de répertoires sont également sensibles à la casse.&lt;br /&gt;
&lt;br /&gt;
De plus, sous Unix, les chemins sont séparés par des slash : écrivez &amp;lt;code&amp;gt;/etc/rc.d/init.d/xfs&amp;lt;/code&amp;gt; mais jamais &amp;lt;code&amp;gt;etc\rc.d\init.d\xfs&amp;lt;/code&amp;gt; par pitié :)&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Répertoires spéciaux&#039;&#039;&#039; :&lt;br /&gt;
&amp;lt;code&amp;gt;.  &amp;lt;/code&amp;gt; représente le répertoire courant,&lt;br /&gt;
&amp;lt;code&amp;gt;.. &amp;lt;/code&amp;gt; représente le répertoire parent&lt;br /&gt;
&amp;lt;code&amp;gt;~ &amp;lt;/code&amp;gt; représente le répertoire maison (home) de l&#039;utilisateur&lt;br /&gt;
* &#039;&#039;&#039;Fichiers cachés&#039;&#039;&#039; :&lt;br /&gt;
sous Unix, les fichiers cachés commencent par un point. Par exemple, ~/.bashrc est un fichier caché, dans le répertoire maison de l&#039;utilisateur, qui contient la configuration de son shell.&lt;br /&gt;
* &#039;&#039;&#039;Jokers&#039;&#039;&#039; : ? et *&lt;br /&gt;
Les caractères &amp;lt;code&amp;gt;?&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; dans les noms de fichiers et de répertoires permettent de représenter des caractères quelconques. &#039;&amp;lt;code&amp;gt;?&amp;lt;/code&amp;gt;&#039; représente un seul caractère, tandis que &#039;&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&#039; en représente un nombre quelconque.&lt;br /&gt;
Par exemple &amp;quot;&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;*.jpg&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&amp;quot; représente tous les fichiers se terminant par &amp;lt;code&amp;gt;jpg&amp;lt;/code&amp;gt; ; &amp;quot;&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;*toto*&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&amp;quot; tous les fichiers contenant &amp;quot;&amp;lt;code&amp;gt;toto&amp;lt;/code&amp;gt;&amp;quot;. Oui vous avez bien vu : on peut mettre plusieurs étoiles en même temps !!! Vous pouvez même faire : &amp;lt;code&amp;gt;cd /et*/rc.*/init*&amp;lt;/code&amp;gt;, cela risque de fonctionner !!!&lt;br /&gt;
Il faut également savoir que c&#039;est le shell qui interprète ces caractères avant de transmettre la ligne de commande. Par exemple, si vous tapez : &amp;lt;code&amp;gt;rm -Rf *.tmp&amp;lt;/code&amp;gt;, le shell transformera cette ligne de commande en : &amp;lt;code&amp;gt;rm truc1.tmp truc2.tmp truc3.tmp&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &#039;&#039;&#039;Jokers avancés&#039;&#039;&#039; : []&lt;br /&gt;
Vous pouvez aussi utiliser les crochets pour spécifier des caractères :&lt;br /&gt;
&amp;lt;code&amp;gt;[a]&amp;lt;/code&amp;gt; signifie : égal à &#039;a&#039;. Exemple : &amp;lt;code&amp;gt;rm *[a]*&amp;lt;/code&amp;gt; efface tous les fichiers contenant la lettre &#039;a&#039;.&lt;br /&gt;
&amp;lt;code&amp;gt;[!a]&amp;lt;/code&amp;gt; signifie : différent de &#039;a&#039;. Exemple : &amp;lt;code&amp;gt;rm *[!a]*&amp;lt;/code&amp;gt; efface tous les fichiers, sauf ceux contenant la lettre &#039;a&#039;.&lt;br /&gt;
&amp;lt;code&amp;gt;[abc]&amp;lt;/code&amp;gt; signifie : l&#039;un des caractères a, b ou c. Exemple : &amp;lt;code&amp;gt;rm [abc]*.tmp&amp;lt;/code&amp;gt; efface tous les fichiers commençant par a, b ou c.&lt;br /&gt;
&amp;lt;code&amp;gt;[a-l]&amp;lt;/code&amp;gt; : signifie : tous les caractères compris entre a et l. Exemple : &amp;lt;code&amp;gt;rm fic_[a-l]*&amp;lt;/code&amp;gt; efface tous les fichiers commençant par &amp;lt;code&amp;gt;fic_&amp;lt;/code&amp;gt; suivi d&#039;une quelconque lettre entre a et l.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Bon c&#039;est pas tout ça, voici les commandes de base sous Linux :&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|- bgcolor=&amp;quot;#CCCCCC&amp;quot;&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; |&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Commandes linux&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;/center&amp;gt;&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; |&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
équivalent MsDos&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;/center&amp;gt;&lt;br /&gt;
| width=&amp;quot;30%&amp;quot; |&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
à quoi ça sert&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;/center&amp;gt;&lt;br /&gt;
| width=&amp;quot;50%&amp;quot; |&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Exemples :&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;/center&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;code&amp;gt;cd&amp;lt;/code&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;code&amp;gt;cd&amp;lt;/code&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
change le répertoire courant.&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;cd ..&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;     - va dans le répertoire parent du répertoire courant&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;cd /home/user/.nsmail&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;     - va dans le répertoire désigné&lt;br /&gt;
|- bgcolor=&amp;quot;#CCCCCC&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;code&amp;gt;ls&amp;lt;/code&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;code&amp;gt;dir&amp;lt;/code&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
affiche le contenu d&#039;un répertoire&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;ls&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;     - affiche le contenu du répertoire courant&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ls -l&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;     - affiche le contenu du répertoire courant de manière détaillée&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ls -a /home/user&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;     - affiche le contenu du répertoire désigné (ainsi que les fichiers cachés)&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;code&amp;gt;cp&amp;lt;/code&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;code&amp;gt;copy&amp;lt;/code&amp;gt;&#039;&#039;&#039;&amp;lt;br /&amp;gt;&#039;&#039;&#039;&amp;lt;code&amp;gt;xcopy&amp;lt;/code&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
copie un ou plusieurs fichiers&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;cp toto /tmp&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;     - copie le fichier toto dans le répertoire &amp;lt;code&amp;gt;/tmp&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;cp toto titi&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;     - copie le fichier &amp;lt;code&amp;gt;toto&amp;lt;/code&amp;gt; sur le fichier &amp;lt;code&amp;gt;titi&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;cp -R /home/user /tmp/bak&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;     - copie le répertoire &amp;lt;code&amp;gt;/home/user&amp;lt;/code&amp;gt; ainsi que tout ce qu&#039;il contient dans &amp;lt;code&amp;gt;/tmp/bak&amp;lt;/code&amp;gt;&lt;br /&gt;
|- bgcolor=&amp;quot;#CCCCCC&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;code&amp;gt;rm&amp;lt;/code&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;code&amp;gt;del&amp;lt;/code&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
efface un ou plusieurs fichiers&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;rm toto titi&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;     - efface les fichiers &amp;lt;code&amp;gt;toto&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;titi&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;rm -f toto titi&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;     - efface les fichiers &amp;lt;code&amp;gt;toto&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;titi&amp;lt;/code&amp;gt; sans demander confirmation&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;code&amp;gt;rm -rf&amp;lt;/code&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;code&amp;gt;deltree&amp;lt;/code&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
efface un répertoire et son contenu&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;rm -rf /tmp/*&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;     - efface (sans demander de confirmation) tous les fichiers et répertoire de &amp;lt;code&amp;gt;/tmp&amp;lt;/code&amp;gt;&lt;br /&gt;
|- bgcolor=&amp;quot;#CCCCCC&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;code&amp;gt;mkdir&amp;lt;/code&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;code&amp;gt;md&amp;lt;/code&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
crée un répertoire&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;mkdir /home/user/mes documents&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;     - crée le répertoire &amp;lt;code&amp;gt;&amp;quot;mes documents&amp;quot;&amp;lt;/code&amp;gt; dans le sous répertoire &amp;lt;code&amp;gt;/home/user&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;code&amp;gt;rmdir&amp;lt;/code&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;code&amp;gt;rm&amp;lt;/code&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
efface un répertoire s&#039;il est vide&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;rmdir /home/user/.nsmail&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;     - efface le répertoire &amp;lt;code&amp;gt;.nsmail&amp;lt;/code&amp;gt; de &amp;lt;code&amp;gt;/home/user&amp;lt;/code&amp;gt; si celui-ci est vide&lt;br /&gt;
|- bgcolor=&amp;quot;#CCCCCC&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;code&amp;gt;mv&amp;lt;/code&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;code&amp;gt;ren&amp;lt;/code&amp;gt;&#039;&#039;&#039;&amp;lt;br /&amp;gt;&#039;&#039;&#039;&amp;lt;code&amp;gt;move&amp;lt;/code&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
déplace ou renomme  un ou des fichiers&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;mv tata titi&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;     - renomme tata en titi&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;mv * *.bak&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;     - ne fonctionne pas !!!!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;mv * /tmp/bak&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;     - déplace tous les fichiers du répertoire courant vers le répertoire  &amp;lt;code&amp;gt;/tmp/bak&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;code&amp;gt;find&amp;lt;/code&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;code&amp;gt;dir -s&amp;lt;/code&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
trouve un fichier répondant à certains critères&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;find /home -name &amp;quot;*bash*&amp;quot;&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;     - trouve tous les fichiers contenant le mot &amp;lt;code&amp;gt;bash&amp;lt;/code&amp;gt; dans leur nom se trouvant dans le répertoire &amp;lt;code&amp;gt;/home&amp;lt;/code&amp;gt;&lt;br /&gt;
|- bgcolor=&amp;quot;#CCCCCC&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;code&amp;gt;locate&amp;lt;/code&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;code&amp;gt;dir -s&amp;lt;/code&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
trouve un fichier d&#039;après son nom&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;locate bash&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;     - trouve tous les fichiers contenant le mot &amp;lt;code&amp;gt;bash&amp;lt;/code&amp;gt; dans leur nom complet (avec le répertoire) : à la différence de &amp;lt;code&amp;gt;find&amp;lt;/code&amp;gt;, locate trouve ses informations dans une base de donnée créée par &amp;lt;code&amp;gt;updatedb&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;code&amp;gt;man&amp;lt;/code&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;code&amp;gt;help&amp;lt;/code&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
affiche l&#039;aide concernant une commande particulière&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;man ls&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;     - affiche l&#039;aide (page de &amp;lt;code&amp;gt;man&amp;lt;/code&amp;gt;uel) de la commnade &amp;lt;code&amp;gt;ls&amp;lt;/code&amp;gt;. On quitte man en appuyant sur la touche &#039;&amp;lt;code&amp;gt;q&amp;lt;/code&amp;gt;&#039;&lt;br /&gt;
|- bgcolor=&amp;quot;#CCCCCC&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;code&amp;gt;chmod&amp;lt;/code&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
pas &amp;lt;br /&amp;gt; d&#039;équivalent&lt;br /&gt;
|&lt;br /&gt;
modifie les permissions d&#039;un fichier&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;chmod o+r /home/user&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;     - autorise les autres (&amp;lt;code&amp;gt;o=other&amp;lt;/code&amp;gt;) (ie: ceux qui ne sont ni le propriétaire, ni membre du groupe propriétaire) à lire (&amp;lt;code&amp;gt;r=read&amp;lt;/code&amp;gt;) le répertoire &amp;lt;code&amp;gt;/home/user&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;chmod a+rw /home/user/unfichier&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;     - autorise tout le monde (&amp;lt;code&amp;gt;a=all&amp;lt;/code&amp;gt;) à lire et écrire (&amp;lt;code&amp;gt;w=write&amp;lt;/code&amp;gt;) dans le fichier &amp;lt;code&amp;gt;/home/user/unfichier&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;code&amp;gt;chown&amp;lt;/code&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
pas &amp;lt;br /&amp;gt; d&#039;équivalent&lt;br /&gt;
|&lt;br /&gt;
modifie le propriétaire d&#039;un fichier&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;chown user unfichier&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;     rend &amp;lt;code&amp;gt;user&amp;lt;/code&amp;gt; propriétaire de &amp;lt;code&amp;gt;unfichier&amp;lt;/code&amp;gt;.&lt;br /&gt;
|- bgcolor=&amp;quot;#CCCCCC&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;code&amp;gt;chgrp&amp;lt;/code&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
pas &amp;lt;br /&amp;gt; d&#039;équivalent&lt;br /&gt;
|&lt;br /&gt;
modifie le groupe proprétaire d&#039;un fichier&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;chgrp -R nobody /home/httpd&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;     - rend le groupe : &amp;lt;code&amp;gt;nobody&amp;lt;/code&amp;gt; (un groupe ayant très peu de droit sur un système linux) propriétaire de &amp;lt;code&amp;gt;/home/httpd&amp;lt;/code&amp;gt; ainsi que tout les fichiers qu&#039;il contient (&amp;lt;code&amp;gt;-R&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;code&amp;gt;ln -s&amp;lt;/code&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
pas &amp;lt;br /&amp;gt; d&#039;équivalent&lt;br /&gt;
|&lt;br /&gt;
crée un lien vers un fichier&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;ln -s /dev/fd0 /dev/disquette&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;     crée un lien vers &amp;lt;code&amp;gt;/dev/fd0&amp;lt;/code&amp;gt; (le lecteur de disquette) nommé &amp;lt;code&amp;gt;/dev/disquette&amp;lt;/code&amp;gt;. La manipulation de &amp;lt;code&amp;gt;/dev/fd0&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;/dev/disquette&amp;lt;/code&amp;gt; (sauf l&#039;effacement).&lt;br /&gt;
|- bgcolor=&amp;quot;#CCCCCC&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;code&amp;gt;grep&amp;lt;/code&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
pas &amp;lt;br /&amp;gt; d&#039;équivalent&lt;br /&gt;
|&lt;br /&gt;
recherche une chaine dans un fichier (en fait recherche une expression régulière dans plusieurs fichiers)&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;grep chaine *.txt&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;     - recherche la chaine &#039;&amp;lt;code&amp;gt;chaine&amp;lt;/code&amp;gt;&#039; dans tous les fichier se terminant par &amp;lt;code&amp;gt;.txt&amp;lt;/code&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;code&amp;gt;which&amp;lt;/code&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
pas &amp;lt;br /&amp;gt; d&#039;équivalent&lt;br /&gt;
|&lt;br /&gt;
trouve le répertoire dans lequel se trouve une commande&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;which emacs&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;     - retourne le nom du répertoire dans lequel se trouve la commande &amp;lt;code&amp;gt;emacs&amp;lt;/code&amp;gt;.&lt;br /&gt;
|- bgcolor=&amp;quot;#CCCCCC&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;code&amp;gt;cat&amp;lt;/code&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
affiche un fichier à l&#039;écran&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;cat ~/.bashrc&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;     - affiche le contenu du fichier &amp;lt;code&amp;gt;~/.bashrc&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Remarque&amp;lt;/u&amp;gt; : &amp;lt;br /&amp;gt; Pour en savoir plus sur toutes ces commandes, je vous conseille de consulter leur page de man !&lt;br /&gt;
&lt;br /&gt;
=== La commande &amp;lt;code&amp;gt;ls&amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
Cette commande est omniprésente, aussi il est bon d&#039;en présenter les basiques.&lt;br /&gt;
&lt;br /&gt;
Afficher le listing page par page : &amp;lt;code&amp;gt;ls | less&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;less&amp;lt;/code&amp;gt; est une version améliorée de &amp;lt;code&amp;gt;more&amp;lt;/code&amp;gt;) &amp;lt;br /&amp;gt; Afficher le listing en couleurs : &amp;lt;code&amp;gt;ls --color&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt; Afficher aussi les fichiers cachés (commençant par un point) : &amp;lt;code&amp;gt;ls -a&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt; Mettre un &#039;/&#039; après les noms de répertoires : &amp;lt;code&amp;gt;ls -p&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt; Afficher le listing détaillé : &amp;lt;code&amp;gt;ls -l&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Tri sur la date&amp;lt;/u&amp;gt;&amp;lt;br /&amp;gt; Pour afficher les fichiers d&#039;un répertoire en triant sur la date de mise à jour des fichiers &amp;lt;br /&amp;gt; Afficher les fichiers les plus récents en premier : &amp;lt;code&amp;gt;ls -t&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt; Afficher les fichiers les plus vieux en premier : &amp;lt;code&amp;gt;ls -rt&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt; Mixer avec l&#039;option &amp;quot;l&amp;quot; afin d&#039;afficher le listing détaillé : &amp;lt;code&amp;gt;ls -rtl&amp;lt;/code&amp;gt; ou &amp;lt;code&amp;gt;ls -tl&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;bien sûr, toutes ces options sont mixables,&#039;&#039; ainsi &amp;quot;&amp;lt;code&amp;gt;ls -altp&amp;lt;/code&amp;gt;&amp;quot; affiche tous les fichiers, de façon détaillée, dans l&#039;ordre chronologique, an ajoutant &#039;/&#039; après chaque nom de répertoire.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Exemple de listing&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&#039;&#039;&#039;[jice@taz jice]$&#039;&#039;&#039;ls -alp &amp;lt;br /&amp;gt;&amp;lt;font size=&amp;quot;-1&amp;quot;&amp;gt;total 144&amp;lt;/font&amp;gt;&amp;lt;br /&amp;gt; -rw-r--r--   1 jice  users     24 Aug  2 21:37 .bash_logout &amp;lt;br /&amp;gt; -rw-r--r--   1 jice  users    230 Aug  2 21:37 .bash_profile &amp;lt;br /&amp;gt; -rw-r--r--   1 jice  users    467 Aug  2 21:37 .bashrc &amp;lt;br /&amp;gt; -rw-r--r--   1 jice  users   1452 Aug  2 21:37 .kderc &amp;lt;br /&amp;gt; drwxr--r--  12 jice  users   1024 Aug  2 21:37 .kde/ &amp;lt;br /&amp;gt; drwxr--r--   2 jice  users   1024 Aug  2 21:37 Desktop/ &amp;lt;br /&amp;gt; -rw-r-----   1 jice  users   1728 Aug  2 21:37 adresses.txt &amp;lt;br /&amp;gt; -rw-------   1 jice  users    144 Aug  2 21:37 motsdepasse.txt &amp;lt;br /&amp;gt; lrwxrwxrwx   1 jice  users     14 Aug  2 21:37 linux -&amp;gt; /usr/src/linux&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Explication :&amp;lt;/u&amp;gt;&amp;lt;br /&amp;gt; La première ligne &amp;quot;total 144&amp;quot; est l&#039;espace disque utilisé par l&#039;ensemble des fichiers du répertoire.&lt;br /&gt;
&lt;br /&gt;
# La première colonne &amp;lt;code&amp;gt;-rw-r--r--&amp;lt;/code&amp;gt;représente les &#039;&#039;&#039;permissions&#039;&#039;&#039; associées au fichier. le premier caractère est un tiret pour un fichier, un d pour un répertoire, un l pour un lien, etc. &amp;lt;br /&amp;gt; ensuite, on a trois groupes de trois caractères : &amp;lt;code&amp;gt;rw-&amp;lt;/code&amp;gt; ou &amp;lt;code&amp;gt;r--&amp;lt;/code&amp;gt; ou &amp;lt;code&amp;gt;rwx&amp;lt;/code&amp;gt; ou... &amp;lt;br /&amp;gt; Le premier groupe représente les permissions associées à l&#039;utilisateur (ici, jice), le deuxième celles associées à son groupe (ici : users), enfin le dernier est les permissions que tout le monde a sur ces fichiers. &amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;r&amp;lt;/code&amp;gt; signifie : possibilité de lire ce fichier / dans ce répertoire, &amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;w&amp;lt;/code&amp;gt; signifie : possibilité d&#039;écrire dans ce fichier / répertoire, &amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; signifie : possibilité d&#039;exécuter ce fichier / d&#039;aller dans ce répertoire.&lt;br /&gt;
# nombre d&#039;inodes (partie élémentaire de [../docs/glossaire.php3#systeme_fichiers système de fichiers]) qui pointent vers le fichier/répertoire (généralement 1 pour un fichier, 2+le nombre de sous-répertoires pour un répertoire).&lt;br /&gt;
# utilisateur à qui appartient le fichier (jice)&lt;br /&gt;
# groupe auquel le fichier appartient (users)&lt;br /&gt;
# taille en octets&lt;br /&gt;
# date et heure de modification&lt;br /&gt;
# nom du fichier/répertoire.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Quelques questions et réponses ==&lt;br /&gt;
&lt;br /&gt;
Les commandes du tableau ci-dessus permettent de répondre à quelques questions comme : &amp;lt;br /&amp;gt; Où est cette commande (which) ? Que contient ce fichier (cat ou tac) ? Quel fichier contient tel mot (grep) ? etc. &amp;lt;br /&amp;gt; VoiciÂ  d&#039;autres questions et réponses qui ne nécessitent pas d&#039;être root et vous permettront de continuer à vous familiariser avec bash et ses commandes. Elles sont regroupées en trois tableaux : Informations sur les commandes ; informations sur le système ; informations sur les fichiers.&lt;br /&gt;
&lt;br /&gt;
=== Informations sur les commandes ===&lt;br /&gt;
&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
| width=&amp;quot;20%&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;Quelle commande utiliser pour faire ... ceci ou cela ?&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;apropos mot_clef&amp;lt;/code&amp;gt; ou &amp;lt;code&amp;gt;man -k mot_clef&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt; Â Â Â  - affiche les commandes, brièvement définies, en rapport avec mot_clef. &amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;apropos copier&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt; Â Â Â  - affiche les commandes en rapport avec la copie d&#039;un fichier, d&#039;une chaîne, d&#039;une zone mémoire ... &amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;apropos permission&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt; Â Â Â  - affiche les commandes liées à la vérification et à la modification des permissions.&lt;br /&gt;
&lt;br /&gt;
Notes : les noms communs et les verbes à l&#039;infinitif permettent généralement de trouver facilement la commande recherchée. En cas d&#039;échec, pensez aux synonymes : apropos supprimer fait apparaître la commande rmdir (supprimer un répertoire), alors que apropos effacer fait apparaître la commande rm (effacer un fichier).&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&#039;&#039;&#039;Comment se définit cette commande ?&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;whatis nom_commande&amp;lt;/code&amp;gt; ou &amp;lt;code&amp;gt;man -f nom_commande&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt; Â Â Â  - affiche une brève définition de nom_commande. &amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;whatis whatis&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt; Â Â Â  - affiche la définition de whatis. &amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;whatis arch&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt; Â Â Â  - affiche la définition de la commande arch. &amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;cd /bin ; for i in * ; do whatis $i ; done | more ; cd&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt; Â Â Â  - se positionne dans le répertoire /bin/, affiche page par page la définition de chacune des commandes qui s&#039;y trouve, retourne au répertoire personnel.&lt;br /&gt;
&lt;br /&gt;
Notes : dans l&#039;exemple précédant vous pouvez bien sûr remplacer /bin par /sbin ; certaines entrées échouent.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&#039;&#039;&#039;Quelles sont et comment utiliser les commandes internes ?&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;help&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt; Â Â Â  - affiche la liste des commandes internes et leur syntaxe. &amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;help nom_commande&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt; Â Â Â  - affiche une aide sommaire sur nom_commande. &amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;help help&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt; Â Â  - affiche une aide sur help. &amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;help alias&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt; Â Â Â  - affiche une aide sur la commande alias.&lt;br /&gt;
&lt;br /&gt;
Notes : ces commandes sont les commandes internes du shell, généralement le bash. Vous pouvez aussi en obtenir la liste en demandant à propos de l&#039;une d&#039;elles une page man qui n&#039;existe pas (man :). Vous trouverez également une aide sur les commandes internes dans la page man de bash (man bash). Enfin notez que help concerne les commandes internes mais --help les commandes externes.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;br /&amp;gt;&#039;&#039;&#039;Où sont et quelles sont les commandes externes ?&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;ls /bin&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt; Â Â Â  - affiche le contenu du répertoire /bin/, et donc la liste des commandes externes usuelles communes à tous les utilisateurs. &amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;ls /sbin&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt; Â Â Â  - affiche le contenu du répertoire /sbin/, et donc la liste des commandes externes usuelles réservées à l&#039;administrateur (root). &amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;whereis nom_commande&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt; Â Â Â  - affiche le chemin de nom_commande ainsi que celui de sa page man. &amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;whereis cat&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt; Â Â Â  - affiche le chemin de la commande cat (/bin/cat) et celui de sa page man (/usr/share/man/man1/cat.1.bz2). &amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;which nom_commande&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt; Â Â Â  - affiche le chemin de nom_commande. &amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;which tac&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt; Â Â Â  - affiche le chemin de tac (/usr/bin/tac).&lt;br /&gt;
&lt;br /&gt;
Notes : les répertoires /usr/bin/ et /usr/sbin/ contiennent les commandes externes moins fréquemment utilisées. Pour savoir si une commande est externe vous pouvez aussi simplement vérifier qu&#039;elle n&#039;est pas interne !&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&#039;&#039;&#039;Comment obtenir un aide mémoire sur cette commande ?&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;nom_commande --help&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt; Â Â Â  - affiche l&#039;aide mémoire de nom commande. &amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;ls --help&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt; Â Â Â  - affiche l&#039;aide mémoire de la commande ls.&lt;br /&gt;
&lt;br /&gt;
Notes : --help concerne la plupart des commandes externes et help les commandes internes. echo --help affiche bien sûr ... --help.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&#039;&#039;&#039;La dernière commande s&#039;est-elle bien terminée ?&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;echo $?&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt; Â Â Â  - affiche le code de retour de la dernière commande effectuée, 0 si elle s&#039;est bien terminée, un autre nombre dans le cas contraire. &amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;clear ; echo $?&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt; Â Â Â  - efface l&#039;écran et affiche 0. &amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;sl / ; echo $?&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt; Â Â Â  - affiche un message d&#039;erreur et le code 127 (bash ne connaît pas la commande sl). &amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;nom_commande 2&amp;gt;/dev/null &amp;amp;&amp;amp; echo &amp;quot;ok&amp;quot; || echo &amp;quot;m&#039;enfin&amp;quot;&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt; Â Â Â  - exécute nom_commande en redirigeant les erreurs vers /dev/null (périphérique fictif) puis affiche &amp;quot;ok&amp;quot; si tout s&#039;est bien passé ou &amp;quot;m&#039;enfin&amp;quot; dans le cas contraire. &amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;: &amp;amp;&amp;amp; echo &amp;quot;ok&amp;quot; || echo &amp;quot;m&#039;enfin&amp;quot;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt; Â Â Â  - ne fait rien puis affiche &amp;quot;ok&amp;quot; (la commande : ne fait rien et se termine toujours bien). &amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;bof 2&amp;gt;/dev/null &amp;amp;&amp;amp; echo &amp;quot;ok&amp;quot; || echo &amp;quot;m&#039;enfin&amp;quot;&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt; Â Â Â  - affiche &amp;quot;m&#039;enfin&amp;quot; (la commande bof n&#039;existe pas).&lt;br /&gt;
&lt;br /&gt;
Notes : commande1 &amp;amp;&amp;amp; commande2 exécute commande2 que si commande1 s&#039;est terminée normalement (0) ; commande1 || commande2 exécute commande2 que si commande1 ne s&#039;est pas terminée correctement (&amp;lt;&amp;gt;0).&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;20%&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;Quels sont le nom, la taille et le contenu du fichier d&#039;historique ?&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;echo $HISTFILE $HISTFILESIZE&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt; Â Â Â  - affiche le nom et la taille du fichier d&#039;historique des commandes. &amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;cat $HISTFILE | more&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt; Â Â Â  - affiche le contenu du fichier d&#039;historique page par page. &amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;tail -n 24 $HISTFILE&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt; Â Â Â  - affiche les 24 dernières lignes du fichier d&#039;historique.&lt;br /&gt;
&lt;br /&gt;
Notes : le fichier d&#039;historique vous aide à répondre à la question : mais comment j&#039;avais fait ? et à en conserver une trace d&#039;une connexion à l&#039;autre.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&#039;&#039;&#039;Quel est l&#039;historique actuel ?&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;history | more&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt; Â Â Â  - affiche page par page le contenu numéroté de l&#039;historique actuel des commandes. &amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;history 12&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt; Â Â Â  - affiche les 12 dernières entrées effectuées et leurs numéros.&lt;br /&gt;
&lt;br /&gt;
Notes : c&#039;est cet historique qui défile avec les touches &amp;quot;flèches&amp;quot; de votre clavier ; au démarrage, c&#039;est le contenu de votre fichier d&#039;historique.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Informations sur le système ===&lt;br /&gt;
&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
| width=&amp;quot;20%&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;Quel est le système ?&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;uname&amp;lt;/code&amp;gt; ou &amp;lt;code&amp;gt;echo $OSTYPE&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt; Â Â Â  - affiche le nom du système d&#039;exploitation. &amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;uname -a&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt; Â Â Â  - affiche diverses informations système (nom du SE, version, microprocesseur ...). &amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;arch&amp;lt;/code&amp;gt; ou &amp;lt;code&amp;gt;uname -m&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt; Â Â Â  - affiche le type du microprocesseur. &amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;cat /proc/cpuinfo&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt; Â Â Â  - affiche des informations sur le microprocesseur (type, fréquence, cache ...).&lt;br /&gt;
&lt;br /&gt;
Notes : les informations recueillies avec uname -a peuvent aussi être obtenues avec certaines variables système : echo $OSTYPE $BASH $BASH_VERSION etc.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&#039;&#039;&#039;Depuis combien de temps ce shell est-il actif ?&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;uptime&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt; Â Â Â  - affiche l&#039;heure, la durée d&#039;activité du système, le nombre d&#039;utilisateurs ... &amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;echo $SECONDS&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt; Â Â Â  - affiche la durée d&#039;activité du shell courant en secondes. &amp;lt;br /&amp;gt; echo $[$SECONDS/3600] h $[($SECONDS%3600)/60] mn $[$SECONDS%60] s &amp;lt;br /&amp;gt; Â Â Â  - affiche cette durée en heures, minutes et secondes.&lt;br /&gt;
&lt;br /&gt;
Notes : bash ne connaît que les entiers et donc que les divisions euclidiennes, / permet d&#039;en obtenir le quotient et % d&#039;en obtenir le reste (ou modulo). Chaque fois que vous changez de terminal, ouvrez un nouvel xterm ou faites un su, celui-ci correspond à un nouveau (sous)shell, sa variable SECONDS est donc alors à 0. Pour savoir depuis combien de temps vous êtes sous Linux, revenez à votre console de login ; pour savoir depuis quand le système est actif, utilisez uptime.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&#039;&#039;&#039;Qu&#039;en est-il des disques, de la mémoire, du microprocesseur ?&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;mount&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt; Â Â Â  - affiche la liste des disques montés. &amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;df -ah&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt; Â Â Â  - affiche au format humain l&#039;espace total, occupé, libre sur tous les disques. &amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;free&amp;lt;/code&amp;gt; ou &amp;lt;code&amp;gt;cat /proc/meminfo&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt; Â Â Â  - affiche des informations sur la mémoire (totale, libre,Â  swap ...). &amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;vmstat&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt; Â Â Â  - affiche les statistiques sur la mémoire virtuelle. &amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;top&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt; Â Â Â  - affiche et permet d&#039;observer en temps réel l&#039;activité de la mémoire et du microprocesseur.&lt;br /&gt;
&lt;br /&gt;
Notes : la touche &amp;lt;Q&amp;gt; permet de quitter la commande top.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&#039;&#039;&#039;Quelles sont et que signifient les variables système ?&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;$&amp;lt;Tab&amp;gt;&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt; Â Â Â  - affiche les noms des principales variables système. &amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;help variables | more&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt; Â Â Â  - affiche page par page la définition des principales variables système.&lt;br /&gt;
&lt;br /&gt;
Notes : les noms des variables système sont généralement écrits en majuscules. A chacune de ces variables correspond une question et une réponse, quelques unes seulement ont été formulées à divers endroits dans cette page.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&#039;&#039;&#039;Que contiennent ces variables système ?&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;echo $NOM_VARIABLE&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt; Â Â Â  - affiche le contenu de NOM_VARIABLE. &amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;echo $USER&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt; Â Â Â  - affiche le nom de l&#039;utilisateur en cours. &amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;echo $PS1&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt; Â Â Â  - affiche la chaîne de caractères définissant le prompt. &amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;printenv | more&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt; Â Â Â  - affiche page par page l&#039;environnement. &amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;set | more&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt; Â Â Â  - affiche page par page le contenu des principales variables système.&lt;br /&gt;
&lt;br /&gt;
Notes : vous pouvez bien sûr modifier le prompt PS1=&amp;quot;chaîne de caractères&amp;quot;. Pour rendre cette modification générale et durable, il faut utiliser le fichier /etc/bashrc (nécessite d&#039;être root).&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&#039;&#039;&#039;Qui suis-je et qui est ou était connecté au système ?&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;id nom_utilisateur&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt; Â Â Â  - affiche les identifications de nom_utilisateur. &amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;id&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt; Â Â Â  - affiche vos identifications : UID, GDI, groupes. &amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;who am i&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt; Â Â Â  - affiche vos coordonnées dans le système. &amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;who -H&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt; Â Â Â  - affiche avec une entête des informations (nom de login, console ... ) sur les utilisateurs connectés. &amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;wÂ &amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt; Â Â Â  - affiche qui est connecté (who -H) et aussi ce qu&#039;il fait. &amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;last -n 12&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt; Â Â Â  - affiche la liste des 12 dernières connexions.&lt;br /&gt;
&lt;br /&gt;
Notes : la commande who am i ne fonctionne pas toujours sous xterm, dans ce cas entrez whoami mais vous n&#039;obtiendrez que votre nom de login. De nombreuses commandes permettent d&#039;obtenir une partie des renseignements évoqués ci-dessus, leurs noms parlent d&#039;eux-mêmes : logname, users, groups ...&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&#039;&#039;&#039;Quelles sont la date et l&#039;heure ?&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;date&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt; Â Â Â  - affiche la date et l&#039;heure. br /&amp;gt;&amp;lt;code&amp;gt;date +%x&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt; Â Â Â  - affiche seulement la date au format jj.mm.aaaa. &amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;date +%X&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt; Â Â Â  - affiche uniquement l&#039;heure au format hh:mm:ss. &amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;cal&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt; Â Â Â  - affiche un calendrier du mois en cours. &amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;cal 2000&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt; Â Â Â  - affiche le calendrier de l&#039;an 2000, etc.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&#039;&#039;&#039;Y a-t-il un pingouin dans le système ?&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;linux_logo&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt; Â Â Â  - affiche Tux et diverses informations système. &amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;linux_logo -la&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt; Â Â Â  - affiche Tux en ASCII et sans informations :-)&lt;br /&gt;
&lt;br /&gt;
Notes : sur mon système, linux_logo -la produit bien l&#039;affichage attendu (-a = ASCII et -l = pas d&#039;informations) maisÂ  avec linux_logo -al, l&#039;option -l est ignorée et les informations sont affichées ... Y a-t-il un bug dans mon système ?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Informations sur les fichiers ===&lt;br /&gt;
&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
| width=&amp;quot;20%&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;Quel est le répertoire courant ?&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;pwd&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt; Â Â Â  - affiche le nom complet du répertoire en cours.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&#039;&#039;&#039;Quelle est la taille de ce répertoire ?&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;du -shÂ &amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt; Â Â Â  - affiche au format humain la taille du répertoire courant. &amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;du -h ~ | more&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt; Â Â Â  - affiche page par page au format humain la taille de votre répertoire personnel et de tous ses (sous)répertoires.&lt;br /&gt;
&lt;br /&gt;
Notes : du ne fonctionne que sur les répertoires où vous avez droit d&#039;accès, si nécessaire passez sous root.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&#039;&#039;&#039;Quel est le type de ce fichier ?&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;file nom_fichier&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt; Â Â Â  - affiche le type de nom_fichier. &amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;file *&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt; Â Â Â  - affiche le type de tous les fichiers du répertoire en cours. &amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;file /bin&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt; Â Â Â  - affiche que /bin/ est un répertoire. &amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;file /bin/sh&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt; Â Â Â  - affiche que sh est un lien symbolique vers bash. &amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;file /bin/bash&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt; Â Â Â  - affiche que bash est un exécutable. &amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;file ~/.bashrc&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt; Â Â Â  - affiche que .bashrc de votre répertoire personnel est un fichier texte. &amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;file /dev/null&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt; Â Â Â  - affiche que null est un fichier spécial.&lt;br /&gt;
&lt;br /&gt;
Notes : file sait reconnaître un grand nombre de types de fichiers parmi les fichiers spéciaux, exécutables, textes, données ... Il est préférable de l&#039;utiliser avant d&#039;entrer un &amp;quot;cat&amp;quot; au hasard.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Raccourcis ==&lt;br /&gt;
&lt;br /&gt;
=== Clavier ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Tab&#039;&#039;&#039;&lt;br /&gt;
Taper une fois la touche [Tab] permet de compléter automatiquement un nom de fichier/répertoire s&#039;il est unique :&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&#039;&#039;&#039;[user@localhost user]$&#039;&#039;&#039; cd /et&#039;&#039;&#039;[Tab]&#039;&#039;&#039;&amp;lt;br /&amp;gt;&#039;&#039;&#039;[user@localhost user]$&#039;&#039;&#039; cd /etc_&amp;lt;/div&amp;gt; &lt;br /&gt;
* &#039;&#039;&#039;Tab Tab&#039;&#039;&#039;&lt;br /&gt;
Si lors du premier appui sur [Tab], le nom n&#039;a pas été complété, un deuxième appui vous donne la liste de toues les possibilités :&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&#039;&#039;&#039;[user@localhost user]$&#039;&#039;&#039; cd /usr/doc/H&#039;&#039;&#039;[Tab][Tab]&#039;&#039;&#039;&amp;lt;br /&amp;gt; HTMLÂ Â Â  HOWTO&amp;lt;br /&amp;gt;&#039;&#039;&#039;[user@localhost user]$&#039;&#039;&#039; cd /usr/doc/H_&amp;lt;/div&amp;gt; &lt;br /&gt;
* &#039;&#039;&#039;Flèche vers le haut (ou Ctrl-P) / bas (ou Ctrl-N)&#039;&#039;&#039;&lt;br /&gt;
La flèche vers le haut permet de remonter dans l&#039;historique des commandes, la flèche vers le bas permet de revenir. Vous pouvez aussi utiliser la commande &amp;lt;code&amp;gt;fc&amp;lt;/code&amp;gt;, consultez &amp;lt;code&amp;gt;man fc&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &#039;&#039;&#039;Shift - flèche vers le haut/bas&#039;&#039;&#039;&lt;br /&gt;
Permet de scroller le contenu du terminal texte vers le haut ou le bas, d&#039;une ligne. En effet, les lignes qui ont défilé vers le haut restent en mémoire et restent accessibles. Terrible, non ?&lt;br /&gt;
* &#039;&#039;&#039;Shift - Page up/down&#039;&#039;&#039;&lt;br /&gt;
La même chose, mais page par page.&lt;br /&gt;
* &#039;&#039;&#039;Ctrl-C&#039;&#039;&#039;&lt;br /&gt;
Arrête le processus en cours, celui qui a été lancé par la dernière commande.&lt;br /&gt;
* &#039;&#039;&#039;Ctrl-Z&#039;&#039;&#039;&lt;br /&gt;
Stoppe le processus en cours, celui qui a été lancé par la dernière commande, mais ne le détruit pas : il reste en attente. Pour le mettre en tâche de fond (il continue à s&#039;exécuter, mais vous pouvez continuer à taper des commandes), tapez &#039;&#039;&#039;&amp;lt;code&amp;gt;bg&amp;lt;/code&amp;gt;&#039;&#039;&#039;. Pour le faire revenir en avant, taper &#039;&#039;&#039;&amp;lt;code&amp;gt;fg&amp;lt;/code&amp;gt;&#039;&#039;&#039;.&lt;br /&gt;
* &#039;&#039;&#039;Ctrl-D&#039;&#039;&#039;&lt;br /&gt;
Ferme le terminal en cours (similaire à &amp;lt;code&amp;gt;exit&amp;lt;/code&amp;gt; ou &amp;lt;code&amp;gt;logout&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
et aussi...&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Ctrl-Alt-Fn&#039;&#039;&#039;&lt;br /&gt;
Se place sur la console virtuelle numéro &#039;&#039;&#039;n&#039;&#039;&#039;. Par défaut, il y a en général 6 consoles texte virtuelles, de F1 à F6, et X Window se lance dans la septième (F7).&lt;br /&gt;
* &#039;&#039;&#039;Ctrl-Alt-Backspace&#039;&#039;&#039;&lt;br /&gt;
Cela permet de tuer X et de revenir soit à la [../docs/glossaire.php3#display_manager bannière de login] soit au shell qui a lancé X par &amp;lt;code&amp;gt;startx&amp;lt;/code&amp;gt;. A éviter si possible : il est plus sain de quitter X en se déconnectant proprement.&lt;br /&gt;
* &#039;&#039;&#039;Ctrl-Alt-Del&#039;&#039;&#039;&lt;br /&gt;
Suivant votre configuration, ces touches à l&#039;action bien connue vous permettrons de rebooter votre ordinateur (synonyme de &amp;lt;code&amp;gt;reboot&amp;lt;/code&amp;gt; ou &amp;lt;code&amp;gt;shutdown -r now&amp;lt;/code&amp;gt;). Si vous souhaitez juste arrêter votre ordinateur afin de l&#039;éteindre, tapez &amp;lt;code&amp;gt;halt&amp;lt;/code&amp;gt;, ou &amp;lt;code&amp;gt;shutdown -h now&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Shell ===&lt;br /&gt;
&lt;br /&gt;
Les shells Unix disposent de petits &amp;quot;raccourcis&amp;quot; très astucieux et utiles, qui vous épargnerons de taper sur quelques touches. Ne dit-on pas qu&#039;un bon informaticien est un informaticien fainéant ? :-)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dernière ligne de commande : &amp;lt;code&amp;gt;!!&amp;lt;/code&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
On a vu plus haut qu&#039;elle était accessible par la flèche vers le haut, mais vous pouvez également la désigner par &#039;&amp;lt;code&amp;gt;!!&amp;lt;/code&amp;gt;&#039;, ce qui peut être très intéressant.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&#039;&#039;&#039;[user@localhost user]$&#039;&#039;&#039; vi&amp;lt;br /&amp;gt;&#039;&#039;&#039;[user@localhost user]$&#039;&#039;&#039; which !!&amp;lt;br /&amp;gt; which vi&amp;lt;br /&amp;gt; /bin/vi&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Arguments de la dernière commande : &amp;lt;code&amp;gt;!*&amp;lt;/code&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Les arguments de la dernière commande peuvent être représentés par &#039;&amp;lt;code&amp;gt;!*&amp;lt;/code&amp;gt;&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&#039;&#039;&#039;[user@localhost user]$&#039;&#039;&#039; mkdir test&amp;lt;br /&amp;gt;&#039;&#039;&#039;[user@localhost user]$&#039;&#039;&#039; cd !&amp;lt;br /&amp;gt; cd test&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Utiliser la sortie d&#039;une commande comme argument :&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Vous pouvez réutiliser directement ce qu&#039;une commande écrit à l&#039;écran comme argument pour une autre commande. Pour ce faire, vous devez encadrer la commande par une cote inverse &amp;lt;code&amp;gt;`&amp;lt;/code&amp;gt; ou la mettre entre parenthèses précédées du signe $ ; elle sera remplacée par ce qu&#039;elle écrit à l&#039;écran dans la ligne de commande. Imaginez par exemple que vous vouliez voir les informations sur le fichier exécutable de emacs.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&#039;&#039;&#039;[user@localhost user]$&#039;&#039;&#039; ls -l `which emacs`&amp;lt;br /&amp;gt;&#039;&#039;&#039;[user@localhost user]$&#039;&#039;&#039; ls -l $(which emacs)&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
est ainsi équivalent à :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&#039;&#039;&#039;[user@localhost user]$&#039;&#039;&#039; which emacs&amp;lt;br /&amp;gt; /usr/bin/emacs&amp;lt;br /&amp;gt;&#039;&#039;&#039;[user@localhost user]$&#039;&#039;&#039; ls -l /usr/bin/emacs&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cool non ? Et vous pouvez mixer les raccourcis vus précédemment :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&#039;&#039;&#039;[user@localhost user]$&#039;&#039;&#039; emacs&amp;lt;br /&amp;gt;&#039;&#039;&#039;[user@localhost user]$&#039;&#039;&#039; ls -l `which !!`&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
C&#039;est-y pas beau ça madame ?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Remplacer un caractère par un autre : &amp;lt;code&amp;gt;^&amp;lt;/code&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Si vous souhaitez remplacer la première occurrence d&#039;un caractère de la ligne de commande précédente par un autre, vous pouvez utiliser le symbole &amp;lt;code&amp;gt;^&amp;lt;/code&amp;gt;, comme ci-dessous :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&#039;&#039;&#039;[user@localhost user]$&#039;&#039;&#039; lpcate i486-linux-libc5&amp;lt;br /&amp;gt; lpcate : command not found&amp;lt;br /&amp;gt;&#039;&#039;&#039;[user@localhost user]$&#039;&#039;&#039; ^p^o&amp;lt;br /&amp;gt; locate i486-linux-libc5&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;^p^o&amp;lt;/code&amp;gt; signifie : refait la même ligne de commande que précédemment, mais remplace le premier p par un o.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Lancer un programme directement en tâche de fond : &amp;amp;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Il suffit de faire suivre la ligne de commande du symbole &amp;lt;code&amp;gt;&amp;amp;&amp;lt;/code&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&#039;&#039;&#039;[user@localhost user]$&#039;&#039;&#039; cp -R /usr/doc /tmp &amp;amp;&amp;lt;br /&amp;gt; [1] 7194&amp;lt;br /&amp;gt;&#039;&#039;&#039;[user@localhost user]$&#039;&#039;&#039; _&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La commande est lancée en tâche de fond, c&#039;est à dire qu&#039;elle s&#039;exécute, mais la main vous est rendue tout de suite. La fin de la commande est signifiée par un message :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&#039;&#039;&#039;[user@localhost user]$&#039;&#039;&#039;&amp;lt;br /&amp;gt; [1]+ Done cp -R /usr/doc /tmp&amp;lt;br /&amp;gt;&#039;&#039;&#039;[user@localhost user]$&#039;&#039;&#039; _ &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Lancer plusieurs programmes en même temps : &amp;amp;, &amp;amp;&amp;amp;, &amp;lt;code&amp;gt;||&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Vous avez plusieurs solutions :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;prog1 ; prog2Â &amp;lt;/code&amp;gt; lance prog1, puis prog2,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;prog1 &amp;amp; prog2Â &amp;lt;/code&amp;gt; lance prog1 en arrière plan, puis immédiatement prog2 en avant plan,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;prog1 &amp;amp;&amp;amp; prog2&amp;lt;/code&amp;gt; lance prog1, puis prog2 seulement si prog1 n&#039;a pas retourné d&#039;erreur,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;prog1 || prog2&amp;lt;/code&amp;gt; lance prog1, puis prog2 seulement si prog1 A retourné une erreur.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Redirections ==&lt;br /&gt;
&lt;br /&gt;
Normalement, la sortie des programmes se fait à l&#039;écran, aussi bien pour les erreurs (&#039;&#039;standard error&#039;&#039;) que pour les messages &amp;quot;normaux&amp;quot; (&#039;&#039;standard output&#039;&#039;). Vous pouvez la rediriger, soit vers un fichier avec &amp;lt;code&amp;gt;&amp;gt;&amp;lt;/code&amp;gt;, soit vers l&#039;entrée d&#039;un autre programme avec &amp;lt;code&amp;gt;|&amp;lt;/code&amp;gt; (ou pipe - attention, arrêtez de rigoler dans le fond :-).&lt;br /&gt;
&lt;br /&gt;
De même, l&#039;entrée standard (&#039;&#039;standard input&#039;&#039;) est habituellement constituée du clavier, mais on peut aussi la remplacer par le contenu d&#039;un fichier, avec le symbole &amp;lt;code&amp;gt;&amp;lt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Envoyer la sortie standard d&#039;un programme dans l&#039;entrée standard d&#039;un autre ===&lt;br /&gt;
&lt;br /&gt;
Vous avez déjà certainement vu ou utilisé une commande du type :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&#039;&#039;&#039;[user@localhost user]$&#039;&#039;&#039; ls -la &#039;&#039;&#039;&amp;lt;font size=&amp;quot;+1&amp;quot;&amp;gt;|&amp;lt;/font&amp;gt;&#039;&#039;&#039; more&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ls -la&amp;lt;/code&amp;gt; envoie la version longue du listing de répertoire, avec les fichier cachés, à &amp;lt;code&amp;gt;more&amp;lt;/code&amp;gt; qui l&#039;affiche page par page. &amp;lt;br /&amp;gt; Vous pouvez aussi enchaîner plusieurs redirections :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&#039;&#039;&#039;[user@localhost user]$&#039;&#039;&#039; cat /var/log/messages &#039;&#039;&#039;|&#039;&#039;&#039; grep gpm &#039;&#039;&#039;|&#039;&#039;&#039; more&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ceci va afficher page par page l&#039;ensemble des messages système relatifs à &amp;lt;code&amp;gt;gpm&amp;lt;/code&amp;gt;. (voir plus haut ce que font chacune de ces commandes).&lt;br /&gt;
&lt;br /&gt;
=== Envoi d&#039;un fichier dans l&#039;entrée standard ===&lt;br /&gt;
&lt;br /&gt;
L&#039;entrée standard (&#039;&#039;standard input&#039;&#039;) est normalement ce que vous tapez au clavier. Vous pouvez remplacer vos frappes clavier par le contenu d&#039;un fichier, qui sera ouvert et envoyé sur l&#039;entrée standard du programme. C&#039;est pratique pour automatiser des tâches avec des programmes interactifs. Exemple :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&#039;&#039;&#039;[user@localhost user]$&#039;&#039;&#039; ftp &amp;lt; sessiontype.txt &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ici le fichier &amp;lt;code&amp;gt;sessiontype.txt&amp;lt;/code&amp;gt; pourra contenir par exemple :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;Â open ftp.lesite.com&amp;lt;br /&amp;gt; Â user jice&amp;lt;br /&amp;gt; Â pass xxxxxx&amp;lt;br /&amp;gt; Â cd /pub/linux/doc&amp;lt;br /&amp;gt; Â bin&amp;lt;br /&amp;gt; Â get jice.jpg&amp;lt;br /&amp;gt; Â bye&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Et vous permettra en une seule commande de récupérer le fichier &amp;lt;code&amp;gt;jice.jpg&amp;lt;/code&amp;gt; sur le site &amp;lt;code&amp;gt;ftp.lesite.com&amp;lt;/code&amp;gt; (utile si ce fichier change et que vous voulez le mettre à jour régulièrement). Bref, à vous d&#039;inventer la vie qui va avec :-)&lt;br /&gt;
&lt;br /&gt;
=== Redirection des sorties vers un fichier ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&#039;&#039;&#039;[user@localhost user]$&#039;&#039;&#039; ls -lR /cdrom &#039;&#039;&#039;&amp;lt;font size=&amp;quot;+1&amp;quot;&amp;gt;&amp;gt;&amp;lt;/font&amp;gt;&#039;&#039;&#039; cdrom.txt&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cette commande va lister le contenu du cdrom, et enregistrer le résultat dans le fichier &amp;lt;code&amp;gt;cdrom.txt&amp;lt;/code&amp;gt;. &amp;lt;br /&amp;gt; En mettant deux &amp;lt;code&amp;gt;&amp;gt;&amp;lt;/code&amp;gt; de suite, vous ajoutez au fichier :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&#039;&#039;&#039;[user@localhost user]$&#039;&#039;&#039; date &#039;&#039;&#039;&amp;lt;font size=&amp;quot;+1&amp;quot;&amp;gt;&amp;gt;&amp;gt;&amp;lt;/font&amp;gt;&#039;&#039;&#039; cdrom.txt&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ceci va ajouter la date au fichier précédemment créé.&lt;br /&gt;
&lt;br /&gt;
Les messages d&#039;erreur peuvent être dirigés séparément dans un fichier avec &#039;&#039;&#039;&amp;lt;code&amp;gt;2&amp;gt;&amp;lt;/code&amp;gt;&#039;&#039;&#039; :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&#039;&#039;&#039;[user@localhost user]$&#039;&#039;&#039; startx &amp;gt; startx.log &#039;&#039;&#039;2&amp;gt;&#039;&#039;&#039; startx.err&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ou dirigés vers le même fichier que les messages normaux :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&#039;&#039;&#039;[user@localhost user]$&#039;&#039;&#039; startx &amp;gt; startx.log &#039;&#039;&#039;2&amp;gt;&amp;amp;1&#039;&#039;&#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Gestion des processus ==&lt;br /&gt;
&lt;br /&gt;
Linux est &#039;&#039;multitâches&#039;&#039;, ce qui signifie que plusieurs programmes (qui peuvent être à la fois des applications utilisateur ou des tâches système) peuvent tourner simultanément. On vient de voir qu&#039;on pouvait lancer directement depuis un terminal texte une commande en tâche de fond, avec le symbole &amp;amp;. &amp;lt;br /&amp;gt; Comment gère-t-on ensuite ces processus ?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Lister les processus : &amp;lt;code&amp;gt;ps&amp;lt;/code&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
La liste des processus en cours pour un terminal donné s&#039;obtient en tapant simplement la commande &#039;&#039;&#039;&amp;lt;code&amp;gt;ps&amp;lt;/code&amp;gt;&#039;&#039;&#039; :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;Â PID TTY STAT TIME COMMAND&amp;lt;br /&amp;gt; Â  12Â  p1 SÂ Â Â  0:00 bash&amp;lt;br /&amp;gt; Â 144Â  p1 SÂ Â Â  0:01 emacs&amp;lt;br /&amp;gt; 1768Â  p1 RÂ Â Â  0:00 ps&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si vous voulez voir plus de processus, vous pouvez lister tous les processus d&#039;un utilisateur par &amp;lt;code&amp;gt;ps U root&amp;lt;/code&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt; Â Â PIDÂ TTYÂ Â Â Â Â Â STATÂ Â Â TIMEÂ COMMAND&amp;lt;br /&amp;gt; Â Â Â Â 1Â ?Â Â Â Â Â Â Â Â SÂ Â Â Â Â Â 0:04Â init&amp;lt;br /&amp;gt; Â Â Â Â 2Â ?Â Â Â Â Â Â Â Â SWÂ Â Â Â Â 0:00Â [keventd]&amp;lt;br /&amp;gt; Â Â Â Â 3Â ?Â Â Â Â Â Â Â Â SWNÂ Â Â Â 0:00Â [ksoftirqd_CPU0]&amp;lt;br /&amp;gt; ...&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vous pouvez aussi voir l&#039;ensemble des process d&#039;un système par &amp;lt;code&amp;gt;ps aux&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Lister les jobs et les gérer : &amp;lt;code&amp;gt;jobs&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;fg&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;bg&amp;lt;/code&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;job&amp;quot; est un mot qui désigne ici les programmes que vous avez lancé en arrière plan (tâche de fond) dans votre terminal. Pour lancer un job en arrière plan, vous pouvez :&lt;br /&gt;
&lt;br /&gt;
lancer le programme par son nom, puis taper &amp;lt;span class=&amp;quot;key&amp;quot;&amp;gt;Ctrl-Z&amp;lt;/span&amp;gt; pour le stopper, puis la commande &#039;&#039;&#039;&amp;lt;code&amp;gt;bg&amp;lt;/code&amp;gt;&#039;&#039;&#039; pour l&#039;envoyer en arrière plan (BackGround).&lt;br /&gt;
&lt;br /&gt;
vous pouvez aussi simplement taper le nom de ce programme suivi par le symbole &#039;&#039;&#039;&amp;amp;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Afin d&#039;afficher une liste des jobs d&#039;un terminal, tapez la commande &#039;&#039;&#039;&amp;lt;code&amp;gt;jobs&amp;lt;/code&amp;gt;&#039;&#039;&#039;&amp;lt;nowiki&amp;gt;:&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&#039;&#039;&#039;[user@localhost user]$&#039;&#039;&#039; find / -name &amp;quot;*a*&amp;quot; &amp;gt;A &amp;amp;&amp;lt;br /&amp;gt; [1] 7859&amp;lt;br /&amp;gt;&#039;&#039;&#039;[user@localhost user]$&#039;&#039;&#039; jobs&amp;lt;br /&amp;gt; [1]+ Running find / -name &amp;quot;*a*&amp;quot; &amp;gt;A &amp;amp; &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour chacun de ces jobs, vous pouvez les faire revenir en avant plan avec la commande &#039;&#039;&#039;&amp;lt;code&amp;gt;fg&amp;lt;/code&amp;gt;&#039;&#039;&#039; ; &amp;quot;&amp;lt;code&amp;gt;fg&amp;lt;/code&amp;gt;&amp;quot; pour le dernier programme lancé en tâche de fond, &amp;quot;&amp;lt;code&amp;gt;fg %n&amp;lt;/code&amp;gt;&amp;quot; pour le n&amp;lt;sup&amp;gt;ième&amp;lt;/sup&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tuer un processus : &amp;lt;code&amp;gt;kill&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;killall&amp;lt;/code&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Afin de terminer un processus qui ne répond plus, par exemple, on utilise la commande &#039;&#039;&#039;&amp;lt;code&amp;gt;kill&amp;lt;/code&amp;gt;&#039;&#039;&#039;, suivie du numéro de job (&amp;lt;code&amp;gt;%n&amp;lt;/code&amp;gt;) ou du PID du programme à tuer. Par exemple, si &amp;lt;code&amp;gt;ps&amp;lt;/code&amp;gt; donne le résultat ci-dessus, la commande &amp;quot;&amp;lt;code&amp;gt;kill 144&amp;lt;/code&amp;gt;&amp;quot; arrêtera la tâche emacs. &amp;quot;&amp;lt;code&amp;gt;kill %1&amp;lt;/code&amp;gt;&amp;quot; fera la même chose.&lt;br /&gt;
&lt;br /&gt;
Vous pouvez également tuer des processus par leur nom avec la commande &#039;&#039;&#039;&amp;lt;code&amp;gt;killall&amp;lt;/code&amp;gt;&#039;&#039;&#039; suivie du nom du processus à tuer, mais attention : TOUS les processus de l&#039;utilisateur utilisant killall et portant le même nom seront tués. Par exemple, si vous tapez &amp;quot;&amp;lt;code&amp;gt;killall emacs&amp;lt;/code&amp;gt;&amp;quot;, non seulement la fenêtre emacs lancée depuis ce terminal sera supprimée, mais aussi tous les autres emacs lancés depuis un autre terminal par l&#039;utilisateur.&lt;br /&gt;
&lt;br /&gt;
Vous pouvez aussi passer un autre argument à kill et killall, qui est le &#039;&#039;signal&#039;&#039; à envoyer à la tâche (les &#039;&#039;signaux&#039;&#039; sont une manière de communiquer avec les applications sous Unix). Par exemple, si la tâche récalcitrante ne s&#039;arrête pas avec un simple &amp;lt;code&amp;gt;kill 144&amp;lt;/code&amp;gt;, essayez &amp;lt;code&amp;gt;kill -9 144&amp;lt;/code&amp;gt;, ou &amp;lt;code&amp;gt;kill -QUIT 144&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Aliases et variables d&#039;environnement ==&lt;br /&gt;
&lt;br /&gt;
=== Aliases ===&lt;br /&gt;
&lt;br /&gt;
Plutôt que de taper de longues commandes, ou bien parce que vous préférez vous rappeler d&#039;un nom plutôt que du vrai nom Unix, vous pouvez définir des &#039;&#039;aliases&#039;&#039;. Pour ce faire, utilisez la commande &amp;lt;code&amp;gt;alias&amp;lt;/code&amp;gt; comme suit :&lt;br /&gt;
&lt;br /&gt;
Si votre shell est &#039;&#039;&#039;bash&#039;&#039;&#039; ou sh ou ash (par défaut) :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;alias md=mkdir &amp;lt;br /&amp;gt; alias ls=&#039;ls --color&#039; &amp;lt;br /&amp;gt; alias eclip2=&#039;telnet eclip2.ec-lille.fr&#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si votre shell est &#039;&#039;&#039;tcsh&#039;&#039;&#039; ou csh (par défaut) :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;alias md mkdir &amp;lt;br /&amp;gt; alias ls &#039;ls --color&#039; &amp;lt;br /&amp;gt; alias eclip2 &#039;telnet eclip2.ec-lille.fr&#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ainsi pourrez-vous taper &amp;lt;code&amp;gt;md&amp;lt;/code&amp;gt; au lieu de &amp;lt;code&amp;gt;mkdir&amp;lt;/code&amp;gt;, et &amp;lt;code&amp;gt;eclip2&amp;lt;/code&amp;gt; pour vous connecter à cette machine via telnet ; la commande &amp;lt;code&amp;gt;ls&amp;lt;/code&amp;gt; affichera une sortie en couleurs...&lt;br /&gt;
&lt;br /&gt;
Le problème est que les aliases définis dans un terminal ne sont valables que dans celui-ci, et disparaîtrons à jamais dès que ce terminal sera fermé. Pour conserver des alias par-delà les connexions/déconnexions, regardez la [#configuration_shell configuration du shell] : vous pouvez définir vos aliases dans le fichier &#039;&#039;&#039;~/.bashrc&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== Variables d&#039;environnement, Path et Prompt ===&lt;br /&gt;
&lt;br /&gt;
Les variables d&#039;environnement servent à enregistrer des paramètres que les programmes peuvent lire ensuite. Elles sont désignées par un symbole &amp;lt;code&amp;gt;$&amp;lt;/code&amp;gt; suivi de lettres, chiffres et symboles.&lt;br /&gt;
&lt;br /&gt;
Par exemple, la variable &amp;lt;code&amp;gt;$HOME&amp;lt;/code&amp;gt; est égale au répertoire maison de l&#039;utilisateur en cours (en général &amp;lt;code&amp;gt;/home/user&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
De même, la variable &amp;lt;code&amp;gt;$PATH&amp;lt;/code&amp;gt; représente le chemin de recherche que le shell va parcourir afin de trouver le fichier exécutable qui correspond à la commande que vous venez de taper. Par exemple, &amp;lt;code&amp;gt;$PATH = /bin:/usr/bin:/usr/local/bin&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Créer ou modifier une variable d&#039;environnement&#039;&#039;&#039;&amp;lt;br /&amp;gt; Si votre shell est &#039;&#039;&#039;bash&#039;&#039;&#039; ou sh ou ash (par défaut) :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;export MAVARIABLE=mavaleur&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si votre shell est &#039;&#039;&#039;tcsh&#039;&#039;&#039; ou csh (par défaut) :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;setenv MAVARIABLE mavaleur&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cette commande positionnera la variable &amp;lt;code&amp;gt;MAVARIABLE&amp;lt;/code&amp;gt; à la valeur &amp;lt;code&amp;gt;mavaleur&amp;lt;/code&amp;gt;. Vous pouvez le vérifier, en tapant la commande &amp;lt;code&amp;gt;echo $MAVARIABLE&amp;lt;/code&amp;gt; qui écrira à l&#039;écran &amp;quot;&amp;lt;code&amp;gt;mavaleur&amp;lt;/code&amp;gt;&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Vous pouvez ainsi ajouter le chemin &amp;lt;code&amp;gt;/home/user/bin&amp;lt;/code&amp;gt; à votre &amp;lt;code&amp;gt;$PATH&amp;lt;/code&amp;gt; si vous installez des logiciels dans votre répertoire personnel par exemple. Sous bash, cela donnera : export &amp;lt;code&amp;gt;PATH=$PATH:/home/user/bin&amp;lt;/code&amp;gt;. Cependant, de même que pour les aliases, ce nouveau PATH sera perdu dès votre déconnexion...&lt;br /&gt;
&lt;br /&gt;
Attention, en général, le répertoire courant &#039;&amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt;&#039; ne fait pas partie du PATH pour des raisons de sécurité : imaginez qu&#039;une personne mal intentionnée aie mis un programme destructeur appelé &amp;quot;&amp;lt;code&amp;gt;ls&amp;lt;/code&amp;gt;&amp;quot; dans votre répertoire, vous le lanceriez dès que vous taperiez la commande &amp;lt;code&amp;gt;ls&amp;lt;/code&amp;gt; ! C&#039;est pourquoi il faut toujours faire précéder de son chemin complet une commande qui n&#039;est pas dans le PATH, et ce même si vous êtes dans le même répertoire que la commande ! Ainsi,Â  il ne faut pas taper &amp;lt;code&amp;gt;configure&amp;lt;/code&amp;gt;, mais &amp;lt;code&amp;gt;./configure&amp;lt;/code&amp;gt; (programme classique à lancer avant compilation d&#039;un logiciel), ce qui signifie : lance le programme &#039;&amp;lt;code&amp;gt;configure&amp;lt;/code&amp;gt;&#039; qui est présent dans le répertoire courant.&lt;br /&gt;
&lt;br /&gt;
Le &#039;&#039;&#039;prompt&#039;&#039;&#039; est également contenu dans une variable d&#039;environnement : &amp;lt;code&amp;gt;PS1&amp;lt;/code&amp;gt;. &amp;lt;br /&amp;gt; Le prompt par défaut de la Mandrake par exemple, &amp;lt;code&amp;gt;[user@localhost user]$&amp;lt;/code&amp;gt;, est défini comme suit : &amp;lt;code&amp;gt;PS1=&amp;quot;[u@h W]$ &amp;quot;&amp;lt;/code&amp;gt;. &amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;u&amp;lt;/code&amp;gt; est l&#039;utilisateur, &amp;lt;code&amp;gt;h&amp;lt;/code&amp;gt; le nom de machine (hostname), &amp;lt;code&amp;gt;w&amp;lt;/code&amp;gt; le chemin courant (ex : &amp;lt;code&amp;gt;/usr/doc&amp;lt;/code&amp;gt;), &amp;lt;code&amp;gt;W&amp;lt;/code&amp;gt; le répertoire courant (ex : &amp;lt;code&amp;gt;doc&amp;lt;/code&amp;gt;)... voyez &amp;lt;code&amp;gt;man bash&amp;lt;/code&amp;gt; pour l&#039;ensemble des possibilités.&lt;br /&gt;
&lt;br /&gt;
Une autre variable d&#039;environnement utile : PROMPT_COMMAND. Cette variable contient une commande qui est exécutée à chaque fois que le prompt est affiché. Cela permet des tas de fantaisies rigolotes, comme par exemple de jouer un son (trop utile :-) ou de positionner le titre d&#039;un xterm avec le nom du répertoire courant (voir &amp;lt;code&amp;gt;man xterm&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Regardez la [#configuration_shell configuration du shell] : vous pouvez définir vos variables dans le fichier &amp;lt;code&amp;gt;~/.bash_profile&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Configuration du shell ==&lt;br /&gt;
&lt;br /&gt;
Vous pouvez enregistrer des fichiers qui seront lus et exécutés par votre shell, lors de l&#039;ouverture d&#039;un terminal, aussi bien que lors de sa fermeture. Cela va vous permettre d&#039;y placer vos aliases préférés, et vos variables d&#039;environnement.&lt;br /&gt;
&lt;br /&gt;
Pour &#039;&#039;&#039;bash&#039;&#039;&#039; et consorts, ces fichiers s&#039;appellent : &amp;lt;code&amp;gt;.bashrc&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.bash_profile&amp;lt;/code&amp;gt; pour la connexion et &amp;lt;code&amp;gt;.bash_logout&amp;lt;/code&amp;gt; pour la déconnexion. &amp;lt;br /&amp;gt; Pour &#039;&#039;&#039;tcsh&#039;&#039;&#039; et ses potes, ces fichiers s&#039;appellent : &amp;lt;code&amp;gt;.tcshrc&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.login&amp;lt;/code&amp;gt; pour la connexion et &amp;lt;code&amp;gt;.logout&amp;lt;/code&amp;gt; pour la déconnexion. &amp;lt;br /&amp;gt; Ces fichiers se situent tous dans le répertoire maison de l&#039;utilisateur ($HOME). Notez bien qu&#039;ils commencent par un point : ce sont des fichiers cachés. Pour les voir, il faut faire un &amp;quot;&amp;lt;code&amp;gt;ls -a&amp;lt;/code&amp;gt;&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Examinez les avec votre éditeur de texte préféré, et vous verrez comment ajouter de nouveaux aliases et variables d&#039;environnement, ainsi que lancer tel ou tel programme automatiquement : en tant que &#039;&#039;scripts shell&#039;&#039;, ces programmes sont en fait une suite d&#039;instructions qui sera interprétée par le shell.Â &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Les entrailles du shell ==&lt;br /&gt;
&lt;br /&gt;
Vous êtes maintenant munis d&#039;une jolie batterie d&#039;outils qui va entre autres vous permettre d&#039;écrire tous vos scripts shell. Toutefois même en ayant récupéré la synthaxe de commandes vous continuez à subir des erreurs... Soit la commande ne vous retourne pas le résultat attendu soit le shell vous retourne des erreurs... &amp;lt;br /&amp;gt; Ne vous êtes vous jamais posé cette question : est-ce que je mets des simples quotes, des doubles quotes ou des back quotes ? &amp;lt;br /&amp;gt; Pour ne plus avoir à se poser ce genre de questions, il est essentiel de bien connaitre le fonctionnement interne du shell.&lt;br /&gt;
&lt;br /&gt;
=== Les grandes étapes de l&#039;interprétation d&#039;une ligne de commandes ===&lt;br /&gt;
&lt;br /&gt;
Pour mieux comprendre le résultat obtenu, il faut savoir que le shell lit plusieurs fois la ligne avant d&#039;exécuter la commande. &amp;lt;br /&amp;gt; Cette lecture se fait dans l&#039;ordre suivant :&lt;br /&gt;
&lt;br /&gt;
# substition de variables : le shell remplace les variables par leurs valeurs&lt;br /&gt;
# substitution de commandes : le shell remplace une variable par son contenu qui est le résultat d&#039;une commande&lt;br /&gt;
# interprétation des pipes et des redirections&lt;br /&gt;
# expansion des noms de fichiers : interprétation des caractères spéciaux pour compléter un nom de fichier et/ou de répertoire&lt;br /&gt;
# exécution de la commande&lt;br /&gt;
&lt;br /&gt;
On se rend donc compte qu&#039;un caractère spécial peut être interprété par le shell avant d&#039;être interprété au sein de la commande.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Exemple&#039;&#039;&#039; : le caractère &amp;lt;code&amp;gt;&amp;quot;*&amp;quot;&amp;lt;/code&amp;gt; peut être interprété par le shell (remplace 0 ou n caractères pour compléter un nom de fichier) ou par une commande comme &amp;lt;code&amp;gt;grep&amp;lt;/code&amp;gt; (répète de 0 à n fois le caractère précédent dans une chaîne de caractères). Toutefois, sans précision dans la synthaxe, et selon les étapes ci-dessus, le caractère sera d&#039;abord interprété par le shell. D&#039;où quelques surprises dans le résultat de la commande.&lt;br /&gt;
&lt;br /&gt;
=== L&#039;interprétation des caractères spéciaux ===&lt;br /&gt;
&lt;br /&gt;
Pour choisir de faire interpréter les caractères spéciaux par le shell ou la commande, il existe 3 possibilités :&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;utilisation des doubles quotes&#039;&#039;&#039; (ou guillemets en bon français) : lorsque la chaîne de caractères est écrite entre guillemets, tous les caractères spéciaux perdent leur signification &#039;&#039;&#039;sauf&#039;&#039;&#039; : &#039;&#039;&#039;$ \&#039;&#039;&#039; et &#039;&#039;&#039;``&#039;&#039;&#039; (simples quotes).&lt;br /&gt;
exemple :&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&#039;&#039;&#039;[user@localhost user]$&#039;&#039;&#039; echo * &amp;lt;br /&amp;gt; bidule fic1 fic2 truc&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039; est un caractère spécial non protégé. Au premier passage du shell, il est donc interprété. Il signifie alors l&#039;ensemble des fichiers du répertoire courant&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&#039;&#039;&#039;[user@localhost user]$&#039;&#039;&#039; echo &amp;quot;*&amp;quot; &amp;lt;br /&amp;gt; * &amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039; est protégé par les guillemets. Il n&#039;est donc pas interprété par le shell comme caractère spécial et devient un caractère pour la commande echo. Dans le cadre de cette commande, * n&#039;a aucune signification particulière, il est donc affiché à l&#039;écran tel que.&lt;br /&gt;
* &#039;&#039;&#039;utilisation des simples quotes&#039;&#039;&#039; : lorsque la chaîne de caractères est écrite entre simples quotes, tous les caractères spéciaux sans exception perdent leur signification pour le shell. Ils seront donc éventuellement interprété par la commande passée.&lt;br /&gt;
exemple : recherche des lignes d&#039;un script utilisant la variable PATH&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&#039;&#039;&#039;[user@localhost user]$&#039;&#039;&#039; grep $PATH /home/user/script &amp;lt;br /&amp;gt;&#039;&#039;&#039;[user@localhost user]$&#039;&#039;&#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
Au premier passage, le shell interprète le &#039;&#039;&#039;$&#039;&#039;&#039; comme introduisant une variable. Il remplace donc la variable par son contenu puis exécute la commande &amp;lt;code&amp;gt;grep&amp;lt;/code&amp;gt;. Il ne trouve donc aucune ligne comportant les chemins référencés dans PATH.&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&#039;&#039;&#039;[user@localhost user]$&#039;&#039;&#039; grep &#039;$PATH&#039; /home/user/script &amp;lt;br /&amp;gt; echo $PATH &amp;lt;br /&amp;gt;&#039;&#039;&#039;[user@localhost user]$&#039;&#039;&#039; &amp;lt;/div&amp;gt;&lt;br /&gt;
Le shell n&#039;interprète pas le &#039;&#039;&#039;$&#039;&#039;&#039; lors du premier passage car sa signification est annulée par les simples quotes. le $ est donc traité par la commande grep. Comme il n&#039;a pas de signification particulière, il est interprété comme un caractère quelconque.&lt;br /&gt;
* annulation d&#039;un caractère spécial avec \ : pour empêcher le shell d&#039;interpréter un caractère spécial, il suffit de positionner un anti-slash devant le caractère spécial donné.&lt;br /&gt;
exemple : pour reprendre l&#039;exemple précédent on aurait pu écrire aussi :&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&#039;&#039;&#039;[user@localhost user]$&#039;&#039;&#039; grep \$PATH /home/user/script &amp;lt;br /&amp;gt; echo $PATH &amp;lt;br /&amp;gt;&#039;&#039;&#039;[user@localhost user]$&#039;&#039;&#039; &amp;lt;/div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
=== Liste des caractères spéciaux ===&lt;br /&gt;
&lt;br /&gt;
Ci-dessous la liste des caractères spéciaux du shell :&lt;br /&gt;
&lt;br /&gt;
{| width=&amp;quot;75%&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|- bgcolor=&amp;quot;#CCCCCC&amp;quot;&lt;br /&gt;
| width=&amp;quot;8%&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;&amp;amp;&#039;&#039;&#039;&lt;br /&gt;
| width=&amp;quot;92%&amp;quot; |&lt;br /&gt;
processus en arrière-plan&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;8%&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;~&#039;&#039;&#039;&lt;br /&gt;
| width=&amp;quot;92%&amp;quot; |&lt;br /&gt;
home directory&lt;br /&gt;
|- bgcolor=&amp;quot;#CCCCCC&amp;quot;&lt;br /&gt;
| width=&amp;quot;8%&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;nowiki&amp;gt;;&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
| width=&amp;quot;92%&amp;quot; |&lt;br /&gt;
séparateur de commandes&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;8%&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;\&#039;&#039;&#039;&lt;br /&gt;
| width=&amp;quot;92%&amp;quot; |&lt;br /&gt;
annulation d&#039;un caractère spécial&lt;br /&gt;
|- bgcolor=&amp;quot;#CCCCCC&amp;quot;&lt;br /&gt;
| width=&amp;quot;8%&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
| width=&amp;quot;92%&amp;quot; |&lt;br /&gt;
doubles quotes : encadre une chaîne de caractères et annule la signification de $, \ et &#039;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;8%&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;`&#039;&#039;&#039;&lt;br /&gt;
| width=&amp;quot;92%&amp;quot; |&lt;br /&gt;
back quotes : substitution de commandes&lt;br /&gt;
|- bgcolor=&amp;quot;#CCCCCC&amp;quot;&lt;br /&gt;
| width=&amp;quot;8%&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| width=&amp;quot;92%&amp;quot; |&lt;br /&gt;
simples quotes : encadre une chaîne de caractères et annule la signification de tous les caractères spéciaux&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;8%&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
| width=&amp;quot;92%&amp;quot; |&lt;br /&gt;
commentaire&lt;br /&gt;
|- bgcolor=&amp;quot;#CCCCCC&amp;quot;&lt;br /&gt;
| width=&amp;quot;8%&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;( )&#039;&#039;&#039;&lt;br /&gt;
| width=&amp;quot;92%&amp;quot; |&lt;br /&gt;
exécution d&#039;un shell fils&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;8%&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;[ ]&#039;&#039;&#039;&lt;br /&gt;
| width=&amp;quot;92%&amp;quot; |&lt;br /&gt;
test&lt;br /&gt;
|- bgcolor=&amp;quot;#CCCCCC&amp;quot;&lt;br /&gt;
| width=&amp;quot;8%&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;|&#039;&#039;&#039;&lt;br /&gt;
| width=&amp;quot;92%&amp;quot; |&lt;br /&gt;
pipe&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;8%&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;$&#039;&#039;&#039;&lt;br /&gt;
| width=&amp;quot;92%&amp;quot; |&lt;br /&gt;
variable&lt;br /&gt;
|- bgcolor=&amp;quot;#CCCCCC&amp;quot;&lt;br /&gt;
| width=&amp;quot;8%&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
| width=&amp;quot;92%&amp;quot; |&lt;br /&gt;
remplace 0 ou n caractères&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;8%&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;!&#039;&#039;&#039;&lt;br /&gt;
| width=&amp;quot;92%&amp;quot; |&lt;br /&gt;
négation d&#039;un test&lt;br /&gt;
|- bgcolor=&amp;quot;#CCCCCC&amp;quot;&lt;br /&gt;
| width=&amp;quot;8%&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;?&#039;&#039;&#039;&lt;br /&gt;
| width=&amp;quot;92%&amp;quot; |&lt;br /&gt;
remplace 1 caractère&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;8%&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;&amp;lt; &amp;gt;&#039;&#039;&#039;&lt;br /&gt;
| width=&amp;quot;92%&amp;quot; |&lt;br /&gt;
redirections entrée, sortie&lt;br /&gt;
|- bgcolor=&amp;quot;#CCCCCC&amp;quot;&lt;br /&gt;
| width=&amp;quot;8%&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;$0...$9&#039;&#039;&#039;&lt;br /&gt;
| width=&amp;quot;92%&amp;quot; |&lt;br /&gt;
variables de position&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Appel des commandes ===&lt;br /&gt;
&lt;br /&gt;
Autre élément à connaître pour ne pas avoir de surprise : à quel type de commande ai-je à faire ? on distingue des grands types de commande&lt;br /&gt;
&lt;br /&gt;
* des commandes internes au shell : elles sont exécutées dans le même shell. si elles sont lancées à partir du shell père, il n&#039;y aura pas création de shell fils&lt;br /&gt;
* des programmes binaires exécutables&lt;br /&gt;
* des fichiers de commande (shell-scripts)&lt;br /&gt;
* des alias&lt;br /&gt;
* des fonctions&lt;br /&gt;
&lt;br /&gt;
La difficulté c&#039;est que le shell interprète une commande en suivant un ordre très précis :&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;le chemin de la commande comporte un /&#039;&#039;&#039;, il exécute donc la commande située dans ce chemin, il n&#039;y a pas d&#039;ambiguïté possible.&lt;br /&gt;
* &#039;&#039;&#039;le chemin de la commande ne comporte pas de /&#039;&#039;&#039;, il cherche la commande en suivant les étapes suivantes : &amp;lt;br /&amp;gt;&lt;br /&gt;
*# consultation de la liste des alias&lt;br /&gt;
*# consultations des fonctions chargées&lt;br /&gt;
*# consultations des commandes internes du shell&lt;br /&gt;
*# consultation de la variable PATH&lt;br /&gt;
&lt;br /&gt;
Donc si vous tapez une commande quelleconque, un script shell par exemple, sans préciser le chemin, la consultation de la variable PATH n&#039;arrive qu&#039;en dernier. Attention si vous disposez d&#039;un alias ou d&#039;une fonction qui porte le même nom, il traitera l&#039;alias ou la fonction.&lt;br /&gt;
&lt;br /&gt;
Pour terminer 2 commandes utiles pour savoir à quel type de commande vous avez à faire :&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;type nom_de_commande&#039;&#039;&#039;&amp;lt;/code&amp;gt; : permet de déterminer le type d&#039;une commande (alias, fonction, commande interne...)&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;which nom_de_commande&#039;&#039;&#039;&amp;lt;/code&amp;gt; : recherche le chemin de la commande dans PATH&lt;br /&gt;
exemples :&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&#039;&#039;&#039;[user@localhost user]$&#039;&#039;&#039; type ls &amp;lt;br /&amp;gt; ls est un alias suivi pour /usr/bin/ls &amp;lt;br /&amp;gt;&#039;&#039;&#039;[user@localhost user]$&#039;&#039;&#039; type cd &amp;lt;br /&amp;gt; cd est une commande prédéfinie du shell &amp;lt;br /&amp;gt;&#039;&#039;&#039;[user@localhost user]$&#039;&#039;&#039; which pwd &amp;lt;br /&amp;gt; /usr/bin/pwd &amp;lt;br /&amp;gt; &amp;lt;/div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Index des commandes ==&lt;br /&gt;
&lt;br /&gt;
heu... bon là j&#039;en ai marre, on verra ça plus tard ! &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;:-)&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Je place quand même ici 2 commandes qui peuvent être bien utiles :&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;code&amp;gt;cal&amp;lt;/code&amp;gt;&#039;&#039;&#039; : donne le calendrier du mois courant, &amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;cal 12 1999&amp;lt;/code&amp;gt; : donne le calendrier de décembre 1999, &amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;cal 2000&amp;lt;/code&amp;gt; : donne le calendrier des 12 mois de l&#039;an 2000.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&#039;&#039;&#039;factor&#039;&#039;&#039; 12456988&amp;lt;/code&amp;gt; : donne la décomposition en produit de facteurs premiers du nombre 12456988 (soit  2 x 2 x 17 x 183191) - c&#039;est très mathématique, mais ultra rapide et puissant.&lt;br /&gt;
&lt;br /&gt;
Pour terminer cet article, je vous renvoie vers ce petit manuel de référence, qui contient l&#039;ensemble des commandes usuelles :&lt;br /&gt;
&lt;br /&gt;
* [http://www.softndesign.org/?page=manuels/unix-1.phpã=FR  Débuter en shell],&lt;br /&gt;
* [http://www.softndesign.org/?page=manuels/unix-2.phpã=FR  Petit manuel de référence],&lt;br /&gt;
* [http://www.softndesign.org/?page=manuels/unix-3.phpã=FR  Pour aller plus loin].&lt;br /&gt;
et aussi :&lt;br /&gt;
* [http://club.mandriva.com/xwiki/bin/KB/BasicsIndex#shellã=FR  Les bases du shell]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;merci&amp;quot;&amp;gt;Cette page est issue de la documentation &#039;pré-wiki&#039; de Léa a été convertie avec HTML::WikiConverter. Elle fut créée par Jean-Christophe Cardot le 02/11/1999.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Copyright =&lt;br /&gt;
Copyright &amp;amp;copy; 02/11/1999, Jean-Christophe Cardot&lt;br /&gt;
{{CC-BY-NC-SA}}&lt;/div&gt;</summary>
		<author><name>Ptyxs</name></author>
	</entry>
	<entry>
		<id>https://lea-linux.org/docs/index.php?title=Trucs:%C3%83%E2%80%B0couter_les_radios_sur_internet&amp;diff=11068</id>
		<title>Trucs:Ã‰couter les radios sur internet</title>
		<link rel="alternate" type="text/html" href="https://lea-linux.org/docs/index.php?title=Trucs:%C3%83%E2%80%B0couter_les_radios_sur_internet&amp;diff=11068"/>
		<updated>2005-12-09T14:02:30Z</updated>

		<summary type="html">&lt;p&gt;Ptyxs : /* Liste d&amp;#039;adresses mms:// ou http:// */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;leapar&amp;quot;&amp;gt;Léa (Jice)&amp;lt;taz98 chez altern point org&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Trouver des radios sur le net=&lt;br /&gt;
&lt;br /&gt;
Pour écouter une radio diffusant au format &#039;&#039;windows media player&#039;&#039;, il faut récupérer lâadresse commençant par mms:// dans le code HTML du lecteur (ce qui nâest pas évident car il y a souvent des tonnes de cadres, ou des sous-fichiers .asx à ouvrir), et le lancer par exemple avec &#039;&#039;&#039;mplayer&#039;&#039;&#039; *. &amp;lt;br /&amp;gt;&lt;br /&gt;
Ainsi pour écouter Oui FM : &amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;$ mplayer -nocache mms://vipbu.yacast.fr/encoderouifm&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;Et ça marche !!! &lt;br /&gt;
&lt;br /&gt;
==Liste d&#039;adresses mms:// ou http://==&lt;br /&gt;
&lt;br /&gt;
; Chérie FM : &amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt; mms://vip1.yacast.fr/encodercheriefm&amp;lt;/nowiki&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
; Divergences FM : &amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;http://stream.oyez.info:8000/divergence.ogg&amp;lt;/nowiki&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
; Europe 2 : &amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt; mms://viptvr.yacast.fr/tvr_europe2&amp;lt;/nowiki&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
; France Culture &amp;lt;br /&amp;gt; (à essayer si le suivant ne marche pas) : &amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;mms://viptvr.yacast.net/tvr_franceculture&amp;lt;/nowiki&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
; France Culture ogg : &amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;http://ogg.tv-radio.fr:1441/encoderfculture.ogg&amp;lt;/nowiki&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
; France Musiques : &amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;http://ogg.tv-radio.fr:1441/encoderfmusiques.ogg&amp;lt;/nowiki&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
; Fun Radio en MP3 : &amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;mms://vip2.yacast.fr/encoderfun1&amp;lt;/nowiki&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;nowiki&amp;gt;mms://vipbu.yacast.fr/encoderfun1&amp;lt;/nowiki&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
; Fun Radio : &amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;mms://vip2.yacast.fr/encoderfun&amp;lt;/nowiki&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
; Le Mouv&#039; :  &amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt; mms://viptvr.yacast.fr/encoderlemouv&amp;lt;/nowiki&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
; Nostalgie : &amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt; mms://vip1.yacast.fr/encodernostalgie&amp;lt;/nowiki&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
; NRJ : &amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;mms://vip1.yacast.fr/encodernrj &amp;lt;/nowiki&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;nowiki&amp;gt;mms://vipbu.yacast.fr/encodernrj&amp;lt;/nowiki&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
; Oui FM : &amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;mms://vip7.yacast.fr/encoderouifm&amp;lt;/nowiki&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;nowiki&amp;gt;mms://vipbu.yacast.fr/encoderouifm&amp;lt;/nowiki&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
; Radio Classique : &amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;http://wmbcast.tv-radio.speedera.net/wmbcast.tv-radio/wmbcast_tv-radio_jan132005_0605_86563?site/.WMA&amp;lt;/nowiki&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
; Radio Nova : &amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt; mms://wmbcast.tvradio-global.speedera.net&amp;lt;/nowiki&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
/wmbcast.tvradio-global/wmbcast_tvradio-global_mar062002_0531_12963&amp;lt;/nowiki&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
; RFM : &amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt; mms://wmbcast.rfm.speedera.net &amp;lt;/nowiki&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;nowiki&amp;gt; /wmbcast.rfm/wmbcast_rfm_nov292001_1220_12958&amp;lt;/nowiki&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
; RTL2 : &amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt; mms://vipbu.yacast.fr/encoderrtl2&amp;lt;/nowiki&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
; Skyrock : &amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;mms://vipbu.yacast.fr/encoderskyrock &amp;lt;/nowiki&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;nowiki&amp;gt;mms://vip3.yacast.fr/encoderskyrock&amp;lt;/nowiki&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
N&#039;hésitez pas à en ajouter d&#039;autres.&lt;br /&gt;
&lt;br /&gt;
== Où en trouver d&#039;autres ?==&lt;br /&gt;
Sur ces sites :&lt;br /&gt;
* [http://mypage.bluewin.ch/a-z/cusipage/liveradio2.html http://mypage.bluewin.ch/a-z/cusipage/liveradio2.html]  &lt;br /&gt;
* [http://www.trustonme.net/didactels/215.html http://www.trustonme.net/didactels/215.html]&lt;br /&gt;
* [http://www.winampfr.com/forum/viewtopic.php?t=10354&amp;amp;sid=44 http://www.winampfr.com/forum/]&lt;br /&gt;
* [http://geodisi.u-strasbg.fr/~daurat/radios.html http://geodisi.u-strasbg.fr/~daurat/radios.html]&lt;br /&gt;
* [http://www.radiofrance.fr/services/aide/difflive.php#ogg http://www.radiofrance.fr/services/aide/difflive.php]&lt;br /&gt;
&lt;br /&gt;
Pour les radios mms, il suffit de récupérer l&#039;adresse dans les fichiers &amp;lt;code&amp;gt;.asx&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Remarques :==&lt;br /&gt;
&lt;br /&gt;
* Cette solution ne peut être que temporaire. &#039;&#039;&#039;Demandez à ces radios l&#039;utilisation d&#039;un format ouvert, ou mieux libre&#039;&#039;&#039; (par courriel ou autre) ! Plus nous serons nombreux à le faire, plus ils comprendront l&#039;importance pour eux de le faire.&lt;br /&gt;
* De plus, demandez leur de diffuser dans un format libre (ogg/vorbis). De cette manière, tout système d&#039;exploitation aura accès à leur radio sur le net !&lt;br /&gt;
* Consultez aussi [http://www.geocities.com/majormms/ le site de &#039;&#039;&#039;Major MMS&#039;&#039;&#039;] afin de récupérer des programmes intéressants pour gérer le protocole MMS (protocole inventé par Microsoft) : plugin pour Xine (pour utiliser Xine à la place de mplayer) - disponible aussi sur le [http://plf.zarb.org Penguin Liberation Front], et client mms permettant d&#039;enregistrer le flux de données sur le disque dur.&lt;br /&gt;
&lt;br /&gt;
==Remarques techniques :==&lt;br /&gt;
&lt;br /&gt;
* Si votre connexion est un peu lente ou chargée, et que le son saccade, essayez de remplacer &amp;lt;code&amp;gt;-nocache&amp;lt;/code&amp;gt; par &amp;lt;code&amp;gt;-cache 128&amp;lt;/code&amp;gt; par exemple (ajoute un buffer de 128 Ko, soit une réserve de son de quelques secondes...).&lt;br /&gt;
* Si malgré cela, le son saute toujours toutes les 20 à 30 secondes, ajoutez à la ligne de commande de mplayer &amp;lt;code&amp;gt;mplayer -cache 128 &#039;&#039;&#039;-afm acm&#039;&#039;&#039;...&amp;lt;/code&amp;gt; (astuce rapportée par Anthony).&lt;br /&gt;
* Si vous avez l&#039;erreur &amp;lt;code&amp;gt;couldn&#039;t open/init audio device -&amp;gt; NOSOUND&amp;lt;/code&amp;gt; : si vous utilisez KDE (démon de son arts), ajoutez &amp;lt;code&amp;gt;-ao arts&amp;lt;/code&amp;gt; à la ligne de commande, pour Gnome (démon de son esd) : &amp;lt;code&amp;gt;-ao esd&amp;lt;/code&amp;gt;, etc. (voir &amp;lt;code&amp;gt;mplayer -ao help&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
=Accès rapide=&lt;br /&gt;
==Avec un raccourci==&lt;br /&gt;
Créez des icônes sur votre bureau pour jouer les radios d&#039;un seul clic ! Dans KDE par exemple, faites un clic droit sur le bureau, nouveau -&amp;gt; lien vers une application, puis onglet Exécution, Commande: mettez la commande mplayer correspondante, précédée de &amp;lt;code&amp;gt;killall player&amp;lt;/code&amp;gt; afin de pouvoir zapper (par exemple : &amp;lt;code&amp;gt;killall mplayer ; mplayer -nocache -ao arts mms://vipbu.yacast.fr/encoderskyrock&amp;lt;/code&amp;gt;). Faites aussi une icône &amp;quot;stop radio&amp;quot;, avec comme commande : &amp;lt;code&amp;gt;killall mplayer&amp;lt;/code&amp;gt;. Et voilà :)&lt;br /&gt;
&lt;br /&gt;
Bref, je voulais dire qu&#039;on peut utiliser celà de manière simple &amp;lt;br /&amp;gt;avec un petit coup d&#039;alias et de complétion programmable :&lt;br /&gt;
&lt;br /&gt;
==Avec un alias==&lt;br /&gt;
Pour simplifier encore l&#039;utilisation grâce aux alias et à la complétion. Par exemple, on peut modifier son &amp;lt;code&amp;gt;~/.bashrc&amp;lt;/code&amp;gt; de la manière suivante:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;# $HOME/.bashrc &amp;lt;/nowiki&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;nowiki&amp;gt;# il y a déjà le mplayer (G)raphique, voici celui pour les (R)adios &amp;lt;/nowiki&amp;gt;&amp;lt;br /&amp;gt;alias rmplayer=&amp;quot;mplayer -nocache &amp;quot; &amp;lt;br /&amp;gt;&amp;lt;nowiki&amp;gt;# completion programmable sur les URLs qui vont bien &amp;lt;/nowiki&amp;gt;&amp;lt;br /&amp;gt;complete -W &amp;quot; &#039;mms://vip7.yacast.fr/encoderouifm&#039; &amp;lt;br /&amp;gt;&#039;mms://vipbu.yacast.fr/encoderouifm&#039; &amp;lt;br /&amp;gt;&#039;mms://vip2.yacast.fr/encoderfun1&#039; &amp;lt;br /&amp;gt;&#039;mms://vipbu.yacast.fr/encoderfun&#039; &amp;lt;br /&amp;gt;&#039;mms://vip1.yacast.fr/encodernrj&#039; &amp;lt;br /&amp;gt;&#039;mms://vipbu.yacast.fr/encodernrj&#039; &amp;lt;br /&amp;gt;&#039;mms://vip1.yacast.fr/encodernostalgie&#039; &amp;lt;br /&amp;gt;&amp;lt;nowiki&amp;gt;# &amp;lt;/nowiki&amp;gt;&#039;&#039;etc, pareil pour toutes les autres urls&#039;&#039;&amp;lt;br /&amp;gt;&amp;quot; rmplayer &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Suivant le bureau que vous utilisez, vous pouvez changer l&#039;alias: &amp;lt;br /&amp;gt;exemple pour KDE : &amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;alias rmplayer=&amp;quot;mplayer -ao arts -nocache&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Utilisation : &amp;lt;br /&amp;gt;simple, tapez juste &amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;rmplayer &#039; (un guillemet) [TAB]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(n&#039;oubliez pas le guillemet, sinon ça ne marche pas). La liste des radios qu&#039;il faut apparaît après avoir appuyé sur la touche [TAB].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;* voir la &amp;lt;/nowiki&amp;gt;[../logi/?aff_item=54 fiche de mplayer dans la logithèque]. Pour installer mplayer sur une Mandrake (avec support des dvd cryptés et tout et tout), le moyen le plus simple est de visiter le [http://plf.zarb.org Penguin liberation front], de l&#039;installer comme spécifié sur la première page, puis taper : &amp;lt;code&amp;gt;urpmi mplayer&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Enregistrer une radio==&lt;br /&gt;
&lt;br /&gt;
Pour enregistrer une radio on peut utiliser la commande:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code multi&amp;gt;mplayer  -nocache mms://viptvr.yacast.fr/encoderlemouv &#039;&#039;&#039;-dumpstream&#039;&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
mplayer enregistre alors le flux dans un fichier nommé &amp;lt;code&amp;gt;stream.dump&amp;lt;/code&amp;gt;. Ce fichier est au même format que le flux de la radio, on peut éventuellement le ré-encoder dans un autre format.&lt;br /&gt;
&lt;br /&gt;
Si on veut que l&#039;ordinateur enregistre une émission de radio en notre absence, on peut combiner cette commande avec atd ([http://lea-linux.org/cached/index/Admin-admin_tools-automate.html voir cette page]).&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Trucs_multimedia]]&lt;/div&gt;</summary>
		<author><name>Ptyxs</name></author>
	</entry>
	<entry>
		<id>https://lea-linux.org/docs/index.php?title=Trucs:%C3%83%E2%80%B0couter_les_radios_sur_internet&amp;diff=11067</id>
		<title>Trucs:Ã‰couter les radios sur internet</title>
		<link rel="alternate" type="text/html" href="https://lea-linux.org/docs/index.php?title=Trucs:%C3%83%E2%80%B0couter_les_radios_sur_internet&amp;diff=11067"/>
		<updated>2005-12-09T13:56:49Z</updated>

		<summary type="html">&lt;p&gt;Ptyxs : /* Où en trouver d&amp;#039;autres ? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;leapar&amp;quot;&amp;gt;Léa (Jice)&amp;lt;taz98 chez altern point org&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Trouver des radios sur le net=&lt;br /&gt;
&lt;br /&gt;
Pour écouter une radio diffusant au format &#039;&#039;windows media player&#039;&#039;, il faut récupérer lâadresse commençant par mms:// dans le code HTML du lecteur (ce qui nâest pas évident car il y a souvent des tonnes de cadres, ou des sous-fichiers .asx à ouvrir), et le lancer par exemple avec &#039;&#039;&#039;mplayer&#039;&#039;&#039; *. &amp;lt;br /&amp;gt;&lt;br /&gt;
Ainsi pour écouter Oui FM : &amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;$ mplayer -nocache mms://vipbu.yacast.fr/encoderouifm&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;Et ça marche !!! &lt;br /&gt;
&lt;br /&gt;
==Liste d&#039;adresses mms:// ou http://==&lt;br /&gt;
&lt;br /&gt;
; Chérie FM : &amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt; mms://vip1.yacast.fr/encodercheriefm&amp;lt;/nowiki&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
; Divergences FM : &amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;http://stream.oyez.info:8000/divergence.ogg&amp;lt;/nowiki&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
; Europe 2 : &amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt; mms://viptvr.yacast.fr/tvr_europe2&amp;lt;/nowiki&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
; France Culture &amp;lt;br /&amp;gt; (à essayer si le suivant ne marche pas) : &amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;mms://viptvr.yacast.net/tvr_franceculture&amp;lt;/nowiki&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
; France Culture ogg : &amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;http://ogg.tv-radio.fr:1441/encoderfculture.ogg&amp;lt;/nowiki&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
; France Musiques : &amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;http://ogg.tv-radio.fr:1441/encoderfmusiques.ogg&amp;lt;/nowiki&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
; Fun Radio en MP3 : &amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;mms://vip2.yacast.fr/encoderfun1&amp;lt;/nowiki&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;nowiki&amp;gt;mms://vipbu.yacast.fr/encoderfun1&amp;lt;/nowiki&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
; Fun Radio : &amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;mms://vip2.yacast.fr/encoderfun&amp;lt;/nowiki&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
; Le Mouv&#039; :  &amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt; mms://viptvr.yacast.fr/encoderlemouv&amp;lt;/nowiki&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
; Nostalgie : &amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt; mms://vip1.yacast.fr/encodernostalgie&amp;lt;/nowiki&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
; NRJ : &amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;mms://vip1.yacast.fr/encodernrj &amp;lt;/nowiki&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;nowiki&amp;gt;mms://vipbu.yacast.fr/encodernrj&amp;lt;/nowiki&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
; Oui FM : &amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;mms://vip7.yacast.fr/encoderouifm&amp;lt;/nowiki&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;nowiki&amp;gt;mms://vipbu.yacast.fr/encoderouifm&amp;lt;/nowiki&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
; Radio Nova : &amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt; mms://wmbcast.tvradio-global.speedera.net&amp;lt;/nowiki&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
/wmbcast.tvradio-global/wmbcast_tvradio-global_mar062002_0531_12963&amp;lt;/nowiki&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
; RFM : &amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt; mms://wmbcast.rfm.speedera.net &amp;lt;/nowiki&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;nowiki&amp;gt; /wmbcast.rfm/wmbcast_rfm_nov292001_1220_12958&amp;lt;/nowiki&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
; RTL2 : &amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt; mms://vipbu.yacast.fr/encoderrtl2&amp;lt;/nowiki&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
; Skyrock : &amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;mms://vipbu.yacast.fr/encoderskyrock &amp;lt;/nowiki&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;nowiki&amp;gt;mms://vip3.yacast.fr/encoderskyrock&amp;lt;/nowiki&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
N&#039;hésitez pas à en ajouter d&#039;autres.&lt;br /&gt;
&lt;br /&gt;
== Où en trouver d&#039;autres ?==&lt;br /&gt;
Sur ces sites :&lt;br /&gt;
* [http://mypage.bluewin.ch/a-z/cusipage/liveradio2.html http://mypage.bluewin.ch/a-z/cusipage/liveradio2.html]  &lt;br /&gt;
* [http://www.trustonme.net/didactels/215.html http://www.trustonme.net/didactels/215.html]&lt;br /&gt;
* [http://www.winampfr.com/forum/viewtopic.php?t=10354&amp;amp;sid=44 http://www.winampfr.com/forum/]&lt;br /&gt;
* [http://geodisi.u-strasbg.fr/~daurat/radios.html http://geodisi.u-strasbg.fr/~daurat/radios.html]&lt;br /&gt;
* [http://www.radiofrance.fr/services/aide/difflive.php#ogg http://www.radiofrance.fr/services/aide/difflive.php]&lt;br /&gt;
&lt;br /&gt;
Pour les radios mms, il suffit de récupérer l&#039;adresse dans les fichiers &amp;lt;code&amp;gt;.asx&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Remarques :==&lt;br /&gt;
&lt;br /&gt;
* Cette solution ne peut être que temporaire. &#039;&#039;&#039;Demandez à ces radios l&#039;utilisation d&#039;un format ouvert, ou mieux libre&#039;&#039;&#039; (par courriel ou autre) ! Plus nous serons nombreux à le faire, plus ils comprendront l&#039;importance pour eux de le faire.&lt;br /&gt;
* De plus, demandez leur de diffuser dans un format libre (ogg/vorbis). De cette manière, tout système d&#039;exploitation aura accès à leur radio sur le net !&lt;br /&gt;
* Consultez aussi [http://www.geocities.com/majormms/ le site de &#039;&#039;&#039;Major MMS&#039;&#039;&#039;] afin de récupérer des programmes intéressants pour gérer le protocole MMS (protocole inventé par Microsoft) : plugin pour Xine (pour utiliser Xine à la place de mplayer) - disponible aussi sur le [http://plf.zarb.org Penguin Liberation Front], et client mms permettant d&#039;enregistrer le flux de données sur le disque dur.&lt;br /&gt;
&lt;br /&gt;
==Remarques techniques :==&lt;br /&gt;
&lt;br /&gt;
* Si votre connexion est un peu lente ou chargée, et que le son saccade, essayez de remplacer &amp;lt;code&amp;gt;-nocache&amp;lt;/code&amp;gt; par &amp;lt;code&amp;gt;-cache 128&amp;lt;/code&amp;gt; par exemple (ajoute un buffer de 128 Ko, soit une réserve de son de quelques secondes...).&lt;br /&gt;
* Si malgré cela, le son saute toujours toutes les 20 à 30 secondes, ajoutez à la ligne de commande de mplayer &amp;lt;code&amp;gt;mplayer -cache 128 &#039;&#039;&#039;-afm acm&#039;&#039;&#039;...&amp;lt;/code&amp;gt; (astuce rapportée par Anthony).&lt;br /&gt;
* Si vous avez l&#039;erreur &amp;lt;code&amp;gt;couldn&#039;t open/init audio device -&amp;gt; NOSOUND&amp;lt;/code&amp;gt; : si vous utilisez KDE (démon de son arts), ajoutez &amp;lt;code&amp;gt;-ao arts&amp;lt;/code&amp;gt; à la ligne de commande, pour Gnome (démon de son esd) : &amp;lt;code&amp;gt;-ao esd&amp;lt;/code&amp;gt;, etc. (voir &amp;lt;code&amp;gt;mplayer -ao help&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
=Accès rapide=&lt;br /&gt;
==Avec un raccourci==&lt;br /&gt;
Créez des icônes sur votre bureau pour jouer les radios d&#039;un seul clic ! Dans KDE par exemple, faites un clic droit sur le bureau, nouveau -&amp;gt; lien vers une application, puis onglet Exécution, Commande: mettez la commande mplayer correspondante, précédée de &amp;lt;code&amp;gt;killall player&amp;lt;/code&amp;gt; afin de pouvoir zapper (par exemple : &amp;lt;code&amp;gt;killall mplayer ; mplayer -nocache -ao arts mms://vipbu.yacast.fr/encoderskyrock&amp;lt;/code&amp;gt;). Faites aussi une icône &amp;quot;stop radio&amp;quot;, avec comme commande : &amp;lt;code&amp;gt;killall mplayer&amp;lt;/code&amp;gt;. Et voilà :)&lt;br /&gt;
&lt;br /&gt;
Bref, je voulais dire qu&#039;on peut utiliser celà de manière simple &amp;lt;br /&amp;gt;avec un petit coup d&#039;alias et de complétion programmable :&lt;br /&gt;
&lt;br /&gt;
==Avec un alias==&lt;br /&gt;
Pour simplifier encore l&#039;utilisation grâce aux alias et à la complétion. Par exemple, on peut modifier son &amp;lt;code&amp;gt;~/.bashrc&amp;lt;/code&amp;gt; de la manière suivante:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;# $HOME/.bashrc &amp;lt;/nowiki&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;nowiki&amp;gt;# il y a déjà le mplayer (G)raphique, voici celui pour les (R)adios &amp;lt;/nowiki&amp;gt;&amp;lt;br /&amp;gt;alias rmplayer=&amp;quot;mplayer -nocache &amp;quot; &amp;lt;br /&amp;gt;&amp;lt;nowiki&amp;gt;# completion programmable sur les URLs qui vont bien &amp;lt;/nowiki&amp;gt;&amp;lt;br /&amp;gt;complete -W &amp;quot; &#039;mms://vip7.yacast.fr/encoderouifm&#039; &amp;lt;br /&amp;gt;&#039;mms://vipbu.yacast.fr/encoderouifm&#039; &amp;lt;br /&amp;gt;&#039;mms://vip2.yacast.fr/encoderfun1&#039; &amp;lt;br /&amp;gt;&#039;mms://vipbu.yacast.fr/encoderfun&#039; &amp;lt;br /&amp;gt;&#039;mms://vip1.yacast.fr/encodernrj&#039; &amp;lt;br /&amp;gt;&#039;mms://vipbu.yacast.fr/encodernrj&#039; &amp;lt;br /&amp;gt;&#039;mms://vip1.yacast.fr/encodernostalgie&#039; &amp;lt;br /&amp;gt;&amp;lt;nowiki&amp;gt;# &amp;lt;/nowiki&amp;gt;&#039;&#039;etc, pareil pour toutes les autres urls&#039;&#039;&amp;lt;br /&amp;gt;&amp;quot; rmplayer &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Suivant le bureau que vous utilisez, vous pouvez changer l&#039;alias: &amp;lt;br /&amp;gt;exemple pour KDE : &amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;alias rmplayer=&amp;quot;mplayer -ao arts -nocache&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Utilisation : &amp;lt;br /&amp;gt;simple, tapez juste &amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;rmplayer &#039; (un guillemet) [TAB]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(n&#039;oubliez pas le guillemet, sinon ça ne marche pas). La liste des radios qu&#039;il faut apparaît après avoir appuyé sur la touche [TAB].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;* voir la &amp;lt;/nowiki&amp;gt;[../logi/?aff_item=54 fiche de mplayer dans la logithèque]. Pour installer mplayer sur une Mandrake (avec support des dvd cryptés et tout et tout), le moyen le plus simple est de visiter le [http://plf.zarb.org Penguin liberation front], de l&#039;installer comme spécifié sur la première page, puis taper : &amp;lt;code&amp;gt;urpmi mplayer&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Enregistrer une radio==&lt;br /&gt;
&lt;br /&gt;
Pour enregistrer une radio on peut utiliser la commande:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code multi&amp;gt;mplayer  -nocache mms://viptvr.yacast.fr/encoderlemouv &#039;&#039;&#039;-dumpstream&#039;&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
mplayer enregistre alors le flux dans un fichier nommé &amp;lt;code&amp;gt;stream.dump&amp;lt;/code&amp;gt;. Ce fichier est au même format que le flux de la radio, on peut éventuellement le ré-encoder dans un autre format.&lt;br /&gt;
&lt;br /&gt;
Si on veut que l&#039;ordinateur enregistre une émission de radio en notre absence, on peut combiner cette commande avec atd ([http://lea-linux.org/cached/index/Admin-admin_tools-automate.html voir cette page]).&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Trucs_multimedia]]&lt;/div&gt;</summary>
		<author><name>Ptyxs</name></author>
	</entry>
	<entry>
		<id>https://lea-linux.org/docs/index.php?title=Trucs:%C3%83%E2%80%B0couter_les_radios_sur_internet&amp;diff=11066</id>
		<title>Trucs:Ã‰couter les radios sur internet</title>
		<link rel="alternate" type="text/html" href="https://lea-linux.org/docs/index.php?title=Trucs:%C3%83%E2%80%B0couter_les_radios_sur_internet&amp;diff=11066"/>
		<updated>2005-12-09T13:54:09Z</updated>

		<summary type="html">&lt;p&gt;Ptyxs : /* Où en trouver d&amp;#039;autres ? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;leapar&amp;quot;&amp;gt;Léa (Jice)&amp;lt;taz98 chez altern point org&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Trouver des radios sur le net=&lt;br /&gt;
&lt;br /&gt;
Pour écouter une radio diffusant au format &#039;&#039;windows media player&#039;&#039;, il faut récupérer lâadresse commençant par mms:// dans le code HTML du lecteur (ce qui nâest pas évident car il y a souvent des tonnes de cadres, ou des sous-fichiers .asx à ouvrir), et le lancer par exemple avec &#039;&#039;&#039;mplayer&#039;&#039;&#039; *. &amp;lt;br /&amp;gt;&lt;br /&gt;
Ainsi pour écouter Oui FM : &amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;$ mplayer -nocache mms://vipbu.yacast.fr/encoderouifm&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;Et ça marche !!! &lt;br /&gt;
&lt;br /&gt;
==Liste d&#039;adresses mms:// ou http://==&lt;br /&gt;
&lt;br /&gt;
; Chérie FM : &amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt; mms://vip1.yacast.fr/encodercheriefm&amp;lt;/nowiki&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
; Divergences FM : &amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;http://stream.oyez.info:8000/divergence.ogg&amp;lt;/nowiki&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
; Europe 2 : &amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt; mms://viptvr.yacast.fr/tvr_europe2&amp;lt;/nowiki&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
; France Culture &amp;lt;br /&amp;gt; (à essayer si le suivant ne marche pas) : &amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;mms://viptvr.yacast.net/tvr_franceculture&amp;lt;/nowiki&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
; France Culture ogg : &amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;http://ogg.tv-radio.fr:1441/encoderfculture.ogg&amp;lt;/nowiki&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
; France Musiques : &amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;http://ogg.tv-radio.fr:1441/encoderfmusiques.ogg&amp;lt;/nowiki&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
; Fun Radio en MP3 : &amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;mms://vip2.yacast.fr/encoderfun1&amp;lt;/nowiki&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;nowiki&amp;gt;mms://vipbu.yacast.fr/encoderfun1&amp;lt;/nowiki&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
; Fun Radio : &amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;mms://vip2.yacast.fr/encoderfun&amp;lt;/nowiki&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
; Le Mouv&#039; :  &amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt; mms://viptvr.yacast.fr/encoderlemouv&amp;lt;/nowiki&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
; Nostalgie : &amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt; mms://vip1.yacast.fr/encodernostalgie&amp;lt;/nowiki&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
; NRJ : &amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;mms://vip1.yacast.fr/encodernrj &amp;lt;/nowiki&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;nowiki&amp;gt;mms://vipbu.yacast.fr/encodernrj&amp;lt;/nowiki&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
; Oui FM : &amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;mms://vip7.yacast.fr/encoderouifm&amp;lt;/nowiki&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;nowiki&amp;gt;mms://vipbu.yacast.fr/encoderouifm&amp;lt;/nowiki&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
; Radio Nova : &amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt; mms://wmbcast.tvradio-global.speedera.net&amp;lt;/nowiki&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
/wmbcast.tvradio-global/wmbcast_tvradio-global_mar062002_0531_12963&amp;lt;/nowiki&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
; RFM : &amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt; mms://wmbcast.rfm.speedera.net &amp;lt;/nowiki&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;nowiki&amp;gt; /wmbcast.rfm/wmbcast_rfm_nov292001_1220_12958&amp;lt;/nowiki&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
; RTL2 : &amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt; mms://vipbu.yacast.fr/encoderrtl2&amp;lt;/nowiki&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
; Skyrock : &amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;mms://vipbu.yacast.fr/encoderskyrock &amp;lt;/nowiki&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;nowiki&amp;gt;mms://vip3.yacast.fr/encoderskyrock&amp;lt;/nowiki&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
N&#039;hésitez pas à en ajouter d&#039;autres.&lt;br /&gt;
&lt;br /&gt;
== Où en trouver d&#039;autres ?==&lt;br /&gt;
Sur ces sites :&lt;br /&gt;
* [http://mypage.bluewin.ch/a-z/cusipage/liveradio2.html http://mypage.bluewin.ch/a-z/cusipage/liveradio2.html]  &lt;br /&gt;
* [http://www.trustonme.net/didactels/215.html http://www.trustonme.net/didactels/215.html]&lt;br /&gt;
* [http://www.winampfr.com/forum/viewtopic.php?t=10354&amp;amp;sid=44 http://www.winampfr.com/forum/viewtopic.php?t=10354&amp;amp;sid=44]&lt;br /&gt;
* [http://geodisi.u-strasbg.fr/~daurat/radios.html http://geodisi.u-strasbg.fr/~daurat/radios.html]&lt;br /&gt;
* [http://www.radiofrance.fr/services/aide/difflive.php#ogg http://www.radiofrance.fr/services/aide/difflive.php]&lt;br /&gt;
&lt;br /&gt;
Pour les radios mms, il suffit de récupérer l&#039;adresse dans les fichiers &amp;lt;code&amp;gt;.asx&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Remarques :==&lt;br /&gt;
&lt;br /&gt;
* Cette solution ne peut être que temporaire. &#039;&#039;&#039;Demandez à ces radios l&#039;utilisation d&#039;un format ouvert, ou mieux libre&#039;&#039;&#039; (par courriel ou autre) ! Plus nous serons nombreux à le faire, plus ils comprendront l&#039;importance pour eux de le faire.&lt;br /&gt;
* De plus, demandez leur de diffuser dans un format libre (ogg/vorbis). De cette manière, tout système d&#039;exploitation aura accès à leur radio sur le net !&lt;br /&gt;
* Consultez aussi [http://www.geocities.com/majormms/ le site de &#039;&#039;&#039;Major MMS&#039;&#039;&#039;] afin de récupérer des programmes intéressants pour gérer le protocole MMS (protocole inventé par Microsoft) : plugin pour Xine (pour utiliser Xine à la place de mplayer) - disponible aussi sur le [http://plf.zarb.org Penguin Liberation Front], et client mms permettant d&#039;enregistrer le flux de données sur le disque dur.&lt;br /&gt;
&lt;br /&gt;
==Remarques techniques :==&lt;br /&gt;
&lt;br /&gt;
* Si votre connexion est un peu lente ou chargée, et que le son saccade, essayez de remplacer &amp;lt;code&amp;gt;-nocache&amp;lt;/code&amp;gt; par &amp;lt;code&amp;gt;-cache 128&amp;lt;/code&amp;gt; par exemple (ajoute un buffer de 128 Ko, soit une réserve de son de quelques secondes...).&lt;br /&gt;
* Si malgré cela, le son saute toujours toutes les 20 à 30 secondes, ajoutez à la ligne de commande de mplayer &amp;lt;code&amp;gt;mplayer -cache 128 &#039;&#039;&#039;-afm acm&#039;&#039;&#039;...&amp;lt;/code&amp;gt; (astuce rapportée par Anthony).&lt;br /&gt;
* Si vous avez l&#039;erreur &amp;lt;code&amp;gt;couldn&#039;t open/init audio device -&amp;gt; NOSOUND&amp;lt;/code&amp;gt; : si vous utilisez KDE (démon de son arts), ajoutez &amp;lt;code&amp;gt;-ao arts&amp;lt;/code&amp;gt; à la ligne de commande, pour Gnome (démon de son esd) : &amp;lt;code&amp;gt;-ao esd&amp;lt;/code&amp;gt;, etc. (voir &amp;lt;code&amp;gt;mplayer -ao help&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
=Accès rapide=&lt;br /&gt;
==Avec un raccourci==&lt;br /&gt;
Créez des icônes sur votre bureau pour jouer les radios d&#039;un seul clic ! Dans KDE par exemple, faites un clic droit sur le bureau, nouveau -&amp;gt; lien vers une application, puis onglet Exécution, Commande: mettez la commande mplayer correspondante, précédée de &amp;lt;code&amp;gt;killall player&amp;lt;/code&amp;gt; afin de pouvoir zapper (par exemple : &amp;lt;code&amp;gt;killall mplayer ; mplayer -nocache -ao arts mms://vipbu.yacast.fr/encoderskyrock&amp;lt;/code&amp;gt;). Faites aussi une icône &amp;quot;stop radio&amp;quot;, avec comme commande : &amp;lt;code&amp;gt;killall mplayer&amp;lt;/code&amp;gt;. Et voilà :)&lt;br /&gt;
&lt;br /&gt;
Bref, je voulais dire qu&#039;on peut utiliser celà de manière simple &amp;lt;br /&amp;gt;avec un petit coup d&#039;alias et de complétion programmable :&lt;br /&gt;
&lt;br /&gt;
==Avec un alias==&lt;br /&gt;
Pour simplifier encore l&#039;utilisation grâce aux alias et à la complétion. Par exemple, on peut modifier son &amp;lt;code&amp;gt;~/.bashrc&amp;lt;/code&amp;gt; de la manière suivante:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;# $HOME/.bashrc &amp;lt;/nowiki&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;nowiki&amp;gt;# il y a déjà le mplayer (G)raphique, voici celui pour les (R)adios &amp;lt;/nowiki&amp;gt;&amp;lt;br /&amp;gt;alias rmplayer=&amp;quot;mplayer -nocache &amp;quot; &amp;lt;br /&amp;gt;&amp;lt;nowiki&amp;gt;# completion programmable sur les URLs qui vont bien &amp;lt;/nowiki&amp;gt;&amp;lt;br /&amp;gt;complete -W &amp;quot; &#039;mms://vip7.yacast.fr/encoderouifm&#039; &amp;lt;br /&amp;gt;&#039;mms://vipbu.yacast.fr/encoderouifm&#039; &amp;lt;br /&amp;gt;&#039;mms://vip2.yacast.fr/encoderfun1&#039; &amp;lt;br /&amp;gt;&#039;mms://vipbu.yacast.fr/encoderfun&#039; &amp;lt;br /&amp;gt;&#039;mms://vip1.yacast.fr/encodernrj&#039; &amp;lt;br /&amp;gt;&#039;mms://vipbu.yacast.fr/encodernrj&#039; &amp;lt;br /&amp;gt;&#039;mms://vip1.yacast.fr/encodernostalgie&#039; &amp;lt;br /&amp;gt;&amp;lt;nowiki&amp;gt;# &amp;lt;/nowiki&amp;gt;&#039;&#039;etc, pareil pour toutes les autres urls&#039;&#039;&amp;lt;br /&amp;gt;&amp;quot; rmplayer &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Suivant le bureau que vous utilisez, vous pouvez changer l&#039;alias: &amp;lt;br /&amp;gt;exemple pour KDE : &amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;alias rmplayer=&amp;quot;mplayer -ao arts -nocache&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Utilisation : &amp;lt;br /&amp;gt;simple, tapez juste &amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;rmplayer &#039; (un guillemet) [TAB]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(n&#039;oubliez pas le guillemet, sinon ça ne marche pas). La liste des radios qu&#039;il faut apparaît après avoir appuyé sur la touche [TAB].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;* voir la &amp;lt;/nowiki&amp;gt;[../logi/?aff_item=54 fiche de mplayer dans la logithèque]. Pour installer mplayer sur une Mandrake (avec support des dvd cryptés et tout et tout), le moyen le plus simple est de visiter le [http://plf.zarb.org Penguin liberation front], de l&#039;installer comme spécifié sur la première page, puis taper : &amp;lt;code&amp;gt;urpmi mplayer&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Enregistrer une radio==&lt;br /&gt;
&lt;br /&gt;
Pour enregistrer une radio on peut utiliser la commande:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code multi&amp;gt;mplayer  -nocache mms://viptvr.yacast.fr/encoderlemouv &#039;&#039;&#039;-dumpstream&#039;&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
mplayer enregistre alors le flux dans un fichier nommé &amp;lt;code&amp;gt;stream.dump&amp;lt;/code&amp;gt;. Ce fichier est au même format que le flux de la radio, on peut éventuellement le ré-encoder dans un autre format.&lt;br /&gt;
&lt;br /&gt;
Si on veut que l&#039;ordinateur enregistre une émission de radio en notre absence, on peut combiner cette commande avec atd ([http://lea-linux.org/cached/index/Admin-admin_tools-automate.html voir cette page]).&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Trucs_multimedia]]&lt;/div&gt;</summary>
		<author><name>Ptyxs</name></author>
	</entry>
	<entry>
		<id>https://lea-linux.org/docs/index.php?title=Trucs:Se_logguer_automatiquement_sous_X&amp;diff=9726</id>
		<title>Trucs:Se logguer automatiquement sous X</title>
		<link rel="alternate" type="text/html" href="https://lea-linux.org/docs/index.php?title=Trucs:Se_logguer_automatiquement_sous_X&amp;diff=9726"/>
		<updated>2005-10-24T17:13:38Z</updated>

		<summary type="html">&lt;p&gt;Ptyxs : /* 1. Un peu de code ... */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Comment connecter automatiquement un utilisateur au démarrage ? =&lt;br /&gt;
[[Catégorie:Trucs X Window]]&lt;br /&gt;
&amp;lt;div class=&amp;quot;leatitre&amp;quot;&amp;gt;Comment connecter automatiquement un utilisateur au démarrage ?&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Comme ça peut être agréable de se retrouver directement devant son bureau après le démarrage de son ordinateur, sans avoir besoin de rentrer un quelconque mot de passe ! Il est possible d&#039;obtenir ce résultat sous Linux en configurant un gestionnaire de démarrage comme GDM, mais c&#039;est une méthode &amp;quot;lourde&amp;quot; qui ralentit le démarrage. Il existe une autre méthode, c&#039;est celle qui est décrite dans cette fiche ...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;REMARQUE : Pour la suite, X désigne le login de l&#039;utilisateur à connecter et ~ son répertoire personnel.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== 0. Prérequis ==&lt;br /&gt;
&lt;br /&gt;
* Une installation qui fonctionne&lt;br /&gt;
* GCC&lt;br /&gt;
* C&#039;est tout ...&lt;br /&gt;
&lt;br /&gt;
== 1. Un peu de code ... ==&lt;br /&gt;
&lt;br /&gt;
Pour commencer, nous allons devoir compiler un petit programme en C. Pas d&#039;inquiétude, tout est détaillé !&lt;br /&gt;
Commencez par ouvrir un éditeur de texte et collez le code suivant (en n&#039;oubliant pas de remplacer X par le nom de l&#039;utilisateur à connecter) :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;int main() &lt;br /&gt;
{execlp(&amp;quot;login&amp;quot;,&amp;quot;login&amp;quot;,&amp;quot;-f&amp;quot;,&amp;quot;X&amp;quot;,0);}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sauvegardez dans un dossier sous le nom log_X.c et, dans ce même dossier, ouvrez un terminal avec les droits de root et tapez :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;gcc -o log_X log_X.c&lt;br /&gt;
mv ./log_X /usr/sbin/&lt;br /&gt;
chown root /usr/sbin/log_X&lt;br /&gt;
chmod a+x /usr/sbin/log_X&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== 2. Lancer log_X au démarrage ==&lt;br /&gt;
&lt;br /&gt;
Ouvrez, toujours en root, le fichier &amp;lt;code&amp;gt;/etc/inittab&amp;lt;/code&amp;gt; et cherchez, dans la session &amp;lt;code&amp;gt;#TERMINALS&amp;lt;/code&amp;gt;, une ligne du type :&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;code&amp;gt;c1:2345:respawn:/sbin/agetty 38400 tty1 linux &amp;lt;/code&amp;gt; &#039;&#039;&#039;(1)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
puis remplacez-la par :&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;code&amp;gt;c1:2345:respawn:/sbin/agetty -n -l /usr/sbin/log_X 38400 tty1 linux &amp;lt;/code&amp;gt; &#039;&#039;&#039;(2)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
(Pour cette étape, on peut observer des différences selon les distributions. Si votre ligne n&#039;est pas exactement &#039;&#039;&#039;(1)&#039;&#039;&#039;, ne faites pas un copier-coller de &#039;&#039;&#039;(2)&#039;&#039;&#039;, ajoutez simplement au bon endroit &amp;lt;code&amp;gt;-n -l /usr/sbin/log_X&amp;lt;/code&amp;gt;.)&lt;br /&gt;
&lt;br /&gt;
== 3. Démarrer l&#039;environnement graphique ==&lt;br /&gt;
&lt;br /&gt;
Si vous voulez uniquement vous connecter en mode texte, restez-en là, mais ce n&#039;est probablement pas votre cas. &lt;br /&gt;
Alors, ouvrez le fichier ~/.bashrc et collez ces lignes au début si votre ligne &#039;&#039;&#039;(1)&#039;&#039;&#039; commençait bien par &#039;&#039;c1&#039;&#039; :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;if [ -z &amp;quot;$DISPLAY&amp;quot; ] &amp;amp;&amp;amp; [ $(tty) == /dev/vc/1 ] ; then&lt;br /&gt;
   startx&lt;br /&gt;
fi&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dans le cas contraire, préférez :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;if [ -z &amp;quot;$DISPLAY&amp;quot; ] &amp;amp;&amp;amp; [ $(tty) == /dev/tty1 ] ; then&lt;br /&gt;
   startx&lt;br /&gt;
fi&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ensuite, pour que vous soyez connecté sur votre environnement de bureau préféré, ajoutez la ligne suivante au fichier ~/.xinitrc :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;exec Z&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
où Z est &#039;&#039;fluxbox&#039;&#039; (ou &#039;&#039;startfluxbox&#039;&#039;) si vous utilisez Fluxbox, &#039;&#039;startgnome&#039;&#039; pour Gnome, &#039;&#039;startkde&#039;&#039; pour KDE, etc ...&lt;br /&gt;
&lt;br /&gt;
Redémarrez, ça devrait marcher maintenant !&lt;br /&gt;
&lt;br /&gt;
== 4. Avertissement ==&lt;br /&gt;
&lt;br /&gt;
Bien que cette méthode soit pratique et rapide, elle n&#039;est pas très bonne d&#039;un point de vue sécurité et ne devrait en aucun cas être utilisée sur un ordinateur accessible physiquement à des personnes en qui vous n&#039;avez pas confiance ou se trouvant sur un réseau local important.&lt;br /&gt;
&lt;br /&gt;
{{Copy|10/2005|[[Utilisateur:AlSim]]|CC-BY-SA}}&lt;/div&gt;</summary>
		<author><name>Ptyxs</name></author>
	</entry>
</feed>