Inserts a pair of characters, then presses Left to put the cursor inside.
We can also press their constituent characters on the Higher layer.
Highly configurable ortholinear keyboard.
In 2008, I found out about the TypeMatrix 2030 and then proceeded to use it exclusively for the next 12 years.
In 2020, I found out about the Planck EZ, and within 2 days of using it I said that it was at least 10x better than the TypeMatrix 2030, but I now know that in fact it's at least 20x better!
I'm very excited to finally show you my awesome keyboard configuration!
(I'd like to eventually make my own Common Lisp based firmware for the Planck EZ, but need to build infrastructure first.)
Enjoy!!
Fun fact: I implemented this highly interactive keyboard in 5 days in pure HTML5 and CSS3, with no JavaScript involved!
My implementation is heavily inspired by Oryx (and I stole a few colors), see my configuration there.
I showed this to the great folks at Ergodox/ZSA and they were so impressed that they quickly offered to interview me!
Unfortunately, the Planck EZ has been discontinued! 😭
Fortunately, the Moonlander (by the same company) seems like a suitable replacement.
Stub.
⇥ | ~ (q) ¸ (Q) | , (w) ' (W) | . (e) " (E) … · | p (r) P (R) ↑ ¶ | y (t) Y (T) ¥ | f (y) F (Y) → | g (u) G (U) | c (i) C (I) © | r (o) R (O) ® √ | l (p) L (P) | ⌫ |
/ (`) | (~) \ ¦ | a A | o (s) O (S) ∅ | e (d) E (D) € | u (f) U (F) | i (g) I (G) | d (h) D (H) | h (j) H (J) | t (k) T (K) ™ | n (l) N (L) | s (;) S (:) ß ẞ | - (') _ (") ‑ — |
⌦ | ; (z) : (Z) | q (x) Q (X) | j (c) J (C) | k (v) K (V) | x (b) X (B) ✘ | b (n) B (N) ← | m M µ | w (,) W (<) | v (.) V (>) ↓ ✔ | z (/) Z (?) § | ⏎ |
Toggle Fullscreen (F15) | Super | ↺Lower | ↺Raise | Ctrl | Space | ⎇ | ⇧ | AltGr |
Menu
To Flbk
|
TT Nav |
/ ? | , < | . > | p P | y Y | f F | g G | c C | r R | l L | ||
a A | o O | e E | u U | i I | d D | h H | t T | n N | s S | ||
; : | q Q | j J | k K | x X | b B | m M | w W | v V | z Z | ||
↺Lower | ↺Raise |
Menu
To Base
|
Esc | F1 | F2 | F3 | ▲ | F5 | ▶ | F7 | F8 | F9 | F10 | ` (-) ^ (_) |
# (Shift-3) | 1 ! ¡ { | 2 @ 😱 < | 3 # ° [ | 4 $ ¢ ( | 5 % ‰ « | 6 ? (^) ¿ » | 7 & 🤔 ) | 8 * ∞ ] | 9 (() 💪 👏 > | 0 ()) 😅 😭 } | ´ ([) ¨ ({) ¯ ˘ |
Caps lock |
Workspace 1 (Super-1) |
Workspace 2 (Super-2) |
Workspace 3 (Super-3) |
Workspace Show All (Super-4) |
F4 | ◀ | F6 | Macro1 play | ▼ | < (#) > (~) ‹ › | Compose (Right Super) |
Scroll lock |
↺Lower | ↺Raise | Close window (Super-a) | Right ⇧ | Right Ctrl |
Esc | F1 | F2 | F3 | ▲ | F5 | ▶ | F7 | F8 | F9 | F10 | - _ |
# (Shift-3) | 1 ! | 2 @ | 3 # | 4 $ | 5 % | 6 ^ | 7 & | 8 * | 9 ( | 0 ) | [ { |
Caps lock |
F4 | ◀ | F6 | ▼ | # ~ | Right Super | |||||
Scroll lock |
↺Lower | ↺Raise | Right ⇧ | Right Ctrl |
SysRq | F11 | F12 | F13 | PgUp | F15 | End | F17 | F18 | F19 | F20 | 👍 (=) ❤ (+) 🎉 🚀 |
File browser | {} ([Macro]) | <> ([Macro]) | [] ([Macro]) | () ([Macro]) | ¡! ([Macro]) | ¿? ([Macro]) | "" ([Macro]) | '' ([Macro]) | ** ([Macro]) | `` ([Macro]) | + (]) = (}) × ÷ |
Sound 0% (🔈) |
Sound 33% (Ctrl-Super-1) | Sound 50% (Ctrl-Super-2) | Sound 75% (Ctrl-Super-3) | Sound 100% (Ctrl-Super-4) | F14 | Home | F16 | Macro2 play | PgDn | 😂 (\) 🤣 (|) 🤷 🤦 | num ⏎ |
Sound -1% (🔉) | Sound +1% (🔊) | ↺Lower | ↺Raise | ↺Higher | Right ⇧ | Right Ctrl |
SysRq | F11 | F12 | F13 | PgUp | F15 | End | F17 | F18 | F19 | F20 | = + |
File browser | {} ([Macro]) | <> ([Macro]) | [] ([Macro]) | () ([Macro]) | "" ([Macro]) | '' ([Macro]) | ** ([Macro]) | `` ([Macro]) | ] } | ||
🔈 | F14 | Home | F16 | PgDn | \ | | num ⏎ |
|||||
🔉 | 🔊 | ↺Lower | ↺Raise | ↺Higher | Right ⇧ | Right Ctrl |
⏏ | 🎔 | 🖄 | 🖩 | 🗘 | 🔍 | ⏹ | |||||
⏮ | { (Shift-AltGr-1) | < (Shift-AltGr-2) | [ (Shift-AltGr-3) | ( (Shift-AltGr-4) | « (Shift-AltGr-5) | » (Shift-AltGr-6) | ) (Shift-AltGr-7) | ] (Shift-AltGr-8) | > (Shift-AltGr-9) | } (Shift-AltGr-0) | ⏭ |
⏪ | Cut (Ctrl-b) | Copy (Ctrl-i) | Paste (Ctrl-.) | WWW ◀ |
WWW 🏠 |
WWW ▶ |
⏩ | ⏵ | |||
↺Lower | Cut (Ctrl-b) | ↺Higher |
⏏ | 🎔 | 🖄 | 🖩 | 🗘 | 🔍 | ⏹ | |||||
⏮ | { (Shift-[) | < (Shift-,) | [ | ( (Shift-9) | ) (Shift-0) | ] | > (Shift-.) | } (Shift-]) | ⏭ | ||
⏪ | Cut (Ctrl-x) | Copy (Ctrl-c) | Paste (Ctrl-v) | WWW ◀ |
WWW 🏠 |
WWW ▶ |
⏩ | ⏵ | |||
↺Lower | Cut (Ctrl-x) | ↺Higher |
Oryx | F21 | F22 | F23 | F24 | Macro stop rec | Macro1 rec | Macro2 rec | Reset | |||
NKRO | Int 1 | Int 2 | Int 3 | Int 4 | Int 5 | Int 6 | Int 7 | Int 8 | Int 9 | ⏻ | |
Indicator brightness | Lang 1 | Lang 2 | Lang 3 | Lang 4 | Lang 5 | Lang 6 | Lang 7 | Lang 8 | Lang 9 | 🔆 | |
Toggle lighting | Toggle layer colors | ↺Lower | ↺Raise | 🔅 |
Esc | Home | ▼ | Mouse ▲ |
▲ | End | ⇧ | ⎇ | Pause | ⌫ | ||
Caps lock |
Wheel down | Mouse ◀ |
Mouse ▼ |
Mouse ▶ |
Wheel up | ↺Crawl | Accel 0 | Accel 1 | Accel 2 | num ⏎ |
PgUp |
Scroll lock |
Wheel left | ◀ | Middle click |
▶ | Wheel right |
Show (x, y) (Super-num .) |
Ban mouse (Super-n) | Home | ▲ | End | PgDn |
Button 5 | Button 4 | Right click |
↺Warp | Left click |
To Base | Ctrl | ◀ | ▼ | ▶ | Numpad |
🡼 (Alt-Super-Shift-a) | 🡬 (Alt-Super-a) | 🡩 (Alt-Super-n) | 🡭 (Alt-Super-i) | 🡽 (Alt-Super-Shift-i) | |||||||
⇧ | 🡸 (Alt-Super-Shift-h) | 🡨 (Alt-Super-h) | 🞄 (Alt-Super-d) | 🡪 (Alt-Super-y) | 🡺 (Alt-Super-Shift-y) | ||||||
🡿 (Alt-Super-Shift-u) | 🡯 (Alt-Super-u) | 🡫 (Alt-Super-j) | 🡮 (Alt-Super-g) | 🡾 (Alt-Super-Shift-g) | |||||||
🡻 (Alt-Super-Shift-j) | ↺Warp | 🡹 (Alt-Super-Shift-n) | ⇧ |
1 pixel ▲ (Super-▲) |
|||||||||||
1 pixel ◀ (Super-◀) |
1 pixel ▼ (Super-▼) |
1 pixel ▶ (Super-▶) |
↺Crawl | ||||||||
Esc | Home | ▲ | End | num / | num 7 | num 8 | num 9 | num - | ⌫ | ||
Caps lock |
◀ | ▼ | ▶ | num * | num 4 | num 5 | num 6 | num + | ⌦ | ||
Scroll lock |
PgDn | Insert | PgUp | ⇥ | num 1 | num 2 | num 3 | num ⏎ |
num = | ||
Pause | ⎇ | ⇧ | Ctrl | To Base | 0 | num . | num , | Num lock |
TT Nav |
Inserts a pair of characters, then presses Left to put the cursor inside.
We can also press their constituent characters on the Higher layer.
Raise-f, Raise-b, Raise-n and Raise-p behave just like their Emacs counterparts
Ctrl-f, Ctrl-b, Ctrl-n and Ctrl-p, that is to say, they move
Forward (Right), Backward (Left), to the Next line (Down) and to the Previous line (Up).
Since this uses the arrow keys, this is automatically compatible with nearly 100% of applications!
(Note that Raise-n is moved one position down to avoid conflicting with 9.)
We also have End, Home, PgDn, PgUp in the corresponding locations on the Lower layer.
Perfectly control the mouse using only the keyboard thanks to the Nav layer!
You can even scroll the mouse wheel left or right! I didn't even know this was possible!
(I didn't know about Button 4 and Button 5 either...)
Note how you can easily move the mouse while holding Ctrl-Alt-Shift in any combination, as well as Left click xor Right click.
Use the Crawl sublayer (strategically located to the left of "Acceleration 0") to accurately move the mouse by single pixels.
The blue keys instantly warp the mouse to the center of each of 9 "quadrants", considering the screen as a 3x3 grid of rectangular regions.
If Shift is held down or the bold version of an arrow is pressed, then warp to the far side or corner of the corresponding quadrant instead of to its center.
Importantly, if we press multiple locations at once then the mouse warps to the barycenter of the designated points!
So if we press 2 locations at once, then the mouse warps to the midpoint between those points. This allows for very precise movement!
See hexstream-latin.txt.