Utilisateur:LeBret/Remplacer AltGr par Kana

De Disposition de clavier bépo

Bépo définit plusieurs caractères avec le modificateur clavier bépoAltGr. Or ce modificateur est tout simplement un clavier bépoCtrl+clavier bépoAlt. On peut s’en rendre compte en utilisant le clavier bépoAlt gauche : clavier bépoAltGr+clavier bépoe et clavier bépoCtrl+clavier bépoAlt+clavier bépoe donnent tout les deux €.

En générale ce n’est pas trop gênant, sauf pour les applications qui définissent ce type de raccourci clavier (p.ex. Eclipse).

Une solution est d’utiliser le modificateur clavier bépoKana à la place clavier bépoAltGr. Problème, celui-ci n’est pas proposé par l’interface de MSKLC, l’utilitaire qui génére les pilotes Windows.

Prérequis

  1. Installer MSKLC
  2. Récupérer le bepo.klc

Cela peut être une bonne idée de renommer le fichier et d’utiliser un nom différent pour identifier le clavier. Si vous décider de le faire, faites-le avant de créer les programmes d’installation.

Création des programmes d’installation

Consultez la page des pilotes Windows.

Création des DLL

Modification des sources

Génération des fichier sources .C et .H

kbdutool.exe -u -s bepo.klc

Cette commande crée les fichiers suivants : bepo.C, bepo.DEF, bepo.H, bepo.RC

Modification des sources. Les lignes en vert sont à ajouter. Les lignes en rouge sont à supprimer.

bepo.H
Ajoutez à la fin du fichier :
#undef  X38
#define X38 _EQ( KANA )

X38 designe la touche Alt droit.

bepo.C
static ALLOC_SECTION_LDATA VK_TO_BIT aVkToBits[] = {
    { VK_SHIFT    ,   KBDSHIFT     },
    { VK_CONTROL  ,   KBDCTRL      },
    { VK_MENU     ,   KBDALT       },
    { VK_KANA     ,   KBDKANA      },
    { 0           ,   0           }
};
static ALLOC_SECTION_LDATA MODIFIERS CharModifiers = {
    &aVkToBits[0],
    7,
    9,
    {
    //  Modification# //  Keys Pressed
    //  ============= // =============
        0,            // 
        1,            // Shift 
        2,            // Control 
        SHFT_INVALID, // Shift + Control 
        SHFT_INVALID, // Menu
        SHFT_INVALID, // Shift + Menu
        3,            // Control + Menu
        4             // Shift + Control + Menu
        SHFT_INVALID, // Control + Menu
        SHFT_INVALID, // Shift + Control + Menu
        3,            // kana
        4             // kana + shift
     }
};

La table aVkToWch5 n’est pas nécessairement à modifier. Toutefois l’attribut CAPLOKALTGR ne sert plus à rien, il peut donc être supprimer. Je n’ai pas trouvé l’équivalent pour clavier bépoKana (KANALOK n’a pas le même comportement) si vous avez des infos, écrivez-moi. Heureusement cet attribut est peu utilisé. Ci-dessous un exemple sur la lettre O.

{'O'    ,CAPLOK | CAPLOKALTGR,'o'      ,'O'      ,WCH_NONE ,0x0153   ,0x0152   },
{'O'    ,CAPLOK              ,'o'      ,'O'      ,WCH_NONE ,0x0153   ,0x0152   },

Enfin il n’est plus nécessaire de demander un traitement particulier pour le Alt gauche (AltGr).

   /*
    * Locale-specific special processing
    */
   MAKELONG(KLLF_ALTGR, KBD_VERSION),
   MAKELONG(0, KBD_VERSION),

Compilation

Changez les droits d’écriture sur les fichiers bepo.H et bepo.C pour éviter qu’ils soient écraser par la compilation.

>attrib +R bepo.H
>attrib +R bepo.C
>kbdutool.exe -u -x bepo.klc

KbdTool v3.40 - convert keyboard text file to C file or a keyboard layout DLL


Compiling layout information from 'bepo.klc' for i386/x86.

       bepo.H : can't open for write.
       bepo.C : can't open for write.

Les deux messages d’erreurs sont normaux ; ils sont même nécessaires. L’option -x dépend de l’architecture de votre machine. Les autres options sont :

       [-x] Builds for x86 (default)
       [-i] Builds for IA64
       [-m] Builds for AMD64
       [-o] Builds for WOW64

La compilation produit le fichier bepo.dll.

Dernière étape : remplacer le fichier bepo.dll de l’arborescence du programme d’installation par celui qui vient d’être compilé.

Voilà ! Vous êtes prêt pour installer votre version de Bépo-Kana.