Juin 142011
 

Sous Linux, il y avait un truc qui m’énervait passablement.

le fait d’activer la touche Capslock (celle avec le cadenas) ne permet pas d’utiliser les chiffres se trouvant sur la barre du haut.

Pour ceux qui n’ont pas de clavier azerty, voici un mapping de ce clavier pour mieux comprendre de quoi je parle.

  ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ _______
 | œ "| 1 ·| 2 É| 3 ,| 4 '| 5 "| 6 || 7 È| 8 ¯| 9 Ç| 0 À| ° ÿ| + °| <--   |
 | Œ "| & '| é ~| " #| ' {| ( [| - || è `| _ \| ç ^| à @| ) ]| = }|       |
  ========================================================================
 | |<-  | A ä| Z Å| E ¢| R Ç| T Þ| Y Ý| U ü| I ï| O ö| P '| " `| $ ë|   , |
 |  ->| | a â| z å| e €| r ç| t þ| y ý| u û| i î| o ô| p ¶| ^ ~| £ ê| <-' |
  ===================================================================¬    |
 |       | Q Ä| S Ø| D Ë| F ª| G Æ| H Ð| J Ü| K Ï| L Ö| M º| % Ù| µ ¥|    |
 | MAJ   | q Â| s ø| d Ê| f ±| g æ| h ð| j Û| k Î| l Ô| m ¹| ù ²| * ³|    |
  ========================================================================
 | ^   | >  | W  | X  | C  | V  | B  | N  | ?  | .  | /  | §  |     ^     |
 | |   | < || w «| x »| c ©| v ®| b ß| n ¬| , ¿| ; ×| : ÷| ! ¡|     |     |
  ========================================================================
 |      |      |      |                       |       |      |     |      |
 | Ctrl | Super| Alt  | Space    Nobreakspace | AltGr | Super|Menu | Ctrl |
  ¯¯¯¯¯¯ ¯¯¯¯¯¯ ¯¯¯¯¯¯ ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ ¯¯¯¯¯¯¯ ¯¯¯¯¯¯ ¯¯¯¯¯ ¯¯¯¯¯¯

Avouez que c’est bête d’avoir des chiffres sur la rangée du haut et de ne pouvoir les utiliser qu’avec une combinaison de touches (Shift + la touche correspondante)

Sous Windows, c’est un comportement « normal » d’activer CAPSLOCK et ensuite de taper les chiffres qui nous intéressent.

Sous Linux, les développeurs estiment que ce n’est pas une fonctionnalité mais un « bug » Microsoft…je vous laisse juge.

En remplacement, si vous activez CAPSLOCK et que vous appuyez sur la touche 2, c’est la lettre É qui va apparaitre.

alors effectivement, c’est très facile d’écrire une lettre majuscule accentuée de cette façon mais de vous à moi, combien de fois utilisez vous le chiffre 2 et combien de fois utilisez vous le É majuscule ?

bon, tout ça pour dire que quelqu’un s’est penché sérieusement sur le problème et l’a résolu.

voici donc la formule miracle pour avoir ce que j’appellerais un comportement de clavier « normal ».

commençons par créer le fichier contenant les modifications souhaitées:

# cat >/usr/share/X11/xkb/symbols/mswindows-capslock <<EOF
// $XKeyboardConfig$
 
// Replicate a "feature" of MS Windows on AZERTY keyboards 
// where Caps Lock also acts as a Shift Lock on number keys.
// Include keys <AE01> to <AE10> in the FOUR_LEVEL_ALPHABETIC key type.
 
partial alphanumeric_keys
xkb_symbols "basic" {
    key <AE01>	{ type= "FOUR_LEVEL_ALPHABETIC", [ ampersand,          1,          bar,   exclamdown ]	};
    key <AE02>	{ type= "FOUR_LEVEL_ALPHABETIC", [    eacute,          2,           at,    oneeighth ]	};
    key <AE03>	{ type= "FOUR_LEVEL_ALPHABETIC", [  quotedbl,          3,   numbersign,     sterling ]	};
    key <AE04>	{ type= "FOUR_LEVEL_ALPHABETIC", [apostrophe,          4,   onequarter,       dollar ]	};
    key <AE05>	{ type= "FOUR_LEVEL_ALPHABETIC", [ parenleft,          5,      onehalf, threeeighths ]	};
    key <AE06>	{ type= "FOUR_LEVEL_ALPHABETIC", [   section,          6,  asciicircum,  fiveeighths ]	};
    key <AE07>	{ type= "FOUR_LEVEL_ALPHABETIC", [    egrave,          7,    braceleft, seveneighths ]	};
    key <AE08>	{ type= "FOUR_LEVEL_ALPHABETIC", [    exclam,          8,  bracketleft,    trademark ]	};
    key <AE09>	{ type= "FOUR_LEVEL_ALPHABETIC", [  ccedilla,          9,    braceleft,    plusminus ]	};
    key <AE10>	{ type= "FOUR_LEVEL_ALPHABETIC", [    agrave,          0,   braceright,       degree ]	};
};
EOF

