sunaku / glove80-keymaps

"Glorious Engrammer" keymap for Glove80 keyboard
https://sunaku.github.io/moergo-glove80-keyboard.html#layers
313 stars 101 forks source link

More modifiers #10

Open jcf opened 6 months ago

jcf commented 6 months ago

Relocated from https://github.com/sunaku/engrammer/issues/5:

Hi @sunaku,

I've been working on my Engrammer layout for my Moergo and thought collaboration might be interesting.

One feature I've become dependent on is the use of Super and Hyper modifiers that I locate above my home row.

I see you have a one and two version of the ring finger keys, but there's nothing on the stronger index and middle fingers, where I've put hyper and super, respectively.

I've started work on extending the template you use to generate the DTSI file to support additional modifiers above the home row, but this left me wondering the following:

Will some people want modifiers accessible to their pinkies? I most certainly do not. Emacs Pinky is a thing and motivated me to move towards home row mods, etc.

Will some people want modifiers under their home row? I've only used the spots above my middle and index fingers on each hand, so maybe YAGNI should apply.

As this isn't something one can change from the JSON keymap alone, getting it right the first time and sharing might be best.

I'd love to hear your thoughts!

jcf commented 6 months ago

Hi @sunaku,

I've been working on my Engrammer layout for my Moergo and thought collaboration might be interesting.

One feature I've become dependent on is the use of Super and Hyper modifiers that I locate above my home row.

I see you have a one and two version of the ring finger keys, but there's nothing on the stronger index and middle fingers, where I've put hyper and super, respectively.

I've started work on extending the template you use to generate the DTSI file to support additional modifiers above the home row, but this left me wondering the following:

Will some people want modifiers accessible to their pinkies? I most certainly do not. Emacs Pinky is a thing and motivated me to move towards home row mods, etc.

Will some people want modifiers under their home row? I've only used the spots above my middle and index fingers on each hand, so maybe YAGNI should apply.

As this isn't something one can change from the JSON keymap alone, getting it right the first time and sharing might be best.

I'd love to hear your thoughts!

I see, that's an interesting idea: 💡 you'd need a dedicated Hyper key since you don't have any modifier on the pinky finger (and thus it's hard to hold all mods simultaneously since two of them are assigned to the same finger), correct? 🤔

The home row mods arrangement in my keymap comes directly from the legendary Miryoku system, where each home row finger has a modifier assigned to it and thus you can chord all of them together to produce Hyper. If that's infeasible or undesirable, then certainly a dedicated Hyper key (whether mod-tap or unadorned) might be helpful. The main thing you'd have to watch out for is bilateral combinations: when you upgrade a normal key into a dual-function mod-tap key, you need to provision another layer for that key for bilateral combinations enforcement.

As for your questions:

Yes, but not more than one modifier per home row finger, per the Miryoku explanation above. That's certainly possible: they can move the home row mods anywhere on the keyboard so long as the bilateral combination layers are also updated accordingly. Alternatively, some people have used ZMK combos to activate sticky modifiers while avoiding the complexity of mod-tap keys. By the way, this issue seems more related to my Glove80 keymap than the Engrammer layout itself, so we should move it to this repo instead: https://github.com/sunaku/glove80-keymaps


The home row mods arrangement in my keymap comes directly from the legendary Miryoku system, where each home row finger has a modifier assigned to it and thus you can chord all of them together to produce Hyper. If that's infeasible or undesirable, then certainly a dedicated Hyper key (whether mod-tap or unadorned) might be helpful.

I have tried this but find my hands complain when holding down a subset of my four fingers — maybe because of historic overuse of my pinkies.

By the way, this issue seems more related to my Glove80 keymap than the Engrammer layout itself, so we should move it to this repo instead: https://github.com/sunaku/glove80-keymaps

Apologies! Happy to follow up there.

sunaku commented 6 months ago

You can achieve this at present, but without the added benefit of bilateral combinations enforcement (that will come later in v37 because it requires significant re-architecting of the keymap code generation), by assigning a Custom expression that invokes the underlying home row mods behavior.

For example, suppose that you wanted to add "hyper" to the middle finger keys (O and D in the Engram layout) as follows: image

To achieve this, you would assign these custom expressions:

Here is an example keymap demonstrating this implementation: https://my.glove80.com/#/layout/user/d88612a6-e6d7-4d41-9226-a40495291bdc

tlvenn commented 5 months ago

Came to ask for the same thing, i my case I actually map hyper to the lower row of the index finger. Thanks for the example @sunaku.

jcf commented 5 months ago

@sunaku what about all the other layers that have special support for these dual-function keys? Are they not necessary to get things working?

sunaku commented 5 months ago

@jcf - Yes, if you want to enforce bilateral combinations for the Hyper keys you've added, then you'll need more layers to implement that. I'm planning to generate the bilateral combinations layers programatically into the keymap JSON file in a future release. 🪄 At that time, adding Hyper keys, removing home row mods, and even relocating them will be much easier. 🫰