kmonad / kmonad

An advanced keyboard manager
MIT License
4.07k stars 322 forks source link

Using tap-hold, no output with multiple modifiers and 1 key tapped #822

Closed IanEdington closed 4 months ago

IanEdington commented 8 months ago

I have 3 tap-hold keys in my setup, space and the two keys on either side. All the modifiers work with all the other keys, and a single tap-hold modifier works with any of the other tap-hold key. However, holding two tap-hold modifiers and tapping the 3rd tap-hold key doesn't do anything.

using evtest with the "My Kmonad Output" I get:

Hold Tap Expected Actual
@met_ret @met_spc met+spc met+spc :white_check_mark:
@met_spc @met_ret met+ret met+ret :white_check_mark:
@met_ret+@ctl_esc a met+ctl+a met+ctl+a :white_check_mark:
@met_ret+@ctl_esc @met_spc met+ctl+spc met+ctl :x:
(defcfg
  output (uinput-sink "My KMonad output")
  cmp-seq lalt
  cmp-seq-delay 5
  fallthrough true
  allow-cmd true
)

(defsrc lalt spc ralt)

(defalias
  ctl_esc (tap-hold-next-release 200 esc lctl)
  met_spc (tap-hold-next-release 200 spc rmet)
  met_ret (tap-hold-next-release 200 ret lmet)
)

(deflayer qwerty @met_ret @ctl_esc @met_spc)
bonsaiiV commented 4 months ago

Are you sure, that the issue is not with the maximum key-rollover of your keyboard? It is common, that certain keys can not be pressed together. You can test that online for example: https://www.mechanical-keyboard.org/key-rollover-test/ However this doesn't work if your the keys are captured by your browser. You can also try whether the keys work together while kmonad is not running to check whether the issue is with your keyboard or kmonad.

IanEdington commented 4 months ago

Without kmonad it works, with kmonad it doesn't. That doesn't sound like a key-rollover issue to me, but I know very little about the internals of keyboards.

Happy to provide additional info if you're interested in investigating or if it comes up with someone else.