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

[Bug] one-shot shift never releases shift with certain custom shifts #65

Open
6 tasks
rosshadden opened this issue Apr 30, 2024 · 1 comment
Open
6 tasks

Comments

@rosshadden
Copy link

rosshadden commented Apr 30, 2024

Describe the bug

If I use a one-shot shift like OSM(MOD_LSFT) on a key with a custom shifted value, it does indeed type the custom shifted value as you would expect. However for some custom shifts it seems like the shift key becomes "stuck" after that point, and all keys get typed shifted until you "unstuck" shift. I do this by just long pressing and releasing the same shift key (making it bypass the one-shot functionality).

Most custom shifted keys work totally fine with one-shot shift. The three I have found so far to have this problem are \, =, and ;. I use a modified Engram layout, with these key:shift pairs: 1:\ 2:= ,:;. All other custom shifted pairs seem to work great (which is why it took me a while to even realize this was happening).

I do use achordion but this problem occurs regardless of which one-shot shift used.

Information

Do the keys involved use any of the following features?

  • Achordion (from this repo)
  • Auto Shift
  • Combos
  • Key Overrides
  • Mod-tap or Layer-tap keys
  • Other custom userspace code:
@getreuer
Copy link
Owner

Thanks for the report!

The three I have found so far to have this problem are , =, and ;. I use a modified Engram layout, with these key:shift pairs: 1:\ 2:= ,:;.

Your set up has e.g. a , (KC_COMM) key that becomes ; (KC_SCLN) when pressed with Shift, is that right? A pattern is that \, =, and ; are normally all unshifted keys. This should work. I'm noting this as an interesting possible clue to the underlying cause of the stuck shift bug. Assuming you otherwise follow the shifted layer on https://engram.dev, it appears all other customized keys shift to ~ + < > ^ & % * } @, which are normally shifted keys (does that hold up?).

I attempted to repro the bug with a OSM(MOD_LSFT) key and custom shift keys configured as:

const custom_shift_key_t custom_shift_keys[] = {
    {KC_COMM, KC_SCLN},
};
uint8_t NUM_CUSTOM_SHIFT_KEYS =
    sizeof(custom_shift_keys) / sizeof(custom_shift_key_t);

For better or worse, I can't get shift stuck and the ,; key is functioning as it should.

Let me know if I missed something.

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

2 participants