Smaller keyboard part 2, chords and mice
Previous topic - https://tildes.net/~comp/1jsx/my_even_smaller_keyboard_upgrade I'm making this a new topic because this keyboard once again got me to think about a couple of interesting things in...
Previous topic - https://tildes.net/~comp/1jsx/my_even_smaller_keyboard_upgrade
I'm making this a new topic because this keyboard once again got me to think about a couple of interesting things in regards to both having a smaller keyboard and how to actually make that work. Plus while niche as hell I'd like to contribute some sort of topic to tildes every now and then. For this one i'll be rambling about some of the reasons I've stuck with these things, and the sorts of design concepts it's forced me to think about and problems I ran into (like where the hell the shift key is).
1. Power users and the Nav cluster -
The nav cluster is the Home/End/PgUp/PgDwn/Delete/Insert section and maybe the arrow keys below it on a standard fullsize keyboard. These keys are SUPER useful for text and other sorts of navigation, to the point that it seems most "power user" systems(IDE's or even things like vim, or vimum for browsers) just remap the functionality to somewhere that can be easily reached.
In fact moving the nav cluster and numpad to be somewhere easier to access, so i wasn't constantly moving my hand back and forth, was one of the main reasons I started looking into custom keymaps and eventually smaller keyboards. Being able to trivially hit Home/End without lifting my hands is just so much nicer.
I mention all this to show you the kind of thinking that originally went into me going down this rabbit hole.
In essence:
I wanted to type/navigate faster, oh you can use these keys to be faster, but wait, i'm only a little bit faster and it's MUCH more annoying because I constantly have to move my right hand back and forth, how do I stop that?
Thus i'm always somewhat surprised at how vehemently people can get about remapping keys. Having Up/Down/Left/Right on I/K/J/L with Home/End/PgUp/PgDwn on U/O/Y/H is super intuitive(right handed WASD, with home/end/pgup/pgdwn in line with their corresponding movement) and makes flying around the screen so much easier, and can also open up keybindings that were otherwise used with just porting all this functionality to keys you can easily hit.
2. Chords, and the first major problem -
I'm sure there's a more technical definition but for the purposes of this topic chords are anytime you're hitting one or more keys at once. Shift + a is a chord for A. Ctrl+Shift+Esc is a chord for opening the task manager on windows.
One of the things you don't instantly think about when you get into smaller boards is what chords are popular, and how adding layers to your workflow will affect them. You really want your modifier keys to be accessible at all times, and in a way that makes sense. I don't have a problem that since my Esc key is not on the base layer, the Ctrl+Shift+Esc becomes Ctrl+Shift+Space+Tab for me. To break that down, Ctrl+Shift are on all layers, Space, when held, is the modifier to go to one of my other layers, and on that layer tab becomes esc.
In short, I've added one extra key to the chord, and it doesn't bug me.
What DID bug me, was that with this smaller keyboard, I no longer had room on the left side to put all of those modifier keys. You'll notice that the chord can be easily hit with your left hand alone, and with my previous map, I had shift on the right side. So now I need two hands to hit this chord instead of one. Oh well, right? It's just one chord and I need to use both hands...., whatever?
3. Oh yeah, the mouse......oh shit -
While I do think that more software should be written to allow mostly keyboard interaction, the mouse still serves a useful purpose in my ideal world. Being right handed, I use my right hand for the mouse. Sure I have some mouse functionality bound on one of my layers, but that's not going to replace the speed and precision of the mouse.
And that brings me to Win+Shift+S on windows for taking screenshots. Or more precisely, for selecting an area to take this screenshot....using the mouse.
First off, if you didn't know about this chord and you're on windows, please use it, it's fantastic for those quick "no i mean this" moments where you're trying to send someone a picture of a problem.
Second, this chord SUCKED on my new keyboard layout. On any of my previous keyboards including a normal one, I could hit this chord with just my left hand alone, while I moved my right hand to the mouse to quickly select the area I wanted and then edit it (often drawing red lines around the buttons I needed someone to click on...again....as mentioned in the documentation......).
My new layout had shift on my right hand, and oh dear god did I quickly realize how many other little workflows suck when you need to use both hands to hit the chord and THEN lift up and move it over to the mouse. Most importantly, multiple line/file selection, now required me to move my right hand to the mouse, and my left hand to the right keyboard, so I could hold shift and select things.
Or in overly dramatic terms, lo i had flown too close to the sun and was falling!
4. Wandering in the dark -
For those that for some reason don't have the 5x3 Chiri CE physical layout memorized, here it is (bottom one).
First try:
Move shift to the top button of the left thumb cluster. This was currently tab, but clearly I needed shift on my left hand more. Tab cold go on the right middle, where shift had been, and shift can go where tab was. Problem solved.
No good. That key is often hit with my index finger instead of my thumb, making something like shift+t/g/b super annoying. Hitting that key with your thumb actually requires a shifting of your hands position, and thus feels unnatural.
Worse, the key below it is my space/layer button, so something like shift+ctrl+left, to select previous words(left in this case being space + j), was super uncomfortable to hit. Just moving my thumb up to hit both keys at once did not feel good as I couldn't properly apply pressure and it just felt weird, but I wouldn't be shocked if some people out there are comfortable with that.
Second try:
Ok, we'll just move one of the other 3 thumb keys on the left to the right and put shift there, probably the win key.
No good. Ctrl and Win (or gui/super/meta/whatever) are just as important as shift. That small cluster being close to each other on normal keyboards, so they're left hand control only, means that almost ALL programs assume as much and have built their default hotkeys around it.
Windows window movement and terminal navigation being two of the bigger ones that affected me. Further this still wouldn't solve my win+shift+S screenshot issue, as now i'm just moving the windows key over there. There's no way in hell i'm putting ctrl on the right side because that's also constantly used in assuming its on the left side for various hotkeys, shortcuts, and other behaviors.
Third try:
It was at this point I was entertaining finally looking into homerow modifiers and setting up tap/double tap modifiers instead of hold. I'm still skeptical of how useful any of that is (but being open minded because of course I was skeptical of all of this and now I preach it), and realllly didn't want to go down that road for all sorts of little workflow reasons I was worried it'd collide with.
5. The solution. Pinkies and two shifts -
This stumped for for about two days after I'd decided I just couldn't live with right shift (there were plenty of other awkward workflow things due to having the number layer key be the leftmost thumb on the right pad). I'd really been trying to practice getting used to hitting both thumb keys with my thumb, as I assumed that might be the solution, and unlike basically every other adjustment I've ever had to make for a keyboard, this just felt rough.
So I took a break and just thought about my previous and normal keyboards. Well, again, in those cases, all these chords assume you're using your thumb for one modifier, and your pinky for the other. Sooooo why not just do that?
Thus the solution was born:
MT(MOD_LSFT, KC_X)
MT(MOD_RSFT, KC_SLSH)
For the few of you who don't have your Via/QMK mappings memorized, this just says that if I tap the key in question, type z (or / for the second one), and if I hold the key in question, treat it as if I'm holding the shift key.
So my shift keys are now used by my pinky, just like normally. I have them on Z and /, so I can easily hold either for whatever chord. If I need something like ctrl+shift+z I can just use the right shift, and ditto for ctrl+shift+/.
Even better, this was already my natural inclination. It only took a bit for me to find out just how much faster and easier this was making things, as I already was used to the idea of moving my left pinky downwards to hit shift. In fact, it was even easier than normal. Every now and then I'll get zi instead of I because I didn't hold the key long enough for it to trigger the "shift" function, and I could get really messy and start screwing with how long the keyboard takes to recognize the difference between a press and a tap, but I'm super happy with it.
6. Conclusion -
My wife is right to judge me and I don't care from my superior position in typing valhalla.