Skip to content

Latest commit

 

History

History
126 lines (99 loc) · 6.37 KB

Ortho_README.md

File metadata and controls

126 lines (99 loc) · 6.37 KB

Ortholinear Canaria

image a Corne keyboard in the standard Canaria-ortho layout

What Canaria Ortho looks like

This is the standard layout, but most ortho keyboard owners are on programmable boards, so I will leave it up to you to solve for ( ) < > [ ] { } | \, etc:

W L Y P B   F J O U ;
C R S T G   M N E I A
Q Z V D K   X H / , .

Why is the ortho version so different from standard Canaria?

Canaria (and Canary) are "Angle Mod" keyboard layouts. They take advantage of a feature in staggered-row keyboards where the index consonants have very easy reach positions to two other consonants just beneath them on the bottom row:

 T    N
D G  M H

On ortho boards this geometric quirk does not exist. The keys that are harder to use on ortho boards are completely different than the standard row-stagger board. Since this optimization is not available in a grid configuration, we rotate G and M from their Angle Mod positions on the bottom row up to the home row.

Likewise, B and F that are on the homerow in Canaria float up to the top row.

How do you type the Ñ, É, Í, Á, Ó, Ú and Ü?

The first thing you will need to learn in QMK or ZMK programmable controllers is the use of layers.

The strongest suggestion for QMK and ZMK users is to set your keyboard layout in your operating system to U.S. International. While that is a QWERTY layout, this gives you access to the dead keys needed to access the diacritical marks, but without adding the baggage (and memory-hog) of adding complex Unicode support to your custom keyboard microcontroller.

Next, you should create a new keyboard layer for your right hand that is triggered by the left hand. There are hundreds of ways you can trigger this accent layer. My favorite key to use for this task is the bottom leftmost key, which does requires a wrist-rotate for me to reach but doesn't bother me.

You could instead optimize for a combo, preferably using a pair of keys that don't form an often-used bigram, like Y P which you can configure as a one-shot tap or as a hold-it-down then press the N or vowel key with the right hand.

Sending the keystrokes

Once you've settled how you want to trigger your Spanish-accent layer, you need to set up the keystrokes to send when you press the keys you use for N, E, I, O, U, and ; on your base layer. This is also a good time to find placements for ¿ and ¡ within the same layer.

In my case, I solved this problem by making keystroke macros to send the keystokes that U.S. International expects to see when pressing the desired letter. In QMK this is easy to accomplish with SENDSTRING() but in ZMK you will probably need to send the step-by-step keypresses in a macro sequence.

Can you give me an example of your Spanish-accent layers?

Here is what I use (pseudo-code)

Base layer

ES denotes what I am pressing to reach the Spanish accent layer. When in this layer, I can then hold down my left-side SHIFT key to then reach the upper-case Spanish accent modification to the layer.

ALT  w l y p b  j f o u : RALT
CTRL c r s t g  m n e i a ;   # When ; is held-down it becomes RCTRL instead
ES   q z v d k  x h / , . ESC

ES Diacriticals

—  — — — — —  — — ó ú ü —
—  — — — — —  — ñ é í á —
ES — — — — —  — ¡ ¿ — — —
      SHIFT

To actually make these keystrokes happen, you need to transmit the following keycodes to your operating system that is set to the U.S. International layout.

Desired Key Codes you need to send (QMK) Codes you need to send (ZMK)
' KC_QUOTE + KC_SPACE SINGLE_QUOTE + SPACE
" KC_DOUBLE_QUOTE + KC_SPACE DOUBLE_QUOTES + SPACE
~ KC_TILDE + KC_SPACE TILDE + SPACE
` KC_GRAVE + KC_SPACE GRAVE + SPACE
^ KC_CIRCUMFLEX + KC_SPACE CARET + SPACE
ñ KC_TILDE + KC_N TILDE + N
á KC_QUOTE + KC_A SINGLE_QUOTE + A
é KC_QOUTE + KC_E SINGLE_QUOTE + E
í KC_QUOTE + KC_I SINGLE_QUOTE + I
ó KC_QUOTE + KC_O SINGLE_QUOTE + O
ú KC_QUOTE + KC_U SINGLE_QUOTE + U
ü KC_DOUBLE_QUOTE + KC_U DOUBLE_QUOTES + U
¡ KC_RIGHT_ALT + KC_1 RIGHT_ALT + NUMBER_1
¿ KC_RIGHT_ALT + KC_QUESTION RIGHT_ALT + QUESTION

For the upper case letters in QMK the shift modifier is handled for you so you don't need to create an upper case layer.

You will, however, need to adjust your current keys for `, ", ', ^ and ~ to deal with the problem of the dead keys in your OS soft layout. The dead keys will only send a character when a space is pressed after the dead key.

When you visit other computers with your ortho keyboard you will need to add the U.S. International keyboard layout to the computer if that layout is not otherwise present.

What about when I go to other computers? How will I survive?

Switching between the ortho and rowstag versions of Canaria don't come without a penalty, and often it's not worth the tradeoff to remember where B, Z, F, Q, J, K, G, M rotated to between the two versions. They are essentially different layouts as far as your brain is concerned.

To get around this problem it makes sense to have an OS keyboard layout that maps the ortho version of Canaria back to rowstag.

For Windows I have made Canariastag which is a translation of this ortho layout back to the standard rowstag. I haven't had an opportunity to test it, but if you get the chance to, please open an issue and let me know how it went.