Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improve support for keyboards, especially for keypad/numlock and different layouts like with umlauts #34

Open
rapgro opened this issue Apr 7, 2018 · 2 comments

Comments

@rapgro
Copy link

rapgro commented Apr 7, 2018

Working on a new implementation for converting QKey to SPICE. SPICE needs valid scan codes from code table of PC AT key codes set number 1.

[Samstag, 7. April 2018] [08:59:49 CEST] <RaphGro>	maybe I can explain the issue with scancodes
[Samstag, 7. April 2018] [08:59:52 CEST] Betreten	kalev-afk (~kalev@81-229-202-110-no287.tbcn.telia.com) hat diesen Kanal betreten.
[Samstag, 7. April 2018] [09:00:31 CEST] <flash__>	good
[Samstag, 7. April 2018] [09:00:50 CEST] <RaphGro>	but I tried to refactor the sources, not easy
[Samstag, 7. April 2018] [09:01:59 CEST] <RaphGro>	well, the scancode for numlock is wrong
[Samstag, 7. April 2018] [09:02:05 CEST] <flash__>	maybe say the idea ?
[Samstag, 7. April 2018] [09:02:15 CEST] <RaphGro>	still no idea about umlauts
[Samstag, 7. April 2018] [09:02:44 CEST] <RaphGro>	have to send scancodes as 4 bytes array = uint32
[Samstag, 7. April 2018] [09:02:50 CEST] <RaphGro>	just shift the bytes to the left
[Samstag, 7. April 2018] [09:02:56 CEST] <RaphGro>	I have ready code
[Samstag, 7. April 2018] [09:04:00 CEST] <RaphGro>	but it will break keypad (keypad/numlock is b0rken anyways) and will break alt+gr as well and key sequence
[Samstag, 7. April 2018] [09:04:29 CEST] <RaphGro>	writing keyboard driver is not easy :(
[Samstag, 7. April 2018] [09:06:37 CEST] <flash__>	you shure that it will works on any keyboard?  and why need shift bytes order? if exist some rule?
[Samstag, 7. April 2018] [09:06:51 CEST] <flash__>	or exist*
[Samstag, 7. April 2018] [09:08:36 CEST] <RaphGro>	maybe an improvement. but be aware what I wrote above.
[Samstag, 7. April 2018] [09:09:12 CEST] <RaphGro>	    // http://doc.qt.io/qt-5/qt.html#Key-enum
[Samstag, 7. April 2018] [09:09:12 CEST] <RaphGro>	    // https://github.com/qemu/keycodemapdb/blob/master/data/keymaps.csv
[Samstag, 7. April 2018] [09:09:12 CEST] <RaphGro>	    // https://github.com/CendioOssman/keycodemapdb/blob/master/data/keymaps.csv
[Samstag, 7. April 2018] [09:09:25 CEST] <flash__>	on #virt  challel i have answer that virt-viewer uses the https://gitlab.com/keycodemap/keycodemapdb/blob/master/data/keymaps.csv for works with different systems and keyboards... buy how to -- not clear..
[Samstag, 7. April 2018] [09:09:54 CEST] <RaphGro>	PC AT scan codes 1
[Samstag, 7. April 2018] [09:10:04 CEST] <RaphGro>	the numlock implementation is wrong
[Samstag, 7. April 2018] [09:10:14 CEST] <RaphGro>	Qt seems to handle keypad specially
[Samstag, 7. April 2018] [09:11:43 CEST] <RaphGro>	ADD_SCAN4 should maybe use the old code as in git
[Samstag, 7. April 2018] [09:11:51 CEST] Betreten	kallesbar (~kallesbar@192.130.252.52) hat diesen Kanal betreten.
[Samstag, 7. April 2018] [09:12:06 CEST] <RaphGro>	ADD_SCAN4 is used for key sequence
[Samstag, 7. April 2018] [09:13:36 CEST] <RaphGro>	well, I did not try QKeyEvent getScanCode()
[Samstag, 7. April 2018] [09:13:55 CEST] <RaphGro>	documentation says it is not guaranteed to give a number
[Samstag, 7. April 2018] [09:14:29 CEST] <RaphGro>	how to test if it works on any keyboard?
[Samstag, 7. April 2018] [09:15:09 CEST] <flash__>	i'm use that table for set 1: http://philipstorr.id.au/pcbook/book3/scancode.htm
[Samstag, 7. April 2018] [09:15:36 CEST] <RaphGro>	https://stackoverflow.com/questions/17204142/capturing-modifier-keys-qt
[Samstag, 7. April 2018] [09:15:47 CEST] <RaphGro>	you can use mouse button with modifier keys …
[Samstag, 7. April 2018] [09:16:01 CEST] <RaphGro>	but interesting for gamer user
[Samstag, 7. April 2018] [09:16:19 CEST] <RaphGro>	… all in all, keyboard driver is not easy stuff :(
[Samstag, 7. April 2018] [09:17:50 CEST] <RaphGro>	https://stackoverflow.com/questions/24822505/how-to-tell-if-shift-is-pressed-on-numpad-input-with-numlock-on-or-at-least-get
[Samstag, 7. April 2018] [09:19:35 CEST] <RaphGro>	did you check the sources of spice-gtk or gtk viewer?
[Samstag, 7. April 2018] [09:21:11 CEST] <RaphGro>	https://github.com/UPC/ravada/issues/448#issuecomment-379319506
[Samstag, 7. April 2018] [09:21:12 CEST] <flash__>	not for using keyboard...
[Samstag, 7. April 2018] [09:21:25 CEST] <RaphGro>	you should check
@rapgro
Copy link
Author

rapgro commented Jun 21, 2018

With german keyboard layout in the host system, the keys z and y are still switched. Umlauts (ü, ö ,ä, ß) do not work at all. Other keys without correct mapping: pipe, <, >, ;, : , -, _, *, +,~, ', # , ", §, &, /, (, ), =, ?, `, ´, {,[,],},, Pos1, End, Ins, Del, PageUp, PageDown
Maybe there are more key errors.

@rapgro
Copy link
Author

rapgro commented May 18, 2019

Managed to get a keyboard with UK layout. I'll report if it can improve the translation of key codes.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant