Clavier MX3000 sous Linux

le but est de faire fonctionner le maximum de touches du clavier sans-fil du kit Logitech Desktop MX3000. Et cela sous KDE grâce à lineakd.

On branche le tout (clavier et souris) sur les port PS2 classique.

Script d'activation des touches inconnu

Un certain nombre de touches du clavier ne sont pas reconnu d'office. Le travail de découverte étant laborieux, je vous donne directement une solution. Voilà le script qui permet de les activer au démarrage:

#! /bin/bash
# Script d activation des touches multimedia du clavier
# sans fils Logitech MX3000
#
#---
#NAVIGATION
# Stop
setkeycodes 6d 128      #define KEY_STOP
#---
#ZOOM
# Zoom+
setkeycodes 6a 230      #define KEY_KBDILLUMUP
setkeycodes 55 230      #define KEY_KBDILLUMUP
# Zoom-
setkeycodes 6f 229              #define KEY_KBDILLUMDOWN
setkeycodes e004 229    #define KEY_KBDILLUMDOWN
# Zoom 100%
setkeycodes 6b 228      #define KEY_KBDILLUMTOGGLE
#---
#BIBLIOTHEQUE MEDIA
# Video
setkeycodes e014 183    #define KEY_F13
# Musique
setkeycodes e013 184    #define KEY_F14
# Images
setkeycodes e015 185    #define KEY_F15
#---
#MES DOCUMENTS
setkeycodes e055 235    #define KEY_DOCUMENTS
#---
#TOUCHES MULTIMEDIA
# Graver
setkeycodes e031 170    #define KEY_RECORD
# Enregistrer
setkeycodes e078 167    #define KEY_RECORD
# Shuffle
setkeycodes 72 186      #define KEY_F16
# Ejecter
setkeycodes e02f 162    #define KEY_EJECTCLOSECD
# Playlist -
setkeycodes e072 187    #define KEY_F17
# Playlist +
setkeycodes e073 188    #define KEY_F18
# Preset 1
setkeycodes e02c 189    #define KEY_F19
# Preset 2
setkeycodes e025 190    #define KEY_F20
# Preset 3
setkeycodes e026 191    #define KEY_F21
#---
#MESSAGERIE
# Messenger
setkeycodes e011 216    #define KEY_CHAT
# Status
setkeycodes e075 218    #define KEY_CONNECT
# Camera Web
setkeycodes e074 212    #define KEY_CAMERA
#---
#TOUCHE DE FONCTION
# Batterie
setkeycodes e03b 236    #define KEY_BATTERY
# Traitement de texte
setkeycodes e03c 192    #define KEY_F22
# Tableur
setkeycodes e03d 193    #define KEY_F23
# Présentation
setkeycodes e03e 194    #define KEY_F24
# Défaire
setkeycodes e03f 131    #define KEY_UNDO
# Refaire
setkeycodes e040 182    #define KEY_REDO
# Imprimer
setkeycodes e041 210    #define KEY_PRINT
# Enregistrer
setkeycodes e042 234    #define KEY_SAVE
# [a]
setkeycodes e043 148    #define KEY_PROG1
# [b]
setkeycodes e044 149    #define KEY_PROG2
# [c]
setkeycodes e057 202    #define KEY_PROG3
# [d]
setkeycodes e058 203    #define KEY_PROG4
 

La méthode pour créer ce script est sur le site officiel de lineakd

Il faut que ce script soit lancer à chaque démarrage. J'ai donc placer ce script dans /usr/local/bin/active_touches.sh.
Il faut ensuite le rendre exécutable uniquement par root:

# chown root:root /usr/local/bin/active_touches.sh
# chmod u+x /usr/local/bin/active_touches.sh
 

Et enfin, il faut qu'il soit exécuter au démarrage. Il suffit de rajouter une ligne à la fin de /etc/rc.conf (pour Gentoo) ou avant la ligne "exit 0" dans le fichier /etc/rc.local (pour Ubuntu et ses dérivés):

/usr/local/bin/active_touches.sh
 

Installation de lineakd

J'ai installé lineakd et ses plugins généraux et pour KDE, XOSD. On y trouve tout ce qui faut pour le réglage du volume via Kmixer, Amarok, Konqueror .... et un affichage sur l'écran des commandes
Sous Gentoo:

 # emerge lineakd lineak-defaultplugin lineak-kdeplugins lineak-xosdplugin
 

Sous Ubuntu, les paquets ont exactement le même nom, donc en ligne de commande il suffit de remplacer "emerge" par "apt-get install" ou de faire une petite recherche dans Synaptic (Ubuntu) ou adept (Kubuntu).

