m1k1o / neko

A self hosted virtual browser that runs in docker and uses WebRTC.
https://neko.m1k1o.net/
Apache License 2.0
5.98k stars 449 forks source link

[BUG] Guacamole keyboard resend invalid characters #174

Open gbrian opened 2 years ago

gbrian commented 2 years ago

Hi,

When writting and astherisk, SHIFT+*, guacamole keyboard gets stuck and starts resend invalid characters. keyboard_issue_neko

Looks like the issue is here: https://github.com/m1k1o/neko/blob/c48309b6485a816789589ff7115a9bc4e4340000/client/src/utils/guacamole-keyboard.js#L845

m1k1o commented 2 years ago

What keyboard layout do you use on your host and inside neko? Is it everywhere US as shown bottom right in vscode?

gbrian commented 2 years ago

Yes, US

image
m1k1o commented 2 years ago

There has been updates in guacamole upstream codebase. I upgrade it and see if that fixes the issue.

m1k1o commented 2 years ago

@gbrian can you retest with latest change? Also whole keyboard, if something changed.

gbrian commented 2 years ago

Hi, Unless did something wrong, I've pulled latest image and tested, same behaviour. Testing some changes on Guacamole.keyboard. I'll keep you posted.

CAUGHT!

image

Basically it happens when you release SHIFT key before the character pressed. In this case weh want to sent a ":" (Semicolon) that's SHIFT + . (shift + period) on ES keyboard:

At this point the server keeps thinking ":" (semicolon) still pressed Guacamole has a timeout and finally sends a "keyup" for the ":" (semicolon)

gbrian commented 2 years ago

Pushed new changes for a fix (workaround) https://github.com/m1k1o/neko/pull/178