Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

More modifiers #10

Open
jcf opened this issue Mar 11, 2024 · 6 comments
Open

More modifiers #10

jcf opened this issue Mar 11, 2024 · 6 comments
Labels
documentation Improvements or additions to documentation enhancement New feature or request
Milestone

Comments

@jcf
Copy link

jcf commented Mar 11, 2024

Relocated from sunaku/engrammer#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
Copy link
Author

jcf commented Mar 11, 2024

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 sunaku added the enhancement New feature or request label Mar 18, 2024
@sunaku sunaku added this to the v37 milestone Mar 18, 2024
@sunaku
Copy link
Owner

sunaku commented Mar 18, 2024

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:

  • &left_middy LG(LA(LC(LSFT))) O
  • &right_middy LG(LA(LC(LSFT))) D

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

@sunaku sunaku added the documentation Improvements or additions to documentation label Mar 18, 2024
@tlvenn
Copy link

tlvenn commented Apr 5, 2024

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
Copy link
Author

jcf commented Apr 8, 2024

@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
Copy link
Owner

sunaku commented Apr 8, 2024

@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. 🫰

@sunaku
Copy link
Owner

sunaku commented Oct 6, 2024

Hey @jcf, I've since added base layer combos for sticky Hyper in v37 and sticky Meh in v38:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Improvements or additions to documentation enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

3 participants