ensuite trouver le mapping clavier actuellement utilisé:

# xkbcomp -xkb :0 - 2>/dev/null |grep 'name\[group'
    name[group1]="France - Alternative";

le mapping actuel est donc « France – Alternative »
trouvons ou est défini ce mapping:

# grep "France - Alternative" /usr/share/X11/xkb/symbols/*
/usr/share/X11/xkb/symbols/fr:    name[Group1]="France - Alternative";
/usr/share/X11/xkb/symbols/fr:    name[Group1]="France - Alternative, latin-9 only";
/usr/share/X11/xkb/symbols/fr:    name[Group1]="France - Alternative, Sun dead keys";
/usr/share/X11/xkb/symbols/fr:    name[Group1]="France - Alternative, eliminate dead keys";

le fichier ou est défini ce mapping est donc /usr/share/X11/xkb/symbols/fr

ouvrons ce fichier /usr/share/X11/xkb/symbols/fr et recherchons la ligne contenant:

name[group1]="France - Alternative";

mettre juste au dessus de cette ligne:

include "mswindows-capslock"

chez moi, un extrait de ce fichier donne:

xkb_symbols "oss" {

    include "latin"
    include "level3(ralt_switch)"
    include "nbsp(level4nl)"
    include "keypad(oss)"
    include "mswindows-capslock"

    name[Group1]="France - Alternative";

    // First row
    key  { [      twosuperior,    threesuperior,          onesuperior,          dead_cedilla ] }; // ² ³ ¹ ¸

redémarrons la session X en fermant la session.

reste plus qu’a tester :

1234567890)=

YES!!

