Open adam-kulagowski opened 1 year ago
does it work on the beta version?
It's better but to some extent:
I've ended w/ the following configuration:
{
"3,40,-1+3,8,-1": {
"target_uinput": "keyboard",
"output_symbol": "d",
"mapping_type": "key_macro"
},
"3,40,-1+3,8,1": {
"target_uinput": "keyboard",
"output_symbol": "u",
"mapping_type": "key_macro"
}
}
But now I have different behavior. As soon as I remove my finger from strip, I'm getting letter d
constantly.
I've theory that this is caused by HW reporting ABS_WHEEL Value "0" always when I'm raising my finger from the strip. The following sudo evtest
shows events when I've touche strip in 3 places:
Event: time 1670422836.029082, type 3 (EV_ABS), code 40 (ABS_MISC), value 15
Event: time 1670422836.029082, type 3 (EV_ABS), code 8 (ABS_WHEEL), value 5
Event: time 1670422836.029082, -------------- SYN_REPORT ------------
Event: time 1670422836.211082, type 3 (EV_ABS), code 40 (ABS_MISC), value 0
Event: time 1670422836.211082, type 3 (EV_ABS), code 8 (ABS_WHEEL), value 0
Event: time 1670422836.211082, -------------- SYN_REPORT ------------
Event: time 1670422841.351118, type 3 (EV_ABS), code 40 (ABS_MISC), value 15
Event: time 1670422841.351118, type 3 (EV_ABS), code 8 (ABS_WHEEL), value 2
Event: time 1670422841.351118, -------------- SYN_REPORT ------------
Event: time 1670422841.501116, type 3 (EV_ABS), code 40 (ABS_MISC), value 0
Event: time 1670422841.501116, type 3 (EV_ABS), code 8 (ABS_WHEEL), value 0
Event: time 1670422841.501116, -------------- SYN_REPORT ------------
Event: time 1670422843.413132, type 3 (EV_ABS), code 40 (ABS_MISC), value 15
Event: time 1670422843.413132, type 3 (EV_ABS), code 8 (ABS_WHEEL), value 4
Event: time 1670422843.413132, -------------- SYN_REPORT ------------
Event: time 1670422843.599133, type 3 (EV_ABS), code 40 (ABS_MISC), value 0
Event: time 1670422843.599133, type 3 (EV_ABS), code 8 (ABS_WHEEL), value 0
Event: time 1670422843.599133, -------------- SYN_REPORT ------------
So there 4 events for each touch: ABS_MISC 15 ABS_WHEEL 5 <- this shows the position. If I move my finger without rising it, there will be more events like this with values in range 1-7 ABS_MISC 0 ABS_WHEEL 0
Is there any way to filter '0' value from acceptable ones by input-remmaper ? Or is there any other way to get it working?
can you post the Supported events
section from $evtest
?
It should look something like this:
Here they are:
Input driver version is 1.0.1
Input device ID: bus 0x3 vendor 0x256c product 0x6d version 0x111
Input device name: "HUION Huion Tablet_HS611 Touch Strip"
Supported events:
Event type 0 (EV_SYN)
Event type 1 (EV_KEY)
Event code 256 (BTN_0)
Event type 3 (EV_ABS)
Event code 0 (ABS_X)
Value 0
Min 0
Max 1
Event code 1 (ABS_Y)
Value 0
Min 0
Max 1
Event code 8 (ABS_WHEEL)
Value 0
Min 0
Max 7
Resolution 3
Event code 40 (ABS_MISC)
Value 0
Min 0
Max 255
Properties:
Testing ... (interrupt to exit)
Event: time 1670439881.847975, type 3 (EV_ABS), code 40 (ABS_MISC), value 15
Event: time 1670439881.847975, -------------- SYN_REPORT ------------
Event: time 1670439882.542013, type 3 (EV_ABS), code 8 (ABS_WHEEL), value 1
Event: time 1670439882.542013, -------------- SYN_REPORT ------------
Event: time 1670439882.734281, type 3 (EV_ABS), code 8 (ABS_WHEEL), value 2
[...]
That is what I suspected. InputRemapper currently assumes that a ABS_XX axis is always symmetrical. Your device sends
Event: time 1670422841.501116, type 3 (EV_ABS), code 40 (ABS_MISC), value 0
Event: time 1670422841.501116, type 3 (EV_ABS), code 8 (ABS_WHEEL), value 0
Event: time 1670422841.501116, -------------- SYN_REPORT ------------
when you release the strip. This will tell InputRemapper that the ABS_WHEEL axis is all the way to the left. That triggers the mapping to "d".
You can workaround this issue: In the GUI, where you record the input there is a Advanced
button that lets you edit the input combination:
ABS_MISC
input. It does not do anything. It has a range of 0-255 but only reports 0 or 15, so it will always be triggered. (ABS_MISC
would need to report 255/2 in order to be centered and release the mapping)ABS_WHEEL
input. You can use values between -100% and +100%. Although in your case negative values will endlessly trigger. You can have multiple mappings with different Trigger thresholds.
Because the range of ABS_WHEEL is 0-7 that gives you the possibility to create 4 different mappings at +1%-25% (Triggers at a value >= 4), +26%-50% (value >= 5), +51%-75% (value >= 6) and +76%-99% (value=7)To properly solve this we need to introduce a new InputConfig parameter:
A bias
(default bias=0) which shifts the axis mid-point.
bias
=-1 would would shift the "mid-point" all the way to the left.
This would also be useful to compensate for stick-drift on controllers.
Hi,
I'm unable to get working horizontal strip in HUION tablet HS611 (mostly used for zooming in-out).
It seems that strip reports absolute position of a finger (instead of direction in which finger is moving) and that position is being captured on
evtest
. However input-remapper always showsABS Wheel UP
event.Am I missing something?
I'm attaching logs of moving finger from left to right and back using evtest and input-remmapper. If more data is needed please let me know.
Share some logs please:
input-remapper-control --version
input-remapper 1.5.0 be33bbd8376792c629a6279a60c9eeefa6bcf071 https://github.com/sezanzeb/input-remapper
python-evdev 1.6.0
sudo evtest
. If not, input-remapper won't be able to map that button.From left to right:
From right to left:
input-remapper-gtk -d
, reproduce the problem and then share the logs.