cajhin / capsicain

Powerful low-level keyboard remapping tool for Windows
334 stars 18 forks source link

COMBO deadkey with arrows #65

Closed wi1k1n closed 2 years ago

wi1k1n commented 2 years ago

Hi. First thanks a lot for such a good piece of software!!

I'd like to have a deadkey functionality for pasting arrows if arrow buttons are pressed after the deadkey. However, it doesn't capture the arrow press for some reason. Is it an intended behavior and I should use some symbol trigger instead or am I simply doing something wrong?

This line works: COMBO deadkey-X D [] > altChar(26) # →

This line doesn't work: COMBO deadkey-X RIGHT [] > altChar(26) # →

cajhin commented 2 years ago

Hi, I just tried out a "deadkey with RIGHT" combo and it works as usual. I'm guessing either an error in your ini or something unexpected with your keyboard.

For the keyboard, go to debug mode (ESC+D), press RIGHT and check that the key label you see is actually "RIGHT". (ah, in case you're using the numpad, that key is NP6, not RIGHT).

If that looks ok, post your whole ini if there is nothing private in there, so I can look into it.

wi1k1n commented 2 years ago

Hi, thank you for a quick reply!

I've created a second configuration for checking out this problem. This is how it looks like:

# Keymap for testing stuff
[config_2]

OPTION configName ConfigTest

### Simulate some functionality of [Fn] key with [APPS] (aka Context Menu)
REWIRE APPS MOD11 APPS

# Special characters (umlauts, currency and special)
COMBO SPACE [&.. .... ....] > deadkey(X)
COMBO deadkey-X RIGHT [] > altChar(26) # →
COMBO deadkey-X D     [] > altChar(26) # →

When pressing APPS+SPACE first and then RIGHT (arrow, not numpad key), no arrow is inserted in my text editor. When I do the same with R letter, then it works perfectly. Here is the output in the debug console (first tried with RIGHT then with R):

image

Here is the whole ini file just in case. I turned off the AHK script during testing (to exclude any interfere there, although it only captures F14 & 1 up:: and F14 & 2 up::)

capsicain.ini.txt

My hardware: laptop Acer Nitro 5 (2021) with the built-in keyboard.

I'm running Windows 11 Home version 21H2, capsicain v89. All other stuff from the ini file works without any trouble.

cajhin commented 2 years ago

It looks like when you press your "RIGHT" key, two scancodes are actually sent: E0LSHF RIGHT This is (if I remember correctly) how some keyboards generate cursor keys on the Numpad(?)

Your immediate problem is that the E0LSHF clears the deadkey-X, then RIGHT doesn't trigger the combo. Try an additional COMBO deadkey-X E0LSHF [] > deadkey(X) I hope that restores keeps the deadkey active, but I cannot try it out since my keyboard doesn't do that E0LSHF.

wi1k1n commented 2 years ago

Thank you so much! Yes, it seems that the arrow keys on my keyboard trigger both E0LSHF and {RIGHT,UP,LEFT,DOWN}. The fix you've suggested works perfectly!