Wednesday, February 14, 2024

I want to try your layout before I buy it...

 

You can actually try it on your Windows computer. May be that's all you need, and that's ok.

 

My layout is based on two things:

- tri-state layers used in Planck/OLKB boards,

- and SpaceFN layout.

 

The former allows to have four layers controlled by two keys. It works only if you have a programmable keyboard.

 

The SpaceFN layout can be used on its own, on any regular computer, provided you can install a program to it.

 

The idea is to turn space bar into a modifier key. That is when you hit it once it works as a space bar. But when you press and hold it - it activates another layer, like Shift or Control. This post on Geekhack.org describes this idea in more details.

 

For SpaceFN (when I don't have my ThumbsUp! keyboard) I use TouchCursor utility.

You can download and use it for free.

 

To use my layout - launch TouchCursor double click on its icon in the clock area to open the configuration window. Change any of the key bindings and close the window with OK button.





Then exit from TouchCursor by right-clicking on its icon, and choose Exit.

Download this file:


https://www.dropbox.com/scl/fi/9palixumrhksvrk0iyz8a/settings.cfg?rlkey=2llydt44s7t11r4x3fi17u2fe&dl=0


From that archive unzip and save "settings.cfg" into this folder, replacing the existing file, if any: "C:\Users\{YourUserNameHERE}\AppData\Roaming\TouchCursor"

 

Launch TouchCursor again.

 

When TouchCursor is running and is active, holding the space bar gives me this layer (the key action is in the center of each key):




This layout is especially good with the laptops, in which the navigation and editing keys are placed in very uncomfortable and often unusual spots, and the F-keys are either grouped differently or shifted to the side a bit, contradicting my muscle memory, or require holding FN key to use.

 

SpaceFN removes the need in those separate keys, and makes me feel better with any laptop keyboard.


Layout Design: Background Ideas

My board layout is QWERTY-based, most of the keys are in their familiar places. Yet some of them, especially those on the navigation layer, are moved. Why?

In this post I will try to recollect my thoughts on that.

 

Backspace/Delete

Backspace/Delete key is located in the top right corner, above Enter, about the same spot as in regular boards.




In the data-entry scenarios, i.e. in QWERTY and Numbers layers, that button acts as Backspace. The reason is while typing I most likely need to remove the last entered character or word (with usual combo Ctrl+Backspace.)



 


In navigation/editing layers that button acts as Delete. I noticed when I edit text most often I navigate to the beginning of the text I want to delete, then use Delete key. So it is logical to change the behavior of that key from Backspace to Delete when I use the navigation layer. I just drop my right thumb on the corner button, use three middle fingers to get to the starting point. Then I press Delete with my pinkie without releasing the thumb.

 

Another reason is I still need both Backspace and Delete keys, so it has to be placed somewhere. There is no available spot in the default layer, that meant it should go to some other layer(s). I could put Delete key on the key adjacent to Backspace ("P" in QWERTY layer.) But that still would be on navigational layer. I preferred to keep the same key for both operations Backspace and Delete. That means the pinkie needs to hit the same key for the "delete" operation, but the direction of that operation changes depending on whether I drop my thumb on the corner key or hold it up.

 

Symmetrical Navigation Layers

I am right-handed, yet my right hand is no longer capable to do all the work alone, I have to involve the left one more and more. I started using the left-handed mouse and then trackball, and felt a relieve in my right wrist. So I made two layers for navigation - one for each hand.

(Thanks to QMK and Jack Humbert's Planck keyboard I learned how to use three-state modifiers. This way two thumb-controlled buttons allow to have four layers in a easy way.)

This way I can scroll through the text or spreadsheet with my left hand, and write notes or check off something in a paper form with my right hand (I still write with my right hand, haven't learned how to do that with the left one yet.)

 

Tab/Enter

 



This is a continuation of the symmetrical navigation layers' idea. While going trough some text or a list/controls/spreadsheet I may need to hit Enter. When I use my right hand, there is a standard button. But if I use my left hand for navigation that conventional Enter button is too far away.



 


Turning Tab into Enter temporarily while in Navigation layer resolves the issue.

Also it is performed with pinkies on both sides, so it is easy to remember.

 

 

 

Control, Win, Alt, Menu

These keys are located in their usual places.

 



That is very close to what they are located in my favorite conventional Thinkpad keyboard:

 



 

Controls are pressed with pinkies, Win and Menu - with the ring fingers, and Alts on both sides - with the middle fingers:



 

 



 

On the right side Alt and Menu follow the key columns used by the middle and the ring fingers almost precisely.

 

 

 

On the left side that is not so obvious because of the row stagger, but they are located right under the middle and the ring finger too.

So with my staggered column design those keys got their familiar positions.

 

 

 

 

Control keys are a bit of exception. They keep their corner spots, but are on the bottom row with ZXCVB letters. The reason is the same - it is pretty close to the regular keyboard layout, are within reach of pinkies. Also with my boards Controls can be pressed by the palm edge, or by curling pinkie in (instead of using finger tips.) Sometimes that is more comfortable to do, the lateral palm move/turn is avoided, replaced with axial (is that the right term) hand rotation.

 

As for those keys' action - it is immutable, remains the same on all layers (except for Plover where they make no sense at all.)

One may notice some other keys get assigned to work as Alt in the Numbers layer, that's a leftover from some experiments. Those positions are handy, but not really needed, may be removed/replaced in the future key map revisions.

 

Page Up, Page Down

 

 



 

Again, these keys extend the idea of symmetrical navigation layers. Oftentimes I need to scroll through some long files, web pages and would like to do that with either hand.

I hold a thumb on the corner key and use index finger of the same hand to press page up or page down.

 

Two points about these keys location:

 

1. Page Up/Down compete with Home and End in the navigation layers.



 

 

In Thinkpad keyboard Page Up and Down are located with cursor arrows block. The icons on the keys are not telling their action, but they are PgUp and PgDn.

 

 

 

 

 

 

 



Home and End are in the top right corner with a repeated PgUp and PgDn

 

 

 

 

 

 

 

 

 

So it was really a matter of preference which keys to put where. I opted with PgUp, PgDn to be in the innermost column pressed with the index fingers. May because they are used less than Home/End, it could be the other way around.

 

 2. Which row to put them on, the top two or the bottom?

 

This layout was developed with a few physical keyboards, mostly with Dactyl-Manuform versions. For those keyboards it was move convenient to have them on the bottom two rows, i.e. Page Up on G and H keys, and Page Down on B and N.

 

With ThumbUp! design the thumb keys got a bit closer to the bottom row, so pressing Page Down became less comfortable. Those B and N keys are the two least places in the whole board, they are ok to be hit once while typing, but pressing it repeatedly (as required with Page Down) is not pleasant.

 

So in the current key map revision Page Up and Page Down are moved to the top two rows, even if Page Up may require extending the index finger a bit farther.

 


 

 

Source Files and Default Firmware

Updated: Nov 12

I am cleaning up the firmware for all the keyboards. Two biggest changes are switch to the current QMK version 0.22.14 and enabling the VIA/REMAP support for all the keyboards. Look for the banners for each keyboard to see if the new firmware is ready.

 

Default (pre-compiled) firmware and JSON files for VIA/REMAP are in Dropbox here:

 

https://www.dropbox.com/scl/fo/2s8vz5tq5lffmpjuqbz2c/h?rlkey=71amow1mhhwfe54c0ywx59bfc&dl=0

 

You can flash them to your board.
For AtMega/ProMicro based boards (*.hex files) use  QMK Toolbox .

For RP2040 boards (*.uf2 files) press twice the reset button (on the bottom side of the middle PCB), and copy the file to the drive newly added to the system.


Note:

v3 (5x12) and v4 use the same firmware (use the v4 one as the latest and supporting VIA/REMAP.)

//TODO: re-upload v4

 

v5, v8 and v8b also use the same firmware (use v5 for all of them)


 

If you want to modify the QMK files, source files are here: 

https://github.com/ak66666/qmk_firmware/tree/thumbsup_20231028

 

To compile the firmware:

- Install QMK tools (as per instructions on https://qmk.fm)

- Clone my qmk_firmware repository

- Open QMK.SYS

- Navigate to the folder with QMK repository, e.g.

cd /c/Users/ak/Documents/GitHub/qmk_firmware

- Compile the firmware, depending on the version:

 

 

v2 AtMega:

qmk compile -c -kb thumbsup/rev2_atmega_unibody_4x12 -km default_4x12_reduced_plover_via

 

v2 ProMicro:

qmk compile -c -kb thumbsup/rev2_promicro_unibody_4x12 -km default_4x12_via

 

v5, v8, v8b ProMicro:

qmk compile -c -kb thumbsup/rev5_promicro_unibody_5x12 -km default_5x12_v5_via


v6:

qmk compile -c -kb thumbsup/rev6_rp2040_split_4x12 -km default_4x12_v6_via

 

v7 (for the left and right halves separately):

make thumbsup/rev7_rp2040_split_5x12:default_5x12_v7_via:uf2-split-left

make thumbsup/rev7_rp2040_split_5x12:default_5x12_v7_via:uf2-split-right


v9:

qmk compile -c -kb thumbsup/rev9_promicro_4x12 -km default_4x12_v9_no_plover_via


v10:

qmk compile -c -kb thumbsup/rev10_rp2040_unibody_4x12 -km default_4x12_v10_via


 

  

Adding a Touchpad

 

Updated: Jun 5

The unibody ThumbsUp! keyboards support ProGlide Cirque touchpads.

Cirque touchpad fits nicely under the top PCB and are not visible from outside, so here its picture sticking out, not yet glued to the top PCB:



 


 

There are tracks leading to a connector on the top board.

(Add it to the order and let me know if you want the connector to be installed, provided I have them in stock.)





 

 

You'd need to buy these two parts from Mouser (or any other vendor):

Mouser #: Mfr. #: Desc.:

355-TM0400402024-301 TM040040-2024-301 Capacitance Touch Sensor Modules Capacitance Touch Sensor Modules 40mm Round SPI/I2C adhesive overlay

538-15166-0125 15166-0125 FFC / FPC Jumper Cables FFC / FPC Jumper Cables FFC 0.50 Type A 12 ckts lgt 127

 

Touchpads need to be modified:

R1 needs to be removed to use I2C the boards support:





 

For the ProMicro and Atmel32U4-based keyboards the touchpad also needs to be made to work with 5V power. For that remove R7, R8 from the touchpad.

RP2040-based boards use 3.3V so for them R7, R8 should remain installed.

 

UPDATE 2023-04-17: With the default QMK settings the mouse pointer may jitter a bit. Put this line into config.h to stabilize it:

#define POINTING_DEVICE_TASK_THROTTLE_MS 10

 

 

How to Use ThumbsUp! Keyboard: Modifiers (Shift, Control, Alt, Win)

 

How to Use ThumbsUp! Keyboard: Modifiers (Shift, Control, Alt, Win)

Updated: Oct 4

One of the goals I tried to achieve with my layout was to keep it as close to the standard QWERTY as it was defined in ThinkPad X-Series laptops (up to x220 model.)

The biggest deviation from that layout were the Shift keys which were moved under thumbs. Other modifiers: Left and Right Control, Alt and AltGr, Win, and the Menu buttons remained under the same fingers.

 

The latter is quite important. In ThinkPad laptops I pressed Controls with pinkies, Alt keys with the middle fingers, Win with the left ring finger, and Menu with the right ring finger. The same fingers are supposed to be used with ThumbsUp! keyboards:



 

Shift key is pressed/held with a thumb, it is just dropped on it:





 

Control key is pressed with pinky:




 

The Control+Shift combination is pressed with thumb and and pinkie together:





 

I learned that some people treated Win, Alt and Menu keys as an extension of the thumb cluster, and found it a bit awkward. Indeed those keys are are much easier to reach with the middle and ring fingers. I press them on the very edge of the caps. In my own boards I even rotated the key caps so the slanted edge looks upward, much easier to catch it with the finger tip:




 


 

Sometimes I curl the finger and hold the key with the finger joint. It may seem unusual, but it got its benefits: I just bend the finger, its tip slides over the key, and the wrist drops down. This way the wrist is not lifted nor it is bent and held upwards by itself (which seems to be one of the miniscule repeated motion leading to RSI). Instead it is pushed up by the finger moving under it.




 


 

Control+Alt is the trickiest combination and somewhat an exception from the finger assignment rule. To press this combination the easiest way is to move the palm sideways, the pinkie automagically moves to Control key, and the thumb moves over Shift to Alt:




 


It is a bit hard to see those fingers placement as the rest of fingers are relaxed and cover the view. So for this picture I lifted those unused fingers:





 

Thumb is used to hold Shift+"Cursor L" and Shift+"Cursor R" combinations (for instance when you type !@#$%^&*(), the numbers with Shift.) For it the thumb is dropped in between the keys, pressing them both:


 

That's all about the modifiers.

 

How to use ThubmsUp! keyboard: Numbers and F-Keys

 

Updated: Nov 12

In the previous posts the QWERTY and navigation/editing layers were described. This one covers the numbers and F-Keys.

 

Default layout provides two ways of entering the numbers:

- using the numbers and F-keys layer that is activated with two thumbs holding CURSOR L and CURSOR R keys

- with NUMPAD layer which is turned on and off with TAB+C

 

 

The Numbers and F-Keys Layer

 

This layer works pretty much the same way as with the regular keyboards:




The top row got numbers from 1 through 9 and 0. Functional keys are located on the home row, with F11 and F12 spilling out on the bottom row.

 

(Additional Shift and Alt modifiers were left in this layer for historical reasons, when this layout was used with Let's Split and Dactyl-Manuform keyboards. They were and may be still handy to have there, even I rarely use them nowadays.)

 

The standard modifiers work the same way as usual, so one or both thumbs can press CURSOR L (or R) with Shift simultaneously.

Note that the Backspace key in the top right corner works as Backspace, which is a convenient way of removing the last entered symbols. Dot, comma, slash, angle brackets are also in their usual places, so the dates, decimal values could be entered without lifting the thumbs.

The same idea with the parenthesis, square and curly brackets, and the quotes. You may press and hold Tab without lifting the thumbs, so the "extra right" layer is turned on, like below. Once Tab is released (and provided the thumbs are still pressing CURSOR L and CURSOR R keys) you will be back to the numbers.


 


 

 

NUMPAD Layer

 

The numbers layer is convenient for a relatively short string of numbers. When you need to type multiple numbers, or if you need to trace them on a paper page, the number pad may be better.

The number pad layer is turned on with Tab+C, it remains on until you press Tab+C again (or until the keyboard is reconnected):

 

 



 

With this layer on the right side of the keyboard works as a numpad on the regular keyboards. Most of the keys on the left half are not doing anything, hence the picture above shows no legend for them.

Note that the navigation layers and the "extra-right" layers can be used the same way as with QWERTY layer. That is there is no need to switch to QWERTY layer in order to use the cursor navigation keys. Just hold CURSOR R down to temporarily switch to this navigation layer (notice the Back Space works as Delete.) Once thumb is lifted you will be back in the NUMPAD mode.

 



This way you may enter numbers or dates in Excel with one hand without moving it much.

To return to QWERTY mode - hit Tab+C again.

 

 

How to use ThubmsUp! keyboard: Navigation/Text Editing Layers

 

In the previous post the QWERTY layers were covered. This post explains how to navigate and edit the text with ThumbsUp! keyboards.

 

The default layout of ThumbsUp! keyboards allows switching between the typing and navigation without moving the hands off their "home" position.

 

I favor moving the text cursor with my right hand, and to operate the mouse with my left hand. To do that I need to hold the corner key (marked as CURSOR R in red in the diagram below) with my right thumb.

 

With this layer activated the cursor control block appears on the right side, under index, middle and ring finger. Other navigational keys Home/End/Page Up/Page Down are close enough.

 

Mouse is controlled by the left hand in the same manner: up/down/left/rigth block plus the scrolling wheel under index, middle and right fingers. Mouse buttons are pressed with the right hand though, the reason is when the left hand is busy with mouse moves it is much easier to push the mouse buttons with the right one. That is most noticeable when those mouse keys are used to drag something on the screen, then holding the mouse button with the left hand would be very uncomfortable. Using both hands for that is simply easier.




Text manipulations require usage of Shift in combination with cursor movements. With this layer I hold Shift with the left thumb, hold Cursor R with the right thumb, and move the cursor with the index/middle/ring fingers.

 

Sometimes the text navigation has to be done with the left hand. For instance when scrolling though an Excel table and taking notes or checking something off with a pen in the right hand. (I am right handed, but try to involve my left hand as much as possible.) For that a symmetrical navigation layer is created.

 

This layer is activated by holding the corner thumb key (marked with CURSOR L in the diagram below). The navigation blocks change places - cursor controlled with the left hand and mouse with the right. Mouse buttons also on the same side as cursor, on the left side:




 

I use these layers interchangeably. As a right-handed person I prefer to use my right hand mostly. That means when I need to move the mouse or scroll the wheel it is easier for me to switch to the latter layer with my left thumb, and use my right hand for the mouse keys. And when I need text cursor to move - I hold CURSOR R with my right thumb and use the remaining right fingers for the cursor moves.

 

I already mentioned text selection with Shift+Cursor Arrows, these two layers got keys which are constantly used for the text editing:

 There are keys for the standard Cut, Copy, Paste, Select All operations. While they do the same as Ctrl+X, Ctrl+C, etc. it is much easier to keep holding CURSOR R or CURSOR L and hit familiar X, C, V, A than lift the thumb and press Ctrl.

 

Notice the Delete in top right corner. In QWERTY layer that key works as Backspace. In these navigation layers it changes to Delete. The reason is in QWERTY data entry/typing "mode" the just entered text needs to be removed, the Backspace is the best key for that.

In the "editing" layers the usual way of action is to bring the cursor to the beginning of the word and then use Delete key.

So the key behavior changes to what is most convenient in each operation "mode".

 

Similarly the Tab key in these two layers acts as Enter. That relieves the right hand a lot, for example when going through the file tree in FAR Manager (or a similar tool, or any other tree-like structure). Then the right hand is used to move up and down, and left pinkie hits Tab (in that case Enter) without releasing the right thumb. (That may seem to be an little thing, but that small jerk of the right palm to hit Enter put a significant strain on the joints involved. So using the left hand helps to distribute the workload and hopefully avoid the RSI.)

 

 

How to change keyboard layout using visual online editors VIA and REMAP

  VIA and REMAP are great online visual tools to re-define QMK-based keyboards. All current ThumbsUp! keyboard support both tools by defaul...