So here’s a thumb layout designed to work well with one modifier key for window manager (ctrl), symmetrical alt & ctrl for emacs, and an easy-to-reach tab:
I think all the chording problems are really alleviated by the OneShot plugin - I highly recommend checking it out. I also using a tiling WM (i3wm) and emacs (although I do mostly use evil-mode).
yeah - you mentioned it in the emacs thread there. Does sound interesting - I’ll check it out in a month or two once I’ve got back to reasonable level of productivity with the new keyboard! For now I just want to remap & not try to learn 2 new things at once…
Managed to reflash firmware on my arch linux laptop & playing around now - alt/cmd key sharing doesn’t work well because the fn layer interferes with number keys. I’ll revise my other post & layout in a sec to reflect that! Got something workable now with very little messing around, which is awesome!
So there’s just one bug really which is the alt-shift thing. I think that really does count as a bug & I’ll post an issue on github (hey maybe even send you guys a patch if I can get my head round it )
mea culpa there probably is no alt-shift bug, just some craziness caused by my remapping of the standard keyboard modifiers.
I’m finding that ctrl-alt combos kind of suck. Especially linux’s default ctrl-alt-f1 to switch to virtual terminal 1. These currently require me to palm the fn key & hit ctrl with right thumb whilst chording alt & 1 with the left (I’m sticking with totally symmetrical modifier keys).
Any suggestions to make ctrl-alt less terrible? If ctrl were next to alt you could chord it with one thumb but found this kind of layout sucked for pretty much everything else! Let me guess @james.nvc oneshot is the answer - still not quite ready to take the plunge…
I haven’t done it yet, but I’ve seriously considered remapping one of the ctrl keys to BE ctrl+alt. If I remember the syntax correctly, you would put CTRL(Key_LeftAlt) in your keymap for that key.
There’s also OneShot modifiers, so you don’t have to chord those modifiers.
Moving the right hand down to paw at ctrl, alt & space all at once with thumb, index, middle fingers seems actually very comfortable… Gonna roll with that for now!
Planning on using one of the thumb keys as a macro to make a full stop (period for the americans), space and capitalise the next letter. So instead of typing “full stop, spacebar, hold down shift and press first letter of next sentence” I can type “macro, first letter of next sentence”.
Was planning to do something like this in autohotkey anyway before I discovered keyboardio, using the regular full stop key (and using a modifier to allow a usual full stop for when I need to use that), but I think it would work even better as a thumb key.
Macro triggering a OneShot
Interesting idea. @algernon, is this doable without a custom mini-plugin? Without looking at the code, I’m not sure how to do the “one-shot” shift correctly. This actually seems like a case for run-time registering and de-registering of hook functions in some capacity.
(With my re-design, I could get the shift held trivially, but the release when another key is pressed is harder.)
Should be doable with a macro that triggers OneShot at the end, yes.
I’ll have to take another look at the OneShot code, and see how it works.
You could even just have the macro simulate the press of
I haven’t delved into the code yet (waiting until I know when the keyboard is actually coming to me, only ordered it about a week ago) so it’s good to know solid ideas on how this can be done, cheers! May also incorporate this into other macros, like a paragraph one (full stop, enter, enter, OSM(Key_Shift) ) or similar ones for ! and ?
Now that my keyboardio is almost on its way, I’ve been looking at the plugins etc. especially regarding the idea I mentioned of a macro for full stop, spacebar, OSM(Key_Shift).
What I would really love is for this to work with a DualUse/SpaceCadet/QuKeys style of Plugin for Shift, so keypress results in the macro (including the one shot shift at the end) but chording it results in the functionality of Shift.
So far as I’ve seen, it explicitly doesn’t work for DualUse (“The key argument must be a plain old key, and can’t have any modifiers or anything else applied”) and is kind of implied not to work for SpaceCadet given it wants AlternativeKeyToSend. So that’s a bit of a bugger if true.
Is there any way this is likely to work with anything currently?
Qukeys will work, if you define full Qukey objects instead of DualUse keymap entries. With Qukeys, both the primary and alternate key can be any
Key, including Macros, OneShot, et cetera.
Awesome, thanks man! Love that I can have a OneShot as part of a Macro embedded in a Qukey!
I’ve been using a mirrored layout for the last month (change from the default bolded):
- left: ctrl, space, cmd, shift
- right: shift, alt, space, ctrl
Since I don’t really enjoy the big stretch to reach the most common tab/enter keys for my index finger, I use Qukeys on the bottom rows as well:
- left: enter, __, tab, __
- right: __, tab, __, enter
I’m not sure its the most efficient, but I enjoy using the spacebar with my left thumb, and being able to tab/enter with my thumbs.
There are some weird delays with Qukeys wherein the Qukey CTRL doesn’t take…so sometimes the non-ctrl’d is sent - but for the most part it works great!
I only type space with the left hand, so I’m in the same boat for that. Not moving tab to thumbs, but I definitely prefer it somewhere better than where it is by default. Good to hear Qukeys works well for that!
Are you using the most recent revision of the Qukeys master branch? I think there was a bug that would cause a premature release under certain conditions a while ago that has since been fixed. If your copy of Qukeys is up to date, I’d love it if you would submit an issue to report the bug, perhaps with a link to your sketch so I can reproduce it.