jeudi 18 novembre 2010

Configuration du clavier

Ça y est, après 3 jours entiers à m'arracher les cheveux et à écumer les forums ubuntu et autre, à lire des trucs en anglais, j'ai enfin réussit à configurer le clavier de l'ordinateur.

Le configurer? Mais pour quoi faire?

Ben c'est simple, je suppose qu'une mamie ça peut appuyer sur pleins de touches sans comprendre comment ce que ça fait. Alors j'ai voulu :
  • Désactiver Caps-lock
  • Désactiver inser
  • Désactiver num-lock
  • Désactiver la touche logo windows
Le problème c'est qu'en modifiant la config du clavier ça bug sous VNC (changement de config clavier, je ne sais pas pourquoi).

Pour supprimer la touche caps-lock et windows, il suffit d'aller dans Système>Préférences>Clavier>Agencement>Options>
>Comportement de la touche Verrouillage majuscule (et cocher désactiver)
>Comportement de la touche Compose (et cocher touche logo de gauche)
Et enfin, cliquer sur Appliquer à l'ensemble du système.
Par contre moi ça ne marche plus avec les modifs décrites ci-dessous.

Pour les autres touches, en effet, c'est plus compliqué!
Ma source principale d'information sur le sujet est l'excellente page : http://wiki.mandriva.com/fr/Personnaliser_le_clavier

Après de nombreux essais avec xmodmap qui induisent des bugs, j'ai utiliser les options de configuration décrites ici : Réaffecter des touches avec Xkb

Il suffit de lire le tuto, créer son propre clavier dans sudo gedit ~/.clavier_mamie/mamie_fr.

Pour supprimer la touche ins il suffit d'affecter au nom de touche <INS> le keysym F13 (création d'une touche de fonction n°13 fictive)

Pour désactiver la touche verrouillage numérique c'est encore un peu plus compliqué. C'est une touche géré au niveau du noyau du système (ou quelque chose comme ça) et elle fait changer les mod du clavier : passage du mod 1 au mod 2.
En mod 1 les touches du pavé numérique sont désactivées (elles servent alors de touches de direction) et en mod 2 elles sont activés.
Comme il est difficile de changer le fonctionnement des mod à cause des répercussions sur le reste du clavier, il est plus facile d'affecter le même fonctionnement aux touches du pavé numérique que ce soit en mod 1 ou en mof 2.


Il suffit d'affecter au nom de touche <KBnuméro> la touche {numéro, numéro, numéro, numéro}

Ci dessous mon fichier de configuration personnalisé du clavier mamie_fr :

//Table 0 commentée
// nom de la table de clavier par défaut ("mamie_fr") :
default xkb_keymap "mamie_fr" {

// inclusion de parties de fichiers du répertoire keycodes :
// inclusion de la section default du fichier evdev
// et de la section azerty du fichier aliases
xkb_keycodes { include "evdev+aliases(azerty)" };
// inclusion de parties de fichiers des rép. types et compat :
// section default du fichier complete des 2 répertoires
xkb_types { include "complete" };
xkb_compat { include "complete" };

// inclusion de sections de fichiers du répertoire symbols :

// configuration des touches du clavier numérique pour afficher le chiffre qu'il y ait num lock ou non et désactivé touche ins

//désactivé la touche caps-lock et la touche logo windows gauche

    xkb_symbols   { include "pc+fr(oss)+inet(evdev)"
            key <KP0> { [KP_0, KP_0, KP_0, KP_0      ] };   
            key <KP1> { [KP_1, KP_1, KP_1, KP_1      ] };
            key <KP2> { [KP_2, KP_2, KP_2, KP_2      ] };   
            key <KP3> { [KP_3, KP_3, KP_3, KP_3      ] };
            key <KP4> { [KP_4, KP_4, KP_4, KP_4      ] };   
            key <KP5> { [KP_5, KP_5, KP_5, KP_5      ] };
            key <KP6> { [KP_6, KP_6, KP_6, KP_6      ] };   
            key <KP7> { [KP_7, KP_7, KP_7, KP_7      ] };
            key <KP8> { [KP_8, KP_8, KP_8, KP_8      ] };   
            key <KP9> { [KP_9, KP_9, KP_9, KP_9      ] };
            key <KPDL> { [period, period, period, period      ] };
            key <INS> { [F13, F13, F13      ] };
            key <NMLK> { [Num_Lock, Num_Lock, Num_Lock, Num_Lock      ] };
            key <CAPS> { [Shift_L, NoSymbol, Shift_L      ] };
            key <LWIN> { [F13, NoSymbol, F13      ] };
            };

// inclusion de la section pc105 du fichier pc du rép. geometry :
xkb_geometry { include "pc(pc105)" };
// la définition qui commençait le fichier se termine ci-dessous :
};



Maintenant, il n'y à plus qu'à lancer automatiquement cette config au démarrage de l'ordi. J'ai créé un script qui lance le clavier (à écrire dans un fichier clavier_mamie.sh)  :

#!/bin/sh
# script clavier mamie 1
# le sleep permet à la config perso de se charger APRES la config par défaut
sleep 10
xkbcomp -w 0 -R/usr/share/X11/xkb/ $HOME/.clavier_mamie/mamie_fr $DISPLAY
exit 0;


Enfin il ne reste plus qu'à lance ce script au démarrage de l'ordi : Système>Préférences>Application au démarrage>Ajouter


sh /home/mamie/.clavier_mamie/clavier_mamie.sh


Et voili... Facile non?


EDIT : 

Suite à un débat avec la famille,  je me demandais si il ne serait pas plus simple pour la mamie d'avoir un clavier ABCDEF que AZERTY :


Pour cela il suffit de démonter toutes les touches de caractères et de les remonter dans l'ordre souhaité. Et avec une manip similaire à ci-dessus, réaffecter les touches.
Je pense que la modification de la configuration du clavier doit porter sur le fichier aliases de la ligne des keycodes :
xkb_keycodes { include "evdev+aliases(azerty)" };

et créer une nouvelle section (abcdef) en plus des sections (azerty) et (qwerty). Si besoin, pour retrouver la configuration azerty, il suffit de lancer le clavier par défaut.
Par contre, je n'ai pas testé l'interaction avec VNC...

Comme vous l'avez peut-être compris, le débat familiale à conclu qu'il valait mieux garder AZERTY et que la mamie, soit elle n'utiliserai pas le clavier, soit elle s'y ferait... Affaire à suivre !

Ordinateur pour grand-parents, ordinateur pour papy, ordinateur pour personnes âgée, linux pour mamie, linux pour papy, linux pour personne âgée, linux pour grands-parents.

Aucun commentaire:

Enregistrer un commentaire