- Modifié
Bonjour à tous,
me voilà avec un clavier en cours de fabrication (format dactyl manuform ortho) pour lequel il va me falloir une disposition BEPO adaptée
https://forum.bepo.fr/viewtopic.php?pid=18314
L'objectif pour moi en abandonnant l'AZERTY est d'éviter la gymnastique pour taper les lettres accentuées
et avec un clavier ergonomique et programmable optimiser l'usage des doigts (home row modifier) et surtout du pouce (5 boutons dédiés).
Mais avant de me lancer dans la modif de dispositions et de me poser toutes les questions (le "e" sous le pouce ? home row modifier, ...),
je voudrai être sûr de bien comprendre tous les endroits où l'on peut adapter la disposition et en particulier obtenir les lettres accentuées.
Sachant qu'il y a toujours des inconvénients et des avantages (modifications applicables dès le boot ? applicables à tous les users ? perte des raccourcis clavier dans les logiciels ?...)
Jusqu'ici voici ma compréhension des choses :
KBID : identifiant du clavier USB qui permet à l'ordinateur de reconnaître le modèle du clavier (QWERTY, AZERTY, 84, 101 ou 104 touches, ...)
keycode = emplacement des touches du QWERTY standard américain (aucune lettre accentuée dans la liste)
le keycode n'est pas influencé par les touches mortes
microsoft.com/keycode-constants
table-of-all-keycodes
scancode = conversion de l'emplacement en "lettre" mais pas toutes (aucune lettre accentuée dans la liste)
il y a 3 sets de scancodes
Common Keyboard Scan Codes
virtualcode = pas de lettres accentuées dans la liste kbdlayout.info/kbduk/virtualkeys

Firmware du clavier (compilé par QMK) :
keycodes.h : déclaration des keycodes avec une lettre KC_W = 0x001A pour les manipuler plus facilement dans les fichiers de config
keymap.c : va traduire les emplacements keycode en scancode ? É (e acute) : #define BP_EACU KC_W
on peut intercepter les scancodes et les permuter avant de les envoyer à l'ordinateur.
Driver OS : basé sur un layout .klc et compilé en kbdxxx.dll par Microsoft Keyboard Layout Creator dans C:\Windows\System32\
c'est enfin ici que l'on obtient les lettres acentuées
Layout = fichiers kbdxxxxx.dll dont les Propriétés affichent "Keyboard Layout"
Driver Pilote = kbdclass.sys "Pilote de la classe Clavier"
The keyboard driver reads the key registry it when it starts up. So killing Explorer has no effect, you'll have to reboot to make changes effective.
Registre :
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout\ : liste des claviers qui peuvent être installés sur l'appareil
how to remap keys
technewstoday.com/how-to-remap-keyboard-keys/
isenselabs.com/keyboard-key-kills-and-remaps-for-windows-users
"The mappings stored in the registry work at system level and apply to all users. These mappings cannot be set to work differently depending on the current user."
manipulations manuelles dans le registre : tuto détaillé https://www.lkhrs.com/blog/2022/03/remap-windows-key-to-ctrl/
https://winaero.com/change-what-extra-app-keys-do-for-the-keyboard-in-windows-10-8-and-7/
How to Change What App Keys Do for the Keyboard in Windows 10, 8 and 7
Some keyboards contain a number of additional keys that you can use to launch a Windows application or perform a specific action. The most common keys are Calculator, Web Browser, Mail, Search. Microsoft keyboards are known for having these keys, but not only MS keyboards have them. Other manufacturers also have many models of multimedia keyboards with application keys.
The keys have a reference in Windows registry. There is a Registry branch for that:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\AppKey<KEY_NUMBER>
Under such subkey, you can create two string (REG_SZ) values.
Association = ".txt" - open the default app that is set to open text files. By default it is Notepad.
ShellExecute="C:\windows\notepad.exe". Run the specified app. In my case it is notepad.exe from the system folder.
Langue : c'est aussi ici que l'on a une correspondance avec des lettres accentuées
interception logicielle :
* On peut intercepter et modifier en aval du driver (AutoHotkey, ...)
single keys or key-combos?
Microsoft PowerToys For Windows 10 : allows remapping to multiple key combos
SharpKeys
MapKeyboard (nécessite .NET Framework v3)
Keytweak (abandonware) portable
RemapKeyboard
* Voir intercepter dans le logiciel final : ex dans Word (fonctionnalité de correction automatique en cours de frappe).
Q1 : Le firmware du clavier envoie-t-il les 3 codes (Keycode, Scancode, Virtualcode)? Déjà les 2 derniers car on trouve des utilitaires qui affichent scancode et virtualcode
https://lateralus138.github.io/Key-ScanCode/

Q2 : comment cela se passe entre le driver noyau (au moment du boot) et le driver de l'OS ?
est-ce que c'est chaîné et l'un passe les infos à l'autre ?
ou bien est-ce que le second prend la place et le premier n'est plus actif quand l'OS est lancé ?
Q3 : comment cela se passe entre driver / registre / langue (préférences régionales) ?
Tout se retrouve dans le registre au final ?
* You can change the keyboard layout using the keyboard control panel applet (start - settings - control panel - keyboard - Input Locales) however this does not affect the layout used during logon (which is by default English (United States)).

