« Utilisateur:LeBret/Remplacer AltGr par Kana » : différence entre les versions

De Disposition de clavier bépo
 
(4 versions intermédiaires par le même utilisateur non affichées)
Ligne 1 : Ligne 1 :
<span style=" font-size: 1.4em; color: red;">⚠ en construction ⚠</span>
Bépo définit plusieurs caractères avec le modificateur {{t|AltGr}}. Or ce modificateur est tout simplement un {{tt|Ctrl|Alt}}. On peut s’en rendre compte en utilisant le {{t|Alt}} gauche : {{tt|AltGr|e}} et {{tt|Ctrl|Alt|e}} donnent tout les deux €.
Bépo définit plusieurs caractères avec le modificateur {{t|AltGr}}. Or ce modificateur est tout simplement un {{tt|Ctrl|Alt}}. On peut s’en rendre compte en utilisant le {{t|Alt}} gauche : {{tt|AltGr|e}} et {{tt|Ctrl|Alt|e}} donnent tout les deux €.


Ligne 10 : Ligne 8 :
# Installer MSKLC
# Installer MSKLC
# Récupérer le bepo.klc
# 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 [[Pilote Windows|pilotes Windows]].


== Création des DLL ==
== Création des DLL ==
Ligne 25 : Ligne 28 :
  #define X38 _EQ( KANA )}}
  #define X38 _EQ( KANA )}}


X38 designe la touche Alt gauche.  
X38 designe la touche Alt droit.  


; bepo.C  
; bepo.C  
Ligne 32 : Ligne 35 :
     { VK_SHIFT    ,  KBDSHIFT    },
     { VK_SHIFT    ,  KBDSHIFT    },
     { VK_CONTROL  ,  KBDCTRL      },
     { VK_CONTROL  ,  KBDCTRL      },
     {{R|<s>{ VK_MENU    ,  KBDALT      },</s>}}
     { VK_MENU    ,  KBDALT      },
     {{V|{ VK_KANA    ,  KBDKANA      },}}
     {{V|{ VK_KANA    ,  KBDKANA      },}}
     { 0          ,  0          }
     { 0          ,  0          }
