Hi Nathanaël and everyone else interested in keyboard layouts other than English,
I really didn't like the idea of releasing Opaque into production supporting only English (QWERTY), so I devised a method to get around a current SPICE protocol limitation (only being able to transmit keyboard scan codes and not unicode to the VM). It involves Opaque translating unicode characters on-device according to a user-specified layout into a series of scan codes. Currently English (QWERTY), German (QWERTZ), and French
(AZERTY) are fully supported including all AltGr and dead-key combinations.
I encourage all users of the supported layouts to give them a thorough beating and let me know of any issues. I'd also like to hear your opinions on whether such a solution can and should make it to production.
To
use a layout other than English (default), long-tap on a connection to
edit it, then from the new drop-down select your desired layout. Once
connected to your VM, ensure that the chosen layout there matches the
layout you picked in the settings. For best results (i.e. for your
Android keyboard to offer you all the possible unicode choices that your
layout can produce), you should also use an Android keyboard that
supports your language. The layout on your phone is not at all
important, because all I need from the Android IME are unicode values,
however, I must say that I find Hacker's keyboard most flexible.
One
caviat is that in order to be able to obtain the true unicode value
from the IME, I've had to interpret ALT meta state as belonging to the
KeyEvent rather than something that should be passed on to the VM. The
reason for this is that on Android, some characters like the German "ß"
appears as ALT+s to me, and that's the only way to properly capture it.
In fact, if you type ALT+s manually, while using the German layout, you
will get a "ß" on the remote side.
Hence, the Hacker's keyboard
ALT cannot be used as an ALT. Thankfully, though, there is a nice
workaround. The on-screen ALT button is exempt from such considerations
and works just fine.
Once the project gains a larger user-base, I
expect that interested people will be able to help me create their own
keyboard layout map files. The final format will be documented and the
documentation will be available in the source distribution.
Everyone, thank you very much in advance for your input!
Sincerely,
iordan