Version 2.5.0 - Keys are not mapped correctly anymore
Since a while i can not use the key > or pipe key anymore. Keyboard layout is MAC and Tiny is displaying a windows version. I guess this problem came with an update. How can this beeing solved.
- 14 replies
There are 14 replies. Estimated reading time: 12 minutes
Hi @tinyuser2022, I'm sorry you're running into this key mapping issue.
As far as I know, there haven't been any changes to the way TinyPilot maps keys for a while. The last changes were when we added support for a couple of Japanese keys as an improvement to 2.5.4. This update is unlikely to be related to the issue you're seeing.
Usually, mapping issues like this are due to systems having different keyboard layouts. It would be super useful to have more information about your keyboard layouts on both machines to try and figure out what the issue is.
On your client machine (the computer you're using to connect to your TinyPilot web interface), can you tell me the Operating System, keyboard language, and keyboard layout you're using? You can usually find this information in your keyboard settings.
Could you also share the same information (Operating System, keyboard language, and keyboard layout) for your target machine, too? i.e., the machine you're controlling with your TinyPilot.
Please let me know if I clarify anything here.
Hi, in short:
Source is MAC with a German keyboard layout.
Remote is Windows with German keyboard layout.
Basicall all other keys are working - just those are wrong: <>|
Thanks for that info!
I took a look online at the German keyboard layout, and it looks like
|are all on the same key - directly to the left of the
Ykey (on the German layout). I also found a tool on Microsoft's website that shows the layout of different keyboards. From that tool, it looks like you need to use
AltGralong with the
<key to input a
I set my target machine to use a German layout and accessed my TinyPilot web interface on a Mac.
I was able to input
<by hitting the expected key (directly left of
Yon a German keyboard).
>required me to use
shift(expected), and I could enter
|by hitting the right-hand
<- On a Mac this is the right-hand
Can you test whether you can enter
|via your TinyPilot by using the right-hand
optionkey along with they key directly to the left of your
If that doesn't work, can you visit keycode.info and type
|, and share screenshots of the information it displays?
Please let me know if I can clarify anything here.
Yes this is not possible - thats why we have this ticket. I can get the correct keys by pressing Option-Key + the roof up key underneath the ESC key. On my MAC directly without tinypilot it is exactly like you describe. Just inside the remote Windows session these keys are somehow changed.
Your target machine interprets keypresses forwarded by your TinyPilot as if you were using your target machine's keyboard layout. For example, if my target machine uses a German keyboard layout, but my client machine uses an English layout, I would hit the English
Zkey on my physical keyboard and my target machine would display a
Y. That's because the English
Zkey maps to the German
From your description, it sounds like your client machine (Mac) uses a German layout. But your target machine may be using a different layout, since
<aren't in the expected place.
Could you test other non-alpha-numeric characters, like
)to see if they're in the expected positions?
Could you also share a screenshot of your Windows keyboard settings with me?
On Windows, open Settings, click on Time & Language, then Language. Under the Preferred languages section, select the current default language and click the Options button. There should be a Keyboards heading with a list of keyboards that are installed on your machine.
Everything else works as expected.
Here are my MAC settings for the keyboard:
Here are my remote settings:
Thanks for sharing those screenshots, @tinyuser2022. Those codes appear correct.
I'm a bit stumped on this issue, so we're doing some additional research to see if there's anything else we can check. I'll respond with an update when I have more information.
Please feel free to add any additional information or ask any questions in the meantime.
Thanks for your patience with this, @tinyuser2022. After doing some more testing, it looks like this might be a browser issue.
I performed all of my previous tests using Firefox, which worked. However, Safari and Chrome have different behavior, and I was able to reproduce the issue you're seeing (using ^ plus shift/option).
Could you try typing
|in Firefox and let me know if that works as expected? If Firefox works, that definitely suggests that this is a browser issue. Unfortunately, if that's the case, there's not much we can do on the TinyPilot side, because Safari and Chrome are sending different keycodes to your TinyPilot than Firefox.
I understand that it's not a convenient solution to use a different browser to type via your TinyPilot, but I'm not sure if there's anything else we can do to fix this.
in the forum, is another issue which is IMHO related: (read full thread)
@ sign not at expected spot (german keyboard tested)
Back than I had the feeling that it also could be a mapping problem between Windows and Mac. I strongly believe that it might be an idea, to implement a table in TinyPilot which you can
use to fill in the "remote" machine key presses from https://keycode.info/ (I would use the full event dump) on one side and also the https://keycode.info/ for the machine, where TinyPilot is connected to. I personally assume that there a a few very special keys, that needs to be "solved" in that way.
If it helps, contact me directly per PM, and I can setup my Mac for remote with german keyboard, and connect the TinyPilot to the windows machine for testing. (Both german keyboard)
Yes, with Firefox it is working as expected. But why is that?
It looks like this an odd behavior issue with Chrome and Safari. Chrome and Safari are both incorrectly interpreting the
<key and sending that incorrect data to TinyPilot, causing TinyPilot to send the wrong key to your target machine. Firefox appears to interpret the
Since this is a browser issue, there isn't much we can do in the short term to fix this. However, I've created an issue on Github to track this problem and to see if there may be anything we can do to fix this on the TinyPilot side.
I hope that helps! Please let me know if you have any questions.