Close

[C] The Tetaip layout: Taipo modified

A project log for WK-50 Trackball Keyboard

Reverse-engineering a bat-shaped, hot-swappable keyboard with a 38mm trackball and RGB-backlit encoder.

kelvinakelvinA 09/03/2024 at 15:350 Comments

The layout at the time of writing can be seen here, though I haven't been able to get the Taipo-related code working (see issue).

As written in the readme, the main change is that space/bksp/shift are on the smallest finger, Finger4 (aka "pinky", and I also need to make a PSA on the Tetent-related projects that I'm changing the index to start at Finger0, so that Finger1 is literally the 1st appendage called a finger. It also makes more sense for #Tetent [gd0090], which currently only uses F1 - 4) and that a letter + spacekey outputs "[letter] + [space]".

Unicode.

The most amount of time was actually dealing with unicode. Not sending unicode characters, but trying to use unicode to make nice 1-liner comments showing what keys need to be pressed. Reasons include:

The issue is that there is no consistency between different unicode sets that are supposed to build on the same general idea:

Left: Symbol widths for VS Code and Github. Right: Symbol widths in Sticky Notes

Coincidentally (because my brand image is diamond squares and all), the diamonds are the most consistent that have the symbols I need. In an ideal world, the filled and outline diamond (first 2 lines) would be the same width as the half-filled ones, but lines 3 onwards are from a different unicode set and it seems only the fontmakers for sticky notes made sure to keep them cohesively aligned.

Here's the alignment woes I discovered on my journey. May I suggest playing Monkeys Spinning Monkeys for this montage?:

As the fully-filled diamond is rare, I thought it would be a nice compromise to use the small black diamond to denote "nothing pressed on this finger" and I think it actually makes it more obvious compared to my initial strategy:

Changes and improvements

This is also a good time to mention that I renamed the "variables" compared to the original so that it's way easier to read and understand what a chord is made from:

Left: Original. Right: Tetaip

Because of how I ordered the chords, I was able to find all (but one of) the potential chords available. I alternated all-outside, all-inside, all-outside(with one more finger), etc until I got to 4 fingers where I ordered them in binary.

With the ascii art comments, it's now very easy to see chords that are still available and might be nice to press.

I also tried to line up some letters so that their dual F4 functions lined up somewhat nicely:

# ⬦⬘⬘⬦⬦ ┊C┊ ┊copy┊
# ⬦⬘⬙⬦⬦ ┊X┊ ┊cut┊
# ⬦⬘⬦⬙⬦ ┊V┊ ┊paste┊
# ⬦⬦⬘⬦⬗ ┊Z┊ ┊undo┊
# ⬦⬦⬦⬘⬗ ┊Y┊ ┊redo┊

Discussions