Utilisateur:Kaze/CapsLock

De Disposition de clavier bépo

CapsLock saymal. Quelques idées pour utiliser cette touche à autre chose.

Ctrl

Très utilisé par les Emacsiens, c'est aussi l'usage recommandé par CapsOff.org. Mais c'est une mauvaise idée dans la mesure où cette touche n'est pas mappée physiquement pour fonctionner comme une touche modificatrice : sur la plupart des claviers, cela causera des problème de touches fantômes, i.e. des raccourcis en Ctrl+Shift+lettre ou Ctrl+Alt+lettre qui ne fonctionneront pas.

Escape

On peut intervertir Escape et CapsLock pour différentes raisons :

  • pour symétriser Escape et Entrée pour les applications graphiques : annuler = à gauche, valider = à droite
  • parce que Vim rulez ;-)

BackSpace

C'est déjà ce qui est fait dans la disposition Colemak. Très confortable.

AltGr

Utiliser le CapsLock comme AltGr ne symétrise pas complètement AltGr, puisqu'il est sur l'auriculaire à gauche et sur le pouce à droite. Par contre, ça peut être très utile pour utiliser un pavé numérique virtuel sous [789] en couche AltGr, comme avec [Fn] sur les portables. Ça a le mérite de placer 0 et 1 sur des touches faciles d'accès ; c'est d'autant plus appréciable en Bépo, où les chiffres ne sont pas disponibles en accès direct.

Par contre, on perd complètement la fonction CapsLock. Il est peut-être possible de faire un [AltGr]+[Caps] pour implémenter CapsLock.

Chiffres en direct

La question des chiffres en direct est un débat récurrent du Bépo. On pourrait utiliser la touche CapsLock de la façon suivante :

  • Caps On => chiffres en accès direct
  • Caps Off => chiffres sur la couche Maj

ou même :

  • Caps On => littéraire (apostrophe courbe, guillemets typographiques en direct)
  • Caps Off => technique (apostrophe droite, crochets <> en direct)

