Comments (7)
that's kinda hard to debug without such a device. are you able to reproduce with an attachable hardware keyboard?
from multivnc.
well the hardware keyboard is integrated, search "gemini pda" to get an idea (edit: in google images I mean). I don't have an actual external removable keyboard to try this, just the one that is integrated. if you want me to enable some debug log or try some debug build, I would be very happy to do so!
from multivnc.
(I mean I do have other external keyboards, but they just don't have this function key modifier way of behaving where three instead of two important characters are mapped on many keys)
from multivnc.
Well then it'll definitely help if you build the app yourself and check logcat. https://github.com/bk138/multivnc/blob/master/android/app/src/main/java/com/coboltforge/dontmind/multivnc/VncCanvasActivity.java#L1006 is where keys are processed.
from multivnc.
I don't have full android studio installed on any of my machines right now (I tend to use just the command line android SDK + NDK with python-for-android) so would you by any chance have either a debug build .apk
lying around somewhere, or is there a runtime setting with which I could make the f-droid build that I'm using emit the necessary debug info?
from multivnc.
@bk138 actually, looking at the code, I can only see this work in one of two ways:
-
the code is updated to recognize every single one of the obscure layouts like the Gemini PDA, to recognize the special keycode combinations, and replace them with the appropriate single key code event of a desktop keycode a generic Linux desktop might use. (This doesn't seem very feasible since a larger wave of new devices with each their unusual hardware keyboards are being released, also see Neo900 and others)
-
The code is changed to use a text event instead of key code events, and then map back from the text character, properly generated by Android with full knowledge of the layout, back to a simulated keycode of a regular desktop layout that a VNC guest might recognize. This could be optional since I imagine it could cause other issues with international layouts (e.g. would shift be possibly recognized and properly send as separate modifier for international non-ascii uppercase characters? might not be so easy) but at least it would allow this to work for most of these unusual layouts
I'm pretty sure what the code is doing right now can't work properly, per design. There is just no direct equivalent mapping from one single key press on the Gemini to another corresponding single key press on a regular desktop keyboard layout. Therefore, the current code would require the VNC target to recognize the Gemini PDA layout, that is that a specific non-shift function key pressed together with a regular ascii key may suddenly spit out a different ascii key as a two key combination not involving shift - a concept which is entirely foreign e.g. to a Desktop Linux, isn't it? So unless this is changed on a conceptual level I don't see how this can ever work properly
from multivnc.
Just to explain this better, just look at the layout yourself:
As you can see, e.g. the '
(apostrophe) key together with the function key suddenly produces :
(colon), and that's exactly what doesn't work in VNC right now. That additional different modifier on ascii keys is just not something a VNC guest would recognize, is it?
Maybe I'm wrong and got all this incorrectly, but from what I've seen of keycodes I think that is what is the fundamental problem
from multivnc.
Related Issues (20)
- Add scale-to-fit view mode HOT 5
- Adding port number for ssh tunnel. HOT 3
- Allow translations to be added via Hosted Weblate HOT 2
- Create 0.8 MacOS release HOT 2
- Add wxSecretStore use for credentials without user name
- Error dialog sometimes not shown
- Use libvncclient's connect w/ timeout functions
- Move auth methods from VncCanvas to containing activity HOT 1
- Prepare for API level 33 HOT 2
- ForegroundServiceDidNotStartInTimeException sometimes on Android 13 HOT 1
- Release v0.7.0
- Windows build cannot run due to `wxmsw32ud_core_vc_custom.dll` is missing from your computer HOT 4
- Error messages not shown
- Send mouse scroll / scrolling input HOT 1
- Predefined zoom level, toggle off zoom in/out buttons | Android Version
- Audio support? HOT 1
- Please maximize usable screen space HOT 1
- Language error with physical bluetooth keyboard HOT 5
- Add reconnect-after-connection-fail feature
- option to turn off pointer acceleration w/ touch screen HOT 6
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 multivnc.