Pour les aficionados des boîtes à clics, il y a une interface graphique de configuration de lineakd: klineakconfig (actuellement masquée dans portage).

Configuration de lineakd

Les fichiers de configuration se situe dans le répertoire ~/.lineak/ de chaque utilisateur.
On y trouve 2 fichier importants:

  • lineakkb.def qui contient la définition des touches du clavier. C'est la correspondance entre le nom de la touche pour lineakd et son numero de code. Par exemple, voilà mon fichier lineakkb.def:
    [USRaLCDM]
    brandname = Logitech
    modelname = Cordless Desktop MX3000
    [KEYS]
    Back=234
    Battery=241
    Burn=208
    Calculator=161
    EjectClose=253
    Email=236
    FastBackward=144
    FastForward=153
    MEDIA=237
    MediaMusic=183
    MediaPicture=184
    MediaVideo=182
    Messenger=121
    Mute=160
    MyDocs=240
    Play_Pause=162
    PlaylistDown=131
    PlaylistUp=247
    Presentation=207
    Preset1=132
    Preset2=170
    Preset3=219
    Print=185
    ProgA=159
    ProgB=151
    ProgC=171
    ProgD=172
    Record=177
    Redo=138
    Remote=129
    Save=213
    Shutdown=223
    SpreadSheet=205
    Status=194
    Stop=164
    Undo=135
    VolumeDown=174
    VolumeUp=176
    WebCam=187
    WordProcessor=249
    Zoom100=215
    ZoomDown=216
    ZoomUp=217
    [END KEYS]
    [END USRaLCDM]
  • lineakd.conf, le fichier de configuration principal de lineakd. La première partie du fichier contient les option générale. La seconde fait la correspondance entre le nom des touches leur fonctions (après le signe "=") et le message à afficher grâce à XOSD (entre crochet en début de ligne). Le message XOSD n'est pas obligatoire. Mon fichier de configuration est le suivant:
    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 = USRaLCDM
    MixerDevice = /dev/mixer
    Screensaver =
    conffilename = /home/arofarn/.lineak/lineakd.conf
    deffilename = /etc/lineakkb.def
    keystate_capslock =
    keystate_numlock =
    keystate_scrolllock =
    userdeffile = /home/arofarn/.lineak/lineakkb.def
    #---
    [Precedent] Back = KONQUEROR_BACK
    Battery =
    [k3b - Logiciel de gravure] Burn = k3b
    [Calculette] Calculator = qalculate-kde
    [Ejection du CD/DVD] EjectClose = eject -T /dev/hdc
    [Client mail] Email = thunderbird
    [Retour au morceau precedent] FastBackward = AMAROK_BACK
    [Avance au morceau suivant] FastForward = AMAROK_FORWARD
    [Media] MEDIA = amarok %U
    [Musique] MediaMusic = kfmclient openProfile Musique
    [Images] MediaPicture = kfmclient openProfile Images
    [Vidéo] MediaVideo = kfmclient openProfile Video
    [GAIM] Messenger = gaim
    [Muet] Mute = KMIX_MUTE
    [Mes Documents] MyDocs = kfmclient openProfile filemanagement
    [Lecture / Pause] Play_Pause = AMAROK_PLAYPAUSE
    PlaylistDown =
    PlaylistUp =
    [OpenOffice.org Impress] Presentation = ooimpress2 %U
    Preset1 =
    Preset2 =
    Preset3 =
    Print =
    [Ktorrent] ProgA = azureus
    [Konsole] ProgB = konsole
    ProgC =
    ProgD =
    [KAudioCreator] Record = kaudiocreator
    Redo =
    [Télécommande] Remote =
    Save =
    [Deconnexion] Shutdown = KDE_LOGOUT
    [OpenOffice.org Calc] SpreadSheet = oocalc2 %U
    Status =
    [Stop] Stop = AMAROK_STOP
    Undo =
    [Moins fort] VolumeDown = KMIX_VOLDOWN
    [Plus fort] VolumeUp = KMIX_VOLUP
    WebCam =
    [OpenOffice.org Writer] WordProcessor = oowriter2 %U
    [Resolution Max] Zoom100 = xrandr 0
    ZoomDown =
    ZoomUp =

Lancement automatique de lineakd au démarrage de KDE

Il suffit de créer un script exécutable dans son répertoire ~/.kde/Autostart qui contient cette ligne:

lineakd &

Et la souris

Pas grand chose à faire sinon suivre les intructionde cette page du Wiki Gentoo. La souris du kit MX3000 est en fait le modèle MX600 de Logitech.

Pingback on February 21st, 2007.

[...] Clavier MX3000 sous Linux [...]