Clavier multimédia : Lineak
09 May. 2006
- Auteur : Morgoth
- Responsable : TrustRobot
- Score ( voter ) :



- Connexes : Même auteur | Même responsable | Historique
1. Téléchargement de lineak :
Lineak est programme vous permettant d'utiliser simplement les touches de votre clavier multimédia. Vous pouvez téléchargez lineak sur ce site. Veillez à télécharger au moins ces fichiers sauf si vous comptez utiliser des packages (rpm, deb, ...) :- lineakd-0.8.4.tar.gz
- lineak_defaultplugin-0.8.4.tar.gz
- lineak_xosdplugin-0.8.4.tar.gz
- lineak_kdeplugins-0.8.4.tar.gz
- klineakconfig-0.8-beta2.tar.gz
2. Installation :
-
Pour Mandriva :
Ça se fait tout seul :
# urpmi lineakd # urpmi lineakd-plugins-default # urpmi lineakd-plugins-xosd # urpmi lineakd-plugins-kde # urpmi klineakconfig
-
Pour Debian :
Il y a également des packages tout prêts :
# aptget install lineakd # aptget install lineak-defaultplugin # aptget install lineak-xosdplugin # aptget install lineak-kdeplugins # aptget install klineakconfig
-
Par les sources :
lineakd
$ tar -xzvf lineakd-0.8.4.tar.gz $ cd lineakd-0.8.4 $ make -f Makefile.dist $ ./configure $ make $ su mot_de_passe_root # make installlineak_defaultplugin
$ tar -xzvf lineak_defaultplugin-0.8.4.tar.gz $ cd lineak_defaultplugin-0.8.4 $ ./configure $ make $ su mot_de_passe_root # make installlineak-xosdplugin
Ce plugin requiert d'avoir xosd-devel d'installé-
Pour Debian :
apt-get install libxosd-dev
-
Pour Mandriva :
# urpmi libxosd2-devel
$ tar -xzvf lineak-xosdplugin-0.8.4.tar.gz $ cd lineak-xosdplugin-0.8.4 $ ./configure $ make $ su mot_de_passe_root # make installlineak_kdeplugins
$ tar -xzvf lineak_kdeplugins-0.8.4.tar.gz $ cd lineak_kdeplugins-0.8.4 $ ./configure $ make $ su mot_de_passe_root # make installklineakconfig
$ tar -xzvf klineakconfig-0.8-beta2.tar.gz $ cd klineakconfig-0.8-beta2 $ ./configure $ make $ su mot_de_passe_root # make install -
Pour Debian :
3. Configuration manuelle :
La configuration est faite par chaque utilisateur. Ils peuvent donc configurer le clavier multimédia à leur guise.Recherche du type de clavier
Celle-ci n'est pas très compliquée à réaliser. Pour cela tapez dans un terminal :
$ lineakd -l
Une liste des claviers supportés apparait. Retenez le type (colonne de gauche) correspondant au votre, puis tapez cette nouvelle commande :
$ lineakd -c TYPE
en remplaçant TYPE par la valeur lue dans la liste.
Cela vous crée un nouveau fichier dans ~/.lineak/lineakd.conf.
Édition des paramètres
Il vous suffit d'éditer le fichier précédent et de remplir les champs selon votre convenance. Tout d'abord, les paramètres liés à lineakd, dont voici les principaux éléments :
CdromDevice = votre lecteur de cdrom (ex : /dev/cdrom)
KeyboardType = le type de votre clavier
MixerDevice = votre mixer (ex : /dev/mixer)
conffilename = le chemin de votre fichier de config (ex : /home/julien/.lineak/lineakd.conf)
En bas, vous devez également trouver des choses du genre :
Search =
Vous devez mettre ici l'application que vous souhaitez lancer lors de l'appui sur cette touche. Par exemple :
Search = "kfind"
Ensuite les MACROS du plugin par défaut. En effet, celui-ci vous permet de rajouter à la place du nom d'une application des macros prédéfinies. Par exemple :
- EAK_MUTE : Coupe le son dans votre mixer.
- EAK_VOLUP ou EAK_VOLDOWN : Augmente ou diminue le son dans votre mixer.
- EAK_EJECT : Ejecte le CD de votre lecteur par défaut.
Mute = EAK_MUTE
Tout ça est très bien, mais il reste encore les petites fonctionnalités du plugin xosd. Celui-ci vous permet d'afficher un court message lorsque vous appuyez sur une touche. Il faut pour cela rajouter le texte entre crochets de cette manière :
[Lancement de Kfind] Search = "kfind"
Il faut aussi mettre xosd dans votre fichier à la ligne "Display-plugin" :
Display_plugin = xosd
Il est inutile de mettre un texte pour les macros (EAK_...), car un texte prédéfini est déjà prévu.
Pour info, voici mon fichier de configuration personnel :
CdromDevice = /dev/cdrom Display_align = center Display_color = 0aff00 Display_font = -adobe-helvetica-bold-r-normal-*-*-240-*-*-p-*-*-* Display_hoffset = 0 Display_plugin = xosd Display_pos = bottom Display_soffset = 1 Display_timeout = 3 Display_voffset = 50 KeyboardType = LTIKeurope MixerDevice = /dev/mixer Screensaver = conffilename = /etc/lineakd.conf keystate_capslock = keystate_numlock = keystate_scrolllock = [Lancement de Kontact] E-Mail = "kontact" [Lancement de Konqueror] Files = "konqueror ~" Mute = EAK_MUTE [Lancement de Kfind] Search = "kfind" VolumeDown = EAK_VOLDOWN VolumeUp = EAK_VOLUP [Lancement de Firefox] WWW = "mozilla-firefox"Pour avoir la liste de toutes les macros disponibles, je vous conseille de taper dans une console : lineakd -L
4. Configuration avec klineakconfig :
klineakconfig est un assistant de configuration graphique pour KDE. Il est encore en version beta, mais fonctionne très bien chez moi, donc je me permets de vous le présenter. Il est très intuitif, et je pense qu'en lisant la partie sur la configuration manuelle, vous devriez pouvoir vous en sortir.
5. Lancement au démarrage :
Pour que tout ce qui précède fonctionne, le daemon lineakd doit être lancé. La solution que j'utilise actuellement est de lancer lineakd au chargement du desktop manager.-
Pour KDE :
$ ln -s /usr/bin/lineakd ~/.kde/Autostart/lineakdEnsuite, pour éviter les problèmes lors de changement de session, il faut s'assurer que lineakd soit stoppé lors de la fermeture :$ su mot_de_passe_root # echo '#!/bin/bash' > /usr/bin/stoplineakd # echo 'lineakd -x' >> /usr/bin/stoplineakd # chmod 755 /usr/bin/stoplineakd # exit $ cd ~/.kde/shutdown $ ln -s /usr/bin/stoplineakd ~/.kde/shutdown/stoplineakd
-
Pour Fluxbox :
Ajoutez ce qui suis dans votre fichier ~/fluxbox/startup :
lineakd &
-
Pour Gnome :
Cliquez sur menu -> Applications -> Desktop Preferences -> Advanced -> Sessions puis sur l'onglet Startup programs, et rajoutez la ligne de commande :
lineakd &
6. Touches non reconnues :
Il peut arriver qu'une de vos touche ne soit pas correctement initialisée par le noyau. Cela est visible si vous avez une ligne de ce genre dans le fichier /var/log/messages
Sep 18 13:39:45 Angband kernel: atkbd.c: Unknown key released (translated set 2, code 0x85 on isa0060/serio0).
Sep 18 13:39:45 Angband kernel: atkbd.c: Use 'setkeycodes e005 <keycode>' to make it known.
On en déduit que le scancode de la touche non initialisée est e005
Il faut ensuite trouver un keycode de libre afin d'initialiser la touche. Voici la commande qui permet d'obtenir la liste des keycodes utilisés :
# getkeycodes
Plain scancodes xx (hex) versus keycodes (dec)
0 is an error; for 1-88 (0x01-0x58) scancode equals keycode
0x58: 88 117 0 0 95 183 184 185
0x60: 0 0 0 0 0 0 0 0
0x68: 0 0 0 0 0 0 0 0
0x70: 93 0 0 89 0 0 85 91
0x78: 90 92 0 94 0 124 121 0
Escaped scancodes e0 xx (hex)
e0 00: 0 0 0 0 0 0 0 0
e0 08: 0 0 0 0 0 0 0 0
e0 10: 165 0 0 0 0 0 0 0
e0 18: 0 163 0 0 96 97 0 0
e0 20: 113 140 164 0 166 0 0 0
e0 28: 0 0 255 0 0 0 114 0
e0 30: 115 0 150 0 0 98 255 99
e0 38: 100 0 0 0 0 0 0 0
e0 40: 0 0 0 0 0 119 119 102
e0 48: 103 104 0 105 112 106 118 107
e0 50: 108 109 110 111 0 0 0 0
e0 58: 0 0 0 125 126 127 116 142
e0 60: 0 0 0 143 0 217 156 173
e0 68: 128 159 158 157 155 226 0 112
e0 70: 0 0 0 0 0 0 0 0
e0 78: 0 0 0 0 0 0 0 0
A gauche, vous avez les scancodes. Dans mon cas, on regarde à la ligne e0 00. Le premier 0 correspond à e0 00, le second à e0 01, etc. Il faut donc regarder la sixième colonne pour e0 05. On y trouve un 0 : la touche n'est pas initialisée. On peut voir que le scancode e0 48 est associé au keycode 103.
Pour trouver un keycode de libre, je vous conseille de commencer à 127, et de diminuer progressivement. Si vous ne voulez pas vous fatiguer à inspecter visuellement le tableau, la commande grep est faîte pour vous :
# getkeycodes | grep 127
e0 58: 0 0 0 125 126 127 116 142
# getkeycodes | grep 123
123 semble être disponible.
Attention : il faut trouver un keycode inférieur ou égal à 127, car setkeycodes ne fonctionne pas pour des valeurs supérieures (en tout cas chez moi).
Ensuite vous assignez la touche au keycode que vous avez choisi (123 pour moi) :
# setkeycodes e005 123
# getkeycodes
Plain scancodes xx (hex) versus keycodes (dec)
0 is an error; for 1-88 (0x01-0x58) scancode equals keycode
0x58: 88 117 0 0 95 183 184 185
0x60: 0 0 0 0 0 0 0 0
0x68: 0 0 0 0 0 0 0 0
0x70: 93 0 0 89 0 0 85 91
0x78: 90 92 0 94 0 124 121 0
Escaped scancodes e0 xx (hex)
e0 00: 0 0 0 0 0 123 0 0
e0 08: 0 0 0 0 0 0 0 0
e0 10: 165 0 0 0 0 0 0 0
e0 18: 0 163 0 0 96 97 0 0
e0 20: 113 140 164 0 166 0 0 0
e0 28: 0 0 255 0 0 0 114 0
e0 30: 115 0 150 0 0 98 255 99
e0 38: 100 0 0 0 0 0 0 0
e0 40: 0 0 0 0 0 119 119 102
e0 48: 103 104 0 105 112 106 118 107
e0 50: 108 109 110 111 0 0 0 0
e0 58: 0 0 0 125 126 127 116 142
e0 60: 0 0 0 143 0 217 156 173
e0 68: 128 159 158 157 155 226 0 112
e0 70: 0 0 0 0 0 0 0 0
e0 78: 0 0 0 0 0 0 0 0
Et voilà, c'est fait.
Mais attention ne croyez pas que c'est gagné ! Il y a encore des subtilités. Il faut récupérer le keycode détecté par X (qui est souvent différent de celui du noyau) en utilisant xev. Je ne détaille pas son installation, faites un tour sur le forum si vous avez des soucis. Donc lancez xev, placer votre souris sur la petite fenêtre qui apparait et appuyer immédiatement sur votre touche récalcitrante. Voici ce qui est interessant :
# xev
...
KeyPress event, serial 28, synthetic NO, window 0x4200001,
root 0x3e, subw 0x0, time 1411256, (731,70), root:(736,863),
state 0x10, keycode 122 (keysym 0x0, NoSymbol), same_screen YES,
XLookupString gives 0 bytes: ""
KeyRelease event, serial 28, synthetic NO, window 0x4200001,
root 0x3e, subw 0x0, time 1411256, (731,70), root:(736,863),
state 0x10, keycode 122 (keysym 0x0, NoSymbol), same_screen YES,
XLookupString gives 0 bytes: ""
...
Et là on voit quoi ? Que le keycode détecté par X est 122 !!! (Cherchez l'erreur). Si rien ne se passe quand vous appuyez sur votre touche, c'est que vous ne lui avez pas assigné correctement un keycode. Réessayez avec un autre éventuellement.
On peut maintenant éditer le fichier /usr/local/etc/lineakkb.def (ou /etc/lineakkb.def si vous avez fait l'installation à partir des RPMS) pour tenir compte de cette modification. Exemple pour moi :
[LTIKeurope]
brandname = "Logitech"
modelname = "Internet Keyboard (European)"
[KEYS]
Search = 229
Files = 122
E-Mail = 236
WWW = 178
Mute = 160
VolumeDown = 174
VolumeUp = 176
[END KEYS]
[END LTIKeurope]
Redémarrez lineakd pour qu'il tienne compte des modifications :
$ lineakd -x
$ lineakd &
Normalement, à ce stade, toutes vos touches peuvent fonctionner. Maintenant, il faut que la petite manipulation précédente soit effectuée automatiquement au démarrage. Donc éditez le fichier /etc/rc.sysinit, et ajoutez à la fin :
setkeycodes e005 123
en adaptant ceci à vos valeurs bien évidemment.
Et voilà, j'espère que cela vous aura aidé, mais sachez que j'en ai bien bavé et que je n'ai pas testé sur d'autres configurations, donc rendez-vous sur le forum pour les détails...