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

Different behavior on modifiers fall-through vs. explicitly calling out key #798

Open
dalewking opened this issue Jan 18, 2024 · 1 comment

Comments

@dalewking
Copy link

I was noticing peculiar behavior on modifier keys where i specifically specify the modifier vs. just using _ fall through. So here is my default layer:

(defalias
    hyper (around lctl (around lalt (around lmet lsft)))

    ctl_a (tap-hold-next-release 300 a lctl)
    alt_s (tap-hold-next-release 300 s lalt)
    met_d (tap-hold-next-release 300 d lmet)
    sft_f (tap-hold-next-release 300 f lsft)
    hyp_g (tap-hold-next-release 300 g @hyper)

    hyp_h (tap-hold-next-release 300 h @hyper)
    sft_j (tap-hold-next-release 300 j rsft)
    met_k (tap-hold-next-release 300 k rmet)
    alt_l (tap-hold-next-release 300 l lalt)
    ctl_; (tap-hold-next-release 300 ; rctl)

    q_1 (tap-hold 300 q 1)
    w_2 (tap-hold 300 w 2)
    e_3 (tap-hold 300 e 3)
    r_4 (tap-hold 300 r 4)
    t_5 (tap-hold 300 t 5)
    y_6 (tap-hold 300 y 6)
    u_7 (tap-hold 300 u 7)
    i_8 (tap-hold 300 i 8)
    o_9 (tap-hold 300 o 9)
    p_0 (tap-hold 300 p 0)

    z_bs (tap-hold 300 z \\)
    x_[ (tap-hold 300 x [)
    c_{ (tap-hold 300 c {)
    v_lp (tap-hold 300 v \()
    b_- (tap-hold 300 b -)
    n_= (tap-hold 300 n =)
    m_rp (tap-hold 300 m \))
    ,_} (tap-hold 300 , })
    ._] (tap-hold 300 . ])
    /_` (tap-hold 300 / `)

    nav (tap-macro-release (tap-hold-next-release 300 spc (layer-toggle nav)) (tap-macro (layer-rem num) (layer-rem sym)))
)

(deflayer qwerty
;; ┏━━━━━━┳━━━━━━┳━━━━━━┳━━━━━━┳━━━━━━┳━━━━━━┓━━━━━━┳━━━━━━┳━━━━━━┳━━━━━━┳━━━━━━┳━━━━━━┳━━━━━━┳━━━━━━━┓
;; ┃   `  ┃   1  ┃   2  ┃   3  ┃   4  ┃   5  ┃   6  ┃   7  ┃   8  ┃   9  ┃   0  ┃   -  ┃   =  ┃ bspc  ┃
       _      _      _      _      _      _      _      _      _      _      _      _      _    bspc
;; ┣━━━━━━╋━━━━━━╋━━━━━━╋━━━━━━╋━━━━━━╋━━━━━━╋━━━━━━╋━━━━━━╋━━━━━━╋━━━━━━╋━━━━━━╋━━━━━━╋━━━━━━┫━━━━━━━┫
;; ┃ tab  ┃   q  ┃   w  ┃   e  ┃   r  ┃   t  ┃   y  ┃   u  ┃   i  ┃   o  ┃   p  ┃   [  ┃   ]  ┃   \\  ┃
     tab    @q_1   @w_2   @e_3   @r_4   @t_5   @y_6   @u_7   @i_8   @o_9   @p_0   bspc    XX      XX
;; ┣━━━━━━╋━━━━━━╋━━━━━━╋━━━━━━╋━━━━━━╋━━━━━━╋━━━━━━╋━━━━━━╋━━━━━━╋━━━━━━╋━━━━━━╋━━━━━━╋━━━━━━┫━━━━━━━┛
;; ┃ caps ┃   a  ┃   s  ┃   d  ┃   f  ┃   g  ┃   h  ┃   j  ┃   k  ┃   l  ┃   ;  ┃   '  ┃  ret ┃
     lctl   @ctl_a @alt_s @met_d @sft_f @hyp_g @hyp_h @sft_j @met_k @alt_l @ctl_;   '     ret
;; ┣━━━━━━╋━━━━━━╋━━━━━━╋━━━━━━╋━━━━━━╋━━━━━━╋━━━━━━╋━━━━━━╋━━━━━━╋━━━━━━╋━━━━━━╋━━━━━━┫━━━━━━┛
;; ┃ lsft ┃   z  ┃   x  ┃   c  ┃   v  ┃   b  ┃   n  ┃   m  ┃   ,  ┃   .  ┃   /  ┃ rsft ┃
     lsft   @z_bs  @x_[   @c_{   @v_lp  @b_-   @n_=   @m_rp  @,_}   @._]   @/_`   rsft
;; ┣━━━━━━╋━━━━━━╋━━━━━━╋━━━━━━┻━━━━━━┻━━━━━━┻━━━━━━┻━━━━━━┻━━━━━━╋━━━━━━╋━━━━━━╋━━━━━━┫
;; ┃ lctl ┃ lmet ┃ lalt ┃                  spc                    ┃ ralt ┃ rmet ┃ rctl ┃
     lmet   lmet   lalt                    @nav                     ralt   rmet   rmet
;; ┗━━━━━━┻━━━━━━┻━━━━━━┻━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┻━━━━━━┻━━━━━━┻━━━━━━┛
)

Notice how I explicitly call out things like lsft. What i saw was that the modifier was ignored unless I hold it down for some time (like it had a tap-hold on it) and i would get a lot of missed shifting.

If i change those to _ it improves the situation greatly (though not sure it entirely fixes it. I still get some unshifted behavior, but improved by like 90%)

@dalewking
Copy link
Author

Playing with debug log looks like the cases after switching to _ are when I release the shift before the letter. Sp this sequence:

  • press shift
  • press letter
  • release shift
  • release letter

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant