« Utilisateur:LeBret/Remplacer AltGr par Kana » : différence entre les versions
m (création) |
(1ère version) |
||
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 4 : | Ligne 6 : | ||
Une solution est d’utiliser le modificateur {{t|Kana}} à la place {{t|AltGr}}. Problème, celui-ci n’est pas proposé par l’interface de MSKLC, l’utilitaire qui génére les [[Pilote Windows|pilotes Windows]]. | Une solution est d’utiliser le modificateur {{t|Kana}} à la place {{t|AltGr}}. Problème, celui-ci n’est pas proposé par l’interface de MSKLC, l’utilitaire qui génére les [[Pilote Windows|pilotes Windows]]. | ||
== Prérequis == | |||
# Installer MSKLC | |||
# Récupérer le bepo.klc | |||
== Création des DLL == | |||
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 {{V|lignes en vert}} sont à ajouter. Les {{R|<s>lignes en rouge</s>}} sont à supprimer. | |||
; bepo.H : Ajoutez à la fin du fichier : | |||
{{V|#undef X38 | |||
#define X38 _EQ( KANA )}} | |||
X38 designe la touche Alt gauche. | |||
; bepo.C | |||
static ALLOC_SECTION_LDATA VK_TO_BIT aVkToBits[] = { | |||
{ VK_SHIFT , KBDSHIFT }, | |||
{ VK_CONTROL , KBDCTRL }, | |||
{{R|<s>{ VK_MENU , KBDALT },</s>}} | |||
{{V|{ VK_KANA , KBDKANA },}} | |||
{ 0 , 0 } | |||
}; | |||
static ALLOC_SECTION_LDATA MODIFIERS CharModifiers = { | |||
&aVkToBits[0], | |||
{{R|<s>7,</s>}} | |||
{{V|9,}} | |||
{ | |||
// Modification# // Keys Pressed | |||
// ============= // ============= | |||
0, // | |||
1, // Shift | |||
2, // Control | |||
SHFT_INVALID, // Shift + Control | |||
{{R|<s>SHFT_INVALID, // Menu</s>}} | |||
{{R|<s>SHFT_INVALID, // Shift + Menu</s>}} | |||
{{R|<s>3, // Control + Menu</s>}} | |||
{{R|<s>4 // Shift + Control + Menu</s>}} | |||
{{V|3, // kana}} | |||
{{V|4 // kana + shift}} | |||
} | |||
}; | |||
Toute la table <code>aVkToWch5</code> est à supprimer. | |||
{{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>}} | |||
{{V|{'O' ,CAPLOK ,'o' ,'O' ,WCH_NONE ,WCH_NONE ,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). | |||
/* | |||
* Locale-specific special processing | |||
*/ | |||
{{R|<s>MAKELONG(KLLF_ALTGR, KBD_VERSION),</s>}} | |||
{{V|MAKELONG(0, KBD_VERSION),}} | |||
== Création des programmes d’installation == | |||
Consultez la page des [[Pilote Windows|pilotes Windows]]. |
Version du 21 septembre 2011 à 21:40
⚠ en construction ⚠
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
- Installer MSKLC
- Récupérer le bepo.klc
Création des DLL
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 gauche.
- 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 + ControlSHFT_INVALID, // MenuSHFT_INVALID, // Shift + Menu3, // Control + Menu4 // Shift + Control + Menu3, // kana 4 // kana + shift } };
Toute la table aVkToWch5
est à supprimer.
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 },
...
{VK_DECIMAL ,0 ,'.' ,'.' ,WCH_NONE ,WCH_NONE ,WCH_NONE },
{0 ,0 ,0 ,0 ,0 ,0 ,0 }
};
Il faut la remplacer par la table aVkToWch7
. Il s’agit en fait de la même table avec simplement deux colonnes en plus dont toutes les valeurs sont WCH_NONE
.
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 }
};
Cas particulier : 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 ,WCH_NONE ,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]) },{ (PVK_TO_WCHARS1)aVkToWch5, 5, sizeof(aVkToWch5[0]) },{ (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).
/* * Locale-specific special processing */MAKELONG(KLLF_ALTGR, KBD_VERSION),MAKELONG(0, KBD_VERSION),
Création des programmes d’installation
Consultez la page des pilotes Windows.