pourriez-vous donner un exemple de scancode - keycode - keysym ? Et faire voir comment ça change selon les layout?
exemple de chatgpt:
Oui — on peut illustrer très clairement la chaîne scancode → keycode → keysym et voir comment le layout change surtout la dernière étape.
1) Les trois niveaux (rappel rapide)
- Scancode : code brut envoyé par le clavier (matériel)
- Keycode : code standardisé par l’OS (Linux/X11/Wayland, etc.)
- Keysym : symbole final dépendant du layout (QWERTY, AZERTY, US-Intl…)
👉 Point clé :
le scancode et le keycode changent peu ou pas selon le layout, mais le keysym change fortement.
2) Exemple concret : la touche physique "A" (clavier QWERTY US)
Prenons une touche physique unique.
🔧 Étape matérielle
- Scancode :
0x1E (exemple classique sur PC pour la touche A)
🧩 Étape OS
- Keycode :
38 (Linux/X11 typiquement pour la touche A)
3) Maintenant le plus important : le keysym selon layout
🇺🇸 Layout QWERTY US (standard)
👉 Résultat :
a
🇫🇷 Layout AZERTY français
La même touche physique (celle du “A” QWERTY) est remappée.
👉 Résultat :
q
💡 Donc :
- même hardware
- même scancode
- même keycode
- MAIS keysym différent
4) Exemple avec une touche morte (dead key)
Prenons la touche ' (apostrophe) en US-International.
🇺🇸 US-International
- Keycode de la touche
' → keysym : dead_acute
Puis combinaison :
| Action | Keysym produit |
| --------- | -------------- |
| ' + e | é |
| ' + a | á |
🇺🇸 US standard (sans layout international)
' → keysym : ' (simple apostrophe)
- pas de composition
👉 Donc :
e + ' → e'
5) Exemple cédille : “ç”
🇺🇸 US standard
- Aucun keysym direct pour
ç
Résultat :
Impossible sans configuration
🇺🇸 US-International (ou layout FR)
AltGr + , → ç
ou directement :
6) Résumé visuel
| Niveau | Exemple | Dépend du layout ? |
| -------- | ---------------------- | ------------------ |
| Scancode | 0x1E | ❌ non |
| Keycode | 38 | ❌ quasi non |
| Keysym | a / q / dead_acute / ç | ✅ OUI |
7) Conclusion intuitive
Le layout agit comme une table de traduction finale :
touche physique
↓ (scancode)
code matériel normalisé
↓ (keycode)
symbole interprété selon layout
↓ (keysym)
caractère final affiché
👉 C’est pour ça que :
- changer de clavier QWERTY → AZERTY ne change pas le matériel
- mais change complètement ce que tu “obtiens” à l’écran