…et dans tous les cas, CapsLock ne sert plus à mettre quoi que ce soit en majuscules — sauf à implémenter CapsLock en [AltGr]+[Caps] (si c'est possible).

Utiliser CapsLock pour passer les chiffres en direct est relativement aisé pour Xorg, voir ce fichier xkb pour l'exemple (version 0.6.6 modifiée) :

 key <TLDE> { type[group1] = "FOUR_LEVEL"               , [ dollar         , numbersign  , section         , paragraph            ] }; // $ # § ¶ 
 key <AE01> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ quotedbl       , 1           , at              , doublelowquotemark   ] }; // " 1 @ „ 
 key <AE02> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ less           , 2           , guillemotleft   , leftdoublequotemark  ] }; // < 2 « “ 
 key <AE03> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ guillemotright , 3           , greater         , rightdoublequotemark ] }; // > 3 » ” 
 key <AE04> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ parenleft      , 4           , bracketleft     , leftsinglequotemark  ] }; // ( 4 [ ‘ 
 key <AE05> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ parenright     , 5           , bracketright    , rightsinglequotemark ] }; // ) 5 ] ’ 
 key <AE06> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ emdash         , 6           , endash          , notsign              ] }; // — 6 – ¬
 key <AE07> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ plus           , 7           , plusminus       , degree               ] }; // + 7 ± ° 
 key <AE08> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ minus          , 8           , notsign         , minutes              ] }; // - 8 – ′ 
 key <AE09> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ slash          , 9           , division        , seconds              ] }; // / 9 ÷ ″ 
 key <AE10> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ asterisk       , 0           , multiply        , VoidSymbol           ] }; // * 0 × 
 key <AE11> { type[group1] = "THREE_LEVEL"              , [ equal          , asciicircum , notequal                               ] }; // = ^ ≠ 
 key <AE12> { type[group1] = "THREE_LEVEL"              , [ percent        , grave       , U2030                                  ] }; // % ` ‰ 
 
 key <AD01> { type[group1] = "FOUR_LEVEL_PLUS_LOCK", [ b              , B           , bar                 , brokenbar            , b               , B           ] }; // b B | ¦ 
 key <AD02> { type[group1] = "FOUR_LEVEL_PLUS_LOCK", [ eacute         , Eacute      , dead_acute          , dead_doubleacute     , eacute          , Eacute      ] }; // é É ´ ” 
 key <AD03> { type[group1] = "FOUR_LEVEL_PLUS_LOCK", [ p              , P           , ampersand           , VoidSymbol           , p               , P           ] }; // p P & 
 key <AD04> { type[group1] = "FOUR_LEVEL_PLUS_LOCK", [ o              , O           , oe                  , OE                   , o               , O           ] }; // o O œ Œ 
 key <AD05> { type[group1] = "FOUR_LEVEL_PLUS_LOCK", [ egrave         , Egrave      , dead_grave          , grave                , egrave          , Egrave      ] }; // è È ` ` 
 key <AD06> { type[group1] = "FOUR_LEVEL_PLUS_LOCK", [ dead_circumflex, exclam      , dead_caron          , exclamdown           , dead_circumflex , exclam      ] }; // ^ ! ˇ ¡
 key <AD07> { type[group1] = "FOUR_LEVEL_PLUS_LOCK", [ v              , V           , VoidSymbol          , VoidSymbol           , v               , V           ] }; // v V
 key <AD08> { type[group1] = "FOUR_LEVEL_PLUS_LOCK", [ d              , D           , eth                 , ETH                  , d               , D           ] }; // d D ð Ð 
 key <AD09> { type[group1] = "FOUR_LEVEL_PLUS_LOCK", [ l              , L           , UFE63               , VoidSymbol           , l               , L           ] }; // l L /
 key <AD10> { type[group1] = "FOUR_LEVEL_PLUS_LOCK", [ j              , J           , U0133               , U0132                , j               , J           ] }; // j J ij IJ 
 key <AD11> { type[group1] = "FOUR_LEVEL_PLUS_LOCK", [ z              , Z           , schwa               , SCHWA                , z               , Z           ] }; // z Z ə Ə 
 key <AD12> { type[group1] = "FOUR_LEVEL_PLUS_LOCK", [ w              , W           , dead_breve          , VoidSymbol           , w               , W           ] }; // w W ˘
 
 key <AC01> { type[group1] = "FOUR_LEVEL_PLUS_LOCK", [ a              , A           , ae                  , AE                   , a               , A           ] }; // a A æ Æ
 key <AC02> { type[group1] = "FOUR_LEVEL_PLUS_LOCK", [ u              , U           , ugrave              , Ugrave               , u               , U           ] }; // u U ù Ù
 key <AC03> { type[group1] = "FOUR_LEVEL_PLUS_LOCK", [ i              , I           , dead_diaeresis      , dead_abovedot        , i               , I           ] }; // i I ¨ ˙
 key <AC04> { type[group1] = "FOUR_LEVEL_PLUS_LOCK", [ e              , E           , EuroSign            , UFDD1                , e               , E           ] }; // e E € ¤
 key <AC05> { type[group1] = "FOUR_LEVEL_PLUS_LOCK", [ comma          , semicolon   , ccedilla            , Ccedilla             , comma           , semicolon   ] }; // , ; ç Ç
 key <AC06> { type[group1] = "FOUR_LEVEL_PLUS_LOCK", [ c              , C           , copyright           , VoidSymbol           , c               , C           ] }; // c C ©
 key <AC07> { type[group1] = "FOUR_LEVEL_PLUS_LOCK", [ t              , T           , thorn               , THORN                , t               , T           ] }; // t T þ Þ
 key <AC08> { type[group1] = "FOUR_LEVEL_PLUS_LOCK", [ s              , S           , ssharp              , U017F                , s               , S           ] }; // s S ß ſ 
 key <AC09> { type[group1] = "FOUR_LEVEL_PLUS_LOCK", [ r              , R           , registered          , trademark            , r               , R           ] }; // r R ®
 key <AC10> { type[group1] = "FOUR_LEVEL_PLUS_LOCK", [ n              , N           , ntilde              , Ntilde               , n               , N           ] }; // n N ñ Ñ
 key <AC11> { type[group1] = "FOUR_LEVEL_PLUS_LOCK", [ m              , M           , dead_macron         , masculine            , m               , M           ] }; // m M ¯ º
 key <BKSL> { type[group1] = "FOUR_LEVEL_PLUS_LOCK", [ ccedilla       , Ccedilla    , dead_cedilla        , VoidSymbol           , ccedilla        , Ccedilla    ] }; // ç Ç ¸
 
 key <LSGT> { type[group1] = "FOUR_LEVEL_PLUS_LOCK", [ ecircumflex    , Ecircumflex , slash               , VoidSymbol           , ecircumflex     , Ecircumflex ] }; // ê Ê /
 key <AB01> { type[group1] = "FOUR_LEVEL_PLUS_LOCK", [ x              , X           , backslash           , VoidSymbol           , x               , X           ] }; // x X \
 key <AB02> { type[group1] = "FOUR_LEVEL_PLUS_LOCK", [ y              , Y           , braceleft           , leftsinglequotemark  , y               , Y           ] }; // y Y { ‘
 key <AB03> { type[group1] = "FOUR_LEVEL_PLUS_LOCK", [ agrave         , Agrave      , braceright          , rightsinglequotemark , agrave          , Agrave      ] }; // à À } ’
 key <AB04> { type[group1] = "FOUR_LEVEL_PLUS_LOCK", [ period         , colon       , ellipsis            , periodcentered       , period          , colon       ] }; // . : … ·
 key <AB05> { type[group1] = "FOUR_LEVEL_PLUS_LOCK", [ k              , K           , asciitilde          , dead_tilde           , k               , K           ] }; // k K ~ ~
 key <AB06> { type[group1] = "FOUR_LEVEL_PLUS_LOCK", [ apostrophe     , question    , cent                , questiondown         , apostrophe      , question    ] }; // ' ? ¢ ¿
 key <AB07> { type[group1] = "FOUR_LEVEL_PLUS_LOCK", [ q              , Q           , dead_abovering      , VoidSymbol           , q               , Q           ] }; // q Q °
 key <AB08> { type[group1] = "FOUR_LEVEL_PLUS_LOCK", [ g              , G           , mu                  , VoidSymbol           , g               , G           ] }; // g G µ 
 key <AB09> { type[group1] = "FOUR_LEVEL_PLUS_LOCK", [ h              , H           , dagger              , doubledagger         , h               , H           ] }; // h H † ‡
 key <AB10> { type[group1] = "FOUR_LEVEL_PLUS_LOCK", [ f              , F           , dead_ogonek         , ordfeminine          , f               , F           ] }; // f F ? ª
 
 key <SPCE> { type[group1] = "FOUR_LEVEL"          , [ space, nobreakspace, underscore, U202F ] };
 include "level3(ralt_switch)"

Par contre, je ne sais pas si c'est faisable sous Windows et MacOS.