Comments (12)
Thank you for the very detailed report @macdanger . This is really helpful.
Before going further, lets see if using raw key events fixes this:
- Enable raw key handling in tigervncserver by passing
-RawKeyboard=1
argument - Install this APK : app-debug.zip (from #129)
- Test key handling
from avnc.
thanks for your quick response.
60009 ? Ss 0:00 /usr/bin/perl /usr/bin/vncserver -RawKeyboard=1 -localhost no -depth 32 -geometry 1280x800 :1
60011 ? Ssl 1:00 /usr/bin/Xtigervnc :1 -rfbport 5901 -localhost=0 -SecurityTypes VncAuth,TLSVnc -PasswordFile /home/user/.vnc/passwd -ClientWaitTimeMillis 30000 -NeverShared=0 -AlwaysShared=1 -RawKeyboard=1 -geometry 1280x800 -desktop host.domain.net:1 (markus) -depth 32 -auth /home/user/.Xauthority
The RawKeyboard parameter togther with the debug version of avnc did not change much, at least it is still not working. But I can see a difference in regard to the transmitted keycodes:
(does not differ if right-alt-to-super on or off):
KeyPress event, serial 28, synthetic NO, window 0x4c00001,
root 0x3b4, subw 0x0, time 430664614, (593,383), root:(700,492),
state 0x10, keycode 142 (keysym 0x1008ff6b, XF86Open), same_screen YES,
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: FalseKeyPress event, serial 28, synthetic NO, window 0x4c00001,
root 0x3b4, subw 0x0, time 430664779, (593,383), root:(700,492),
state 0x10, keycode 20 (keysym 0xdf, ssharp), same_screen YES,
XLookupString gives 2 bytes: (c3 9f) "ß"
XmbLookupString gives 2 bytes: (c3 9f) "ß"
XFilterEvent returns: FalseKeyRelease event, serial 28, synthetic NO, window 0x4c00001,
root 0x3b4, subw 0x0, time 430664924, (593,383), root:(700,492),
state 0x10, keycode 20 (keysym 0xdf, ssharp), same_screen YES,
XLookupString gives 2 bytes: (c3 9f) "ß"
XFilterEvent returns: FalseKeyRelease event, serial 28, synthetic NO, window 0x4c00001,
root 0x3b4, subw 0x0, time 430665150, (593,383), root:(700,492),
state 0x10, keycode 142 (keysym 0x1008ff6b, XF86Open), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
Overall with RawKeyboard it looks that there is a bigger missmatch between the Book Cover Keyboard layout and the xkb layout on the server: e.g. now I cannot use the curser keys and some other keys.
Maybe the right combination of RawKeyboard and X server keyboard layout would solve the problem but I cannot imagine which keyboard layout I should choose. Currently I'm using /usr/bin/setxkbmap -layout de,us -model pc105 -variant nodeadkeys,altgr-intl
And with that the right alt key (AltGr) isn't really assigned to right-alt as it seems.
EDIT: I just like to add: it does not depend on the Samsung Book Cover keyboard, using the exact same hardware keyboard from my desktop via bluetooth with avnc, avnc generates different keycodes then e.g. tigervncclient. The right-alt (AltGr) key ends up as keycode 108 with tigervncclient but is 142 with avnc using the same hardware keyboard.
from avnc.
Please try this APK (with RawKeyboard
enabled): app-debug.zip
does not differ if right-alt-to-super on or off
Raw key events bypasses this setting.
Overall with RawKeyboard it looks that there is a bigger missmatch between the Book Cover Keyboard layout and the xkb layout on the server: e.g. now I cannot use the curser keys and some other keys.
EDIT: I just like to add: it does not depend on the Samsung Book Cover keyboard, using the exact same hardware keyboard from my desktop via bluetooth with avnc, avnc generates different keycodes then e.g. tigervncclient. The right-alt (AltGr) key ends up as keycode 108 with tigervncclient but is 142 with avnc using the same hardware keyboard.
Yeah, previous APK was not encoding raw key events correctly. I assumed scancodes received from Android were XT scancodes, but actually they are Linux kernel keycodes.
Q: Can you compile TigerVNC from source (or somehow use newer version)?
from avnc.
Please try this APK (with RawKeyboard enabled): app-debug.zip
Now this new debug version works perfectly! Even the super and cursor keys work correctly!
EDIT: and also with using a full blown logitech bluetooth hardware keyboard.
Q: Can you compile TigerVNC from source (or somehow use newer version)?
you mean update the server binary? I'm using the Debian standard package, which is currently on version:
Xvnc TigerVNC 1.11.0 - built 2022-01-26 17:59
Copyright (C) 1999-2020 TigerVNC Team and many others (see README.rst)
See https://www.tigervnc.org for information on TigerVNC.
Underlying X server release 12011000, The X.Org Foundation
from avnc.
you mean update the server binary?
Yes. I was testing TigerVNC 1.13 and it has improved key handling, even without raw key events.
I'm using the Debian standard package, which is currently on version:
That's why I was wondering if you could compile from source.
In any case, raw key events in AVNC still need a bit more polishing, and I will close this issue when it's ready.
from avnc.
v2.2.0 is now available with raw key event support.
And thank you @macdanger!
from avnc.
Hi, sorry to jump in here again, but it looks that the newer versions have a slightly different implementation of the raw keys. When using the 2.1.2 (debug) version from this thread, all is perfectly fine. When I use the news version, alt least the super keys don't work. Everything else seems to be the same. Shoult I open a new issue?
from avnc.
No problem, I will take a closer look later today.
Which specific version is not working correctly: v2.2.0 or v2.2.1
No need to open new issue, I will just reopen this one.
from avnc.
2.2.1 seems not to work with super keys
I did not try 2.2.0 though
from avnc.
After a bit of testing, it looks like Super should work correctly. My device intercepts Super key for Google app so I can't test it directly. But if map any other key to Super, it works as expected.
Please run the Key test in AVNC settings for Super keys, and paste event logs here.
from avnc.
Oh man, sorry, it looks like you are right. now after cleaning up and comparing my config from the 2.1.2 (debug) with the 2.2.1 release - it just works as expected. Strange. Sorry, I hope I didn't cause too much trouble for you checking :-)
from avnc.
No problem, this sort of thing has happened more than once to me too when testing AVNC with different configurations.
I did find a test which was not running, so that's a net positive.
from avnc.
Related Issues (20)
- Does it work with SecureVNCPlugin.dsm in UltraVNC?? HOT 1
- Feat: Use the top URL bar for searching HOT 3
- 1080高清視頻顯示garbage HOT 7
- Touch screen mode: enable pop up of auto hide on target at screen edge
- Feature request: Add a button to remove the left panel HOT 1
- Cursor jumps around in touch panel mode HOT 15
- Please add tightvnc's remote ripple like mouse tool HOT 1
- mouse click not working on window minimize & maximize & close on Android 14 HOT 28
- Is it possible to auto connect to server? HOT 9
- Android 14 Fullscreen Broken HOT 5
- SSH Tunnel is broken in v2.3.0: "There was a problem while connecting to xxx.xxx.xxx.xxx" HOT 17
- why not support repeater? HOT 3
- Icon is missing in F-droid
- Add get it on github badge to Readme HOT 1
- <details> <summary>Key test</summary> <p> ```python Preview text: ``` </p> </details>
- Request for Feedback: Exclude passwords from exported data HOT 2
- Feature request stereoscopic or monoscopic image HOT 3
- Feature Request: WOL HOT 1
- Do not connect HOT 1
- Viewer disconnects when the server changes resolution HOT 9
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from avnc.