2022-01-21 New Keyboard Layout

Sitting alone on the sofa, with the loud clickety click keyboard on my lap, the laptop on a little chair like think in front of my, Brahm’s A German Requiem going softly in the background.

With the help of @deshipu I’ve been thinking though my Atreus keyboard layout. This is unfortunately necessary because the good looking Model 01 keyboardio keyboard isn’t working very well right now. The keys in the general line from the i down to the period are either repeating too often or not reacting. So I’ve gone back to the Atreus.

@deshipu

I didn’t like the default Atreus layout when I got it, and I tried to use the Workman layout instead. I didn’t manage to learn it, and I realized that I was never going to enjoy being a few percent faster (let alone the suspicion that I was actually going to be slower!) and that as a programmer I wasn’t doing a lot of actual writing, I was doing a lot of editing. That is, I move around, I switch windows, I select text, I delete text, I switch tabs, I use the control and alt modifiers a lot. So most of all, a new keyboard layout needs to be easy for me to learn, and “similar” enough to the standard layout.

This is what I ended up with.

The standard layer is pretty standard. Ctrl and Alt mirror each other. Space and Backspace mirror each other. Escape is far out in a corner somewhere, but at the bottom instead of at the top somewhere. Tab and Gui are in random places. The positions closer to the middle in the bottom row are more valuable because they can be pressed with the thumb without having to cross-over movements with the other fingers if you combine stuff.

Sadly, it’s not great for Alt Tab, to switch windows, or Shift Tab to tab backwards. I’m not sure what to do about that. Perhaps it would make more sense to move Tab closer to the middle because it’s easier to reach. The current position next to Escape requires a moment of thought and all the actions involving the Gui key also require a moment of thought, so that might be an upcoming change.

  q   w   e   r   t             y   u   i   o   p
  a   s   d   f   g             h   j   k   l   ;
  z   x   c   v   b             n   m   ,   .   /
 esc tab gui sft bksp ctl alt  spc RS  LW   '  ret

Raised layer (RS). What I discovered is that the number block layout does nothing for me. I hate it. I need a row of numbers. And I need the arrow keys a lot, in combination with control and shift. If those two modifiers are on the left the arrow keys must be on the right. What better way than to use h j k l? This I also learned with the Model 01 keyboard.

One wonders how to use the punctuation atop the numbers efficiently. Maybe not at all. So I will do something I saw deshipu do: keep them below the numbers, in the same order, at least for the first five of them. Then things get a bit complicated since I want the parentheses in reasonable blocks. I feel like I use them a lot when writing code.

I’d like diaeresis to be easy: RS Caps Lock (for Compose) + RS “ + a o u – perhaps easy to type than RS Caps Lock, Shift ’, a o u. No switching of modifiers. This is why I but the quotation marks on the RS layer where the apostrophe is.

In these other layers, I should keep the modifiers where they are. Any other key reachable via the layer must be usable with a modifier (gui shift ctrl alt). All other keys, however, do not have the same protection. This, backspace turns to delete, return turns to menu, escape turns to the backslash.

Unfortunately, the menu key isn’t working as expected, however. When I use it in Emacs, it tells me “SunProps” is not defined. Something about this macro is broken.

As for pulling apart basic math operators, I think I don’t use them often. I do use hyphens when writing text and lisp, path separators in file names, and control + and - for zooming and the like.

Here is the result.

  1   2   3   4   5             6   7    8    9    0
  !   @   #   $   %           left  up  down right +
  |   ^   *   &   =           home pgup pgdn end   -
  \      gui sft del ctl alt  spc   ∎∎  caps  "   menu

Lower layer (LS). Sadly, function keys remain important for programs such as mc and htop but also debuggers and the like. This is also why I need F11 and F12. Having only ten keys in a row, they just wrap around the corner. That works for me, I hope!

I found myself using the volume up and down keys, and the mute button, a lot more in the home office. What a surprising development. So now they really have to be on the keyboard.