Merci pour vos réponses et vos corrections
Mat
me voilà avec un clavier en cours de fabrication (format dactyl manuform ortho) pour lequel il va me falloir une disposition BEPO adaptée

https://forum.bepo.fr/viewtopic.php?pid=18314
L'objectif pour moi en abandonnant l'AZERTY est d'éviter la gymnastique pour taper les lettres accentuées
et avec un clavier ergonomique et programmable optimiser l'usage des doigts (home row modifier) et surtout du pouce (5 boutons dédiés).
Mais avant de me lancer dans la modif de dispositions et de me poser toutes les questions (le "e" sous le pouce ? home row modifier, ...),
je voudrai être sûr de bien comprendre tous les endroits où l'on peut adapter la disposition et en particulier obtenir les lettres accentuées.
Sachant qu'il y a toujours des inconvénients et des avantages (modifications applicables dès le boot ? applicables à tous les users ? perte des raccourcis clavier dans les logiciels ?...)
Jusqu'ici voici ma compréhension des choses :
KBID : identifiant du clavier USB qui permet à l'ordinateur de reconnaître le modèle du clavier (QWERTY, AZERTY, 84, 101 ou 104 touches, ...)
keycode = emplacement des touches du QWERTY standard américain (aucune lettre accentuée dans la liste)
le keycode n'est pas influencé par les touches mortes
microsoft.com/keycode-constants
table-of-all-keycodes
scancode = conversion de l'emplacement en "lettre" mais pas toutes (aucune lettre accentuée dans la liste)
il y a 3 sets de scancodes
Common Keyboard Scan Codes

virtualcode = pas de lettres accentuées dans la liste kbdlayout.info/kbduk/virtualkeys

Firmware du clavier (compilé par QMK) :
keycodes.h : déclaration des keycodes avec une lettre KC_W = 0x001A pour les manipuler plus facilement dans les fichiers de config
keymap.c : va traduire les emplacements keycode en scancode ? É (e acute) : #define BP_EACU KC_W
on peut intercepter les scancodes et les permuter avant de les envoyer à l'ordinateur.
Driver OS : basé sur un layout .klc et compilé en kbdxxx.dll par Microsoft Keyboard Layout Creator dans C:\Windows\System32\
c'est enfin ici que l'on obtient les lettres acentuées
Layout = fichiers kbdxxxxx.dll dont les Propriétés affichent "Keyboard Layout"
Driver Pilote = kbdclass.sys "Pilote de la classe Clavier"
The keyboard driver reads the key registry it when it starts up. So killing Explorer has no effect, you'll have to reboot to make changes effective.
Registre :
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout\ : liste des claviers qui peuvent être installés sur l'appareil
how to remap keys
technewstoday.com/how-to-remap-keyboard-keys/
isenselabs.com/keyboard-key-kills-and-remaps-for-windows-users
"The mappings stored in the registry work at system level and apply to all users. These mappings cannot be set to work differently depending on the current user."
manipulations manuelles dans le registre : tuto détaillé https://www.lkhrs.com/blog/2022/03/remap-windows-key-to-ctrl/
https://winaero.com/change-what-extra-app-keys-do-for-the-keyboard-in-windows-10-8-and-7/
How to Change What App Keys Do for the Keyboard in Windows 10, 8 and 7
Some keyboards contain a number of additional keys that you can use to launch a Windows application or perform a specific action. The most common keys are Calculator, Web Browser, Mail, Search. Microsoft keyboards are known for having these keys, but not only MS keyboards have them. Other manufacturers also have many models of multimedia keyboards with application keys.
The keys have a reference in Windows registry. There is a Registry branch for that:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\AppKey<KEY_NUMBER>
Under such subkey, you can create two string (REG_SZ) values.
Association = ".txt" - open the default app that is set to open text files. By default it is Notepad.
ShellExecute="C:\windows\notepad.exe". Run the specified app. In my case it is notepad.exe from the system folder.
Langue : c'est aussi ici que l'on a une correspondance avec des lettres accentuées
interception logicielle :
* On peut intercepter et modifier en aval du driver (AutoHotkey, ...)
single keys or key-combos?
Microsoft PowerToys For Windows 10 : allows remapping to multiple key combos
SharpKeys
MapKeyboard (nécessite .NET Framework v3)
Keytweak (abandonware) portable
RemapKeyboard
* Voir intercepter dans le logiciel final : ex dans Word (fonctionnalité de correction automatique en cours de frappe).
Q1 : Le firmware du clavier envoie-t-il les 3 codes (Keycode, Scancode, Virtualcode)? Déjà les 2 derniers car on trouve des utilitaires qui affichent scancode et virtualcode
https://lateralus138.github.io/Key-ScanCode/

Q2 : comment cela se passe entre le driver noyau (au moment du boot) et le driver de l'OS ?
est-ce que c'est chaîné et l'un passe les infos à l'autre ?
ou bien est-ce que le second prend la place et le premier n'est plus actif quand l'OS est lancé ?
Q3 : comment cela se passe entre driver / registre / langue (préférences régionales) ?
Tout se retrouve dans le registre au final ?
* You can change the keyboard layout using the keyboard control panel applet (start - settings - control panel - keyboard - Input Locales) however this does not affect the layout used during logon (which is by default English (United States)).

Merci pour vos réponses et vos corrections

Mat