<?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=Xion345</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=Xion345"/>
	<link rel="alternate" type="text/html" href="https://lea-linux.org/documentations/Sp%C3%A9cial:Contributions/Xion345"/>
	<updated>2026-04-28T12:27:32Z</updated>
	<subtitle>Contributions</subtitle>
	<generator>MediaWiki 1.40.1</generator>
	<entry>
		<id>https://lea-linux.org/docs/index.php?title=Tenir_compte_de_la_s%C3%A9curit%C3%A9_au_quotidien&amp;diff=12972</id>
		<title>Tenir compte de la sécurité au quotidien</title>
		<link rel="alternate" type="text/html" href="https://lea-linux.org/docs/index.php?title=Tenir_compte_de_la_s%C3%A9curit%C3%A9_au_quotidien&amp;diff=12972"/>
		<updated>2006-07-07T09:24:25Z</updated>

		<summary type="html">&lt;p&gt;Xion345 : /* Permissions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Fiche sécurité]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;leapar&amp;quot;&amp;gt;Par [[Utilisateur:Merlin8282|merlin8282]].&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Un ordinateur n&#039;est jamais en sécurité, quand bien même on croit qu&#039;il l&#039;est. Un dicton informatique ne dit-il pas que le maillon le plus faible dans un système informatique est l&#039;utilisateur ? D&#039;ailleurs il est courant d&#039;entendre dire que &amp;quot;l&#039;ordinateur le plus sécurisé, c&#039;est celui qui n&#039;est pas branché à un réseau, qu&#039;il soit ethernet ou électrique&amp;quot; ! Cette fiche est là pour connaître les différents risques que l&#039;on court en ayant un ordinateur, connecté à un réseau ou non, ainsi que pour se parer contre toute attaque et enfin pour savoir comment nettoyer l&#039;ordinateur d&#039;une attaque que l&#039;on vient de subir.&lt;br /&gt;
&lt;br /&gt;
Pour tout le document (et de manière générale), il est évidemment conseillé de lire les pages de manuel des commandes avant de poser des questions.&lt;br /&gt;
Lisez aussi les articles connexes en cliquant sur les hyperliens dans le texte car dans ce document je ne m&#039;étale justement pas sur les sujets pour lesquels il existe déjà un article.&lt;br /&gt;
&lt;br /&gt;
== Avant tout, connaître son système ==&lt;br /&gt;
D&#039;abord et avant tout il faut être à l&#039;aise avec les concepts essentiels de [http://fr.wikipedia.org/wiki/Linux linux]. Cela permettra d&#039;une part de mieux connaître et comprendre ce que nous faisons et d&#039;autre part de mieux réagir en cas d&#039;attaque. Donc documentez vous sur ce système et son langage de commande ([[Admin-admin_env-shell|shell]]).Lisez aussi la documentation expliquant ce que sont [[Admin-admin_boot-daemons|les démons et comment ils fonctionnent]]. Voyez comment fonctionne un réseau, ce que sont les ports réseau, les permissions des fichiers, ce que sont les failles de sécurité des logiciels, etc.&lt;br /&gt;
&lt;br /&gt;
== Connaître les risques ==&lt;br /&gt;
=== La compromission des logiciels ===&lt;br /&gt;
==== Les logiciels binaires ====&lt;br /&gt;
Il faut savoir qu&#039;en informatique il existe des logiciels malveillants ([http://fr.wikipedia.org/wiki/Logiciel_malveillant malware] en anglais). Ces logiciels peuvent être des virus, des vers, des chevaux de Troie ou encore des rootkits. Mais ils ont tous en commun d&#039;exploiter des failles classiques ou de rendre les systèmes sur lesquels ils résident plus faibles face à des attaquants extérieurs.&lt;br /&gt;
&lt;br /&gt;
Les virus sont de petits programmes qui ont la particularité de se reproduire et de se propager d&#039;un système à l&#039;autre suivant certains vecteurs. Cela peut être les mails ou même l&#039;utilisateur lui-même qui va copier le logiciel sur d&#039;autres systèmes. Les vers sont une sorte particulière de virus qui se propagent uniquement via le réseau Internet (l&#039;un des plus célèbre fut Blaster en 2003 qui visait essentiellement des systèmes Microsoft Windows). Certains virus fonctionnent et infectent les systèmes linux, mais leur nombre est plus réduit que ceux qui attaquent les systèmes Windows. Grâce à la rareté de ces virus et à la réactivité de la communauté libre face aux nouvelles failles découvertes, ce genre de malware ne se propage que très difficilement sur les systèmes Unix. Cependant il faut être vigilant et appliquer régulièrement les correctifs de sécurité de votre système pour ne pas s&#039;exposer à des malwares, qui pourraient alors s&#039;infiltrer facilement via les failles que vous auriez laissé béantes. &lt;br /&gt;
&lt;br /&gt;
Les chevaux de Troie sont des logiciels qui tentent d&#039;abuser l&#039;utilisateur en se faisant passer pour autre chose que ce qu&#039;ils sont réellement (un jeu, un petit utilitaire, ou encore une commande classique comme &amp;lt;code&amp;gt;ssh&amp;lt;/code&amp;gt;, pour collecter les mots de passe vers d&#039;autres systèmes, etc). Ils peuvent être aussi un vecteur de propagation pour les virus comme le célèbre ver &amp;quot;I love you&amp;quot; qui se propageait par mail ou aussi être contenu dans un virus qui  va l&#039;installer sur le système qu&#039;il a infecté avant de tenter de se propager vers d&#039;autres systèmes.&lt;br /&gt;
&lt;br /&gt;
Enfin, les rootkits sont des logiciels qui facilitent l&#039;accès réseau discret des pirates sur le système. Leur nom vient du fait qu&#039;ils permettent aux pirates d&#039;accéder au système infecté avec des droits équivalents (ou même supérieurs) au root. À l&#039;origine ces rootkits étaient un ensemble de chevaux de Troie mimant les commandes classiques du système (&amp;lt;code&amp;gt;ps&amp;lt;/code&amp;gt;, &lt;br /&gt;
&amp;lt;code&amp;gt;login&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ls&amp;lt;/code&amp;gt;, etc). De nos jours, les rootkits sont quasi-essentiellement des kernel-rootkits, c&#039;est à dire qu&#039;ils se branchent directement sur le noyau pour modifier les informations que pourraient lire les utilisateurs du système. Ce dernier type de rootkits permet aux pirates une réelle invisibilité du point de vue des autres utilisateurs (y compris du root). Vous l&#039;aurez compris, ces rootkits sont très difficiles à repérer avec des moyens standards et compromettent très profondément votre système. C&#039;est pour cela qu&#039;il n&#039;est jamais mauvais d&#039;installer et de lancer régulièrement &#039;&#039;chkrootkit&#039;&#039;, qui vérifie la présence de [http://fr.wikipedia.org/wiki/Rootkit rootkits].&lt;br /&gt;
&lt;br /&gt;
Évidemment, tout ces malwares peuvent se combiner entre eux pour former des combinaisons souvent difficiles à contrer. On peut citer l&#039;exemple du vers 1i0n ([http://www.cert.org/incident_notes/IN-2001-03.html|rapport CERT], Mars 2001) qui ciblait essentiellement des failles sur les systèmes Unix faisant tourner un serveur BIND et qui installait le rootkit erkms avant de continuer à se propager. Ce malware combinait à la fois un vers et un rootkit lui-même composé d&#039;un certain nombre de chevaux de Troie.&lt;br /&gt;
&lt;br /&gt;
==== Les logiciels interprétés (scripts) ====&lt;br /&gt;
Si la machine possède un serveur apache fournissant des pages dynamiques (cgi mais surtout php et autres langages de script web. En fait, cgi est parfois sous la forme d&#039;un binaire, mais souvent sous forme de script) il faut se méfier des attaques du type injection de code.&lt;br /&gt;
&lt;br /&gt;
Veillez aussi à ne pas avoir de script contenant un mot de passe codé en clair !&lt;br /&gt;
Parfois, lorsque votre mot de passe est demandé (en l&#039;occurence pour sudo) et que vous savez qu&#039;on va vous le demander, vous tapez celui-ci sans regarder l&#039;écran. Sauf que le terminal présente un prompt et non un &amp;quot;please type your password:&amp;quot;, car vous avez tapé la commande trop vite, ou mal. Donc si par malheur vous avez tapé votre mot de passe (alors en clair) et que vous avez validé -- le shell retournant naturellement &amp;quot;commande inconnue&amp;quot; -- il vous faut éditer votre fichier &amp;lt;code&amp;gt;~/.bash_history&amp;lt;/code&amp;gt; pour y supprimer le mot de passe. Il est possible et tout à fait anodin de supprimer ce fichier, mais vous n&#039;aurez alors plus d&#039;historique des commandes tapées.&lt;br /&gt;
&lt;br /&gt;
=== Les méthodes des pirates ===&lt;br /&gt;
Vérifier la présence de [http://fr.wikipedia.org/wiki/Keylogger keylogger]. C&#039;est un logiciel chargé de détecter et logger les touches pressées au clavier. Vous imaginez donc aisément le problème : les identifiants et mots de passe tapés au clavier sont alors facilement accessibles pour l&#039;attaquant. Attention cependant : même si aucun logiciel de ce type n&#039;est détecté, la présence d&#039;un keylogger matériel est possible. Vérifiez en suivant le cordon du clavier jusqu&#039;à l&#039;ordinateur : s&#039;il est directement relié à celui-ci, c&#039;est bon. Sinon, s&#039;il y a un petit câble avec un petit boîtier, il est fort probable que ce soit un keylogger.&lt;br /&gt;
&lt;br /&gt;
L&#039;[http://fr.wikipedia.org/wiki/Ing%C3%A9nierie_sociale ingéniérie sociale] est une méthode consistant à profiter de la crédulité des gens, qui souvent écrivent leurs mots de passe sur un bout de papier et le laissent à proximité de l&#039;ordinateur. D&#039;autres sont par exemple appelés par l&#039;attaquant, se faisant alors passer pour le service technique de l&#039;entreprise, qui prétend avoir besoin du mot de passe de l&#039;utilisateur pour faire des tests.&lt;br /&gt;
&lt;br /&gt;
== Protéger son ordinateur ==&lt;br /&gt;
=== Sécuriser son boot ===&lt;br /&gt;
Si l&#039;accès physique à la machine est une faille, il faut configurer son bios. Celui-ci ne doit autoriser que le boot sur disque dur, et doit être protégé par mot de passe.&lt;br /&gt;
[http://fr.wikipedia.org/wiki/GRand_Unified_Bootloader Grub] permettant d&#039;éditer manuellement le boot (périphérique de démarrage, noyau, options pour l&#039;init...), il est nécessaire de le protéger par mot de passe afin qu&#039;on ne puisse pas modifier les configurations prédéfinies.&lt;br /&gt;
En fait il est même parfois conseillé de supprimer tout périphérique susceptible d&#039;être source d&#039;insécurité à ce niveau, comme le lecteur de disquettes par exemple. Cela dit, si c&#039;est une station de bureau il vaut mieux garder ce dont on a besoin, cela va sans dire. C&#039;est à vous d&#039;en juger.&lt;br /&gt;
&lt;br /&gt;
De toute manière, un système n&#039;est jamais sûr puisque pour l&#039;exemple présent, il est possible de supprimer le mot de passe du [http://fr.wikipedia.org/wiki/Basic_Input_Output_System BIOS] en réinitialisant celui-ci. Ainsi pour quelqu&#039;un ayant un accès physique à la machine il est facile d&#039;ouvrir le boîtier et de retirer quelques secondes la batterie alimentant le BIOS. La parade consisterait à verrouiller l&#039;accès à l&#039;intérieur de la machine (cadenas).&lt;br /&gt;
&lt;br /&gt;
Pire encore : le BIOS étant de nos jour stocké dans une mémoire accessible en écriture -- généralement de la mémoire flash. Sur les carte-mères plus anciennes le BIOS est stocké dans une ROM. -- ce qui permet potentiellement à quelqu&#039;un de le flasher (le mettre à jour) pour le remplacer par une version vérolée.&lt;br /&gt;
&lt;br /&gt;
Avant de continuer sur le BIOS, voyons un peu comment celui-ci fonctionne et pourquoi il existe :&lt;br /&gt;
&lt;br /&gt;
Immédiatement à la mise sous tension, le BIOS déroule la procédure de POST (&#039;&#039;Power-On Self Test&#039;&#039; ou &#039;&#039;vérification de mise sous tension&#039;&#039;). Durant cette phase, le BIOS effectue divers contrôles : [http://fr.wikipedia.org/wiki/Processeur CPU], [http://fr.wikipedia.org/wiki/Somme_de_contrôle autovérification par chiffre de contrôle], contrôle des paramètres BIOS enregistrés (mémoire de &amp;quot;setup&amp;quot;), initialisation de divers composants (horloge, [http://fr.wikipedia.org/wiki/Accès_direct_mémoire DMA], etc), vérification de la mémoire, des périphériques (claviers, lecteur(s) de disquette, disque(s) dur(s), etc.).&lt;br /&gt;
&lt;br /&gt;
En cas d&#039;erreur, le BIOS tente de continuer ou, en cas d&#039;erreur grave il arrête le système et affiche, si possible, un message d&#039;erreur. Autrement il fait une série de beep pour aider au diagnostic de la panne. Il envoie également un code sur le port série, code qui peut être récupéré par divers moyens.&lt;br /&gt;
&lt;br /&gt;
Immédiatement après le POST, le BIOS va charger le premier secteur du disque amorçable. Ce secteur contient un petit programme de chargement (boot loader) du chargeur du (des) système(s) d&#039;exploitation (grub, lilo ou, pour Windows, NTLDR). Le POST se termine en transférant l&#039;exécution au boot loader. &lt;br /&gt;
&lt;br /&gt;
C&#039;est en fait, à l&#039;origine, la fonctionnalité principale (c&#039;est elle qui a donné son nom au BIOS) du BIOS : fournir une couche logicielle d&#039;abstaction (permettant d&#039;ignorer lors de la programmation les aspects purement matériels) pour les périphériques les plus courants : clavier, écran, floppy, disques durs, souris, etc.&lt;br /&gt;
On accède à ces fonctions par l&#039;envoi d&#039;interruptions logicielles ou, plus rarement, par accès direct à la mémoire BIOS.&lt;br /&gt;
&lt;br /&gt;
Fort heureusement, linux étant un bon système d&#039;exploitation il n&#039;utilise pas le BIOS, qui sert comme on l&#039;a vu de couche d&#039;abstraction entre le logiciel et le matériel. Le risque d&#039;attaque via le BIOS est donc considéré comme nul. Cependant, il reste techniquement possible -- mais les pirates n&#039;y auraient aucun intérêt -- de flasher le BIOS de telle sorte qu&#039;il ne puisse plus booter l&#039;ordinateur, bloqué dans une boucle infinie.&lt;br /&gt;
&lt;br /&gt;
=== Partitionnement conséquent ===&lt;br /&gt;
À l&#039;installation du système, il faut bien réfléchir au partitionnement des disques. Les données statiques (binaires, fichiers de configuration, etc.) seront sur une partition montée en lecture seule pour éviter toute modification :&lt;br /&gt;
* /bin&lt;br /&gt;
* /boot&lt;br /&gt;
* /lib&lt;br /&gt;
* /sbin&lt;br /&gt;
* /usr&lt;br /&gt;
Eventuellement d&#039;autres dossiers, selon la distribution.&lt;br /&gt;
&lt;br /&gt;
Lorsque l&#039;accès physique à la machine est une faille potentielle de sécurité, il n&#039;est pas une mauvaise idée que de créer une partition dédiée à /etc , qui serait formatée en un système de fichiers chiffré (voir [http://www.tldp.org/HOWTO/Encrypted-Root-Filesystem-HOWTO/ Encrypted root filesystem howto]). Dans ce cas-là, même si on démarre l&#039;ordinateur avec un LiveCD il devient impossible à moins d&#039;avoir les identifiants idoïnes d&#039;accéder aux données de la partition.&lt;br /&gt;
&lt;br /&gt;
=== N&#039;installer que le strict nécessaire ===&lt;br /&gt;
Chaque bout de code est potentiellement une faille. C&#039;est pour cela que moins il y a de logiciels installés, plus le risque d&#039;avoir une faille est réduit. Un exemple courant pour faire comprendre le principe est que sur un serveur il n&#039;est généralement nul besoin de serveur X. Un autre exemple, dans un environnement unix il n&#039;est nul besoin de serveur Samba.&lt;br /&gt;
Une fois le ménage fait dans votre installation, il faut bien configurer ses logiciels. D&#039;ailleurs pour être certain d&#039;avoir une machine propre, faites l&#039;installation hors-ligne et ne mettez la machine en réseau qu&#039;une fois bien sécurisée, surtout au niveau de Netfilter/iptables.&lt;br /&gt;
&lt;br /&gt;
=== Utilisateurs ===&lt;br /&gt;
Vérifier que root n&#039;est pas autorisé à se connecter. [[Sudo|Utiliser sudo]] plutôt que [[Fiches:Securite-ficheroot|le compte root directement]] pour les tâches d&#039;administration.&lt;br /&gt;
Evitez par ailleurs d&#039;avoir des comptes inutiles sur votre machine car même s&#039;ils n&#039;ont que des droits restreints, l&#039;utilisation d&#039;une faille pour obtenir plus de permissions par un intrus n&#039;est pas impossible.&lt;br /&gt;
&lt;br /&gt;
=== Permissions ===&lt;br /&gt;
De manière générale, éviter autant que possible le &#039;&#039;setuid&#039;&#039;, qui permet d&#039;exécuter un programme avec les droits de root alors qu&#039;on est connecté en simple utilisateur.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;cadre&amp;gt;&#039;&#039;&#039;setuid&#039;&#039;&#039; droit donné à un fichier exécutable d&#039;utiliser les droits du propriétaire du fichier éxécutable (en général le root).&amp;lt;/cadre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Utiliser chroot pour les services et les utilisateurs distants qui doivent avoir un accès restreint à la machine : [[Admin-admin_env-chroot]]&lt;br /&gt;
&lt;br /&gt;
== Bien configurer ses démons ==&lt;br /&gt;
[[Reseau-web-Apache_protec|Sécuriser Apache]] en limitant les accès aux répertoires. On peut pour cela utiliser les fichiers .htaccess ou modifier directement la configuration du serveur, généralement &amp;lt;code&amp;gt;/etc/apache/httpd.conf&amp;lt;/code&amp;gt; ou &amp;lt;code&amp;gt;/etc/apache2/apache2.conf&amp;lt;/code&amp;gt; .&lt;br /&gt;
&lt;br /&gt;
Utilisez [[Reseau-secu-ssh|ssh/sshd]] plutôt que &amp;lt;code&amp;gt;telnet&amp;lt;/code&amp;gt;. En effet, ce dernier ne chiffre pas ses flux de données, contrairement à ssh, ce qui permet grâce à un simple sniffeur réseau de voler identifiants et mots de passe via le réseau.&lt;br /&gt;
&lt;br /&gt;
Les serveurs de fichiers (ou apparents) tels &amp;lt;code&amp;gt;Samba&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;NFS&amp;lt;/code&amp;gt; ou encore &amp;lt;code&amp;gt;FTP&amp;lt;/code&amp;gt; ne doivent accepter de connexion que des utilisateurs enregistrés : une section est prévue à cet effet dans le fichier de configuration de chaque serveur. Il est préférable de faire ceci, même si les services n&#039;autorisent que les connexions locales et même si l&#039;authentification des utilisateurs est déjà limitée : mieux vaut trop de sécurité que pas assez. Si vous cherchez à faire du transfert de fichiers de manière sécurisée, préférez &amp;lt;code&amp;gt;scp&amp;lt;/code&amp;gt; (qui est en fait une manière d&#039;utiliser le protocole ssh).&lt;br /&gt;
&lt;br /&gt;
Si vous utilisez vnc, préférez le faire de manière sécurisée : [[Reseau-resau_plus-vnc|vnc au-dessus de ssh]].&lt;br /&gt;
&lt;br /&gt;
== Barrer la route aux connexions non souhaitées ==&lt;br /&gt;
Une fois limité les ports réseau attendant des connexions, il faut mettre en place un firewall filtrant grâce à iptables (ou autre). Netfilter est le nom de la couche du noyau qui permet de filtrer tout ce qui passe par les interfaces réseau, tandis que iptables est une interface permettant de piloter Netfilter. Ne pas confondre, donc.&lt;br /&gt;
Des articles ont déjà été écrits à ce propos :&lt;br /&gt;
* [[Reseau-secu-iptables|iptables par l&#039;exemple]]&lt;br /&gt;
* [[Reseau-secu-murdefeu|Mur de feu pas à pas]]&lt;br /&gt;
* [[Leapro-pro_reseau-qos|QoS via iptables]]&lt;br /&gt;
&lt;br /&gt;
De manière très succincte, il faut fermer tous les ports puis ouvrir ceux dont on a besoin : le port 80 (et le 443 pour du https) doit être ouvert si l&#039;on a un serveur web, le port 110 si l&#039;on a un serveur pop dont on veut qu&#039;il soit accessible d&#039;internet, etc.&lt;br /&gt;
&lt;br /&gt;
Voici un bon script de base qu&#039;on peut adapter :&lt;br /&gt;
&amp;lt;code&amp;gt;#!/bin/sh&lt;br /&gt;
# firewall v1.0.1 Oct 13 09:48:57 PDT 2003 written by : Kernel &amp;lt;kernel@trustonme.net&amp;gt;&lt;br /&gt;
# Modifié par merlin8282 (je ne sais plus où j&#039;ai pioché l&#039;original mais il y ressemble encore vraiment beaucoup).&lt;br /&gt;
# this script is free software according to the GNU General Public License (see [www.gnu.org])&lt;br /&gt;
# Start/stop/restart/status firewall:&lt;br /&gt;
&lt;br /&gt;
firewall_start() {&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;[Démarrage du firewall]&amp;quot;&lt;br /&gt;
&lt;br /&gt;
############################### REGLES PAR DEFAUT ###########################&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;[Initialisation de la table filter]&amp;quot;&lt;br /&gt;
iptables -F&lt;br /&gt;
iptables -X&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;[Politique par défaut de la table filter]&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# On ignore tout ce qui entre ou transite par la passerelle&lt;br /&gt;
iptables -P INPUT DROP&lt;br /&gt;
iptables -P FORWARD DROP&lt;br /&gt;
&lt;br /&gt;
# On accepte, ce qui sort&lt;br /&gt;
iptables -P OUTPUT ACCEPT&lt;br /&gt;
&lt;br /&gt;
# Pour éviter les mauvaises suprises, on va autoriser l&#039;accès à la loopback :&lt;br /&gt;
iptables -A INPUT -i lo -j ACCEPT&lt;br /&gt;
iptables -A OUTPUT -o lo -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
############################### LOCAL-INTERNET ###########################&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;[On autorise les clients à accéder à internet]&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#On créé une nouvelle chaîne, le nom est indifférent&lt;br /&gt;
# appelons-la &amp;quot;local-internet&amp;quot;&lt;br /&gt;
iptables -N local-internet&lt;br /&gt;
&lt;br /&gt;
# On définit le profil de ceux qui appartiendront à &amp;quot;local-internet&amp;quot;&lt;br /&gt;
# &amp;quot;local-internet&amp;quot; concerne toutes les connections sauf celles venant d&#039;internet ( ! = non)&lt;br /&gt;
# En gros avec ça, vous rendez, vos serveurs inaccessibles depuis internet.&lt;br /&gt;
# Pas de panique, certains serveurs seront autorisés explicitement dans la suite.&lt;br /&gt;
# (Remplacer ppp0 en fonction de votre configuration)&lt;br /&gt;
iptables -A local-internet -m state --state NEW -i ! ppp0 -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
#Evidemment, une fois acceptées comme &amp;quot;local-internet&amp;quot;, les connections peuvent continuer&lt;br /&gt;
# et faire des petits :&lt;br /&gt;
iptables -A local-internet -m state --state ESTABLISHED,RELATED -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
# On termine en indiquant que les connections appartenant à &amp;quot;local-internet&amp;quot;&lt;br /&gt;
# accèdent à internet de manière transparente.&lt;br /&gt;
iptables -A INPUT -j local-internet&lt;br /&gt;
iptables -A FORWARD -j local-internet&lt;br /&gt;
&lt;br /&gt;
############################### LES TABLES NAT ET MANGLE #############################&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;[Initialisation des tables nat et mangle]&amp;quot;&lt;br /&gt;
&lt;br /&gt;
iptables -t nat -F&lt;br /&gt;
iptables -t nat -X&lt;br /&gt;
iptables -t nat -P PREROUTING ACCEPT&lt;br /&gt;
iptables -t nat -P POSTROUTING ACCEPT&lt;br /&gt;
iptables -t nat -P OUTPUT ACCEPT&lt;br /&gt;
&lt;br /&gt;
iptables -t mangle -F&lt;br /&gt;
iptables -t mangle -X&lt;br /&gt;
iptables -t mangle -P PREROUTING ACCEPT&lt;br /&gt;
iptables -t mangle -P OUTPUT ACCEPT&lt;br /&gt;
&lt;br /&gt;
############################### LE MASQUERADING #########################&lt;br /&gt;
&lt;br /&gt;
# Commentez ces 2 lignes, si vous ne faîtes pas du masquerading (nat)&lt;br /&gt;
#echo &amp;quot;[Mise en place du masquerading]&amp;quot;&lt;br /&gt;
#iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o ppp0 -j MASQUERADE&lt;br /&gt;
&lt;br /&gt;
########################### ACTIVATION DE LA PASSERELLE ##################&lt;br /&gt;
&lt;br /&gt;
#echo &amp;quot;[Activation de la passerelle]&amp;quot;&lt;br /&gt;
#echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
############################## PAS DE SPOOFING ##########################&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;[Pas de spoofing]&amp;quot;&lt;br /&gt;
if [ -e /proc/sys/net/ipv4/conf/all/rp_filter ] ; then&lt;br /&gt;
for filtre in /proc/sys/net/ipv4/conf/*/rp_filter&lt;br /&gt;
do&lt;br /&gt;
echo 1 &amp;gt; $filtre&lt;br /&gt;
done&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
########################## PAS DE SYNFLOOD ####################&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;[Pas de synflood]&amp;quot;&lt;br /&gt;
if [ -e /proc/sys/net/ipv4/tcp_syncookies ] ; then&lt;br /&gt;
echo 1 &amp;gt; /proc/sys/net/ipv4/tcp_syncookies&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
############################### PAS DE PING ############################&lt;br /&gt;
&lt;br /&gt;
# commentez ces 6 lignes, si vous autorisez les pings sur votre passerelle&lt;br /&gt;
echo &amp;quot;[Pas ping]&amp;quot;&lt;br /&gt;
echo 1 &amp;gt; /proc/sys/net/ipv4/icmp_echo_ignore_all&lt;br /&gt;
echo 1 &amp;gt; /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts&lt;br /&gt;
if [ -e /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses ] ; then&lt;br /&gt;
echo 1 &amp;gt; /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
############# Priorisation de la bande passante et des connections - QoS ############&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;[priorisation des connections ssh ...]&amp;quot;;&lt;br /&gt;
iptables -A PREROUTING -t mangle -p tcp --sport 443 -j TOS --set-tos Minimize-Delay&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;[priorisation des connections http ...]&amp;quot;;&lt;br /&gt;
iptables -A PREROUTING -t mangle -p tcp --sport http -j TOS --set-tos Maximize-throughput&lt;br /&gt;
iptables -A PREROUTING -t mangle -p tcp --sport 3129 -j TOS --set-tos Maximize-throughput&lt;br /&gt;
&lt;br /&gt;
############################ Fonctionnalités serveurs #####################################&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;[Etude des fonctionalités serveurs, visibles depuis internet]&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# A ce stade, tous vos clients du réseau local et de la passerelle ont accès à internet. Mieux,&lt;br /&gt;
# vos clients du réseau local, ont accès à vos serveurs apache, proftp ... localement. Mais personne&lt;br /&gt;
# depuis internet ne peux accéder à l&#039;un des serveurs que vous hébergez.&lt;br /&gt;
&lt;br /&gt;
# Il est bien-sûr possible de dévérrouiller pontuellement l&#039;accès à un serveur depuis internet,&lt;br /&gt;
# en décommentant les 2 ou 3 lignes correspondantes.&lt;br /&gt;
&lt;br /&gt;
#echo &amp;quot;[autorisation du serveur ssh(22) ...]&amp;quot;&lt;br /&gt;
#iptables -A INPUT -p tcp --dport ssh -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
#echo &amp;quot;[autorisation du serveur smtp(25) ...]&amp;quot;&lt;br /&gt;
#iptables -A INPUT -p tcp --dport smtp -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
#echo &amp;quot;[autorisation du serveur http(80) ...]&amp;quot;&lt;br /&gt;
#iptables -A INPUT -p tcp --dport www -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
#echo &amp;quot;[autorisation du serveur https(443) ...]&amp;quot;&lt;br /&gt;
#iptables -A INPUT -p tcp --dport 443 -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
#echo &amp;quot;[autorisation du serveur DNS(53) ...]&amp;quot;&lt;br /&gt;
#iptables -A INPUT -p udp --dport domain -j ACCEPT&lt;br /&gt;
#iptables -A INPUT -p tcp --dport domain -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
#echo &amp;quot;[autorisation du serveur irc(6667) ...]&amp;quot;&lt;br /&gt;
#iptables -A INPUT -p tcp --dport ircd -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
#echo &amp;quot;[autorisation du serveur cvs (2401) ...]&amp;quot;&lt;br /&gt;
#iptables -A INPUT -p tcp --dport cvspserver -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
#echo &amp;quot;[autorisation du serveur FTP(21 et 20) ...]&amp;quot;&lt;br /&gt;
#iptables -A INPUT -p tcp --dport ftp -j ACCEPT&lt;br /&gt;
#iptables -A INPUT -p tcp --dport ftp-data -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
# Ne pas décommenter les 3 lignes qui suivent.&lt;br /&gt;
# Plus généralement :&lt;br /&gt;
#echo &amp;quot;[autorisation du serveur Mon_truc(10584) ...]&amp;quot;&lt;br /&gt;
#iptables -A INPUT -p tcp --dport 10584 -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
#echo &amp;quot;[autorisation du serveur aMule (4662/tcp) ...]&amp;quot;&lt;br /&gt;
#iptables -A INPUT -p tcp --dport 4662 -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
#echo &amp;quot;[autorisation du serveur BitTorrent (6881-6889/tcp) ...]&amp;quot;&lt;br /&gt;
#iptables -A INPUT -p tcp --dport 6881:6889 -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;[firewall activé !]&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
firewall_stop() {&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
iptables -F&lt;br /&gt;
iptables -X&lt;br /&gt;
iptables -P INPUT ACCEPT&lt;br /&gt;
iptables -P FORWARD ACCEPT&lt;br /&gt;
iptables -P OUTPUT ACCEPT&lt;br /&gt;
&lt;br /&gt;
iptables -t nat -F&lt;br /&gt;
iptables -t nat -X&lt;br /&gt;
iptables -t nat -P PREROUTING ACCEPT&lt;br /&gt;
iptables -t nat -P POSTROUTING ACCEPT&lt;br /&gt;
iptables -t nat -P OUTPUT ACCEPT&lt;br /&gt;
&lt;br /&gt;
iptables -t mangle -F&lt;br /&gt;
iptables -t mangle -X&lt;br /&gt;
iptables -t mangle -P PREROUTING ACCEPT&lt;br /&gt;
iptables -t mangle -P OUTPUT ACCEPT&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot; [firewall descativé!]&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
firewall_restart() {&lt;br /&gt;
firewall_stop&lt;br /&gt;
sleep 2&lt;br /&gt;
firewall_start&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
case &amp;quot;$1&amp;quot; in&lt;br /&gt;
&#039;start&#039;)&lt;br /&gt;
firewall_start&lt;br /&gt;
;;&lt;br /&gt;
&#039;stop&#039;)&lt;br /&gt;
firewall_stop&lt;br /&gt;
;;&lt;br /&gt;
&#039;restart&#039;)&lt;br /&gt;
firewall_restart&lt;br /&gt;
;;&lt;br /&gt;
&#039;status&#039;)&lt;br /&gt;
iptables -L&lt;br /&gt;
iptables -t nat -L&lt;br /&gt;
iptables -t mangle -L&lt;br /&gt;
;;&lt;br /&gt;
*)&lt;br /&gt;
echo &amp;quot;Usage: firewall {start|stop|restart|status}&amp;quot;&lt;br /&gt;
esac&amp;lt;/code&amp;gt;&lt;br /&gt;
Ce script est à mettre généralement dans un fichier du dossier &amp;lt;code&amp;gt;/etc/init.d/&amp;lt;/code&amp;gt; .&lt;br /&gt;
&lt;br /&gt;
== Détecter les intrusions, connaître les outils ==&lt;br /&gt;
=== who ===&lt;br /&gt;
La commande &amp;lt;code&amp;gt;who&amp;lt;/code&amp;gt; ou &amp;lt;code&amp;gt;w&amp;lt;/code&amp;gt; permet de voir les utilisateurs actuellement connectés (loggés) au système. Attention cependant car un agresseur peut être -- et l&#039;est certainement si c&#039;est le cas -- connecté sous votre nom, s&#039;il est parvenu à s&#039;immiscer dans votre système.&lt;br /&gt;
&lt;br /&gt;
=== ps ===&lt;br /&gt;
La commande &amp;lt;code&amp;gt;ps&amp;lt;/code&amp;gt; liste tous les processus actuellement en cours d&#039;exécution sur le système. S&#039;il en est un que vous ne connaissez pas, identifiez-le. Si vous ne savez toujours pas ce que c&#039;est, pas d&#039;affollement : utilisez la commande &amp;lt;code&amp;gt;lsof&amp;lt;/code&amp;gt; et voyez si vous trouvez des fichiers en rapport avec ce processus. Vous pouvez alors identifier le processus et déterminer si c&#039;est un processus &amp;quot;innofensif&amp;quot;. Si ce n&#039;est pas le cas, vous pouvez supprimer les fichiers qu&#039;il faut. Attention toutefois à bien être certain que ce soit un logiciel malveillant que vous supprimez ! En revanche, si c&#039;est un logiciel qui s&#039;est fait infecter (par exemple apache) il suffit de réinstaller celui-ci, après avoir vidé le cache des paquets de votre gestionnaire de packages. Vérifiez aussi la configuration après réinstallation. Nul besoin de redémarrer, sauf si évidemment c&#039;est le noyau qui est corrompu, chose qui est à mon avis très rare.&lt;br /&gt;
&lt;br /&gt;
=== netstat ===&lt;br /&gt;
La commande &amp;lt;code&amp;gt;netstat&amp;lt;/code&amp;gt; est une commande qui liste toutes les connexions réseau actives sur votre machine ainsi que l&#039;état dans lequel elles sont (listening, connected, established, etc.) :&lt;br /&gt;
&amp;lt;code&amp;gt;Proto Recv-Q Send-Q Adresse locale          Adresse distante        Etat&lt;br /&gt;
tcp     0             0            0.0.0.0:3129               0.0.0.0:*                        LISTEN&lt;br /&gt;
tcp6   0             0            :::443                           :::*                                   LISTEN&amp;lt;/code&amp;gt;&lt;br /&gt;
On voit ici par exemple que le port 3129 écoute (LISTEN) sur la machine locale (0.0.0.0) et que le port 443 en fait de même.&lt;br /&gt;
Vérifiez les connexions actives, les ports ouverts, et faites le lien avec vos démons et autres programmes qui tournent. Si un port ne vous dit rien, informez-vous.&lt;br /&gt;
&lt;br /&gt;
=== lsof ===&lt;br /&gt;
La commande &amp;lt;code&amp;gt;lsof&amp;lt;/code&amp;gt; liste tous les fichiers ouverts actuellement. Elle indique aussi quel utilisateur utilise quel fichier.&lt;br /&gt;
&amp;lt;code&amp;gt;COMMAND     PID       USER   FD      TYPE     DEVICE     SIZE       NODE      NAME&lt;br /&gt;
init                    1            root       mem  REG      3,65           31432     1720343 /sbin/init&lt;br /&gt;
apache2         597        root      mem   REG      3,65           385484  25423      /usr/sbin/apache2&amp;lt;/code&amp;gt;&lt;br /&gt;
Les informations parlent d&#039;elle-mêmes. Ce sont deux cas précis parce-que le processus &amp;lt;code&amp;gt;init&amp;lt;/code&amp;gt; a le fichier &amp;lt;code&amp;gt;/sbin/init&amp;lt;/code&amp;gt; d&#039;ouvert (de même pour apache).&lt;br /&gt;
&lt;br /&gt;
=== fcheck ===&lt;br /&gt;
C&#039;est un utilitaire qui notifie l&#039;administrateur en cas de modification de fichiers. On précise dans le fichier de configuration quels fichiers ou dossiers on veut surveiller et un mail est envoyé en cas de changement.&lt;br /&gt;
&lt;br /&gt;
=== logcheck ===&lt;br /&gt;
&amp;lt;code&amp;gt;logcheck&amp;lt;/code&amp;gt; est un outil qui scrute les logs, en fait un résumé et envoie un courriel à l&#039;administrateur (généralement root en local) régulièrement. Evidemment, il est possible de configurer le niveau de ce qui est rapporté.&lt;br /&gt;
&lt;br /&gt;
=== chkrootkit ===&lt;br /&gt;
C&#039;est un logiciel important, puisqu&#039;il détecte la présence de rootkits. Son principe de fonctionnement est l&#039;écoute des ports réseau. Relativement souvent, cependant, des logiciels tels les clients peer2peer sont détectés comme une menace, bien qu&#039;ils soient innofensifs. En effet, ils utilisent des ports qui ne sont pas &amp;quot;officiellement&amp;quot; connus (contrairement au port 80, par exemple, qui est celui de tout serveur web). Donc pas d&#039;affollement.&lt;br /&gt;
&lt;br /&gt;
=== Les systèmes de détection d&#039;intrusion ===&lt;br /&gt;
Un [http://fr.wikipedia.org/wiki/Système_de_détection_d&#039;intrusion IDS (&#039;&#039;Intrusion Detection System&#039;&#039;)] est un logiciel qui a pour but de détecter toute intrusion dans le système. On peut citer par exemple [[Reseau-secu-SNORT|snort]] et tiger mais il en existe d&#039;autres.&lt;br /&gt;
Un tel logiciel fait des vérifications sur le système (logs, réseau, etc.) et reporte toute anomalie, tout ce qui est suspect.&lt;br /&gt;
&lt;br /&gt;
== Localiser le problème et nettoyer ==&lt;br /&gt;
Grâce aux outils précédents il est plus ou moins facile de localiser d&#039;où vient le problème. On peut alors agir en conséquence, à savoir tuer les processus incriminés et supprimer les logiciels correspondants. Au préalable on peut aussi, si l&#039;on est curieux, regarder ce qu&#039;a fait l&#039;attaquant : il a certainement laissé des traces que l&#039;on peut examiner pour mieux comprendre.&lt;br /&gt;
&lt;br /&gt;
L&#039;intrus ayant pu avoir les droits root il serait de bon augure de réinstaller proprement -- en ayant pris soin de vider le cache de son gestionnaire de paquets -- les outils permettant la découverte de logiciels non souhaités, comme chkrootkit. Ceci fait un scan complet de tous les disques doit être fait. Prenez soin de monter toutes les partitions avant de lancer le scan. Veillez aussi à vérifier le partitionnement de vos disques, au cas où l&#039;attaquant aurait créé une partition dans le but d&#039;avoir un endroit de stockage de ses outils malveillants que l&#039;administrateur de la machine -- vous-même -- ne verrait pas. Eh oui, il faut penser à toutes les éventualités ! Je pense qu&#039;il vaut mieux être trop paranoïaque que pas assez, lorsqu&#039;on administre un serveur.&lt;br /&gt;
&lt;br /&gt;
== Voir aussi ==&lt;br /&gt;
* [http://fr.wikipedia.org/wiki/Cat%C3%A9gorie:Logiciel_de_s%C3%A9curit%C3%A9_informatique Wikipédia : Catégorie:Logiciel de sécurité informatique]&lt;br /&gt;
* [http://fr.wikipedia.org/wiki/S%C3%A9curit%C3%A9_informatique Wikipédia : Sécurité des systèmes d&#039;information]&lt;br /&gt;
* [http://fr.wikipedia.org/wiki/Risques_en_s%C3%A9curit%C3%A9_informatique Wikipédia : Risques en sécurité informatique]&lt;br /&gt;
* [http://www.debian.org/doc/manuals/securing-debian-howto/index.fr.html Une excellente documentation concernant la sécurisation de la distribution Debian GNU/Linux]&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
Même si l&#039;on connaît les risques, il est toujours impératif de rester sur ses gardes. De nouvelles menaces apparaissent régulièrement, de nouvelles failles sont découvertes chaque jour, de nouveaux virus aussi, etc. L&#039;avenir nous dira si un jour on aura des ordinateurs sûrs à 100%, chose qui n&#039;est pas impossible mais cependant improbable.&lt;br /&gt;
&lt;br /&gt;
== Remerciements ==&lt;br /&gt;
Un grand merci à abgech pour sa contribution à la partie concernant le BIOS,&amp;lt;br&amp;gt;&lt;br /&gt;
Merci à oudoubah, pour ses idées et son expérience,&amp;lt;br&amp;gt;&lt;br /&gt;
Merci à Morgan pour l&#039;aide qu&#039;il m&#039;a apporté pour restructurer l&#039;article, ainsi que pour ses idées et ses critiques également.&amp;lt;br&amp;gt;&lt;br /&gt;
Merci à Fleury pour sa contribution en rapport avec les virus, vers, chevaux de Troie, etc.&amp;lt;br&amp;gt;&lt;br /&gt;
Merci enfin à Léa d&#039;être là pour le logiciel libre !&lt;br /&gt;
&lt;br /&gt;
== Copyright ==&lt;br /&gt;
Copyright &amp;amp;copy; merlin8282&lt;br /&gt;
{{CC-BY-NC-SA}}&lt;/div&gt;</summary>
		<author><name>Xion345</name></author>
	</entry>
	<entry>
		<id>https://lea-linux.org/docs/index.php?title=Configurer_les_touches_de_son_clavier_multim%C3%A9dia&amp;diff=12630</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=12630"/>
		<updated>2006-05-12T18:41:54Z</updated>

		<summary type="html">&lt;p&gt;Xion345 : /* 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 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;
===== 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;
| Vérouiller 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>Xion345</name></author>
	</entry>
</feed>