From 7f59a40446a0b0d263d32637154860db17fb2d9b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Hertling?= Date: Fri, 13 Dec 2019 16:37:07 -0500 Subject: [PATCH] adds keyboardio post --- content/keyboard.io.md | 141 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 141 insertions(+) create mode 100644 content/keyboard.io.md diff --git a/content/keyboard.io.md b/content/keyboard.io.md new file mode 100644 index 0000000..5ab2988 --- /dev/null +++ b/content/keyboard.io.md @@ -0,0 +1,141 @@ +Title: My Keyboard.io +Date: 2019-07-19 +Author: Wxcafe +Category: Misc +Slug: keyboard.io + +My Keyboard.io +-------------- + +Over a year ago now I bought [a keyboard](https://shop.keyboard.io), and +I wanted to write about it then, but I figured I'd wait until I could type on it +correctly and actually tell if it was a good keyboard. + +Turns out, it took me about three weeks to learn how to type correctly, and it's +a really, really good keyboard... but I forgot about writing this 🤦 So here we +go. + +So. The keyboardio is a split, ergonomic, very expensive keyboard. It's shipped +with two "tent stands" that are basically tilted octopi that you can put the +keyboard halves on to give them a tilt, two "center bars", one flat and one +tilted, that allow you to attach the two keyboard halves together, a usb-a to +usb-c cable, and two rj45 cables, one very short and one longer, that are used +to connect both halves of the keyboard... and of course both halves of the +keyboard itself. + +Personally I use both tented stands and the tilted center bar now, and basically +use the keyboard like a normal single-body keyboard, except each half is tilted, +but you can use it in any way you want. Each half has a camera screw mount on +the bottom so you can even use it on tripods or camera arms I guess. + +The layout is pretty different from what "standard" keyboards present. There's +basically three groups of keys: the `fn` keys, that you use with your palms, the +'modifier' keys (`[ctrl]`,`[backspace]`, `[command/super]`, `[shift]`; and +`[shift]`, `[alt]`, `[space]`, `[ctrl]`), that you use with your thumbs, and +finally the "character" keys that you use with the last four fingers (these also +include `[AltGR]`, `[Enter]`, `[PgUp]` and `[PgDn]`, a `[num]` key that switches +to numpad mode, a `[Prog]` key that starts playing prog rock (uh, allows you to +flash the firmware, more on that later), `[esc]`, `[tab]`, a `[led]` key that +switches the led lighting mode, and finally the `[any]` key, which... outputs +a random alphanumerical character). As I said previously though, it's not too +hard to get used to, and it's actively more efficient once you're used to it +(also it reduced my wrist pains from "hurts a bit after a day of work" to +"nonexistent even after 14 hours straight of typing"). The keys are shaped +differently too, as in they follow the shape of fingers resting naturally on the +keyboard. + +So, yeah, this is a nice, comfortable, and +weirdly-but-actually-pretty-well-laid-out keyboard. But there's a few more +things that make it worth the (admittedly very high) price: + +- First, the body is entirely made of wood, the keys are high-quality, and the + whole thing is hand-assembled. It's generally very well put together, and it + looks really good and will last for a while. +- Second, and most important: the firmware is open-source and entirely + rewritable. The keyboard is basically an Arduino, and you can do anything you + want with it. + +Let's talk about the build quality. Actually, let me show you a few pictures of +the build, outside and (more interestingly) inside! + +| ![The rainbow colors are good...](https://pub.wxcafe.net/img/keyboardio_dual_face_dark.jpg) | +| :--: | +| *The rainbow colors are good...* | + +| ![Look at that small rj45 cable! It's so cute!](https://pub.wxcafe.net/img/keyboardio_dual_back.jpg) | +| :--: | +| *Look at that small rj45 cable! It's so cute!* | + +| ![Without the wooden enclosure...](https://pub.wxcafe.net/img/keyboardio_dual_open_front.jpg) | +| :--: | +| *Without the wooden enclosure...* | + +| ![The back of the PCBs have cute little messages! Thanks!](https://pub.wxcafe.net/img/keyboardio_dual_pcb_back.jpg) | +| :--: | +| *The back of the PCBs have cute little messages! Thanks!* | + +| ![The "octopi" that allow one to adjust the keyboard tilt](https://pub.wxcafe.net/img/keyboardio_dual_octopi.jpg) | +| :--: | +| *The "octopi" that allow one to adjust the keyboard tilt* | + +| ![The wooden enclosures](https://pub.wxcafe.net/img/keyboardio_dual_wood.jpg) | +| :--: | +| *The wooden enclosures* | + +| ![Finally, the right half just opened up](https://pub.wxcafe.net/img/keyboardio_right_open_dual.jpg) | +| :--: | +| *Finally, the right half just opened up* | + + + +Now, I said the firmware was open-source. And it is, it's named +[Kaleidoscope](https://github.com/keyboardio/Kaleidoscope). The repo you +probably want is actually [this +one](https://github.com/keyboardio/Model01-Firmware), though. It's really easy +to configure through the `Model01-Firmware.ino` file. This allows you to remap +all the "useless" keys in the default layout, define new functions for these +keys, create "layers" (basically alternate layout that you switch to/from +through a shortcut), importing modules (libraries basically), change the LED +patterns, use the expansion pins if you want... You can do anything, it's just +an arduino with a lot of inputs basically!! It's great. My configuration is +available [here](https://git.wxcafe.net/snippets/21) and is generally pretty +simple to read. The only thing that might be surprising is the third keymap: +`[2] = KEYMAP_STACKED ()`. This is a keymap for Steno, as provided by +[GeminiPR](https://github.com/keyboardio/Kaleidoscope/blob/master/src/Kaleidoscope-Steno.h), +an implementation of Steno protocols for Kaleidoscope, which is imported by +`KALEIDOSCOPE_INIT_PLUGINS(GeminiPR, [...]);` + +Steno... Should I talk about steno? Alright, let me talk about steno quickly: +Steno is an input method that allows one to type much, much faster than normal +by pressing multiple keys at the same time (like one would on a piano, for +example). The keys are then interpreted in the fixed order of the system to +reconstruct words, or parts of words. It's pretty involved to learn, but it's +amazing: the best touch typists can reach about 70 words per minute, while +regular stenographers can write at 225 words per minute. The system is entirely +customizable, so you can program on a steno keyboard (in fact the person who +introduced me to the concept, [@Stenoknight](https://twitter.com/stenoknight), +writes python on their steno system). Historically, Steno was used for note +taking in meetings and courtrooms, and the key presses made punches in a ribbon, +which was then read back to make a readable document. Nowadays, since we have +computers, we can have a program that does this translation automatically and in +real time: the free and open-source software that does that is called +[Plover](https://www.openstenoproject.org/plover/). When it comes to the +KeyboardIO, it can be programmed through GeminiPR to switch to a serial +communication mode, that works with plover. I'm still (very early...) in the +process of learning steno, the position of the keys, the combinations and the +vocabulary, but I'm very excited. It might not be very useful in everyday life +(even though typing at even 150wpm would be so cool...) but it's fun and +interesting, so. There. + +But yeah, the firmware allows you to switch to serial and then back to +presenting a regular HID keyboard, seamlessly. It allows you to execute code on +the keyboard, in fact I'm pretty sure you could reasonably implement a u2f +device in the keyboard (tho you're lacking a real secure element, I guess...) +And it's editable by someone like me, who doesn't know shit about C or +programming or anything like that. It's great. + +So... I'm not saying you should buy this keyboard, obviously. It's really great, +and it suits me really well, but it's still very expensive, and it does take +a little time getting used to. Was this post just an excuse to clean my +keyboard? ... maybe... But I also wanted finally make this, since it's a tool +I use a lot and I had been meaning to write about it for a while...