miryoku icon indicating copy to clipboard operation
miryoku copied to clipboard

Key Emulation Combos

Open manna-harbour opened this issue 3 years ago • 5 comments

Add options to emulate the tertiary thumb keys with a combos of primary and secondary, the inner index column keys with combos of index and middle, and the pinkie column keys with combos of middle and ring. This would be an alternative to stretching and would support boards that have eliminated some of those keys.

manna-harbour avatar Dec 14 '21 09:12 manna-harbour

  • Would support anything from hard to reach top row pinkie column keys to 3x3+2.
  • If using only 3 columns it might be better to use the inverted T nav option to reduce the need for combos for cursor movement.
  • Home row combos caveats:
    • Holding simultaneous mod combinations Alt+Ctrl, or Ctrl+Shift would not be possible as they would trigger a combo.
      • Can be held sequentially with a delay longer than combo term.
      • For ZMK, combo can trigger tap hold with hold of both mods.
      • for QMK, use tap-only.
    • Using Gui with Alt or Ctrl would require the pinkie key, one shot mods on the sub layers (and the inability to hold), or use of the other hand (and the inability to use those columns).

manna-harbour avatar Dec 14 '21 09:12 manna-harbour

  • [ ] ZMK (https://github.com/manna-harbour/miryoku_zmk#key-emulation-combos)
    • [x] Add hand written thumb combos to Miryoku ZMK supporting all layout options
    • [ ] Add keyboard.conf files with CONFIG ZMK_COMBO_MAX_COMB OS_PER_KEY for keyboards with thumb combos enabled by default, and note in docs for when enabling on others
    • [x] Add hand written top row combos to Miryoku ZMK supporting default layout options
    • [x] Add hand written bottom row combos to Miryoku ZMK supporting default layout options
    • [x] Add #error for unimplemented key emulation combos
    • [ ] Add docs https://github.com/manna-harbour/miryoku_zmk/pull/8
    • [ ] Generate all combos from Miryoku Babel for Miryoku ZMK for all layout options
    • [ ] Add built-in support for key emulation combos to ZMK
  • [ ] QMK (https://github.com/manna-harbour/miryoku_qmk/tree/miryoku/users/manna-harbour_miryoku#thumb-combos)
    • [x] Add hand written thumb combos to Miryoku QMK supporting all layout options
    • [ ] Add hand written top row combos to Miryoku QMK supporting default layout options
    • [ ] Add hand written bottom row combos to Miryoku QMK supporting default layout options
    • [ ] Add #error for unimplemented key emulation combos
    • [ ] Add docs
    • [ ] Generate all combos from Miryoku Babel for Miryoku QMK for all layout options
    • [ ] Add built-in support for key emulation combos to QMK
    • [ ] Restrict combos by layer
  • [ ] KMonad
    • [ ] Combos are not currently supported in KMonad, see https://github.com/kmonad/kmonad/issues/157
  • [ ] KMK
    • [ ] Generate extra data from Miryoku Babel and generate custom keys, see https://github.com/KMKfw/kmk_firmware/issues/644#issuecomment-1320468338
    • [ ] Investigate coord combos with coord as result

manna-harbour avatar Dec 14 '21 10:12 manna-harbour

Is there an option to enable this feature in ZMK already or is it still a wip? Or is the only option that is needed the CONFIG_ZMK_COMBO_MAX_COMBOS_PER_KEY one

distracteddev avatar Nov 20 '22 05:11 distracteddev

@distracteddev In general see https://github.com/manna-harbour/miryoku/issues/56#issuecomment-993376643 above for general status and a link to the docs.

There are a few other undocumented things to note:

It relies on support being added to the mapping file. Check the file for your keyboard and if there's nothing there support will be added by request.

Thumb combos should support all build options, but top and bottom row combos are only included for default options at the moment. QWERTY will be added soon via https://github.com/manna-harbour/miryoku_zmk/pull/8. Support for other build options will be added by request.

Some boards have combos enabled by default but they can be enabled with the appropriate #define in custom_config on other boards that have support in the mapping file. https://github.com/manna-harbour/miryoku_zmk/blob/master/miryoku/mapping/34/ferris.h has thumb combos defined and enabled. https://github.com/manna-harbour/miryoku_zmk/blob/master/miryoku/mapping/30/hummingbird.h has all combos defined, and bottom row and thumb combos enabled.

Boards with combos enabled by default should already have max combos set. Otherwise you need to set it in kconfig.

manna-harbour avatar Nov 20 '22 08:11 manna-harbour

@distracteddev https://github.com/manna-harbour/miryoku_zmk/pull/8 also includes some of the currently missing docs: https://github.com/manna-harbour/miryoku_zmk/blob/d40b3e6f30d5f4652aec2583483af93dd8b19175/readme.org#key-emulation-combos.

manna-harbour avatar Nov 20 '22 08:11 manna-harbour