Atreus

De Disposition de clavier francophone et ergonomique bépo

Atreus vierge,cabochon décoré sur la touche du pouce droit
Le clavier Atreus est à taille réduite. Il compte 44 touches. C'est un clavier qu'on peut réaliser soi-même ; Keyboard.io a lancé une production et il est possible d'acquérir un clavier construit.


Il doit être utilisé avec un pilote bépo standard installé sur l’ordinateur et doit fonctionner en bépo dès la sortie de la boite (par exemple si vous tapez les 4 touches en haut à droite les caractères bépo doivent s’afficher).

Il renvoie des codes de touches (comme tous les claviers) qui dépendent de la position de la touche sur le clavier. Ces codes sont interprétés par le pilote qui va afficher le caractère correspondant. Ainsi quelle que soit la disposition du clavier physique (les caractères imprimés sur les touches), l’ordinateur affichera les caractères du pilote et non ceux qui sont imprimés sur le clavier.

Une des caractéristiques du clavier Atreus est de permettre de configurer le code des touches. On peut ainsi déplacer des touches sur le clavier.

Le but de cette page n’est pas d’expliquer le fonctionnement de l’Atreus, mais de donner un exemple de configuration qui fonctionne. Plus de détails sont disponibles sur le forum.

Version proposée

Ce qui suit n’est qu’une version proposée. On peut en imaginer d’autres. Elle a été conçue par essais et erreurs avec le soucis de respecter au maximum la disposition bépo. Le W très peu utilisé en français est à un endroit peu accessible ce qui ne conviendra sans doute pas aux personnes écrivant dans une langue où cette lettre est plus fréquente. Il faudra alors trouver un compromis et éventuellement proposer une variante.

Il existe d'autres versions sur ce wiki, notamment :

Configuration

Couche 0 & couche 1

Atreus layer 0 2020-10-14.png

Disposition avec les deux premières couches (image créée avec www.keyboard-layout-editor.com)

  • couche 0 (couche de base, accessible directement), symboles en haut à gauche (avec majuscule ou sans majuscule),
  • couche 1 (couche accessible en maintenant la touche Fun enfoncée), symboles en bas à droite (avec majuscule ou sans majuscule),


Sur la couche de base,

  • disposition bépo respectée autant que possible, inspirée de Typematrix
    • sauf m qui est sous n et qui a poussé f une touche en plus vers le bas.
    • absence des touches çw$%= reportées sur la couche Fun
    • disparition de la touche directe ê
  • On note aussi la touche z sous le h.
  • bksp et enter sont accessibles par les index
  • del par le pouce
  • en plus de la touche Fun qui permet d’accéder à la couche 1, il y a en bas à gauche une touche qui permet d’accéder à la couche 5 pour taper les chiffres et la touche escape


On note sur la couche Fun :

  • présence de çw$%= sur cette couche.
  • F2 et F3 qui sont les touches de fonction que j'utilise le plus (modifier, trouver le suivant)
  • CTRL à droite permet de faire main droite (Fun+CTRL) + main gauche (Shift+flèche) pour la sélection de mots au clavier
  • présence de shift+del, ctrl+insert, shift+insert, pour faire couper, copier, coller (on peut aussi directement faire ctrl+c, ctrl+v avec pouce et index main droite)
  • super (seconde couche, touche A) est en doublon de celle sur la première couche.
  • toutes les touches de navigation (4 flèches, home, end, tab, pageUp, pageDown) sous la main gauche
  • en double : deux touches *0, à voir dans le futur si on peut passer à une touche seulement

couche 2

Les touches de fonction sont sur cette couche (c’est la config initiale).

couches 3 & 4

Non documentées, mettez-y ce que vous voulez

couche 5

On peut accéder aux chiffres, aux touches de fonction et "esc" en enfonçant la touche "shift to layer 5" de la couche de base.

Pour les raccourcis clavier de type (super + num), on peut directement faire super + "shift to layer 5" + num.

Atreus layer 5 2020-10-14.png