And finally, we get to see the parenthesis block. This time the most used type is on the far right so that the thumb can press the LS key while the other fingers can press the keys without crossing over.

 F1   F2   F3   F4   F5           F6  F7  F8  F9  F10
                    vol+           {   }   (   )  F11
                    vol-           [   ]   <   >  F12
           gui  sft mute ctl alt          ∎∎   ` reset

I also switched back from the US International keyboard (where ’ and “ are dead keys that combine with the following letter) back the the regular US keyboard. Let’s see how well using Caps as the Compose key actually works with this layout. It felt pretty good in the office, actually.

​#Atreus ​#Keyboard

Comments

(Please contact me if you want to remove your comment.)

What about the colon : and the tilde ~?

– deshipu 2022-01-22 10:23 UTC

---

I think shift semicolon is good enough for the colon. The tilde is … uh … shift LS apostrophe which works well enough. Do you use it very often?

– Alex 2022-01-22 10:48 UTC

---

Went to visit deshipu, saw his keyboard collection, talked about flat keyboards and the Atreus, while looking at the Model 01 and he convinced me to give tap and hold another try. So this is the new setup. Let’s see how well it works in practice!

Basic layer (L0) uses mod-tap, i.e. if you tap a key on the home row, you get the key, but if you hold it, it acts as a modifier. The modifiers are: H-Hyper(), G-GUI (Super), A-Alt, C-Ctrl, S-Shift.

Sadly, Hyper ends up being Left Control, Shift, Alt and GUI, i.e. useless.

The diaeresis in the bottom right corner depends on Caps Lock being the compose key.

  q   w   e   r   t             y   u   i   o   p
  a/H s/G d/A f/C g/S           h/S j/C k/A l/G ;/H
  z   x   c   v   b             n   m   ,   .   /
 esc app  LW  RS bksp tab ret  spc RS  LW   '   ¨

Raised layer (RS). The EN dash in the bottom right depends on your Caps Lock being the Compose key.

  1   2   3   4   5             6   7    8    9    0
  !   @   #   $   %           left down  up  right +
  |   ^   *   &   =           home pgdn pgup end   -
  \              del            _       caps  "   --

Lower layer (LW). Lots of space still available.

 F1   F2   F3   F4   F5           F6  F7  F8  F9  F10
                    vol+           {   }   (   )  F11
                    vol-           [   ]   <   >  F12
                                               ` reset

– Alex 2022-01-27 13:48 UTC

---

Ok, after writing a few lines of text, I think I know what deshipu meant when he talked about rollover. The keymap as is results in a lot of modifier garbage being sent as I type. New keys are being pressed down before the previous one is released and if that’s one of the hold-modifiers, modifiers get added instead of keys being sent. Yikes! Not usable. I need to study the setup again.

study the setup again

– Alex 2022-01-27 13:58 UTC

---

Ah, this is what I was missing.

// Configure the global tapping term (default: 200ms)
#define TAPPING_TERM 200

// Prevent normal rollover on alphas from accidentally triggering mods.
#define IGNORE_MOD_TAP_INTERRUPT

// Enable rapid switch from tap to hold, disables double tap hold auto-repeat.
#define TAPPING_FORCE_HOLD

– Alex 2022-01-27 22:13 UTC

---

Confusingly, it seems like the home row mods don’t get accepted by the Gnome lock screen. I now can’t press RET to call up the password prompt and I cannot type shifted keys as part of the password. Or perhaps I’m tired when I type the password and always get it wrong. Somehow I am still getting a lot of things wrong, like preferring the ring finger instead of the middle finger for Shift, and forgetting that I moved RET to the thumb. Perhaps I need to move Shift and RET back to their old places.

– Alex 2022-01-30 07:49 UTC

---

Gaaah, back to the old layout, but moving Tab towards the center, a dedicated diaeresis key, and using hold-Tab as GUI. Will this never end? And EN-Dash is back on the lower layer…

  q   w   e   r   t             y   u   i   o   p
  a   s   d   f   g             h   j   k   l   ;
  z   x   c   v   b             n   m   ,   .   /
 esc  ¨  tab sft bksp ctl alt  spc RS  LW   '  ret

  1   2   3   4   5             6   7    8    9    0
  !   @   #   $   %           left down  up  right +
  |   ^   *   &   =           home pgdn pgup end   -
  \              del            _       caps  "   app

 F1   F2   F3   F4   F5           F6  F7  F8  F9  F10
                    vol+           {   }   (   )  F11
                    vol-           [   ]   <   >  F12
                                   –           ` reset

– Alex 2022-01-30 11:49 UTC

---

I’ve been at it for two years already, and don’t see the end any time soon, so my guess is it doesn’t. Then again, there are only so many possibilities, so sooner or later there has to be a cycle.

– deshipu 2022-01-30 11:55 UTC

---

Now that I’ve grown really comfy with the Atreus keyboard, I find that the Control key has stopped working. Noooo!

– Alex 2022-03-14 06:52 UTC

---

I feel like there is a hidden key combo that switches this on and off. In the last hour it was working again, but just now it stopped working again. What a cursed situation. No copy & paste!

– Alex 2022-03-14 08:24 UTC

---

Hm, seems to be an issue with the *angle* at which I press the Control key. It’s been working fine for a few hours now, after me pressing it down and left (?) for a bit. Love to be able to undo stuff again. Undo! Redo! Undo! Oh, what joy.

– Alex 2022-03-14 12:55 UTC