it works!

  12 commentaires à “le clavier a chiffre sous Linux”

  1. La différence intéressante que je trouve avec Microsoft, c’est ,sous GNU/Linux, l’accès aux majuscules accentuées ( au lieu des chiffres) avec majlock et aux chiffres avec maj. La touche de verrouillage du pavé numérique, elle, n’interfère pas avec ces touches.

    Je n’utilise Microsoft qu’ au travail, sous la contrainte et avec douleur, et j’ignore comment on fait pour avoir les caractères accentués majuscules sous cet Os.

    Mais cette contribution est très intéressante et pédagogique. Merci

    • surtout merci à Arnaudus qui avait trouvé la solution, cf https://bugs.launchpad.net/ubuntu/+bug/292158

      je n’avais jamais remarqué ce problème de clavier en fait, mais pour mon amie qui travaille dans la finance, et qui à l’habitude d’utiliser des feuilles excel, c’était le truc de trop qui l’a fait revenir sous Windows ;(

      sous Windows, le plus simple c’est : démarrer -> exécuter -> charmap
      et on a la liste de tous les caractères.

  2. That’s not just the best asnewr. It’s the bestest answer!

  3. pour ma part j’ai trouvé une solution ultra simple :
    changer la disposition du clavier : Bambara Français (Mali, Variante)
    toute les touches réponde normalement et quand je verrouille la majuscule j’ai les chiffres
    il y a d’autre mode qui permette d’avoir accès au chiffre en minuscule,
    par habitude je préfère ce mode.
    pour avoir accès au majuscule accentué il faut faire ctrl maj
    bref une solution simple et efficace 🙂

  4. Great. Worked a treat.

    Had to fix this issue with a laptop Azerty keyboard with no ‘number lock’ and « Caps lock » with an LED !

    Works on Mint v19 Cinnamon « French Azerty ». I used gedit to create the « mswindows-capslock » file and amend the « fr » file.

    Merci bcp.

  5. Je déterre un peu… mais l’astuce de CoOlibry ne fonctionne pas pour moi. Quand je Caps Lock ça continu de faire des accents en majuscule :/

  6. It worked, in 2020. Thanks a lot

  7. Si quelqu’un a une solution pour ceux qui sont sur wayland sa m’intéresse 🙂

  8. sous linux mint:
    paramètre système -clavier-option:
    cocher dans, comportement de la touche Verr. Maj. = Verr. Maj bascule le blocage Majuscule (affecte toutes les touches)
    et
    cocher dans, diverses options de copmpatibilité = les touches du pavé numericues sont toujours numeriques (comme sur mac OS)
    😉

  9. Merci infiniment, mec.

  10. top, merci beaucoup, un peu de la magie le contenu du fichier mais ça fonctionne pour un mapping « belgian » (dell latitude e7490)

  11. Presque 13 ans après le message initial (merci !), mon /usr/share/X11/xkb/symbols/mswindows-capslock pour un Macbook air Azerty de 2014 :


    // Replicate a "feature" of MS Windows on AZERTY keyboards
    // where Caps Lock also acts as a Shift Lock on number keys.
    // Include keys to in the FOUR_LEVEL_ALPHABETIC key type.
    // adapted for apple french keyboard

    partial alphanumeric_keys
    xkb_symbols "basic" {
    key { type= "FOUR_LEVEL_ALPHABETIC", [ at, numbersign, periodcentered, Ydiaeresis ] };
    key { type= "FOUR_LEVEL_ALPHABETIC", [ ampersand, 1, VoidSymbol, dead_acute ] };
    key { type= "FOUR_LEVEL_ALPHABETIC", [ eacute, 2, ediaeresis, Eacute ] };
    key { type= "FOUR_LEVEL_ALPHABETIC", [ quotedbl, 3, VoidSymbol, VoidSymbol ] };
    key { type= "FOUR_LEVEL_ALPHABETIC", [ apostrophe, 4, VoidSymbol, VoidSymbol ] };
    key { type= "FOUR_LEVEL_ALPHABETIC", [ parenleft, 5, braceleft, bracketleft ] };
    key { type= "FOUR_LEVEL_ALPHABETIC", [ section, 6, paragraph, aring ] };
    key { type= "FOUR_LEVEL_ALPHABETIC", [ egrave, 7, guillemotleft, guillemotright ] };
    key { type= "FOUR_LEVEL_ALPHABETIC", [ exclam, 8, exclamdown, Ucircumflex ] };
    key { type= "FOUR_LEVEL_ALPHABETIC", [ ccedilla, 9, Ccedilla, Aacute ] };
    key { type= "FOUR_LEVEL_ALPHABETIC", [ agrave, 0, oslash, VoidSymbol ] };
    key { type= "FOUR_LEVEL_ALPHABETIC", [ parenright, degree, braceright, bracketright ] };
    key { type= "FOUR_LEVEL_ALPHABETIC", [ minus, underscore, emdash, endash ] };

    key { type= "FOUR_LEVEL_ALPHABETIC", [ dead_circumflex, dead_diaeresis, ocircumflex, Ocircumflex ] };
    key { type= "FOUR_LEVEL_ALPHABETIC", [ dollar, asterisk, EuroSign, yen ] };

    key { type= "FOUR_LEVEL_ALPHABETIC", [ ugrave, percent, Ugrave, ucircumflex ] };
    key { type= "FOUR_LEVEL_ALPHABETIC", [ dead_grave, sterling, at, numbersign ] };

    key { type= "FOUR_LEVEL_ALPHABETIC", [ less, greater, VoidSymbol, VoidSymbol ] };

    key { type= "FOUR_LEVEL_ALPHABETIC", [ comma, question, VoidSymbol, questiondown ] };
    key { type= "FOUR_LEVEL_ALPHABETIC", [ semicolon, period, VoidSymbol, periodcentered ] };
    key { type= "FOUR_LEVEL_ALPHABETIC", [ colon, slash, division, backslash ] };
    key { type= "FOUR_LEVEL_ALPHABETIC", [ equal, plus, VoidSymbol, plusminus ] };
    };

    Posé ici au cas où cela servirait à quelqu’un d’autre ^ ^

 Laisser un commentaire

Vous pouvez utiliser ces tags et attributs HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

(requis)

(requis)

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.