Ok, this isn't a good idea, but atm, the browser don't seem to send
hardware keycode, and so Gtk+ broadway backend decided to use keysyms
representation, which spice-gtk receives as hardware keycodes...
Since Gdk keysyms are same as X11, add a new x11 keysym to keymap.
This is not going to fly,...
---
gtk/Makefile.am | 4 +
gtk/keymap-gen.pl | 8 +-
gtk/keymaps.csv | 248 ++
3 files changed, 147 insertions(+), 113 deletions(-)
diff --git a/gtk/Makefile.am b/gtk/Makefile.am
index e65d3e2..17544fb 100644
--- a/gtk/Makefile.am
+++ b/gtk/Makefile.am
@@ -14,6 +14,7 @@ KEYMAPS = \
vncdisplaykeymap_xorgxwin2xtkbd.c \
vncdisplaykeymap_osx2xtkbd.c\
vncdisplaykeymap_win322xtkbd.c \
+ vncdisplaykeymap_x112xtkbd.c\
$(NULL)
# End users build dependencies can be cleaned
@@ -520,6 +521,9 @@ vncdisplaykeymap_osx2xtkbd.c:
vncdisplaykeymap_win322xtkbd.c:
$(AM_V_GEN)$(KEYMAP_GEN) $(srcdir)/keymaps.csv win32 xtkbd $@ || rm $@
+vncdisplaykeymap_x112xtkbd.c:
+ $(AM_V_GEN)$(KEYMAP_GEN) $(srcdir)/keymaps.csv x11 xtkbd $@ || rm $@
+
if WITH_PYTHON
pyexec_LTLIBRARIES = SpiceClientGtk.la
diff --git a/gtk/keymap-gen.pl b/gtk/keymap-gen.pl
index 3582e2b..56953f8 100755
--- a/gtk/keymap-gen.pl
+++ b/gtk/keymap-gen.pl
@@ -14,6 +14,7 @@ my %namecolumns = (
linux = 0,
osx = 2,
win32 = 10,
+x11 = 14,
);
# Base data sources:
@@ -28,7 +29,9 @@ my %namecolumns = (
#usb: USB HID: linux/drivers/hid/usbhid/usbkbd.c
(usb_kbd_keycode)
# win32: Win32: mingw32/winuser.h (manually
mapped)
# xwinxt: XWin XT: xorg-server/hw/xwin/{winkeybd.c,winkeynames.h} (xt +
manually transcribed)
-# xkbdxt: XKBD XT: xf86-input-keyboard/src/at_scancode.c (xt +
manually transcribed)
+# xkbdxt: XKBD XT: xf86-input-keyboard/src/at_scancode.c
+#(xt + manually transcribed)
+#x11: X11 keysyms:
http://cgit.freedesktop.org/xorg/proto/x11proto/plain/keysymdef.h
#
# Derived data sources
#
@@ -38,7 +41,7 @@ my %namecolumns = (
# xorgxwin: Xorg + Cygwin: xwinxt + an offset
# rfb: XT over RFB: xtkbd + special re-encoding of high bit
-my @basemaps = qw(linux osx atset1 atset2 atset3 xt xtkbd usb win32 xwinxt
xkbdxt);
+my @basemaps = qw(linux osx atset1 atset2 atset3 xt xtkbd usb win32 xwinxt
xkbdxt x11);
my @derivedmaps = qw(xorgevdev xorgkbd xorgxquartz xorgxwin rfb);
my @maps = (@basemaps, @derivedmaps);
@@ -58,6 +61,7 @@ my %mapcolumns = (
win32 = 11,
xwinxt = 12,
xkbdxt = 13,
+x11 = 15
);
sub help {
diff --git a/gtk/keymaps.csv b/gtk/keymaps.csv
index ab29e4a..9052e3b 100644
--- a/gtk/keymaps.csv
+++ b/gtk/keymaps.csv
@@ -1,91 +1,117 @@
-Linux Name,Linux Keycode,OS-X Name,OS-X Keycode,AT set1 keycode,AT
set2 keycode,AT set3 keycode,XT,XT KBD,USB Keycodes,Win32 Name,Win32
Keycode,Xwin XT,Xfree86 KBD XT
-KEY_RESERVED,0
-KEY_ESC,1,Escape,0x35,1,118,8,1,1,41,VK_ESCAPE,0x1b,1,1
-KEY_1,2,ANSI_1,0x12,2,22,22,2,2,30,VK_1,0x31,2,2
-KEY_2,3,ANSI_2,0x13,3,30,30,3,3,31,VK_2,0x32,3,3
-KEY_3,4,ANSI_3,0x14,4,38,38,4,4,32,VK_3,0x33,4,4
-KEY_4,5,ANSI_4,0x15,5,37,37,5,5,33,VK_4,0x34,5,5
-KEY_5,6,ANSI_5,0x17,6,46,46,6,6,34,VK_5,0x35,6,6
-KEY_6,7,ANSI_6,0x16,7,54,54,7,7,35,VK_6,0x36,7,7
-KEY_7,8,ANSI_7,0x1a,8,61,61,8,8,36,VK_7,0x37,8,8
-KEY_8,9,ANSI_8,0x1c,9,62,62,9,9,37,VK_8,0x38,9,9
-KEY_9,10,ANSI_9,0x19,10,70,70,10,10,38,VK_9,0x39,10,10
-KEY_0,11,ANSI_0,0x1d,11,69,69,11,11,39,VK_0,0x30,11,11
-KEY_MINUS,12,ANSI_Minus,0x1b,12,78,78,12,12,45,VK_OEM_MINUS,0xbd,12,12
-KEY_EQUAL,13,ANSI_Equal,0x18,13,85,85,13,13,46,VK_OEM_PLUS,0xbb,13,13
-KEY_BACKSPACE,14,Delete,0x33,14,102,102,14,14,42,VK_BACK,0x08,14,14
-KEY_TAB,15,Tab,0x30,15,13,13,15,15,43,VK_TAB,0x09,15,15
-KEY_Q,16,ANSI_Q,0xc,16,21,21,16,16,20,VK_Q,0x51,16,16
-KEY_W,17,ANSI_W,0xd,17,29,29,17,17,26,VK_W,0x57,17,17
-KEY_E,18,ANSI_E,0xe,18,36,36,18,18,8,VK_E,0x45,18,18
-KEY_R,19,ANSI_R,0xf,19,45,45,19,19,21,VK_R,0x52,19,19
-KEY_T,20,ANSI_T,0x11,20,44,44,20,20,23,VK_T,0x54,20,20
-KEY_Y,21,ANSI_Y,0x10,21,53,53,21,21,28,VK_Y,0x59,21,21
-KEY_U,22,ANSI_U,0x20,22,60,60,22,22,24,VK_U,0x55,22,22
-KEY_I,23,ANSI_I,0x22,23,67,67,23,23,12,VK_I,0x49,23,23
-KEY_O,24,ANSI_O,0x1f,24,68,68,24,24,18,VK_O,0x4f,24,24
-KEY_P,25,ANSI_P,0x23,25,77,77,25,25,19,VK_P,0x50,25,25
-KEY_LEFTBRACE,26,ANSI_LeftBracket,0x21,26,84,84,26,26,47,VK_OEM_4,0xdb,26,26
-KEY_RIGHTBRACE,27,ANSI_RightBracket,0x1e,27,91,91,27,27,48,VK_OEM_6,0xdd,27,27
-KEY_ENTER,28,Return,0x24,28,90,90,28,28,40,VK_RETURN,0x0d,28,28
-KEY_LEFTCTRL,29,Control,0x3b,29,20,17,29,29,224,VK_LCONTROL,0xa2,29,29
-KEY_LEFTCTRL,29,Control,0x3b,29,20,17,29,29,224,VK_CONTROL,0x11,29,29
-KEY_A,30,ANSI_A,0x0,30,28,28,30,30,4,VK_A,0x41,30,30
-KEY_S,31,ANSI_S,0x1,31,27,27,31,31,22,VK_S,0x53,31,31
-KEY_D,32,ANSI_D,0x2,32,35,35,32,32,7,VK_D,0x44,32,32