Ligne 48 : Ligne 51 :
         2,            // Control  
         2,            // Control  
         SHFT_INVALID, // Shift + Control  
         SHFT_INVALID, // Shift + Control  
         {{R|<s>SHFT_INVALID, // Menu</s>}}
         SHFT_INVALID, // Menu
         {{R|<s>SHFT_INVALID, // Shift + Menu</s>}}
         SHFT_INVALID, // Shift + Menu
         {{R|<s>3,            // Control + Menu</s>}}
         {{R|<s>3,            // Control + Menu</s>}}
         {{R|<s>4            // Shift + Control + Menu</s>}}
         {{R|<s>4            // Shift + Control + Menu</s>}}
        {{V|SHFT_INVALID, // Control + Menu}}
        {{V|SHFT_INVALID, // Shift + Control + Menu}}
         {{V|3,            // kana}}
         {{V|3,            // kana}}
         {{V|4            // kana + shift}}
         {{V|4            // kana + shift}}
Ligne 57 : Ligne 62 :
  };
  };


Toute la table <code>aVkToWch5</code> est à supprimer.
La table {{c|aVkToWch5}} n’est pas nécessairement à modifier. Toutefois l’attribut {{c|CAPLOKALTGR}} ne sert plus à rien, il peut donc être supprimer. Je n’ai pas trouvé l’équivalent pour {{t|Kana}} ({{c|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.
 
{{R|<s><nowiki>static ALLOC_SECTION_LDATA VK_TO_WCHARS5 aVkToWch5[] = {
//                      |        |  Shift  |  Ctrl  |  Ctl+Alt|S+Ctl+Alt|
//                      |=========|=========|=========|=========|=========|
  {VK_OEM_7    ,0      ,'$'      ,'#'      ,WCH_NONE ,0x2013  ,0x00b6  },
  {'1'          ,CAPLOK ,'\"'    ,'1'      ,WCH_NONE ,0x2014  ,0x201e  },</nowiki></s>
    ...
<s><nowiki>  {VK_DECIMAL  ,0      ,'.'      ,'.'      ,WCH_NONE ,WCH_NONE ,WCH_NONE },
  {0            ,0      ,0        ,0        ,0        ,0        ,0        }
};</nowiki></s>}}
 
Il faut la remplacer par la table <code>aVkToWch7</code>. Il s’agit en fait de la même table avec simplement deux colonnes en plus dont toutes les valeurs sont <code>WCH_NONE</code>.
 
  {{V|<nowiki>static ALLOC_SECTION_LDATA VK_TO_WCHARS7 aVkToWch7[] = {
//                    |        |  Shift  |  Ctrl  |  Ctl+Alt|S+Ctl+Alt|  Kana  | S+Kana  |
//                    |=========|=========|=========|=========|=========|=========|=========|
  {VK_OEM_7  ,0      ,'$'      ,'#'      ,WCH_NONE ,WCH_NONE ,WCH_NONE ,0x2013  ,0x00b6  },
  {'1'        ,CAPLOK ,'\"'    ,'1'      ,WCH_NONE ,WCH_NONE ,WCH_NONE ,0x2014  ,0x201e  },
  ...
  {VK_DECIMAL ,0      ,'.'      ,'.'      ,WCH_NONE ,WCH_NONE ,WCH_NONE ,WCH_NONE ,WCH_NONE },
  {0          ,0      ,0        ,0        ,0        ,0        ,0        ,0        ,0        }
};</nowiki>}}
 
Cas particulier : l’attribut <code>CAPLOKALTGR</code> ne sert plus à rien, il peut donc être supprimer. Je n’ai pas trouvé l’équivalent pour {{t|Kana}} (<code>KANALOK</code> 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.


  {{R|<s>{'O'    ,CAPLOK {{!}} CAPLOKALTGR,'o'      ,'O'      ,WCH_NONE ,0x0153  ,0x0152  },</s>}}
  {{R|<s>{'O'    ,CAPLOK {{!}} CAPLOKALTGR,'o'      ,'O'      ,WCH_NONE ,0x0153  ,0x0152  },</s>}}
  {{V|{'O'    ,CAPLOK              ,'o'      ,'O'      ,WCH_NONE ,WCH_NONE ,WCH_NONE ,0x0153  ,0x0152  },}}
  {{V|{'O'    ,CAPLOK              ,'o'      ,'O'      ,WCH_NONE ,0x0153  ,0x0152  },}}
 
Il faut ensuite déclarer cette nouvelle table à la place de l’ancienne :
 
static ALLOC_SECTION_LDATA VK_TO_WCHAR_TABLE aVkToWcharTable[] = {
    {  (PVK_TO_WCHARS1)aVkToWch3, 3, sizeof(aVkToWch3[0]) },
    {{R|<s>{  (PVK_TO_WCHARS1)aVkToWch5, 5, sizeof(aVkToWch5[0]) },</s>}}
    {{V|{  (PVK_TO_WCHARS1)aVkToWch7, 7, sizeof(aVkToWch7[0]) },}}
    {  (PVK_TO_WCHARS1)aVkToWch2, 2, sizeof(aVkToWch2[0]) },
    {  (PVK_TO_WCHARS1)aVkToWch1, 1, sizeof(aVkToWch1[0]) },
    {                      NULL, 0, 0                    },
};


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


=== Compilation ===
=== Compilation ===
Changez les droits d’écriture sur les fichiers {{c|bepo.H}} et {{c|bepo.C}} pour éviter qu’il soit écraser par la compilation.
Changez les droits d’écriture sur les fichiers {{c|bepo.H}} et {{c|bepo.C}} pour éviter qu’ils soient écraser par la compilation.


== Création des programmes d’installation ==
>attrib +R bepo.H
Consultez la page des [[Pilote Windows|pilotes Windows]].
>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 {{c|-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 {{c|bepo.dll}}.
 
Dernière étape : remplacer le fichier {{c|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.

Dernière version du 22 novembre 2011 à 18:12

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.