A simple default Bépo configuration for the Atreus keyboard.
The Atreus is a small mechanical keyboard manufactured by Keyboardio. It has been designed with a qwerty layout in mind, and as it only has 44 keys, many symbols were pushed on what they call "layers". One can shift to a different layer by applying a key modifier.
When using Bépo as the operating system keyboard layout, the Atreus does not translate super well. Letters z
and w
are pushed to the Fun
layer. And numbers are supposed to be typed with Shift
in Bépo, while being pushed to the "Fun" layer on the Atreus. That means you have to type two modifiers to reach them (Fun
plus Shift
). Even more problematic, AltGr
does not exist on the Atreus, so many characters will be missing. That is not convenient. You expect at least to have access to all characters and to type regular letters using the base layer (or you will have to do finger gymnastics to type simple sentences).
Luckily, the Atreus is a configurable keyboard that you can customize. The simplest way to do so it by using Chrysalis.
I have been exploring how people were configuring the Atreus with Bépo (see https://bepo.fr/wiki/Atreus), but I did not find something I was pleased with. I am the kind of guy that likes "sane defaults". I realized that tweaking things to make them more tailored to yourself was too tedious. You’d better go with default configurations and be productive doing real things. However, I had to face reality because there was no such thing as a "sane default" configuration for typing on the Atreus with Bépo. The keyboard was already on my desk so I know that this time I could not escape the tweaking, or it would stay unused and soon be covered by dust.
So this repo is to share my take of trying to establish a "sane default" configuration for Bépo. I put quotes on that because I cannot claim to make something that will fit naturally to everyone. But at least, I have tried to organize the letters and symbols without much personal opinion. Here are the few design philosophies that helped me along the way:
- Stay as close as possible to the choices that designers of the Atreus made for the qwerty layout.
- When possible, try to make choices that would satisfy a typical Bépo typist typing on a standard keyboard.
- When no clear path is seen for a choice, prefer usability.
Further down, I will try to explain the choices I made more specifically. But keep in mind that there is never a one-size-fits-all solution that will satisfy all of us. So if you roughly like this layout, just take it as a starting point to do your own configuration. After all, maybe you’ll only have a few tweaks to make, and that will buy you time!
I am open to feedback, so feel free to open a discussion on that repo to share your comments/ideas.
All the visual designs in that document were made using Excalidraw. You can load the full Excalidraw project using atreus.excalidraw. Otherwise, all png files were exported by embedding Excalidraw scenes. So you can also simply load a png into Excalidraw, and you will be able to tweak it.
This layout has been designed using version 1.1rc2 of the Bépo layout.
On Linux, you can usually enable it with:
setxkbmap fr -variant bepo_afnor
Simply use the file layout.json and import it in Chrysalis using the "Layout sharing" feature.
For reference, here is the default qwerty layout as designed by the Keyboardio team. As I tried to keep close to this layout, it is handy to have it at hand. You can also find each layer decomposed on the Atreus page.
This is the base layer. My goal here was to make as few changes as possible. I just wanted all regular letters directly accessible on that layer.
AltGr
is available using the right thumb, the same as on a regular keyboard.Z
has been added aboveCtrl
.W
has been added at the bottom right corner of the keyboard atEnter
’s location. I first placed it aboveAlt
(symmetrical toZ
), but it was not convenient when typing in english (for instanceW
, thenH
for "when" or "where"). So I had to made the hard choice of swapping it withEnter
(hence diverging from a choice made by the Keyboardio team). If you don’t happen to type in english, you can swap them back.M
happens to land at the bottom right corner without any changes.Fun
has been renamed toFun1
. I’ll explain later.Fun2
has been introduced on the same key asEsc
when holding it.
You can note that ç
does not exist. 44 keys is not a lot and I could not find a suitable place for it, so I decided that I would use AltGr + c
to type it (using Bépo 1.1rc2). I did not want to push letters to a Fun
layer. To me, Fun
layers are for symbols.
Initially, the Atreus only has one Fun
layer for numbers and special characters. However, almost no special character can be placed on the base layer in Bépo because it has more letters (and it also has more of them such as –
, —
). So numbers and special characters did not fit altogether on the same layer. The idea was to split into two Fun
layers (Fun1
and Fun2
).
I also think that one should not have to press more than one modifier to reach a character. So the idea is that AltGr
should not be needed on Fun
layers.
This Fun1
layout it reached the same way as the Fun
layer in qwerty. Some of the left part of the layer hasn’t changed such as arrows.
"
replaces!
because!
can be typed on the base layer. On top of that,"
ends up being physically at the same place as on a regular Bépo keyboard (same key as1
).'
is right beside"
. They are relative, so having them next to each other makes sense. Note that on 1.1rc2, the typographic apostrophe replaces the regular one. But the regular is still needed for instance when programming.(
and)
are at the same place as on a regular Bépo keyboard (same keys as4
and5
).{
and}
are at the same place as where they are when typed withAltGr
on the base layer.[
and]
are placed so that they are typed with the index finger on a regular Bépo keyboard so they stay under the index here.#
and$
are typed with the pinky on a regular Bépo keyboard so they have been placed to keep under the same finger here.@
,+
,-
,/
and*
are at the same place as on a regular Bépo keyboard (same keys as6
,7
,8
,9
and0
).<
and>
are at the same place as on the base layer of a qwerty layout (which may help to remember their location).
Other characters under the right hand are placed without applying specific rules, by filling the gaps.
This Fun2
layout is reached by holding Esc
on the base layout with the left hand. The right part of the layer looks like the one the Fun
layer of the qwerty layout (numbers). The differences are the additional operators that were introduced to avoid having to switch between Fun1
and Fun2
when typing operation, and the place of 0
and .
which better mimics where they are on a regular keypad.
As there was not much to add on the left part of this layer, I opted for the addition of cut, copy, paste keys at the same place as on a qwerty/azerty layout. This is handy to copy/paste with the left hand when using the mouse on the right hand for instance.
This layer hasn’t changed at all except the layer modifiers gaming layers.
Those layers are totally optional but can be practical for gamers.
Historically, games are played with W, A, S, D on a qwerty layout plus a few keys easily reachable around them. But if you don’t use the qwerty layout, or if you have a fancy keyboard that wasn’t made for gaming (e.g. Ctrl
on the thumb), it can become complicated to play games. You will probably have to make tons of remappings to make it yours. I personally always prefer to avoid doing that.
In reality, game developers have two choices when listening for typed keys:
- Letters
- Scancodes
If a game listens to letters and W
is "moving forward", well, you will have to type a key on your keyboard that will translate to W
if you want to move. If you are not a qwerty typist, you are screwed and you are good for remappings. You can also switch your operating system layout to qwerty each time you start a game, but that’s not convenient in games where you can type words. You want to chat with other players using Bépo for instance.
However, more recent games listen for physical scancodes. For instance, the game expects you to type the second key on the top row to move forward. This will be W
in qwerty, and É
in Bépo. This solution is more robust and should normally work across multiple keyboard layouts. However, when you have an ergonomic keyboard such as the Atreus, this might not be sufficient. Keys modifiers are on the thumb, for instance, so you will lose your habits in games. You also don’t have easy access to numbers. What we want in the end is to have our fingers positioned physically at the same place as with a "standard" keyboard (e.g. Ctrl
at the bottom left).
Those two following layers were made for that purpose. Both have exactly the same outcome with same positions. It is just that the first one is to be used when a game listens to letters, while the second is for scancodes. If you don’t know what the game expects, just try them both and you will quickly see.
You can enable them from the Upper
layer with the left hand. Note that if you need a key that does not exist on the layer while gaming, you can quickly swap to the base layer and then come back. Same if you want to write words.