Critiques de la proposition

Le placement de la touche w sur la couche 1 rend cette lettre peu accessible. Cela ne cause pas de problème en français. Par contre cette faible accessibilité gênera les personnes utilisant beaucoup cette touche (les angloscripteurs par exemple).

Paramétrage

Par Chrysalis

Il faut paramétrer le clavier dans Chrysalis comme sur les images ci-après.

Principe du paramétrage

La façon de procéder est la suivante :

  • sur la carte du clavier bépo, repérer l’emplacement de la touche qui est recherchée
  • sur la carte du clavier qwerty, trouver le symbole qui est à cet emplacement
  • renseigner ce symbole sur cet emplacement dans Chrysalis.

Par exemple, le "%" du bépo est sur la touche "=" du qwerty. Sur la touche où on souhaite mettre "%", il faut renseigner "=" dans Chrysalis (dans notre cas, la touche en haut à gauche de la couche 1). Quand on appuiera sur cette touche, le keycode correspondant à "=" en qwerty sera envoyé à l’ordinateur qui regardera quel caractère renvoyer dans la table de la disposition. En l’occurrence, la disposition bépo renverra alors "%".

couche 0

Atreuslayer 0 20201008.png

couche 1 (couche Fun)

Atreus layer 1 20201008.png

Dans certains cas, il faut utiliser les touches de modification maj, ctrl et autres dans la fenêtre de configuration.


couche 5 (couche des chiffres)

Atreus config layer 5.png

Configuration par texte dans Chrysalis

Le créateur de cette page a configuré son clavier avec les images et pas avec le texte ci-dessous.

Les keyCodes correspondent à des valeurs qui sont définies dans le fichier suivant. Il se peut que l’OS affiche des valeurs différentes mais ce sont les valeurs de ce fichier qui sont utilisées pour la configuration dans Chrysalis.

Le label ne semble pas être important.


layer 0

 {
 "keymap": [
   {"keyCode": 20, "label": "Q"},
   {"keyCode": 26, "label": "W"},
   {"keyCode": 8, "label": "E"},
   {"keyCode": 21, "label": "R"},
   {"keyCode": 23, "label": "T"},
   {"keyCode": 0, "label": "Blocked", "verbose": "Disabled"},
   {"keyCode": 0, "label": "Blocked", "verbose": "Disabled"},
   {"keyCode": 28, "label": "Y"},
   {"keyCode": 24, "label": "U"},
   {"keyCode": 12, "label": "I"},
   {"keyCode": 18, "label": "O"},
   {"keyCode": 19, "label": "P"},
   {"keyCode": 4, "label": "A"},
   {"keyCode": 22, "label": "S"},
   {"keyCode": 7, "label": "D"},
   {"keyCode": 9, "label": "F"},
   {"keyCode": 10, "label": "G"},
   {"keyCode": 0, "label": "Blocked", "verbose": "Disabled"},
   {"keyCode": 0, "label": "Blocked", "verbose": "Disabled"},
   {"keyCode": 11, "label": "H"},
   {"keyCode": 13, "label": "J"},
   {"keyCode": 14, "label": "K"},
   {"keyCode": 15, "label": "L"},
   {"keyCode": 51, "label": ";"},
   {"keyCode": 29, "label": "Z"},
   {"keyCode": 27, "label": "X"},
   {"keyCode": 6, "label": "C"},
   {"keyCode": 25, "label": "V"},
   {"keyCode": 5, "label": "B"},
   {"keyCode": 42, "label": "Bksp", "verbose": "Backspace"},
   {"keyCode": 40, "label": "Enter"},
   {"keyCode": 17, "label": "N"},
   {"keyCode": 16, "label": "M"},
   {"keyCode": 54, "label": ","},
   {"keyCode": 55, "label": "."},
   {"keyCode": 52, "label": "'"},
   {"keyCode": 17455, "label": "5", "extraLabel": "ShiftTo"},
   {"keyCode": 43, "label": "Tab"},
   {"keyCode": 230, "label": "RAlt", "verbose": "AltGr (Right Alt)"},
   {"keyCode": 76, "label": "Del"},
   {"keyCode": 225, "label": "LShift", "verbose": "Left Shift"},
   {"keyCode": 226, "label": "LAlt", "verbose": "Left Alt"},
   {"keyCode": 224, "label": "LCtrl", "verbose": "Left Control"},
   {"keyCode": 44, "label": "Space"},
   {"keyCode": 17451, "label": "1", "extraLabel": "ShiftTo"},
   {"keyCode": 227, "label": "LSuper", "verbose": "Left Super"},
   {"keyCode": 47, "label": "["},
   {"keyCode": 56, "label": "/"}
 ],
 "palette": []
 }

