Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
Dernière révision Les deux révisions suivantes
tutoriel:comprendre_la_configuration_du_clavier [Le 16/05/2018, 09:30]
sefran Mise en forme Windows
tutoriel:comprendre_la_configuration_du_clavier [Le 03/03/2020, 13:46]
sefran Update link
Ligne 24: Ligne 24:
 <​code>​[user@ASUS-K93SM ~]$ showkey -s</​code>​ <​code>​[user@ASUS-K93SM ~]$ showkey -s</​code>​
  
-<​code>​kb mode was UNICODE +<​code>​le mode clavier était ​UNICODE 
-if you are trying this under X, it might not work +si vous essayez cela sous Windowcela peut ne pas fonctionner 
-since the server is also reading ​/​dev/​console ]+étant donné que le serveur ​utilise également ​/​dev/​console ]
  
-press any key (program terminates ​10s after last keypress)...+Appuyez sur n'​importe quelle touche ​(le programme terminera ​10s après la dernière touche enfoncée)...
 0x10 0x90 0x10 0x90
 0x11 0x91 0x11 0x91
Ligne 36: Ligne 36:
 0x15 0x95</​code>​ 0x15 0x95</​code>​
  
-Lorsque l'​on ​appui **↓** sur la même touche «**A**» (AZERTY), soit B (BÉPO), soit Q (QWERTY), le scancode généré est alors : **0x10**.+Lorsque l'​on ​appuie ​**↓** sur la même touche «**A**» (AZERTY), soit B (BÉPO), soit Q (QWERTY), le scancode généré est alors : **0x10**.
 Lorsque l'on relâche la touche **↑** le scancode généré est alors : **0x90**. ​ Lorsque l'on relâche la touche **↑** le scancode généré est alors : **0x90**. ​
 La séquence de scancode «**0x10 0x90**» correspond alors au caractère A pour l'​Azerty. La séquence de scancode «**0x10 0x90**» correspond alors au caractère A pour l'​Azerty.
  
-Lorsque l'​on ​appui **↓** sur la touche «**Alt Gr**» la séquence de code générée est : **0xe0 0x38**. Lorsque l'on relâche la touche **↑** le scancode généré est alors : **0xe0 0xb8**.+Lorsque l'​on ​appuie ​**↓** sur la touche «**Alt Gr**» la séquence de code générée est : **0xe0 0x38**. Lorsque l'on relâche la touche **↑** le scancode généré est alors : **0xe0 0xb8**.
 La séquence de scancode «**0xe0 0x38 0xe0 0xb8**» correspond alors à une fonction. La séquence de scancode «**0xe0 0x38 0xe0 0xb8**» correspond alors à une fonction.
  
Ligne 52: Ligne 52:
  
 Exemple pour AZERTY/​BÉPOÈ!/​QWERTY Exemple pour AZERTY/​BÉPOÈ!/​QWERTY
-<​code>​[user@ASUS-K93SM ~]$ showkey -s</​code>​+<​code>​[user@ASUS-K93SM ~]$ showkey -k</​code>​
  
-<​code>​kb mode was UNICODE +<​code>​le mode clavier était ​UNICODE 
-if you are trying this under X, it might not work +si vous essayez cela sous Windowcela peut ne pas fonctionner 
-since the server is also reading ​/​dev/​console ]+étant donné que le serveur ​utilise également ​/​dev/​console ]
  
-press any key (program terminates ​10s after last keypress)... +Appuyez sur n'​importe quelle touche ​(le programme terminera ​10s après la dernière touche enfoncée)... 
-keycode ​ ​16 ​press +code clavier ​ ​16 ​appuyé 
-keycode ​ ​16 ​release +code clavier ​ ​16 ​relâché 
-keycode ​ ​17 ​press +code clavier ​ ​17 ​appuyé 
-keycode ​ ​17 ​release +code clavier ​ ​17 ​relâché 
-keycode ​ ​18 ​press +code clavier ​ ​18 ​appuyé 
-keycode ​ ​18 ​release +code clavier ​ ​18 ​relâché 
-keycode ​ ​19 ​press +code clavier ​ ​19 ​appuyé 
-keycode ​ ​19 ​release +code clavier ​ ​19 ​relâché 
-keycode ​ ​20 ​press +code clavier ​ ​20 ​appuyé 
-keycode ​ ​20 ​release +code clavier ​ ​20 ​relâché 
-keycode ​ ​21 ​press +code clavier ​ ​21 ​appuyé 
-keycode ​ ​21 ​release</​code>​+code clavier ​ ​21 ​relâché</​code>​
  
 La séquence de scancode «0x10 0x90» du caractère «**A**» (AZERTY), soit B (BÉPO), soit Q (QWERTY), correspond alors au keycode **16**. La séquence de scancode «0x10 0x90» du caractère «**A**» (AZERTY), soit B (BÉPO), soit Q (QWERTY), correspond alors au keycode **16**.
