Help needed with function layer on remote system

Hello,
I have a new atreus and it works great on my macbook.
When i connect to a virtual system over VMware Horizon Client, it still works great.
When i then create an RDP connection to a physical machine, from the virtual VMware system, i start to have issues.
The keyboard still works mostly as expected, the issue I am having is that some of the function keys work only some of the time.
For example, the fn+q combination normally produces a ! character.
When i attempt this in the vmware/rdp connection, it seems that i get a 50/50 chance that i will get the expected ! character or the associated numeric value 1, which i would expect to see on a normal keyboard, but not from atreus.
This is my first compact keyboard so i may be overlooking something well known or obvious.
Any ideas on what is going on here and how to fix the remote connection would be appreciated.

This is a know issue with RDP. In your example, the ! key is LSHIFT(Key_1). When you press it, Kaleidoscope sends two HID reports to the host: the first one with just shift added, then immediately a second one with both shift and 1. This normally guarantees that you’ll get an ! in the output.

The problem is that RDP often combines HID reports that are received close together, especially when it has a slow connection, so it takes those two reports and combines them into one, and because Windows processes the changes in keycode order, and the modifiers have high keycodes, it sees the 1 first, and applies the shift after. If you hold the key down, you’ll get 1!!!!. There are some ways that might work to mitigate the issue, and I think Microsoft is testing a fix now.

There’s more information here: https://github.com/keyboardio/Model01-Firmware/issues/87

2 Likes

Thank you @merlin, your details and reference helped put me on the path to understand and resolve the issue.

Ultimately, I found i could reconfigure the RDP session (on the vmware machine) to “Apply Windows Keys Combinations” : “On this computer” and that seems to have fixed the issue for me.

Preliminary testing shows all function keys rendering as the proper character in the remote RDP session.

2 Likes