Character inversions when typing into FAYT-window in combination with ZMK keyboard


Character inversions when typing into FAYT-window

Dear Community,

I am struggling with a very weird issue, where characters that I type appear in inverted order in very specific scenarios. So for example I type the "fin" and the recorded order is "ifn" which obviously causes trouble.

Let me first explain the seemingly crazy boundary conditions. This may not be the only case where this happens, but this is the one case that I can reproducibly get to create this isse
Boundary conditions
Software
- The character only appear within the file manager software "directory Opus 13"
○ Typing the same sequence e.g. in MS Word or Notepad++ does not lead to any issues
- Only when using the FYAT feature (find as you type)
- Only when the FYAT window is not yet present, i.e. only when typing for the first time
○ this, however is the most common use case for FAYT (at least for me, and I use this 100s of times daily)

Keyboard (ZMK keyboard)
- The character inversion only happens in conjunction with ZMK-type keyboards (Moergo Glove 80)
- It only happens when the sequence of keystrokes contains
○ at least one modifier key (i.e. layer tap "&LT" or mod tap "&MT")
○ the keys in the sequence have to be on different halves of the keyboard

My ZMK firmware can be found here: MoErgo Glove80 Layout Editor

Connection
- Connection does not seem to play a role. The issue can be reproducibly generated using both
○ A Windows 10 Notebook connected via Bluetooth
○ A Windows 11 Tower PC connected via USB to the left half. Note that the right and left half always communicate via Bluetooth with each other.

Column 1 Column 2 Column 3 Column 4 E
Typed sequence of keystrokes keystroke output in FAYT &mod tap keys &LT keys normal &kp keys
fin ifn f i, ön
kwe wek k w, e
jwe wje j w, e
lwe lwe l w, e

To demonstrate this more clearly, I also simply hit the sequence multiple times. Please note that the inversion only occurs the first time (i.e. when the FAYT window is "opened", but the succeeding sequences are fine):

I have tried to reproduce this behavior in many other types of software, but it seems to be limited to Directory Opus.

Do you have any ideas why that is. Is Dopus handling keyboard inputs different from "normal" applications and gets them directly and not via the operating system somehow?

This issue is completely killing the usability of Dopus for me, as it effectively means I cannot type properly in Dopus and therefore I cannot navigate efficiently.

Thank you very much - any help is greatly appreciated! Yours,

Michael

Software
Windows 11 or Windows 10
Directory Opus v. 13.4.6 (Beta) x64

Not sure I understand how the keyboard works. You need to hold a Layer / modifier key to type normal letters like f i n?

First of all: Impressive response time - particularly on a Sunday - thanks :slight_smile:

f, i & n are all on the default layer, i.e. no holding down required, however the key "f" acts as "&LT" meaning it switches layer, when held longer than 300ms.

So to briefly explain it: My keyboard layout looks like this

The green buttons have a double function: They either type the usual letter or - if held down long enough - they change the layer or act as a different key. Example:

Holding F longer than 300 ms goes to layer 2
Holding A longer than 300 ms sends "CTRL"

The firmware used for this keyboard is called ZMK, which is one of the two major open source keyboard firmwares. There are many other keyboard firmwares (every keyboard has one) but most of them cannot be altered by the user and are simply "dumb" and "hard-coded".

The precise hold-tap behavior is explained in detail here: Hold-Tap Behavior | ZMK Firmware

I use the following configuration:
&mt {
flavor = "tap-preferred";
tapping-term-ms = <350>;
require-prior-idle-ms = <200>;
};

You can also see all details of my configuration here:
https://my.glove80.com/#/layout/user/2f07edd7-f65e-4356-970a-dbb0d4af7339

In other words: A lot of thought by the many fathers of ZMK has gone into preventing exactly such unwanted behavior and - for 99% of the cases - this works flawlessly. In the case of DOpus FAYT this, however, somehow causes trouble.
I am typing quickly, i.e. a lot faster than 300 ms, i.e. no layer-change or anything similar should occur. The issue even persists when I set the layer-switch time ("tapping-term-ms") to a ridiculous value of 5000ms.

I believe it has something to do with the way characters are read into Dopus, but I am still a novice in all of this.

Thank you very much for your help. I guess any ZMK-keyboard would show the same issues.

@Leo Do you (or anyone else in the community) have an idea?

This really breaks DOpus for me :frowning:

Thanks a lot!

Seems like a keyboard driver issue, since it must not be generating the normal keyboard input events. But it is hard to say without a similar keyboard to test with.