Ligne 80: Ligne 80:
 Exemple de codes clavier pour un portable ASUS K93SM : Exemple de codes clavier pour un portable ASUS K93SM :
 {{ :​tutoriel:​asus_k93sm_keycodes.png?​direct&​600 |}} {{ :​tutoriel:​asus_k93sm_keycodes.png?​direct&​600 |}}
-===== Configuration de l'​affichage et des actions clavier dans la console ===== +===== Configuration de l'​affichage et des actions clavier dans la console ​de codage Unicode ===== 
-L'​interprétation fait appel à une table de correspondance entre les codes de touches keycodes (qui sont invariantes) et les symboles de touches. Cette table de correspondance,​ qui représente la disposition des caractères sur les touches l'​**agencement du clavier**, se trouve dans le répertoire «**/​usr/​share/​keymap/**».+Vérifiez que vous avez le paquet console-setup-linux installé : 
 +<​code>​apt-cache policy console-setup-linux</​code>​ 
 +Retourne si installé : 
 +<​code>​Installé : 1.178ubuntu2 
 +Candidat : 1.178ubuntu2 
 +Table de version : 
 +*** 1.178ubuntu2 500 
 +    500 http://​fr.archive.ubuntu.com/​ubuntu bionic/main amd64 Packages 
 +    500 http://​fr.archive.ubuntu.com/​ubuntu bionic/main i386 Packages 
 +    100 /​var/​lib/​dpkg/​status 
 +</​code>​ 
 + 
 +La configuration de l'​agencement du clavier se fait avec le fichier de configuration du serveur graphique 
 +===== Configuration de l'​affichage et des actions clavier dans une console de codage ASCII ===== 
 +L'​interprétation fait appel à une table de correspondance entre les codes de touches keycodes (qui sont invariantes) et les symboles de touches. Cette table de correspondance,​ qui représente la disposition des caractères sur les touches ​correspondant à l'​**agencement du clavier**, se trouve dans le répertoire «**/​usr/​share/​keymaps/**».
 Pour charger la table de l'​agencement du clavier il faut utiliser la commande «**loadkeys**». Pour charger la table de l'​agencement du clavier il faut utiliser la commande «**loadkeys**».
  
 Exemple de chargement d'un clavier bépo : Exemple de chargement d'un clavier bépo :
 <​code>​sudo loadkeys dvorak-fr-bepo</​code>​ <​code>​sudo loadkeys dvorak-fr-bepo</​code>​
 +
 +<note warning>​Si cette commande ne fonctionne pas commencez par la [[tutoriel:​comprendre_la_configuration_du_clavier#​configuration_initiale|Configuration initiale]]</​note>​
  
 Le fichier chargé pour la gestion du clavier est alors /​usr/​share/​keymap/​i386/​dvorak-fr-bepo.kmap.gz Le fichier chargé pour la gestion du clavier est alors /​usr/​share/​keymap/​i386/​dvorak-fr-bepo.kmap.gz
Ligne 93: Ligne 109:
  
 La console [[http://​blog.securite.free.fr/​index.php/​difference-les-terminaux-sous-linux-ttypts|TeleTYpewriter agetty]] utilise les polices Unicode, mais elle ne gère pas vraiment l’Unicode avec tous ses caractères. La console [[http://​blog.securite.free.fr/​index.php/​difference-les-terminaux-sous-linux-ttypts|TeleTYpewriter agetty]] utilise les polices Unicode, mais elle ne gère pas vraiment l’Unicode avec tous ses caractères.
-Pour cela il faudra installer [[https://​github.com/​dvdhrm/​kmscon|KMSCON]]. KMSCON se base sur la configuration clavier de Xorg. 
  
 Vous pouvez afficher le jeux de caractères présent dans le terminal TTY avec la commande : Vous pouvez afficher le jeux de caractères présent dans le terminal TTY avec la commande :
Ligne 100: Ligne 115:
 Vous pouvez choisir la police à afficher dans votre terminal avec la commande : Vous pouvez choisir la police à afficher dans votre terminal avec la commande :
 <​code>​setfont Uni2-Fixed16</​code>​ <​code>​setfont Uni2-Fixed16</​code>​
 +{{ :​tutoriel:​showconsolefont_uni2_fixed16.png?​direct&​600 |}}
 +Où vous pouvez trouver [[https://​www.zap.org.au/​projects/​console-fonts-distributed/​psftx-debian-9.4/​Uni2-Fixed16.psf.png|le jeux complet de la police ici]].
 +
 +==== Configuration initiale ====
 +Vérifiez que le paquet console-data est installé
 +<​code>​apt-cache policy console-data</​code>​
 +Retourne si installé :
 +<​code>​Installé : 2:1.12-5.1
 +Candidat : 2:1.12-5.1
 +Table de version :
 +*** 2:1.12-5.1 500
 +    500 http://​fr.archive.ubuntu.com/​ubuntu artfull/​main amd64 Packages
 +    500 http://​fr.archive.ubuntu.com/​ubuntu artfull/​main i386 Packages
 +    100 /​var/​lib/​dpkg/​status
 +</​code>​
 +
 +et si pas installé :
 +<​code> ​ Installé :​ (aucun)
 +  Candidat : 2:1.12-5.1
 + Table de version :
 +     ​2:​1.12-5.1 500
 +        500 http://​fr.archive.ubuntu.com/​ubuntu bionic/​universe amd64 Packages
 +        500 http://​fr.archive.ubuntu.com/​ubuntu bionic/​universe i386 Packages
 +</​code>​
 +
 +S'il n'est pas installé, installez-le :
 +<​code>​sudo apt-get install console-data</​code>​
  
-Où vous pouvez trouver [[https://​www.zap.org.au/​software/​fonts/​console-fonts-distributed/psftx-ubuntu-17.04/Uni2-Fixed16.psf.pdf|le jeux complet de la police ici]].+Paramétrez le terminal pour fonctionner avec un clavier bépo 
 +<​code>​sudo dpkg-reconfigure ​console-data</code> 
 +{{ :​tutoriel:​console-data1.png?​direct&​600 |}} 
 +{{ :​tutoriel:​console-data2.png?​direct&​600 ​|}}
  
 ==== Correction du clavier bépo ==== ==== Correction du clavier bépo ====
 {{ :​tutoriel:​asus_k93sm_bepo.png?​direct&​600 |}} {{ :​tutoriel:​asus_k93sm_bepo.png?​direct&​600 |}}
  
-Pour générer un caractère au clavier, soit on appuis ​directement sur la touche (Défaut), soit on la compose avec la touche ⇑ {{:​tutoriel:​Keyboard_White_Shift_Alt.png?​direct&​48}},​ soit on la compose avec la touche Alt Gr {{:​tutoriel:​keyboard_white_alt_gr.png?​direct&​48}},​ soit on la compose avec les deux ⇑{{:​tutoriel:​Keyboard_White_Shift_Alt.png?​direct&​48}}+Alt Gr{{:​tutoriel:​keyboard_white_alt_gr.png?​direct&​48}}.+Pour générer un caractère au clavier, soit on appuie ​directement sur la touche (Défaut), soit on la compose avec la touche ⇑ {{:​tutoriel:​Keyboard_White_Shift_Alt.png?​direct&​48}},​ soit on la compose avec la touche Alt Gr {{:​tutoriel:​keyboard_white_alt_gr.png?​direct&​48}},​ soit on la compose avec les deux ⇑{{:​tutoriel:​Keyboard_White_Shift_Alt.png?​direct&​48}}+Alt Gr{{:​tutoriel:​keyboard_white_alt_gr.png?​direct&​48}}.
  
-Par exemple comme on peut le voir avec la touche de **keycode 5**   ​{{:​tutoriel:​bepo_touch_meta_keys.png?​direct&​200}},​ l'​appui direct devrait ​généré ​le caractère **(**, l'​appui simultané de la touche **⇑** avec la touche doit générer le caractère **4**, l'​appui simultané de la touche **Altr Gr** avec la touche doit générer le caractère **[**, et enfin l'​appui simultané de **⇑** avec **Alt Gr** puis avec le caractère doit générer le caractère **≤**.+Par exemple comme on peut le voir avec la touche de **keycode 5**   ​{{:​tutoriel:​bepo_touch_meta_keys.png?​direct&​200}},​ l'​appui direct devrait ​générer ​le caractère **(**, l'​appui simultané de la touche **⇑** avec ensuite ​la touche doit générer le caractère **4**, l'​appui simultané de la touche **Altr Gr** avec ensuite ​la touche doit générer le caractère **[**, et enfin l'​appui simultané de **⇑** avec **Alt Gr** puis ensuite ​avec le caractère doit générer le caractère **≤**.
 === Création d'un fichier clavier de test === === Création d'un fichier clavier de test ===
-Copier ​le fichier dvorack-fr-bepo-utf8.kmap.gz pour travailler avec :+Copiez ​le fichier dvorack-fr-bepo-utf8.kmap.gz pour travailler avec :
 <​code>​zcat /​usr/​share/​keymaps/​i386/​dvorak/​dvorak-fr-bepo-utf8.kmap.gz > ~/​mon-bepo.map</​code>​ <​code>​zcat /​usr/​share/​keymaps/​i386/​dvorak/​dvorak-fr-bepo-utf8.kmap.gz > ~/​mon-bepo.map</​code>​
  
-Basculé ​sur une console tty (Ctlr+Alt+Fx),​ se connecter si nécessaire,​ puis saisissez une fonte de police de terminal compatible comme Uni2-Fixed16:​+Basculez ​sur une console tty (Ctlr+Alt+Fx),​ se connecter si nécessaire,​ puis saisissez une fonte de police de terminal compatible comme Uni2-Fixed16:​
 <​code>​setfont Uni2-Fixed16</​code>​ <​code>​setfont Uni2-Fixed16</​code>​
  
Ligne 354: Ligne 399:
 Maintenant on se propose de réaliser ce clavier de façon modulaire pour pouvoir réutiliser ces modules pour construire d'​autres claviers. ​ Maintenant on se propose de réaliser ce clavier de façon modulaire pour pouvoir réutiliser ces modules pour construire d'​autres claviers. ​
  
-Nous devons donc créer des fichiers avec une extension **.inc**.+Nous devons donc créer des fichiers avec une extension **.inc**. ​Pour les utiliser il suffira de les appeler avec la commande **include**. 
 Voici la structure que l'on se propose de mettre en place  Voici la structure que l'on se propose de mettre en place 
 == Les touches systèmes == == Les touches systèmes ==
Ligne 364: Ligne 410:
 == Les touches de fonctions == == Les touches de fonctions ==
 {{ :​tutoriel:​asus_k93sm_functionskeys.png?​direct&​600 |}} {{ :​tutoriel:​asus_k93sm_functionskeys.png?​direct&​600 |}}
-Fichier ​function.inc+Fichier ​functions.inc
 == Les touches du pavé numérique == == Les touches du pavé numérique ==
 {{ :​tutoriel:​asus_k93sm_numpadkeys.png?​direct&​600 |}} {{ :​tutoriel:​asus_k93sm_numpadkeys.png?​direct&​600 |}}
Ligne 370: Ligne 416:
 == Les touches bépo == == Les touches bépo ==
 {{ :​tutoriel:​asus_k93sm_bepokeys.png?​direct&​600 |}} {{ :​tutoriel:​asus_k93sm_bepokeys.png?​direct&​600 |}}
-bepo.inc ou bepo.map+bepo.inc ou bepo.map ​avec  
 +<​file>​Charset "​iso-8859-15"​ 
 + 
 +include "​system.inc"​ 
 +include "​edit.inc"​ 
 +include "​functions.inc"​ 
 +include "​numpad.inc"​ 
 + 
 +... 
 +</​file> ​
 == Les touches Fn spéciales == == Les touches Fn spéciales ==
 {{ :​tutoriel:​asus_k93sm_fnkeys.png?​direct&​600 |}} {{ :​tutoriel:​asus_k93sm_fnkeys.png?​direct&​600 |}}
 bepo_asus_k93sm.map bepo_asus_k93sm.map
 +Avec
 +<​file>​Charset "​iso-8859-15"​
 +
 +include "​bepo.map"​
 +...
 +</​file> ​
 +
 ===== Configuration de l'​affichage et des actions clavier pour le serveur graphique ===== ===== Configuration de l'​affichage et des actions clavier pour le serveur graphique =====
 +==== Voir la configuration du clavier ====
 +<​code>​[user@ASUS-K93SM ~]$ setxkbmap -print -verbose 10</​code>​
 +
 +<​code>​Setting verbose level to 10
 +locale is C
 +Trying to load rules file ./​rules/​evdev...
 +Trying to load rules file /​usr/​share/​X11/​xkb/​rules/​evdev...
 +Success.
 +Applied rules from evdev:
 +rules: ​     evdev
 +model: ​     pc105
 +layout: ​    fr
 +variant: ​   bepo_afnor
 +Trying to build keymap using the following components:
 +keycodes: ​  ​evdev+aliases(azerty)
 +types: ​     complete
 +compat: ​    ​complete
 +symbols: ​   pc+fr(bepo_afnor)+inet(evdev)
 +geometry: ​  ​pc(pc105)
 +xkb_keymap {
 +        xkb_keycodes ​ { include "​evdev+aliases(azerty)"​ };
 +        xkb_types ​    { include "​complete" ​     };
 +        xkb_compat ​   { include "​complete" ​     };
 +        xkb_symbols ​  { include "​pc+fr(bepo_afnor)+inet(evdev)"​ };
 +        xkb_geometry ​ { include "​pc(pc105)" ​    ​};</​code>​
 + 
 +==== Identifier les touches ====
 +
 +<​code>​[user@ASUS-K93SM ~]$ xev | awk -F'[ )]+' '/​^KeyPress/​ { a[NR+2] } NR in a { printf "%-3s %s\n", $5, $8 }'</​code>​
 +
 +Affiche une fenêtre de capture des événements claviers dans l’environnement graphique
 +
 +{{ :​tutoriel:​xorgkeyboardeventtester.png?​nolink&​400 |La fenêtre de capture des événements claviers dans l’environnement graphique}}
 +
 +Et lorsque la fenêtre est active et que l’on tape avec un clavier bépo «bépoè^». Dans le terminal où est exécuté la ligne de commande s’affiche le résultat :
 +<​code>​
 +24  b           
 +25  eacute
 +26  p
 +27  o
 +28  egrave
 +29  dead_circumflex
 +</​code>​
 +==== Principes de la gestion du clavier ====
 +
 Il existe dans Ubuntu une table qui associe les codes de touche à des **noms symboliques** censés aider à repérer la touche sur le clavier. Un exemple de ce type de table de correspondance est [[:​tutoriel:​comment_modifier_un_fichier|visible dans le fichier]] [[file:///​usr/​share/​X11/​xkb/​keycodes/​evdev|/​usr/​share/​X11/​xkb/​keycodes/​evdev]] et dans lequel vous verrez différentes lignes de la forme : Il existe dans Ubuntu une table qui associe les codes de touche à des **noms symboliques** censés aider à repérer la touche sur le clavier. Un exemple de ce type de table de correspondance est [[:​tutoriel:​comment_modifier_un_fichier|visible dans le fichier]] [[file:///​usr/​share/​X11/​xkb/​keycodes/​evdev|/​usr/​share/​X11/​xkb/​keycodes/​evdev]] et dans lequel vous verrez différentes lignes de la forme :
 <​file><​AE01>​ = 10;</​file>​ <​file><​AE01>​ = 10;</​file>​
  
-Ici cela signifie que la touche **A**lphanumérique marquée du chiffre //1// ((sur la rangée de chiffres au dessus des lettres sur un clavier [[http://​bepo.fr/​wiki/​TypeMatrix|Typematrix]].)) est en première position (**01**) de la ligne **E** (les lignes sont numérotées de A à E en partant du coté de l'​utilisateur et en allant vers l'​écran ((Du moins pour ce qui est des caractères imprimables,​ c'est à dire en excluant les lignes qui ne comprennent que des caractères de contrôle.)) ​ ) et a le code **10**.\\+Ici cela signifie que la touche **A**lphanumérique marquée du chiffre //1// ((sur la rangée de chiffres au dessus des lettres sur un clavier [[http://​bepo.fr/​wiki/​TypeMatrix|Typematrix]].)) est en première position (**01**) de la ligne **E** (les lignes sont numérotées de A à E en partant du coté de l'​utilisateur et en allant vers l'​écran ((Du moins pour ce qui est des caractères imprimables,​ c'est à dire en excluant les lignes qui ne comprennent que des caractères de contrôle.)) ​ ) et au code **10**.\\
  
 Une autre ligne de la forme : Une autre ligne de la forme :
  • tutoriel/comprendre_la_configuration_du_clavier.txt
  • Dernière modification: Le 11/09/2022, 12:24
  • par moths-art