manna-harbour / qmk_firmware

See the "forkreadme" branch or the following link for a description of branches maintained in this fork.
https://github.com/manna-harbour/qmk_firmware/blob/forkreadme/readme.org
GNU General Public License v2.0
281 stars 64 forks source link

miryoku: Provide layers without Tap-Hold #24

Closed moben closed 2 years ago

moben commented 3 years ago

They are not enabled by default but can easily be toggled with a spare key by modifying LAYOUT_miryoku for a given keyboard. Personally, I like using them for some games where Tap-Hold gets in the way (e.g. for WASD movement). Being able to toggle them independently for each half allows e.g. WASD movement and holding space/esc/tab while still giving access to the number and symbol layers if needed.

I could of course maintain this locally but I think it might be generally useful.

manna-harbour commented 3 years ago

Thanks for your PR!

This feature is already in the process of being added. I've just added issue manna-harbour/miryoku#18 to document it.

I was only planning on a single full board tap-only version of the base layer though. Would you mind elaborating a little more on the use of single hand layers for this?

moben commented 3 years ago

I mainly use this for playing games and for many games only the left half is needed (think WASD + the surrounding keys on qwerty). With how miryoku is split into having all the printable non-alpha characters on the left half, it seemed natural to implement this per-half as the situations in which I might need number keys are often different from the ones where I need the mouse or nav layers.

In my specific example, for most games I want WASD style movement (technically one column to the right on kyria) and I use a physical mouse. But sometimes I need a number key. Additionally, in these situations, Backspace, Return and Delete are rarely or never used and don't need to be held down in a game or repeated, so they can easily stay Tap-Hold.

It probably won't work that well for first person shooters if you want to use the numbers to switch weapons as you can't take your hand off the mouse but I don't think that's solvable without a completely different input scheme or just extra keys.

Edit: I guess for my current use case I don't need it at all on the right half, but it was trivial to add. And while it's nice that the home row mods are still there, they are obviously a bit limited (can't shift the index finger key without the other half). But then I have some extra mods on unused left-half keys anyway as miryoku gives me so much leftover space :)

moben commented 3 years ago

@manna-harbour I'm going to rebase this on #32 for my personal usage.

Assuming you're willing to merge #32, would you prefer for me to keep the non tap-hold layers in this PR or should i add them there as well? As you mentioned wanting "full" non tab-hold layers I'll also add those as it's very easy to do on top of #32

moben commented 3 years ago

rebased. Here is an example of how easy this is to use now: https://github.com/moben/qmk_firmware/tree/2f6de2a64db775cf10d556009f5b778109ad8b87/keyboards/kyria/keymaps/moben

The only possible improvement that I could still think of here would be superset mapping as you mentioned in manna-harbour/miryoku#18, so it's ideally not even necessary to define LAYOUT_miryoku directly.

Edit: I dislike how repetitive the defines are, but I wasn't able to get the noweb substitutions to cooperate in the way that I wanted to generate everything from the possible combinations. Maybe someone more versed in babel could do it.

manna-harbour commented 2 years ago

A tap only layer has been added. See https://github.com/manna-harbour/miryoku/tree/master/docs/reference#additional-features.

Thanks again for the PR!