diff --git a/www/content/lexique.md b/www/content/lexique.md index 8d358952..645fadfb 100644 --- a/www/content/lexique.md +++ b/www/content/lexique.md @@ -3,9 +3,13 @@ title = "Lexique" +++ **🚧 en construction** @@ -58,8 +62,12 @@ faisables sur un clavier, sinon le pire. Support logiciel -------------------------------------------------------------------------------- + -Scan code +[Scan code]{.a name="scan-code-def"} : DonnĂ©es envoyĂ©es par un clavier physique Ă  un ordinateur lorsque l’on appuie ou relĂąche une touche. Suite aux Ă©volutions technologiques (PS/2, USB, etc.), @@ -70,22 +78,22 @@ particulier avec les scan codes « XT » ou « ensemble 1 ». Il permet alor d’identifier la touche qui a Ă©tĂ© pressĂ©e dans un pĂ©riphĂ©rique de saisie, au plus bas niveau de l’OS. -Key code +[Key code]{.a name="key-code-def"} : Code identifiant une touche sur un clavier. Ce code est propre Ă  chaque systĂšme d’exploitation. Ce dernier se charge de convertir les diffĂ©rentes conventions de _scan codes_ en _key code_, permettant ainsi de faire abstraction de la technologie du clavier pour dĂ©velopper des dispositions de clavier. -Point de code (Code point) +[Point de code]{.a name="point-de-code-def"} (Code point) : TODO (cf. [point de code](https://fr.wikipedia.org/wiki/Point_de_code) sur Wikipedia) -Modificateur +[Modificateur]{.a name="modificateur-def"} : TODO -Couche (layer) +[Couche]{.a name="couche-def"} (layer) : TODO @@ -144,6 +152,7 @@ Karabiner [couche]: #couche-def [groupe]: #group-xkb-def + #### Environnement [X11] @@ -151,14 +160,10 @@ Karabiner : X est un protocole de systĂšme de fenĂȘtrage. [X11] en est la onziĂšme version majeure. -[X11]: https://fr.wikipedia.org/wiki/X_Window_System - [X.Org] : Le principal [serveur X][X11] utilisĂ© sur Linux. -[X.Org]: https://fr.wikipedia.org/wiki/X.Org - Wayland : Un protocole de systĂšme de fenĂȘtrage, destinĂ© Ă  remplacer X11 qui n’est plus @@ -166,8 +171,6 @@ maintenu. Bien qu’en dĂ©veloppement depuis 2008, son implĂ©mentation dans les environnements de bureau majeurs n’a commencĂ© Ă  ĂȘtre suffisante que dans les annĂ©es 2020. -[Wayland]: https://fr.wikipedia.org/wiki/Wayland - XKB (_X_ Keyboard Extension) : Un __[protocole][XKB protocol]__ dĂ©fini comme extension de X11 et dĂ©diĂ© Ă  la gestion des @@ -179,18 +182,17 @@ des dispositions clavier. : Par abus de langage c'est aussi la __base de donnĂ©es__ des configurations clavier, [`xkeyboard-config`][xkeyboard-config]. -[XKB protocol]: https://www.x.org/releases/current/doc/kbproto/xkbproto.html -[XKB text format]: https://xkbcommon.org/doc/current/keymap-text-format-v1.html -[xkeyboard-config]: https://gitlab.freedesktop.org/xkeyboard-config/xkeyboard-config - -Compose +[Compose]{.a name="compose-def"} : Une __mĂ©thode de saisie__ (input method ou IM). C’est notamment ce qui permet aux touches mortes systĂšme (autres que `1dk`) de fonctionner. Elle porte ce nom car elle _compose_ – entendre : combine – plusieurs [keysyms] -en un[^composed-keysym] nouvel keysym. -Exemples : la sĂ©quence `◌́e` est transformĂ©e en `Ă©`, `n~` en `ñ`, `+-` en `±` et -`<3` en `♄`. +en un[^composed-keysym] nouveau keysym. + + + Exemples : la sĂ©quence `◌́e` est transformĂ©e en `Ă©`, `n~` en `ñ`, `+-` en `±` + et `<3` en `♄`. : Une __[touche][touche Compose]__ qui active la _mĂ©thode de saisie_ Compose pour les touches pressĂ©es Ă  la suite. Cette touche n’est pas prĂ©sente sur les claviers @@ -199,16 +201,6 @@ de clavier. : La __[keysym]__ ``, qui est placĂ©e sur la _touche_ Compose. -[keysym]: #keysym-def -[keysyms]: #keysym-def -[touche Compose]: https://fr.wikipedia.org/wiki/Touche_de_composition -[^composed-keysym]: Le cas le plus frĂ©quent est _un_ keysym, mais il est possible -d’en produire plusieurs. C’est indispensable pour certains caractĂšres qui -nĂ©cessitent plusieurs [points de code], comme « ė̄ » (`U+0117 + U+0304`), mais aussi -đŸ‘©đŸżâ€đŸš€đŸ‘©đŸŸâ€đŸš€đŸ‘©đŸœâ€đŸš€đŸ‘©đŸŒâ€đŸš€đŸ‘©đŸ»â€đŸš€đŸ‘©â€đŸš€, qui requiert au moins deux [points de code] pour chaque emoji. - -[points de code]: #point-de-code-def - XCompose : Une __[spĂ©cification][XCompose]__ de Compose pour les systĂšmes basĂ©s sur X11 et @@ -219,64 +211,84 @@ implĂ©mentations. : Un __format__ pour configuer la mĂ©thode de saisie XCompose. : Les __fichiers__ de configuration correspondants. En particulier : - - `/usr/share/X11/locale/**/Compose` : les fichiers systĂšme, organisĂ©s par - locale. - - `~/.XCompose` : le fichier utilisateur par dĂ©faut. -[XCompose]: https://linux.die.net/man/3/xcompose + - `/usr/share/X11/locale/**/Compose` : les fichiers systĂšme, organisĂ©s par + locale. + - `~/.XCompose` : le fichier utilisateur par dĂ©faut. + +[X11]: https://fr.wikipedia.org/wiki/X_Window_System +[X.Org]: https://fr.wikipedia.org/wiki/X.Org +[Wayland]: https://fr.wikipedia.org/wiki/Wayland +[XKB protocol]: https://www.x.org/releases/current/doc/kbproto/xkbproto.html +[XKB text format]: https://xkbcommon.org/doc/current/keymap-text-format-v1.html +[xkeyboard-config]: https://gitlab.freedesktop.org/xkeyboard-config/xkeyboard-config +[touche Compose]: https://fr.wikipedia.org/wiki/Touche_de_composition +[XCompose]: https://linux.die.net/man/3/xcompose + +[keysym]: #keysym-def +[keysyms]: #keysym-def +[points de code]: #point-de-code-def + + +[^composed-keysym]: Le cas le plus frĂ©quent est _un_ keysym, mais il est + possible d’en produire plusieurs. C’est indispensable pour certains + caractĂšres qui nĂ©cessitent plusieurs [points de code], comme « ė̄ » (`U+0117 + + U+0304`), mais aussi + đŸ‘©đŸżâ€đŸš€đŸ‘©đŸŸâ€đŸš€đŸ‘©đŸœâ€đŸš€đŸ‘©đŸŒâ€đŸš€đŸ‘©đŸ»â€đŸš€đŸ‘©â€đŸš€, qui + requiert au moins deux [points de code] pour chaque emoji. + #### XKB -Keycode +[Keycode]{.a name="keycode-xkb-def"} : Code identifiant une touche physique sur un clavier. Le code _brut_ (raw keycode) est le code numĂ©rique issu du traitement bas niveau par le noyau, alors que le code _symbolique_ est le nom donnĂ© dans les fichiers XKB pour faciliter la configuration haut-niveau du clavier. On distinguera le code brut du _noyau_ -de celui de XKB, ce dernier Ă©tant obtenu en ajoutant 8 au premier.
-Exemple : sur un clavier QWERTY, le code brut noyau de la touche `Q` est -`16`[^code-brut-noyau], le code brut sur XKB est `16 + 8 = 24` et son code -symbolique est `AD01`[^code-symbolique-iso-9995].
-Noter qu’un clavier QWERTY et un clavier AZERTY produisent habituellement des -keycodes identiques pour les touches situĂ©es au mĂȘme emplacement : ainsi la -touche imprimĂ©e `Q` sur le clavier QWERTY produira le mĂȘme keycode que la touche -imprimĂ©e `A` sur un clavier imprimĂ© AZERTY. En effet, c’est la configuration du -clavier dans XKB et non le clavier lui-mĂȘme qui dĂ©finit la correspondance touche/ -[keysym]. +de celui de XKB, ce dernier Ă©tant obtenu en ajoutant 8 au premier. -[ISO/IEC 9995-2]: https://en.wikipedia.org/wiki/ISO/IEC_9995#ISO/IEC_9995-2 -[input-event-codes.h]: https://github.com/torvalds/linux/blob/90d35da658da8cff0d4ecbb5113f5fac9d00eb72/include/uapi/linux/input-event-codes.h#L91 -[^code-brut-noyau]: Correspond Ă  `KEY_Q` dans le fichier d’en-tĂȘte [`input-event-code.h`][input-event-codes.h]. -[^code-symbolique-iso-9995]: Les codes symboliques sont suivent la norme [ISO/IEC 9995-2] pour les touches alpha-numĂ©riques. + Exemple : sur un clavier QWERTY, le code brut noyau de la touche `Q` est + `16`[^code-brut-noyau], le code brut sur XKB est `16 + 8 = 24` et son code + symbolique est `AD01`[^code-symbolique-iso-9995]. + + Noter qu’un clavier QWERTY et un clavier AZERTY produisent habituellement + des keycodes identiques pour les touches situĂ©es au mĂȘme emplacement : ainsi + la touche imprimĂ©e `Q` sur le clavier QWERTY produira le mĂȘme keycode que la + touche imprimĂ©e `A` sur un clavier imprimĂ© AZERTY. En effet, c’est la + configuration du clavier dans XKB et non le clavier lui-mĂȘme qui dĂ©finit la + correspondance touche / [keysym]. -Keysym +[Keysym]{.a name="keysym-def"} : Code numĂ©rique identifiant un symbole sur le _capuchon_ d’une touche. Ce mot vient de l’anglais « key symbol ». Les keysyms sont Ă©galement associĂ©es Ă  des noms anglais pour faciliter leur utilisation. Exemples : `a`, -`agrave` pour « à », `Shift_L` pour la touche majuscule Ă  gauche, etc.
-À la diffĂ©rence des keycodes, les keysyms ne sont pas utilisĂ©s pour _identifier_ -les touches physiques mais pour configurer le _rĂ©sultat_ obtenu en pressant une -touche. Ainsi, la _touche_ `` d’un clavier imprimĂ© QWERTY peut ĂȘtre configurĂ©e -pour produire le[^keysym-genre] keysym `q` ou `a` sur la couche de base, et les -keysyms `Q` ou `A` sur la couche masjcule, etc. +`agrave` pour « à », `Shift_L` pour la touche majuscule Ă  gauche, etc. + + À la diffĂ©rence des keycodes, les keysyms ne sont pas utilisĂ©s pour + _identifier_ les touches physiques mais pour configurer le _rĂ©sultat_ obtenu + en pressant une touche. Ainsi, la _touche_ [Q]{.kbd} d’un clavier imprimĂ© + QWERTY peut ĂȘtre configurĂ©e pour produire le[^keysym-genre] keysym `q` ou + `a` sur la couche de base, et les keysyms `Q` ou `A` sur la couche masjcule, + etc. : Il existe diffĂ©rents types de keysyms : - - _caractĂšre :_ `a` et `A` pour les scripts latins, `gamma` « γ » et `GAMMA` - « Γ » pour le grec, etc. - - _touche morte :_ `dead_grave` et `dead_diaeresis`, qui correspondent respectivement - Ă  l’accent grave et au trĂ©ma. Une touche morte est une touche spĂ©ciale car elle ne - gĂ©nĂšre pas de caractĂšre, mais modifie le caractĂšre de la touche qui est utilisĂ©e - directement aprĂšs elle. Ce comportement nĂ©cessite la fonctionnalitĂ© « Compose ». - - _modificateur :_ une touche qui modifie l’effet des autres touches : par exemple - `Shift_L`, `Control_R`, `Caps_Lock`. Les modificateurs utilisent un mĂ©canisme - diffĂ©rent des touches mortes et servent Ă  accĂ©der aux diffĂ©rentes couches d’une - disposition, ainsi qu’à dĂ©finir des raccourcis clavier. - - _systĂšme :_ actions spĂ©ciales non comprises ci-dessus : flĂšche `Left`, - `Pause`, `Escape`, `F1`, etc. -[^keysym-genre]: On devrait dire _un_ keysym car c’est un _symbole_ de touche, -mais _une_ keysym sonne peut-ĂȘtre mieux. + - _caractĂšre :_ `a` et `A` pour les scripts latins, `gamma` « γ » et `GAMMA` + « Γ » pour le grec, etc. + - _touche morte :_ `dead_grave` et `dead_diaeresis`, qui correspondent + respectivement Ă  l’accent grave et au trĂ©ma. Une touche morte est une + touche spĂ©ciale car elle ne gĂ©nĂšre pas de caractĂšre, mais modifie le + caractĂšre de la touche qui est utilisĂ©e directement aprĂšs elle. Ce + comportement nĂ©cessite la fonctionnalitĂ© « Compose ». + - _modificateur :_ une touche qui modifie l’effet des autres touches : par + exemple `Shift_L`, `Control_R`, `Caps_Lock`. Les modificateurs utilisent + un mĂ©canisme diffĂ©rent des touches mortes et servent Ă  accĂ©der aux + diffĂ©rentes couches d’une disposition, ainsi qu’à dĂ©finir des raccourcis + clavier. + - _systĂšme :_ actions spĂ©ciales non comprises ci-dessus : flĂšche `Left`, + `Pause`, `Escape`, `F1`, etc. Key type @@ -286,7 +298,7 @@ Key Action : TODO -Groupe +[Groupe]{.a name="group-xkb-def"} : TODO @@ -296,3 +308,14 @@ TODO: dĂ©velopper. Keymap : TODO + +[ISO/IEC 9995-2]: https://en.wikipedia.org/wiki/ISO/IEC_9995#ISO/IEC_9995-2 +[input-event-codes.h]: https://github.com/torvalds/linux/blob/90d35da658da8cff0d4ecbb5113f5fac9d00eb72/include/uapi/linux/input-event-codes.h#L91 + + +[^code-brut-noyau]: Correspond Ă  `KEY_Q` dans le fichier d’en-tĂȘte + [`input-event-code.h`][input-event-codes.h]. +[^code-symbolique-iso-9995]: Les codes symboliques sont suivent la norme + [ISO/IEC 9995-2] pour les touches alpha-numĂ©riques. +[^keysym-genre]: On devrait dire _un_ keysym car c’est un _symbole_ de touche, + mais _une_ keysym sonne peut-ĂȘtre mieux.