Can't use Pipe ( | ) character on VNC

Can't use Pipe ( | ) character on VNC

avatar

Hi,
I have a strange problem on RDM that is I cant type PIPE ( | ) character while I am using VNC. Normally on MacOs, I use " option + < " characters to produce PIPE (|). But this combination doesnt work with VNC on RDM.

I have tried to change "keyboard type" in Preferences (to European), but it didn't work. How can I type PIPE character while using VNC.

Actually the problem is related with "right alt" or option key functionality . Because I can't also use @ character. If I can figure it out, I will stop using Real VNC which was used for at least 5 years by me.

Best Regards
Samet

All Comments (9)

avatar

Hello Samet

I'm sorry to hear about the issue. I'd like to reproduce it on my side - can you let me know exactly which keyboard layout you use on you Mac? You can see it in System Preferences > Keyboard > Input Sources. What kind of OS are you connecting to with VNC, and do you use a similar keyboard layout on the remote machine? This sounds like a problem when converting key codes.

Thanks and kind regards,

Richard Markievicz

avatar

Dear Richard,
First of all, thank you for your quick response.

  • My keyboard layout on Mac is Turkish Q
  • OS of my VNC connection is Oracle Linux (6)
    • Keyboard layout of this VM also Turkish Q (so it is a "Yes" for your remote layout question)


I would like to bring your attention that this keyboard character is available via Real VNC program.

When I type "option" button while I am connected, I see underscores under "File Edit View tab" (screenshot added)

Additional info, It can be reproduced via RDP (keyboard layout: Turkish Q). You don't have to try with Oracle Linux 6 VNC.

Thank you

Best Regards
Samet

vnc alt keyboard.png

avatar

Hello

Thanks for the follow up.

I haven't had chance to reproduce the issue yet, but I do confirm we have an existing ticket which seems to be the same bug or at least very similar. Thanks for providing all the details - we'll work on the fix, and once I have an update I'll post back here.

Thanks and kind regards,

Richard Markievicz

avatar

Hello again

I'm still looking into the issue, but I noticed in your OP that you have the same problem with RDP.

Can you please try the following, on an RDP session:

  • In the entry properties, under General > RDP > Local Resources > Keyboard; change the setting "Send input as unicode" to "Yes"
  • Verify if you can type the '|' (vertical pipe) character in the remote session using [Option] + '<'


I had tried this earlier, but using a Windows 11 (Arm) server and it was not working. However, on other Windows servers it does seem to resolve the issue, so perhaps something changed around this in the RDP protocol for Windows 11 (or at least, for that specific Windows 11 edition).

I know your original post was regarding VNC, but this will help me to isolate the problem on my side.

If you have any questions or something is not clear please let me know.

Thanks and kind regards,

Richard Markievicz

avatar

Dear Richard,
I can confirm that changing the "Send input as unicode" to "YES" worked for Windows 10 and Windows Server 2012 R2.

will be glad if you can also find a way for VNC.

thank you again for your support.

Best Regards,
Samet

avatar

Hi Samet

Thanks for your feedback and patience with this issue.

In general, key input is tricky to get right with VNC, when we start to think about cross-platform and international keyboard layouts. The input part of the VNC protocol is based on X11 keysyms, which sadly precludes the "Send input as unicode" option we have for RDP sessions.

I see what is happening: RDM is correctly interpreting the "|" character and sending it to the server, however the [Option] modifier that you use to generate the keystroke is being held on the server also. So - the server sees the input as [Option] + "|", which is obviously not a valid key combination.

On our side, we need to try and use heuristics to know what is happening, and generate the proper input sequences to release the modifier on the server while typing the "|" character, then re-apply the modifiers again.

(I'm using your example with the vertical pipe character, but as you noted this applies generally to characters requiring the [Option] key to be held).

I've submitted a potential fix to the RDM macOS team and I'm waiting for their feedback. I hope we can integrate the fix in an upcoming release, and we'll update this post once something is available.

Thanks again for your patience, and kind regards

Richard Markievicz

avatar

Hi Richard,
I am using RDM version 2022.2.4.0 right now. I think it might have been fixed since the version that I report the situation. Because, when I try to type PIPE, it is passed to the server.

Regards,
Samet

avatar

Hi Samet

Indeed, I see that the fix was published with the 2022.2.4 release. My apologies for not updating this post, I somehow missed that in our internal ticketing system. But I'm glad it's working well for you now!

Please don't hesitate to post back with further questions or comments

Thanks and kind regards,

Richard Markievicz

avatar

Hi Richard,
No problem, I am happy to have this feature.

Thank you for your all support and fix.

Regards,
Samet