layer 1

 {
 "keymap": [
   {"keyCode": 46, "label": "="},
   {"keyCode": 74, "label": "Home"},
   {"keyCode": 82, "label": "↑"},
   {"keyCode": 77, "label": "End"},
   {"keyCode": 75, "label": "PgUp", "verbose": "Page Up"},
   {"keyCode": 0, "label": "Blocked", "verbose": "Disabled"},
   {"keyCode": 0, "label": "Blocked", "verbose": "Disabled"},
   {"keyCode": 45, "label": "-"},
   {"keyCode": 36, "label": "7", "extraLabel": "&"},
   {"keyCode": 37, "label": "8", "extraLabel": "*"},
   {"keyCode": 38, "label": "9", "extraLabel": "("},
   {"keyCode": 59, "label": "F2"},
   {"keyCode": 227, "label": "LSuper", "verbose": "Left Super"},
   {"keyCode": 80, "label": "←"},
   {"keyCode": 81, "label": "↓"},
   {"keyCode": 79, "label": "→"},
   {"keyCode": 78, "label": "PgDn", "verbose": "Page Down"},
   {"keyCode": 0, "label": "Blocked", "verbose": "Disabled"},
   {"keyCode": 0, "label": "Blocked", "verbose": "Disabled"},
   {"keyCode": 57, "label": "CapsLK", "verbose": "Caps Lock"},
   {"keyCode": 33, "label": "4", "extraLabel": "$"},
   {"keyCode": 34, "label": "5", "extraLabel": "%"},
   {"keyCode": 35, "label": "6", "extraLabel": "^"},
   {"keyCode": 60, "label": "F3"},
   {"keyCode": 49, "label": "\\"},
   {"keyCode": 48, "label": "]"},
   {"keyCode": 53, "label": "`"},
   {"keyCode": 2124, "label": "Del", "extraLabel": "S+"},
   {"keyCode": 329, "label": "Insert", "extraLabel": "C+"},
   {"keyCode": 2121, "label": "Insert", "extraLabel": "S+"},
   {"keyCode": 65535, "label": "", "verbose": "Transparent"},
   {"keyCode": 39, "label": "0", "extraLabel": ")"},
   {"keyCode": 30, "label": "1", "extraLabel": "!"},
   {"keyCode": 31, "label": "2", "extraLabel": "@"},
   {"keyCode": 32, "label": "3", "extraLabel": "#"},
   {"keyCode": 228, "label": "RCtrl", "verbose": "Right Control"},
   {"keyCode": 17452, "label": "2", "extraLabel": "ShiftTo"},
   {"keyCode": 65535, "label": "", "verbose": "Transparent"},
   {"keyCode": 65535, "label": "", "verbose": "Transparent"},
   {"keyCode": 73, "label": "Insert"},
   {"keyCode": 65535, "label": "", "verbose": "Transparent"},
   {"keyCode": 65535, "label": "", "verbose": "Transparent"},
   {"keyCode": 65535, "label": "", "verbose": "Transparent"},
   {"keyCode": 65535, "label": "", "verbose": "Transparent"},
   {"keyCode": 65535, "label": "", "verbose": "Transparent"},
   {"keyCode": 39, "label": "0", "extraLabel": ")"},
   {"keyCode": 49450, "label": "V", "extraLabel": "SHIFT/"},
   {"keyCode": 40, "label": "Enter"}
 ],
 "palette": []
 }

layer 5

 {
 "keymap": [
   {"keyCode": 41, "label": "Esc"},
   {"keyCode": 64, "label": "F7"},
   {"keyCode": 65, "label": "F8"},
   {"keyCode": 66, "label": "F9"},
   {"keyCode": 67, "label": "F10"},
   {"keyCode": 65535, "label": "", "verbose": "Transparent"},
   {"keyCode": 65535, "label": "", "verbose": "Transparent"},
   {"keyCode": 45, "label": "-"},
   {"keyCode": 2084, "label": "&"},
   {"keyCode": 2085, "label": "*"},
   {"keyCode": 2086, "label": "("},
   {"keyCode": 39, "label": "0", "extraLabel": ")"},
   {"keyCode": 65535, "label": "", "verbose": "Transparent"},
   {"keyCode": 61, "label": "F4"},
   {"keyCode": 62, "label": "F5"},
   {"keyCode": 63, "label": "F6"},
   {"keyCode": 68, "label": "F11"},
   {"keyCode": 65535, "label": "", "verbose": "Transparent"},
   {"keyCode": 65535, "label": "", "verbose": "Transparent"},
   {"keyCode": 38, "label": "9", "extraLabel": "("},
   {"keyCode": 2081, "label": "$"},
   {"keyCode": 2082, "label": "%"},
   {"keyCode": 2083, "label": "^"},
   {"keyCode": 37, "label": "8", "extraLabel": "*"},
   {"keyCode": 65535, "label": "", "verbose": "Transparent"},
   {"keyCode": 58, "label": "F1"},
   {"keyCode": 59, "label": "F2"},
   {"keyCode": 60, "label": "F3"},
   {"keyCode": 69, "label": "F12"},
   {"keyCode": 65535, "label": "", "verbose": "Transparent"},
   {"keyCode": 65535, "label": "", "verbose": "Transparent"},
   {"keyCode": 65535, "label": "", "verbose": "Transparent"},
   {"keyCode": 2078, "label": "!"},
   {"keyCode": 2079, "label": "@"},
   {"keyCode": 2080, "label": "#"},
   {"keyCode": 36, "label": "7", "extraLabel": "&"},
   {"keyCode": 65535, "label": "", "verbose": "Transparent"},
   {"keyCode": 65535, "label": "", "verbose": "Transparent"},
   {"keyCode": 65535, "label": "", "verbose": "Transparent"},
   {"keyCode": 65535, "label": "", "verbose": "Transparent"},
   {"keyCode": 65535, "label": "", "verbose": "Transparent"},
   {"keyCode": 65535, "label": "", "verbose": "Transparent"},
   {"keyCode": 65535, "label": "", "verbose": "Transparent"},
   {"keyCode": 65535, "label": "", "verbose": "Transparent"},
   {"keyCode": 2087, "label": ")"},
   {"keyCode": 2087, "label": ")"},
   {"keyCode": 25, "label": "V"},
   {"keyCode": 40, "label": "Enter"}
 ],
 "palette": []
 }

Améliorations

Au fil de l'eau, des améliorations apparaissent.

Le bépo fait une bonne utilisation de AltGr (alt droit), il convient de la rendre plus accessible.

Atreus layer 0 2020-10-23.png

Kaléisdoscope

Le micro logiciel du clavier, Kaleidoscope, a la particularité de savoir utiliser une configuration stockée dans une EEPROM dédiée, et communiquer avec un ordinateur afin de la modifier. Ce qui permet, par l’intermédiaire de Chrysalis, de changer facilement la disposition du clavier sans vraiment mettre les mains dans le cambouis.

Mais si vous aimez ça, il est sous licence libre ! Le code se trouve sur github, la documentation en anglais est en train de migrer de github vers readthedocs, et une communauté active partage ses développements dans le forum de Keyboardio.