keymaps support (initial patch by Johannes Schindelin)

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@1173 c046a42c-6fe2-441c-8c8c-71466251a162
This commit is contained in:
bellard 2004-12-12 16:56:30 +00:00
parent 7b91a17212
commit 3d11d0eb33
44 changed files with 4107 additions and 113 deletions

View File

@ -6,6 +6,7 @@ version 0.6.2:
- Cirrus VGA: support for 1280x1024x[8,15,16] modes - Cirrus VGA: support for 1280x1024x[8,15,16] modes
- 'pidfile' option - 'pidfile' option
- .dmg disk image format support (Johannes Schindelin) - .dmg disk image format support (Johannes Schindelin)
- keymaps support (initial patch by Johannes Schindelin)
version 0.6.1: version 0.6.1:

View File

@ -56,6 +56,8 @@ install: all
ifndef CONFIG_WIN32 ifndef CONFIG_WIN32
mkdir -p "$(mandir)/man1" mkdir -p "$(mandir)/man1"
install qemu.1 qemu-img.1 "$(mandir)/man1" install qemu.1 qemu-img.1 "$(mandir)/man1"
mkdir -p "$(datadir)/keymaps"
install -m 644 keymaps/* "$(datadir)"
endif endif
for d in $(TARGET_DIRS); do \ for d in $(TARGET_DIRS); do \
$(MAKE) -C $$d $@ || exit 1 ; \ $(MAKE) -C $$d $@ || exit 1 ; \

View File

@ -333,7 +333,7 @@ endif
$(QEMU_SYSTEM): $(VL_OBJS) libqemu.a $(QEMU_SYSTEM): $(VL_OBJS) libqemu.a
$(CC) $(VL_LDFLAGS) -o $@ $^ $(LIBS) $(SDL_LIBS) $(VL_LIBS) $(CC) $(VL_LDFLAGS) -o $@ $^ $(LIBS) $(SDL_LIBS) $(VL_LIBS)
sdl.o: sdl.c sdl.o: sdl.c keymaps.c sdl_keysym.h
$(CC) $(CFLAGS) $(DEFINES) $(SDL_CFLAGS) -c -o $@ $< $(CC) $(CFLAGS) $(DEFINES) $(SDL_CFLAGS) -c -o $@ $<
sdlaudio.o: sdlaudio.c sdlaudio.o: sdlaudio.c

143
keymaps.c Normal file
View File

@ -0,0 +1,143 @@
/*
* QEMU keysym to keycode conversion using rdesktop keymaps
*
* Copyright (c) 2004 Johannes Schindelin
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
static int get_keysym(const char *name)
{
name2keysym_t *p;
for(p = name2keysym; p->name != NULL; p++) {
if (!strcmp(p->name, name))
return p->keysym;
}
return 0;
}
#define MAX_NORMAL_KEYCODE 512
#define MAX_EXTRA_COUNT 256
typedef struct {
uint16_t keysym2keycode[MAX_NORMAL_KEYCODE];
struct {
int keysym;
uint16_t keycode;
} keysym2keycode_extra[MAX_EXTRA_COUNT];
int extra_count;
} kbd_layout_t;
static kbd_layout_t *parse_keyboard_layout(const char *language,
kbd_layout_t * k)
{
FILE *f;
char file_name[1024];
char line[1024];
int len;
snprintf(file_name, sizeof(file_name),
"%s/keymaps/%s", bios_dir, language);
if (!k)
k = qemu_mallocz(sizeof(kbd_layout_t));
if (!k)
return 0;
if (!(f = fopen(file_name, "r"))) {
fprintf(stderr,
"Could not read keymap file: '%s'\n", file_name);
return 0;
}
for(;;) {
if (fgets(line, 1024, f) == NULL)
break;
len = strlen(line);
if (len > 0 && line[len - 1] == '\n')
line[len - 1] = '\0';
if (line[0] == '#')
continue;
if (!strncmp(line, "map ", 4))
continue;
if (!strncmp(line, "include ", 8)) {
parse_keyboard_layout(line + 8, k);
} else {
char *end_of_keysym = line;
while (*end_of_keysym != 0 && *end_of_keysym != ' ')
end_of_keysym++;
if (*end_of_keysym) {
int keysym;
*end_of_keysym = 0;
keysym = get_keysym(line);
if (keysym == 0) {
// fprintf(stderr, "Warning: unknown keysym %s\n", line);
} else {
const char *rest = end_of_keysym + 1;
int keycode = strtol(rest, NULL, 0);
/* if(keycode&0x80)
keycode=(keycode<<8)^0x80e0; */
if (keysym < MAX_NORMAL_KEYCODE) {
//fprintf(stderr,"Setting keysym %s (%d) to %d\n",line,keysym,keycode);
k->keysym2keycode[keysym] = keycode;
} else {
if (k->extra_count >= MAX_EXTRA_COUNT) {
fprintf(stderr,
"Warning: Could not assign keysym %s (0x%x) because of memory constraints.\n",
line, keysym);
} else {
fprintf(stderr, "Setting %d: %d,%d\n",
k->extra_count, keysym, keycode);
k->keysym2keycode_extra[k->extra_count].
keysym = keysym;
k->keysym2keycode_extra[k->extra_count].
keycode = keycode;
k->extra_count++;
}
}
}
}
}
}
fclose(f);
return k;
}
static void *init_keyboard_layout(const char *language)
{
return parse_keyboard_layout(language, 0);
}
static int keysym2scancode(void *kbd_layout, int keysym)
{
kbd_layout_t *k = kbd_layout;
if (keysym < MAX_NORMAL_KEYCODE) {
if (k->keysym2keycode[keysym] == 0)
fprintf(stderr, "Warning: no scancode found for keysym %d\n",
keysym);
return k->keysym2keycode[keysym];
} else {
int i;
#ifdef XK_ISO_Left_Tab
if (keysym == XK_ISO_Left_Tab)
keysym = XK_Tab;
#endif
for (i = 0; i < k->extra_count; i++)
if (k->keysym2keycode_extra[i].keysym == keysym)
return k->keysym2keycode_extra[i].keycode;
}
return 0;
}

98
keymaps/ar Normal file
View File

@ -0,0 +1,98 @@
# generated from XKB map ar
include common
map 0x401
exclam 0x02 shift
at 0x03 shift
numbersign 0x04 shift
dollar 0x05 shift
percent 0x06 shift
asciicircum 0x07 shift
ampersand 0x08 shift
asterisk 0x09 shift
parenleft 0x0a shift
parenright 0x0b shift
minus 0x0c
underscore 0x0c shift
equal 0x0d
plus 0x0d shift
Arabic_dad 0x10 altgr
Arabic_fatha 0x10 shift altgr
Arabic_sad 0x11 altgr
Arabic_fathatan 0x11 shift altgr
Arabic_theh 0x12 altgr
Arabic_damma 0x12 shift altgr
Arabic_qaf 0x13 altgr
Arabic_dammatan 0x13 shift altgr
Arabic_feh 0x14 altgr
UFEF9 0x14 shift altgr
Arabic_ghain 0x15 altgr
Arabic_hamzaunderalef 0x15 shift altgr
Arabic_ain 0x16 altgr
grave 0x16 shift altgr
Arabic_ha 0x17 altgr
division 0x17 shift altgr
Arabic_khah 0x18 altgr
multiply 0x18 shift altgr
Arabic_hah 0x19 altgr
Arabic_semicolon 0x19 shift altgr
bracketleft 0x1a
braceleft 0x1a shift
Arabic_jeem 0x1a altgr
bracketright 0x1b
braceright 0x1b shift
Arabic_dal 0x1b altgr
Arabic_sheen 0x1e altgr
backslash 0x1e shift altgr
Arabic_seen 0x1f altgr
Arabic_yeh 0x20 altgr
bracketleft 0x20 shift altgr
Arabic_beh 0x21 altgr
bracketright 0x21 shift altgr
Arabic_lam 0x22 altgr
UFEF7 0x22 shift altgr
Arabic_alef 0x23 altgr
Arabic_hamzaonalef 0x23 shift altgr
Arabic_teh 0x24 altgr
Arabic_tatweel 0x24 shift altgr
Arabic_noon 0x25 altgr
Arabic_comma 0x25 shift altgr
Arabic_meem 0x26 altgr
slash 0x26 shift altgr
semicolon 0x27
colon 0x27 shift
Arabic_kaf 0x27 altgr
apostrophe 0x28
quotedbl 0x28 shift
Arabic_tah 0x28 altgr
grave 0x29
asciitilde 0x29 shift
Arabic_thal 0x29 altgr
Arabic_shadda 0x29 shift altgr
backslash 0x2b
bar 0x2b shift
less 0x2b altgr
greater 0x2b shift altgr
Arabic_hamzaonyeh 0x2c altgr
asciitilde 0x2c shift altgr
Arabic_hamza 0x2d altgr
Arabic_sukun 0x2d shift altgr
Arabic_hamzaonwaw 0x2e altgr
Arabic_kasra 0x2e shift altgr
Arabic_ra 0x2f altgr
Arabic_kasratan 0x2f shift altgr
UFEFB 0x30 altgr
UFEF5 0x30 shift altgr
Arabic_alefmaksura 0x31 altgr
Arabic_maddaonalef 0x31 shift altgr
Arabic_tehmarbuta 0x32 altgr
apostrophe 0x32 shift altgr
comma 0x33
less 0x33 shift
Arabic_waw 0x33 altgr
period 0x34
greater 0x34 shift
Arabic_zain 0x34 altgr
slash 0x35
question 0x35 shift
Arabic_zah 0x35 altgr
Arabic_question_mark 0x35 shift altgr

157
keymaps/common Normal file
View File

@ -0,0 +1,157 @@
include modifiers
#
# Top row
#
1 0x2
2 0x3
3 0x4
4 0x5
5 0x6
6 0x7
7 0x8
8 0x9
9 0xa
0 0xb
BackSpace 0xe
#
# QWERTY first row
#
Tab 0xf localstate
ISO_Left_Tab 0xf shift
q 0x10 addupper
w 0x11 addupper
e 0x12 addupper
r 0x13 addupper
t 0x14 addupper
y 0x15 addupper
u 0x16 addupper
i 0x17 addupper
o 0x18 addupper
p 0x19 addupper
#
# QWERTY second row
#
a 0x1e addupper
s 0x1f addupper
d 0x20 addupper
f 0x21 addupper
g 0x22 addupper
h 0x23 addupper
j 0x24 addupper
k 0x25 addupper
l 0x26 addupper
Return 0x1c localstate
#
# QWERTY third row
#
z 0x2c addupper
x 0x2d addupper
c 0x2e addupper
v 0x2f addupper
b 0x30 addupper
n 0x31 addupper
m 0x32 addupper
space 0x39 localstate
less 0x56
greater 0x56 shift
bar 0x56 altgr
brokenbar 0x56 shift altgr
#
# Esc and Function keys
#
Escape 0x1 localstate
F1 0x3b localstate
F2 0x3c localstate
F3 0x3d localstate
F4 0x3e localstate
F5 0x3f localstate
F6 0x40 localstate
F7 0x41 localstate
F8 0x42 localstate
F9 0x43 localstate
F10 0x44 localstate
F11 0x57 localstate
F12 0x58 localstate
# Printscreen, Scrollock and Pause
# Printscreen really requires four scancodes (0xe0, 0x2a, 0xe0, 0x37),
# but (0xe0, 0x37) seems to work.
Print 0xb7 localstate
Sys_Req 0xb7 localstate
Execute 0xb7 localstate
Scroll_Lock 0x46
#
# Insert - PgDown
#
Insert 0xd2 localstate
Delete 0xd3 localstate
Home 0xc7 localstate
End 0xcf localstate
Page_Up 0xc9 localstate
Page_Down 0xd1 localstate
#
# Arrow keys
#
Left 0xcb localstate
Up 0xc8 localstate
Down 0xd0 localstate
Right 0xcd localstate
#
# Numpad
#
Num_Lock 0x45
KP_Divide 0xb5
KP_Multiply 0x37
KP_Subtract 0x4a
KP_Add 0x4e
KP_Enter 0x9c
KP_Decimal 0x53 numlock
KP_Separator 0x53 numlock
KP_Delete 0x53
KP_0 0x52 numlock
KP_Insert 0x52
KP_1 0x4f numlock
KP_End 0x4f
KP_2 0x50 numlock
KP_Down 0x50
KP_3 0x51 numlock
KP_Next 0x51
KP_4 0x4b numlock
KP_Left 0x4b
KP_5 0x4c numlock
KP_Begin 0x4c
KP_6 0x4d numlock
KP_Right 0x4d
KP_7 0x47 numlock
KP_Home 0x47
KP_8 0x48 numlock
KP_Up 0x48
KP_9 0x49 numlock
KP_Prior 0x49
Caps_Lock 0x3a
#
# Inhibited keys
#
Multi_key 0x0 inhibit

120
keymaps/da Normal file
View File

@ -0,0 +1,120 @@
# generated from XKB map dk
include common
map 0x406
exclam 0x02 shift
exclamdown 0x02 altgr
onesuperior 0x02 shift altgr
quotedbl 0x03 shift
at 0x03 altgr
twosuperior 0x03 shift altgr
numbersign 0x04 shift
sterling 0x04 altgr
threesuperior 0x04 shift altgr
currency 0x05 shift
dollar 0x05 altgr
onequarter 0x05 shift altgr
percent 0x06 shift
onehalf 0x06 altgr
cent 0x06 shift altgr
ampersand 0x07 shift
yen 0x07 altgr
fiveeighths 0x07 shift altgr
slash 0x08 shift
braceleft 0x08 altgr
division 0x08 shift altgr
parenleft 0x09 shift
bracketleft 0x09 altgr
guillemotleft 0x09 shift altgr
parenright 0x0a shift
bracketright 0x0a altgr
guillemotright 0x0a shift altgr
equal 0x0b shift
braceright 0x0b altgr
degree 0x0b shift altgr
plus 0x0c
question 0x0c shift
plusminus 0x0c altgr
questiondown 0x0c shift altgr
dead_acute 0x0d
dead_grave 0x0d shift
bar 0x0d altgr
brokenbar 0x0d shift altgr
Greek_OMEGA 0x10 shift altgr
lstroke 0x11 altgr
Lstroke 0x11 shift altgr
EuroSign 0x12 altgr
cent 0x12 shift altgr
registered 0x13 altgr
thorn 0x14 altgr
THORN 0x14 shift altgr
leftarrow 0x15 altgr
yen 0x15 shift altgr
downarrow 0x16 altgr
uparrow 0x16 shift altgr
rightarrow 0x17 altgr
idotless 0x17 shift altgr
oe 0x18 altgr
OE 0x18 shift altgr
thorn 0x19 altgr
THORN 0x19 shift altgr
aring 0x1a
Aring 0x1a shift
dead_diaeresis 0x1a altgr
dead_abovering 0x1a shift altgr
dead_diaeresis 0x1b
dead_circumflex 0x1b shift
dead_tilde 0x1b altgr
dead_caron 0x1b shift altgr
ordfeminine 0x1e altgr
masculine 0x1e shift altgr
ssharp 0x1f altgr
section 0x1f shift altgr
eth 0x20 altgr
ETH 0x20 shift altgr
dstroke 0x21 altgr
ordfeminine 0x21 shift altgr
eng 0x22 altgr
ENG 0x22 shift altgr
hstroke 0x23 altgr
Hstroke 0x23 shift altgr
kra 0x25 altgr
lstroke 0x26 altgr
Lstroke 0x26 shift altgr
ae 0x27
AE 0x27 shift
oslash 0x28
Ooblique 0x28 shift
dead_caron 0x28 shift altgr
onehalf 0x29
section 0x29 shift
threequarters 0x29 altgr
paragraph 0x29 shift altgr
apostrophe 0x2b
asterisk 0x2b shift
dead_doubleacute 0x2b altgr
multiply 0x2b shift altgr
guillemotleft 0x2c altgr
guillemotright 0x2d altgr
copyright 0x2e altgr
leftdoublequotemark 0x2f altgr
grave 0x2f shift altgr
rightdoublequotemark 0x30 altgr
mu 0x32 altgr
masculine 0x32 shift altgr
comma 0x33
semicolon 0x33 shift
dead_cedilla 0x33 altgr
dead_ogonek 0x33 shift altgr
period 0x34
colon 0x34 shift
periodcentered 0x34 altgr
dead_abovedot 0x34 shift altgr
minus 0x35
underscore 0x35 shift
hyphen 0x35 altgr
macron 0x35 shift altgr
nobreakspace 0x39 altgr
less 0x56
greater 0x56 shift
backslash 0x56 altgr
notsign 0x56 shift altgr

114
keymaps/de Normal file
View File

@ -0,0 +1,114 @@
# generated from XKB map de
include common
map 0x407
exclam 0x02 shift
onesuperior 0x02 altgr
exclamdown 0x02 shift altgr
quotedbl 0x03 shift
twosuperior 0x03 altgr
oneeighth 0x03 shift altgr
section 0x04 shift
threesuperior 0x04 altgr
sterling 0x04 shift altgr
dollar 0x05 shift
onequarter 0x05 altgr
currency 0x05 shift altgr
percent 0x06 shift
onehalf 0x06 altgr
threeeighths 0x06 shift altgr
ampersand 0x07 shift
threequarters 0x07 altgr
fiveeighths 0x07 shift altgr
slash 0x08 shift
braceleft 0x08 altgr
seveneighths 0x08 shift altgr
parenleft 0x09 shift
bracketleft 0x09 altgr
trademark 0x09 shift altgr
parenright 0x0a shift
bracketright 0x0a altgr
plusminus 0x0a shift altgr
equal 0x0b shift
braceright 0x0b altgr
ssharp 0x0c
question 0x0c shift
backslash 0x0c altgr
questiondown 0x0c shift altgr
acute 0x0d
dead_acute 0x0d
grave 0x0d shift
dead_grave 0x0d shift
dead_cedilla 0x0d altgr
dead_ogonek 0x0d shift altgr
at 0x10 altgr
Greek_OMEGA 0x10 shift altgr
EuroSign 0x12 altgr
paragraph 0x13 altgr
registered 0x13 shift altgr
tslash 0x14 altgr
Tslash 0x14 shift altgr
z 0x15 addupper
leftarrow 0x15 altgr
yen 0x15 shift altgr
downarrow 0x16 altgr
uparrow 0x16 shift altgr
rightarrow 0x17 altgr
idotless 0x17 shift altgr
oslash 0x18 altgr
Ooblique 0x18 shift altgr
thorn 0x19 altgr
THORN 0x19 shift altgr
udiaeresis 0x1a
Udiaeresis 0x1a shift
dead_diaeresis 0x1a altgr
dead_abovering 0x1a shift altgr
plus 0x1b
asterisk 0x1b shift
asciitilde 0x1b altgr
dead_tilde 0x1b altgr
dead_macron 0x1b shift altgr
ae 0x1e altgr
AE 0x1e shift altgr
eth 0x20 altgr
ETH 0x20 shift altgr
dstroke 0x21 altgr
ordfeminine 0x21 shift altgr
eng 0x22 altgr
ENG 0x22 shift altgr
hstroke 0x23 altgr
Hstroke 0x23 shift altgr
kra 0x25 altgr
odiaeresis 0x27
Odiaeresis 0x27 shift
dead_doubleacute 0x27 altgr
adiaeresis 0x28
Adiaeresis 0x28 shift
dead_caron 0x28 shift altgr
asciicircum 0x29
dead_circumflex 0x29
degree 0x29 shift
notsign 0x29 altgr
numbersign 0x2b
apostrophe 0x2b shift
dead_breve 0x2b shift altgr
y 0x2c addupper
guillemotleft 0x2c altgr
guillemotright 0x2d altgr
cent 0x2e altgr
copyright 0x2e shift altgr
leftdoublequotemark 0x2f altgr
rightdoublequotemark 0x30 altgr
mu 0x32 altgr
masculine 0x32 shift altgr
comma 0x33
semicolon 0x33 shift
horizconnector 0x33 altgr
multiply 0x33 shift altgr
period 0x34
colon 0x34 shift
periodcentered 0x34 altgr
division 0x34 shift altgr
minus 0x35
underscore 0x35 shift
dead_belowdot 0x35 altgr
dead_abovedot 0x35 shift altgr

169
keymaps/de-ch Normal file
View File

@ -0,0 +1,169 @@
# rdesktop Swiss-German (de-ch) keymap file
# 2003-06-03 by noldi@tristar.ch
#
include common
map 0x00000807
#
# Scan Code 1
section 0x29
degree 0x29 shift
notsign 0x29 altgr inhibit
#
# Scan Code 2
plus 0x2 shift
brokenbar 0x02 altgr
#
# Scan Code 3
quotedbl 0x03 shift
at 0x03 altgr
#
# Scan Code 4
asterisk 0x04 shift
numbersign 0x04 altgr
#
# Scan Code 5
ccedilla 0x05 shift
onequarter 0x05 altgr inhibit
#
# Scan Code 6
percent 0x06 shift
onehalf 0x06 altgr inhibit
#
# Scan Code 7
ampersand 0x07 shift
notsign 0x07 altgr
#
# Scan Code 8
slash 0x08 shift
bar 0x08 altgr
#
# Scan Code 9
parenleft 0x09 shift
cent 0x09 altgr
#
# Scan Code 10
parenright 0x0a shift
#
# Scan Code 11
equal 0x0b shift
braceright 0x0b altgr inhibit
#
# Scan Code 12
apostrophe 0x0c
question 0x0c shift
dead_acute 0x0c altgr
#
# Scan Code 13
dead_circumflex 0x0d
dead_grave 0x0d shift
dead_tilde 0x0d altgr
#
# Scan Code 19
EuroSign 0x12 altgr
#
# Scan Code 22
z 0x15 addupper
#
# Scan Code 27
udiaeresis 0x1a
egrave 0x1a shift
bracketleft 0x1a altgr
#
# Scan Code 28
dead_diaeresis 0x1b
exclam 0x1b shift
bracketright 0x1b altgr
#
# Scan Code 40
odiaeresis 0x27
eacute 0x27 shift
#
# Scan Code 41
adiaeresis 0x28
agrave 0x28 shift
braceleft 0x28 altgr
#
# Scan Code 42 (only on international keyboards)
dollar 0x2b
sterling 0x2b shift
braceright 0x2b altgr
#
# Scan Code 45 (only on international keyboards)
backslash 0x56 altgr
#
# Scan Code 46
y 0x2c addupper
#
# Scan Code 53
comma 0x33
semicolon 0x33 shift
#
# Scan Code 54
period 0x34
colon 0x34 shift
#
# Scan Code 55
minus 0x35
underscore 0x35 shift
#
# Suppress Windows unsupported AltGr keys
#
# Scan Code 17
paragraph 0x10 altgr inhibit
#
# Scan Code 21
tslash 0x14 altgr inhibit
#
# Scan Code 22
leftarrow 0x15 altgr inhibit
#
# Scan Code 23
downarrow 0x16 altgr inhibit
#
# Scan Code 24
rightarrow 0x17 altgr inhibit
#
# Scan Code 25
oslash 0x18 altgr inhibit
#
# Scan Code 26
thorn 0x19 altgr inhibit
#
# Scan Code 31
ae 0x1e altgr inhibit
#
# Scan Code 32
ssharp 0x1f altgr inhibit
#
# Scan Code 33
eth 0x20 altgr inhibit
#
# Scan Code 34
dstroke 0x21 altgr inhibit
#
# Scan Code 35
eng 0x22 altgr inhibit
#
# Scan Code 36
hstroke 0x23 altgr inhibit
#
# Scan Code 38
kra 0x25 altgr inhibit
#
# Scan Code 39
lstroke 0x26 altgr inhibit
#
# Scan Code 46
guillemotleft 0x2c altgr inhibit
#
# Scan Code 47
guillemotright 0x2d altgr inhibit
#
# Scan Code 49
leftdoublequotemark 0x2f altgr inhibit
#
# Scan Code 50
rightdoublequotemark 0x30 altgr inhibit
#
# Scan Code 52
mu 0x32 altgr inhibit

119
keymaps/en-gb Normal file
View File

@ -0,0 +1,119 @@
# generated from XKB map gb
include common
map 0x809
exclam 0x02 shift
onesuperior 0x02 altgr
exclamdown 0x02 shift altgr
quotedbl 0x03 shift
twosuperior 0x03 altgr
oneeighth 0x03 shift altgr
sterling 0x04 shift
threesuperior 0x04 altgr
dollar 0x05 shift
EuroSign 0x05 altgr
percent 0x06 shift
onehalf 0x06 altgr
threeeighths 0x06 shift altgr
asciicircum 0x07 shift
threequarters 0x07 altgr
fiveeighths 0x07 shift altgr
ampersand 0x08 shift
braceleft 0x08 altgr
seveneighths 0x08 shift altgr
asterisk 0x09 shift
bracketleft 0x09 altgr
trademark 0x09 shift altgr
parenleft 0x0a shift
bracketright 0x0a altgr
plusminus 0x0a shift altgr
parenright 0x0b shift
braceright 0x0b altgr
degree 0x0b shift altgr
minus 0x0c
underscore 0x0c shift
backslash 0x0c altgr
questiondown 0x0c shift altgr
equal 0x0d
plus 0x0d shift
dead_cedilla 0x0d altgr
dead_ogonek 0x0d shift altgr
at 0x10 altgr
Greek_OMEGA 0x10 shift altgr
lstroke 0x11 altgr
Lstroke 0x11 shift altgr
paragraph 0x13 altgr
registered 0x13 shift altgr
tslash 0x14 altgr
Tslash 0x14 shift altgr
leftarrow 0x15 altgr
yen 0x15 shift altgr
downarrow 0x16 altgr
uparrow 0x16 shift altgr
rightarrow 0x17 altgr
idotless 0x17 shift altgr
oslash 0x18 altgr
Ooblique 0x18 shift altgr
thorn 0x19 altgr
THORN 0x19 shift altgr
bracketleft 0x1a
braceleft 0x1a shift
dead_diaeresis 0x1a altgr
dead_abovering 0x1a shift altgr
bracketright 0x1b
braceright 0x1b shift
dead_tilde 0x1b altgr
dead_macron 0x1b shift altgr
ae 0x1e altgr
AE 0x1e shift altgr
ssharp 0x1f altgr
section 0x1f shift altgr
eth 0x20 altgr
ETH 0x20 shift altgr
dstroke 0x21 altgr
ordfeminine 0x21 shift altgr
eng 0x22 altgr
ENG 0x22 shift altgr
hstroke 0x23 altgr
Hstroke 0x23 shift altgr
kra 0x25 altgr
lstroke 0x26 altgr
Lstroke 0x26 shift altgr
semicolon 0x27
colon 0x27 shift
dead_acute 0x27 altgr
dead_doubleacute 0x27 shift altgr
apostrophe 0x28
at 0x28 shift
dead_circumflex 0x28 altgr
dead_caron 0x28 shift altgr
grave 0x29
notsign 0x29 shift
bar 0x29 altgr
numbersign 0x2b
asciitilde 0x2b shift
dead_grave 0x2b altgr
dead_breve 0x2b shift altgr
guillemotleft 0x2c altgr
less 0x2c shift altgr
guillemotright 0x2d altgr
greater 0x2d shift altgr
cent 0x2e altgr
copyright 0x2e shift altgr
leftdoublequotemark 0x2f altgr
rightdoublequotemark 0x30 altgr
mu 0x32 altgr
masculine 0x32 shift altgr
comma 0x33
less 0x33 shift
horizconnector 0x33 altgr
multiply 0x33 shift altgr
period 0x34
greater 0x34 shift
periodcentered 0x34 altgr
division 0x34 shift altgr
slash 0x35
question 0x35 shift
dead_belowdot 0x35 altgr
dead_abovedot 0x35 shift altgr
backslash 0x56
bar 0x56 shift

35
keymaps/en-us Normal file
View File

@ -0,0 +1,35 @@
# generated from XKB map us
include common
map 0x409
exclam 0x02 shift
at 0x03 shift
numbersign 0x04 shift
dollar 0x05 shift
percent 0x06 shift
asciicircum 0x07 shift
ampersand 0x08 shift
asterisk 0x09 shift
parenleft 0x0a shift
parenright 0x0b shift
minus 0x0c
underscore 0x0c shift
equal 0x0d
plus 0x0d shift
bracketleft 0x1a
braceleft 0x1a shift
bracketright 0x1b
braceright 0x1b shift
semicolon 0x27
colon 0x27 shift
apostrophe 0x28
quotedbl 0x28 shift
grave 0x29
asciitilde 0x29 shift
backslash 0x2b
bar 0x2b shift
comma 0x33
less 0x33 shift
period 0x34
greater 0x34 shift
slash 0x35
question 0x35 shift

105
keymaps/es Normal file
View File

@ -0,0 +1,105 @@
# generated from XKB map es
include common
map 0x40a
exclam 0x02 shift
bar 0x02 altgr
quotedbl 0x03 shift
at 0x03 altgr
oneeighth 0x03 shift altgr
periodcentered 0x04 shift
numbersign 0x04 altgr
sterling 0x04 shift altgr
dollar 0x05 shift
asciitilde 0x05 altgr
percent 0x06 shift
onehalf 0x06 altgr
threeeighths 0x06 shift altgr
ampersand 0x07 shift
notsign 0x07 altgr
fiveeighths 0x07 shift altgr
slash 0x08 shift
seveneighths 0x08 shift altgr
parenleft 0x09 shift
trademark 0x09 shift altgr
parenright 0x0a shift
plusminus 0x0a shift altgr
equal 0x0b shift
degree 0x0b shift altgr
apostrophe 0x0c
question 0x0c shift
exclamdown 0x0d
questiondown 0x0d shift
Greek_OMEGA 0x10 shift altgr
lstroke 0x11 altgr
Lstroke 0x11 shift altgr
EuroSign 0x12 altgr
paragraph 0x13 altgr
registered 0x13 shift altgr
tslash 0x14 altgr
Tslash 0x14 shift altgr
leftarrow 0x15 altgr
yen 0x15 shift altgr
downarrow 0x16 altgr
uparrow 0x16 shift altgr
rightarrow 0x17 altgr
idotless 0x17 shift altgr
oslash 0x18 altgr
Ooblique 0x18 shift altgr
thorn 0x19 altgr
THORN 0x19 shift altgr
dead_grave 0x1a
dead_circumflex 0x1a shift
bracketleft 0x1a altgr
dead_abovering 0x1a shift altgr
plus 0x1b
asterisk 0x1b shift
bracketright 0x1b altgr
dead_macron 0x1b shift altgr
ae 0x1e altgr
AE 0x1e shift altgr
ssharp 0x1f altgr
section 0x1f shift altgr
eth 0x20 altgr
ETH 0x20 shift altgr
dstroke 0x21 altgr
eng 0x22 altgr
ENG 0x22 shift altgr
hstroke 0x23 altgr
Hstroke 0x23 shift altgr
kra 0x25 altgr
lstroke 0x26 altgr
Lstroke 0x26 shift altgr
ntilde 0x27
Ntilde 0x27 shift
dead_doubleacute 0x27 shift altgr
dead_acute 0x28
dead_diaeresis 0x28 shift
braceleft 0x28 altgr
masculine 0x29
ordfeminine 0x29 shift
backslash 0x29 altgr
ccedilla 0x2b
Ccedilla 0x2b shift
braceright 0x2b altgr
dead_breve 0x2b shift altgr
guillemotleft 0x2c altgr
less 0x56
greater 0x56 shift
guillemotright 0x2d altgr
cent 0x2e altgr
copyright 0x2e shift altgr
leftdoublequotemark 0x2f altgr
grave 0x2f shift altgr
rightdoublequotemark 0x30 altgr
mu 0x32 altgr
comma 0x33
semicolon 0x33 shift
horizconnector 0x33 altgr
multiply 0x33 shift altgr
period 0x34
colon 0x34 shift
division 0x34 shift altgr
minus 0x35
underscore 0x35 shift
dead_belowdot 0x35 altgr
dead_abovedot 0x35 shift altgr

86
keymaps/et Normal file
View File

@ -0,0 +1,86 @@
map 0x00000425
include common
#
# Top row
#
dead_caron 0x29
dead_tilde 0x29 shift
# 1
exclam 0x2 shift
# 2
quotedbl 0x3 shift
at 0x3 altgr
# 3
numbersign 0x4 shift
sterling 0x4 altgr
# 4
currency 0x5 shift
dollar 0x5 altgr
# 5
percent 0x6 shift
# 6
ampersand 0x7 shift
# 7
slash 0x8 shift
braceleft 0x8 altgr
# 8
parenleft 0x9 shift
bracketleft 0x9 altgr
# 9
parenright 0xa shift
bracketright 0xa altgr
# 0
equal 0xb shift
braceright 0xb altgr
plus 0xc
question 0xc shift
backslash 0xc altgr
acute 0xd
dead_acute 0xd
grave 0xd shift
dead_grave 0xd shift
#
# QWERTY first row
#
EuroSign 0x12 altgr
udiaeresis 0x1a
Udiaeresis 0x1a shift
otilde 0x1b
Otilde 0x1b shift
section 0x1b altgr
#
# QWERTY second row
#
scaron 0x1f altgr
Scaron 0x1f altgr shift
odiaeresis 0x27
Odiaeresis 0x27 shift
adiaeresis 0x28
Adiaeresis 0x28 shift
asciicircum 0x28 altgr
apostrophe 0x2b
asterisk 0x2b shift
onehalf 0x2b altgr
#
# QWERTY third row
#
less 0x56
greater 0x56 shift
bar 0x56 altgr
zcaron 0x2c altgr
Zcaron 0x2c altgr shift
comma 0x33
semicolon 0x33 shift
period 0x34
colon 0x34 shift
minus 0x35
underscore 0x35 shift

124
keymaps/fi Normal file
View File

@ -0,0 +1,124 @@
# generated from XKB map se_FI
include common
map 0x40b
exclam 0x02 shift
exclamdown 0x02 altgr
onesuperior 0x02 shift altgr
quotedbl 0x03 shift
at 0x03 altgr
twosuperior 0x03 shift altgr
numbersign 0x04 shift
sterling 0x04 altgr
threesuperior 0x04 shift altgr
currency 0x05 shift
dollar 0x05 altgr
onequarter 0x05 shift altgr
percent 0x06 shift
onehalf 0x06 altgr
cent 0x06 shift altgr
ampersand 0x07 shift
yen 0x07 altgr
fiveeighths 0x07 shift altgr
slash 0x08 shift
braceleft 0x08 altgr
division 0x08 shift altgr
parenleft 0x09 shift
bracketleft 0x09 altgr
guillemotleft 0x09 shift altgr
parenright 0x0a shift
bracketright 0x0a altgr
guillemotright 0x0a shift altgr
equal 0x0b shift
braceright 0x0b altgr
degree 0x0b shift altgr
plus 0x0c
question 0x0c shift
backslash 0x0c altgr
questiondown 0x0c shift altgr
dead_acute 0x0d
dead_grave 0x0d shift
plusminus 0x0d altgr
notsign 0x0d shift altgr
at 0x10 altgr
Greek_OMEGA 0x10 shift altgr
lstroke 0x11 altgr
Lstroke 0x11 shift altgr
EuroSign 0x12 altgr
cent 0x12 shift altgr
registered 0x13 altgr
thorn 0x14 altgr
THORN 0x14 shift altgr
leftarrow 0x15 altgr
yen 0x15 shift altgr
downarrow 0x16 altgr
uparrow 0x16 shift altgr
rightarrow 0x17 altgr
idotless 0x17 shift altgr
oe 0x18 altgr
OE 0x18 shift altgr
thorn 0x19 altgr
THORN 0x19 shift altgr
aring 0x1a
Aring 0x1a shift
dead_diaeresis 0x1a altgr
dead_abovering 0x1a shift altgr
dead_diaeresis 0x1b
dead_circumflex 0x1b shift
dead_tilde 0x1b altgr
dead_caron 0x1b shift altgr
ordfeminine 0x1e altgr
masculine 0x1e shift altgr
ssharp 0x1f altgr
section 0x1f shift altgr
eth 0x20 altgr
ETH 0x20 shift altgr
dstroke 0x21 altgr
ordfeminine 0x21 shift altgr
eng 0x22 altgr
ENG 0x22 shift altgr
hstroke 0x23 altgr
Hstroke 0x23 shift altgr
kra 0x25 altgr
ampersand 0x25 shift altgr
lstroke 0x26 altgr
Lstroke 0x26 shift altgr
odiaeresis 0x27
Odiaeresis 0x27 shift
oslash 0x27 altgr
Ooblique 0x27 shift altgr
adiaeresis 0x28
Adiaeresis 0x28 shift
ae 0x28 altgr
AE 0x28 shift altgr
section 0x29
onehalf 0x29 shift
paragraph 0x29 altgr
threequarters 0x29 shift altgr
apostrophe 0x2b
asterisk 0x2b shift
acute 0x2b altgr
multiply 0x2b shift altgr
guillemotleft 0x2c altgr
less 0x2c shift altgr
guillemotright 0x2d altgr
greater 0x2d shift altgr
copyright 0x2e altgr
leftdoublequotemark 0x2f altgr
grave 0x2f shift altgr
rightdoublequotemark 0x30 altgr
apostrophe 0x30 shift altgr
mu 0x32 altgr
masculine 0x32 shift altgr
comma 0x33
semicolon 0x33 shift
dead_cedilla 0x33 altgr
dead_ogonek 0x33 shift altgr
period 0x34
colon 0x34 shift
periodcentered 0x34 altgr
dead_abovedot 0x34 shift altgr
minus 0x35
underscore 0x35 shift
hyphen 0x35 altgr
macron 0x35 shift altgr
nobreakspace 0x39 altgr

77
keymaps/fo Normal file
View File

@ -0,0 +1,77 @@
map 0x438
include common
#
# Top row
#
onehalf 0x29
section 0x29 shift
# 1
exclam 0x2 shift
# 2
quotedbl 0x3 shift
at 0x3 altgr
# 3
numbersign 0x4 shift
sterling 0x4 altgr
# 4
currency 0x5 shift
dollar 0x5 altgr
# 5
percent 0x6 shift
# 6
ampersand 0x7 shift
# 7
slash 0x8 shift
braceleft 0x8 altgr
# 8
parenleft 0x9 shift
bracketleft 0x9 altgr
# 9
parenright 0xa shift
bracketright 0xa altgr
# 0
equal 0xb shift
braceright 0xb altgr
plus 0xc
question 0xc shift
plusminus 0xc altgr
bar 0xd altgr
dead_acute 0xd
#
# QWERTY first row
#
EuroSign 0x12 altgr
aring 0x1a
Aring 0x1a shift
eth 0x1b addupper
asciitilde 0x1b altgr
#
# QWERTY second row
#
ae 0x27 addupper
oslash 0x28
Ooblique 0x28 shift
apostrophe 0x2b
asterisk 0x2b shift
#
# QWERTY third row
#
less 0x56
greater 0x56 shift
backslash 0x56 altgr
comma 0x33
semicolon 0x33 shift
period 0x34
colon 0x34 shift
minus 0x35
underscore 0x35 shift

181
keymaps/fr Normal file
View File

@ -0,0 +1,181 @@
include common
map 0x40c
#
# Top row
#
twosuperior 0x29
notsign 0x29 altgr
ampersand 0x02
1 0x02 shift
onesuperior 0x02 altgr
exclamdown 0x02 shift altgr
eacute 0x03
2 0x03 shift
asciitilde 0x03 altgr
oneeighth 0x03 shift altgr
quotedbl 0x04
3 0x04 shift
numbersign 0x04 altgr
apostrophe 0x05
4 0x05 shift
braceleft 0x05 altgr
parenleft 0x06
5 0x06 shift
bracketleft 0x06 altgr
threeeighths 0x06 shift altgr
minus 0x07
6 0x07 shift
bar 0x07 altgr
fiveeighths 0x07 shift altgr
egrave 0x08
7 0x08 shift
grave 0x08 altgr
seveneighths 0x08 shift altgr
underscore 0x09
8 0x09 shift
backslash 0x09 altgr
trademark 0x09 shift altgr
ccedilla 0x0a
9 0x0a shift
asciicircum 0x0a altgr
plusminus 0x0a shift altgr
agrave 0x0b
0 0x0b shift
at 0x0b altgr
parenright 0x0c
degree 0x0c shift
bracketright 0x0c altgr
questiondown 0x0c shift altgr
equal 0x0d
plus 0x0d shift
braceright 0x0d altgr
dead_ogonek 0x0d shift altgr
#
# AZERTY first row
#
a 0x10 addupper
ae 0x10 altgr
AE 0x10 shift altgr
z 0x11 addupper
guillemotleft 0x11 altgr
EuroSign 0x12 altgr
paragraph 0x13 altgr
registered 0x13 shift altgr
tslash 0x14 altgr
Tslash 0x14 shift altgr
leftarrow 0x15 altgr
yen 0x15 shift altgr
downarrow 0x16 altgr
uparrow 0x16 shift altgr
rightarrow 0x17 altgr
idotless 0x17 shift altgr
oslash 0x18 altgr
Ooblique 0x18 shift altgr
thorn 0x19 altgr
THORN 0x19 shift altgr
dead_circumflex 0x1a
dead_diaeresis 0x1a shift
dead_abovering 0x1a shift altgr
dollar 0x1b
sterling 0x1b shift
currency 0x1b altgr
dead_macron 0x1b shift altgr
#
# AZERTY second row
#
q 0x1e addupper
Greek_OMEGA 0x1e shift altgr
ssharp 0x1f altgr
eth 0x20 altgr
ETH 0x20 shift altgr
dstroke 0x21 altgr
ordfeminine 0x21 shift altgr
eng 0x22 altgr
ENG 0x22 shift altgr
hstroke 0x23 altgr
Hstroke 0x23 shift altgr
kra 0x25 altgr
lstroke 0x26 altgr
Lstroke 0x26 shift altgr
m 0x27 addupper
masculine 0x27 shift altgr
ugrave 0x28
percent 0x28 shift
dead_caron 0x28 shift altgr
asterisk 0x2b
mu 0x2b shift
dead_grave 0x2b altgr
dead_breve 0x2b shift altgr
#
# AZERTY third row
#
less 0x56
greater 0x56 shift
w 0x2c addupper
guillemotright 0x2d altgr
cent 0x2e altgr
copyright 0x2e shift altgr
leftdoublequotemark 0x2f altgr
rightdoublequotemark 0x30 altgr
comma 0x32
question 0x32 shift
dead_acute 0x32 altgr
dead_doubleacute 0x32 shift altgr
semicolon 0x33
period 0x33 shift
horizconnector 0x33 altgr
multiply 0x33 shift altgr
colon 0x34
slash 0x34 shift
periodcentered 0x34 altgr
division 0x34 shift altgr
exclam 0x35
section 0x35 shift
dead_belowdot 0x35 altgr
dead_abovedot 0x35 shift altgr

140
keymaps/fr-be Normal file
View File

@ -0,0 +1,140 @@
# generated from XKB map be
include common
map 0x80c
ampersand 0x02
1 0x02 shift
bar 0x02 altgr
exclamdown 0x02 shift altgr
eacute 0x03
2 0x03 shift
at 0x03 altgr
oneeighth 0x03 shift altgr
quotedbl 0x04
3 0x04 shift
numbersign 0x04 altgr
sterling 0x04 shift altgr
apostrophe 0x05
4 0x05 shift
onequarter 0x05 altgr
dollar 0x05 shift altgr
parenleft 0x06
5 0x06 shift
onehalf 0x06 altgr
threeeighths 0x06 shift altgr
section 0x07
6 0x07 shift
asciicircum 0x07 altgr
fiveeighths 0x07 shift altgr
egrave 0x08
7 0x08 shift
braceleft 0x08 altgr
seveneighths 0x08 shift altgr
exclam 0x09
8 0x09 shift
bracketleft 0x09 altgr
trademark 0x09 shift altgr
ccedilla 0x0a
9 0x0a shift
braceleft 0x0a altgr
plusminus 0x0a shift altgr
agrave 0x0b
0 0x0b shift
braceright 0x0b altgr
degree 0x0b shift altgr
parenright 0x0c
degree 0x0c shift
backslash 0x0c altgr
questiondown 0x0c shift altgr
minus 0x0d
underscore 0x0d shift
dead_cedilla 0x0d altgr
dead_ogonek 0x0d shift altgr
a 0x10 addupper
at 0x10 altgr
Greek_OMEGA 0x10 shift altgr
z 0x11 addupper
lstroke 0x11 altgr
Lstroke 0x11 shift altgr
EuroSign 0x12 altgr
cent 0x12 shift altgr
paragraph 0x13 altgr
registered 0x13 shift altgr
tslash 0x14 altgr
Tslash 0x14 shift altgr
leftarrow 0x15 altgr
yen 0x15 shift altgr
downarrow 0x16 altgr
uparrow 0x16 shift altgr
rightarrow 0x17 altgr
idotless 0x17 shift altgr
oslash 0x18 altgr
Ooblique 0x18 shift altgr
thorn 0x19 altgr
THORN 0x19 shift altgr
dead_circumflex 0x1a
dead_diaeresis 0x1a shift
bracketleft 0x1a altgr
dead_abovering 0x1a shift altgr
dollar 0x1b
asterisk 0x1b shift
bracketright 0x1b altgr
dead_macron 0x1b shift altgr
q 0x1e addupper
ae 0x1e altgr
AE 0x1e shift altgr
ssharp 0x1f altgr
section 0x1f shift altgr
eth 0x20 altgr
ETH 0x20 shift altgr
dstroke 0x21 altgr
ordfeminine 0x21 shift altgr
eng 0x22 altgr
ENG 0x22 shift altgr
hstroke 0x23 altgr
Hstroke 0x23 shift altgr
kra 0x25 altgr
ampersand 0x25 shift altgr
lstroke 0x26 altgr
Lstroke 0x26 shift altgr
m 0x27 addupper
dead_acute 0x27 altgr
dead_doubleacute 0x27 shift altgr
ugrave 0x28
percent 0x28 shift
dead_acute 0x28 altgr
dead_caron 0x28 shift altgr
twosuperior 0x29
threesuperior 0x29 shift
notsign 0x29 altgr
mu 0x2b
sterling 0x2b shift
dead_grave 0x2b altgr
dead_breve 0x2b shift altgr
w 0x2c addupper
guillemotleft 0x2c altgr
less 0x2c shift altgr
guillemotright 0x2d altgr
greater 0x2d shift altgr
cent 0x2e altgr
copyright 0x2e shift altgr
leftdoublequotemark 0x2f altgr
grave 0x2f shift altgr
rightdoublequotemark 0x30 altgr
apostrophe 0x30 shift altgr
comma 0x32
question 0x32 shift
dead_cedilla 0x32 altgr
masculine 0x32 shift altgr
semicolon 0x33
period 0x33 shift
horizconnector 0x33 altgr
multiply 0x33 shift altgr
colon 0x34
slash 0x34 shift
periodcentered 0x34 altgr
division 0x34 shift altgr
equal 0x35
plus 0x35 shift
dead_tilde 0x35 altgr
dead_abovedot 0x35 shift altgr
backslash 0x56 altgr

50
keymaps/fr-ca Normal file
View File

@ -0,0 +1,50 @@
# Canadian French
# By Simon Germain
include common
map 0xc0c
backslash 0x29 altgr
plusminus 0x2 altgr
at 0x3 altgr
sterling 0x4 altgr
cent 0x5 altgr
currency 0x6 altgr
notsign 0x7 altgr
bar 0x29 shift
twosuperior 0x9 altgr
threesuperior 0xa altgr
onequarter 0xb altgr
onehalf 0xc altgr
threequarters 0xd altgr
section 0x18 altgr
paragraph 0x19 altgr
bracketleft 0x1a altgr
bracketright 0x1b altgr
asciitilde 0x27 altgr
braceleft 0x28 altgr
braceright 0x2b altgr
less 0x2b
greater 0x2b shift
guillemotleft 0x56
guillemotright 0x56 shift
degree 0x56 altgr
mu 0x32 altgr
eacute 0x35
dead_acute 0x35 altgr
dead_grave 0x28
dead_circumflex 0x1a
dead_circumflex 0x1a shift
dead_cedilla 0x1b
dead_diaeresis 0x1b shift
exclam 0x2 shift
quotedbl 0x3 shift
slash 0x4 shift
dollar 0x5 shift
percent 0x6 shift
question 0x7 shift
ampersand 0x8 shift
asterisk 0x9 shift
parenleft 0xa shift
parenright 0xb shift
underscore 0xc shift
plus 0xd shift

114
keymaps/fr-ch Normal file
View File

@ -0,0 +1,114 @@
# generated from XKB map fr_CH
include common
map 0x100c
exclam 0x02 shift
onesuperior 0x02 altgr
exclamdown 0x02 shift altgr
quotedbl 0x03 shift
twosuperior 0x03 altgr
oneeighth 0x03 shift altgr
section 0x04 shift
threesuperior 0x04 altgr
sterling 0x04 shift altgr
dollar 0x05 shift
onequarter 0x05 altgr
currency 0x05 shift altgr
percent 0x06 shift
onehalf 0x06 altgr
threeeighths 0x06 shift altgr
ampersand 0x07 shift
threequarters 0x07 altgr
fiveeighths 0x07 shift altgr
slash 0x08 shift
braceleft 0x08 altgr
seveneighths 0x08 shift altgr
parenleft 0x09 shift
bracketleft 0x09 altgr
trademark 0x09 shift altgr
parenright 0x0a shift
bracketright 0x0a altgr
plusminus 0x0a shift altgr
equal 0x0b shift
braceright 0x0b altgr
ssharp 0x0c
question 0x0c shift
backslash 0x0c altgr
questiondown 0x0c shift altgr
acute 0x0d
dead_acute 0x0d
grave 0x0d shift
dead_grave 0x0d shift
dead_cedilla 0x0d altgr
dead_ogonek 0x0d shift altgr
at 0x10 altgr
Greek_OMEGA 0x10 shift altgr
EuroSign 0x12 altgr
paragraph 0x13 altgr
registered 0x13 shift altgr
tslash 0x14 altgr
Tslash 0x14 shift altgr
z 0x15 addupper
leftarrow 0x15 altgr
yen 0x15 shift altgr
downarrow 0x16 altgr
uparrow 0x16 shift altgr
rightarrow 0x17 altgr
idotless 0x17 shift altgr
oslash 0x18 altgr
Ooblique 0x18 shift altgr
thorn 0x19 altgr
THORN 0x19 shift altgr
udiaeresis 0x1a
Udiaeresis 0x1a shift
dead_diaeresis 0x1a altgr
dead_abovering 0x1a shift altgr
plus 0x1b
asterisk 0x1b shift
asciitilde 0x1b altgr
dead_tilde 0x1b altgr
dead_macron 0x1b shift altgr
ae 0x1e altgr
AE 0x1e shift altgr
eth 0x20 altgr
ETH 0x20 shift altgr
dstroke 0x21 altgr
ordfeminine 0x21 shift altgr
eng 0x22 altgr
ENG 0x22 shift altgr
hstroke 0x23 altgr
Hstroke 0x23 shift altgr
kra 0x25 altgr
odiaeresis 0x27
Odiaeresis 0x27 shift
dead_doubleacute 0x27 altgr
adiaeresis 0x28
Adiaeresis 0x28 shift
dead_caron 0x28 shift altgr
asciicircum 0x29
dead_circumflex 0x29
degree 0x29 shift
notsign 0x29 altgr
numbersign 0x2b
apostrophe 0x2b shift
dead_breve 0x2b shift altgr
y 0x2c addupper
guillemotleft 0x2c altgr
guillemotright 0x2d altgr
cent 0x2e altgr
copyright 0x2e shift altgr
leftdoublequotemark 0x2f altgr
rightdoublequotemark 0x30 altgr
mu 0x32 altgr
masculine 0x32 shift altgr
comma 0x33
semicolon 0x33 shift
horizconnector 0x33 altgr
multiply 0x33 shift altgr
period 0x34
colon 0x34 shift
periodcentered 0x34 altgr
division 0x34 shift altgr
minus 0x35
underscore 0x35 shift
dead_belowdot 0x35 altgr
dead_abovedot 0x35 shift altgr

125
keymaps/hr Normal file
View File

@ -0,0 +1,125 @@
# generated from XKB map hr
include common
map 0x41a
exclam 0x02 shift
asciitilde 0x02 altgr
dead_tilde 0x02 shift altgr
quotedbl 0x03 shift
dead_caron 0x03 altgr
caron 0x03 shift altgr
numbersign 0x04 shift
asciicircum 0x04 altgr
dead_circumflex 0x04 shift altgr
dollar 0x05 shift
dead_breve 0x05 altgr
breve 0x05 shift altgr
percent 0x06 shift
degree 0x06 altgr
dead_abovering 0x06 shift altgr
ampersand 0x07 shift
dead_ogonek 0x07 altgr
ogonek 0x07 shift altgr
slash 0x08 shift
grave 0x08 altgr
dead_grave 0x08 shift altgr
parenleft 0x09 shift
dead_abovedot 0x09 altgr
abovedot 0x09 shift altgr
parenright 0x0a shift
dead_acute 0x0a altgr
apostrophe 0x0a shift altgr
equal 0x0b shift
dead_doubleacute 0x0b altgr
doubleacute 0x0b shift altgr
apostrophe 0x0c
question 0x0c shift
dead_diaeresis 0x0c altgr
diaeresis 0x0c shift altgr
plus 0x0d
asterisk 0x0d shift
dead_cedilla 0x0d altgr
cedilla 0x0d shift altgr
backslash 0x10 altgr
Greek_OMEGA 0x10 shift altgr
bar 0x11 altgr
Lstroke 0x11 shift altgr
EuroSign 0x12 altgr
paragraph 0x13 altgr
registered 0x13 shift altgr
tslash 0x14 altgr
Tslash 0x14 shift altgr
z 0x15 addupper
leftarrow 0x15 altgr
yen 0x15 shift altgr
downarrow 0x16 altgr
uparrow 0x16 shift altgr
rightarrow 0x17 altgr
idotless 0x17 shift altgr
oslash 0x18 altgr
Ooblique 0x18 shift altgr
thorn 0x19 altgr
THORN 0x19 shift altgr
scaron 0x1a
Scaron 0x1a shift
division 0x1a altgr
dead_abovering 0x1a shift altgr
dstroke 0x1b
Dstroke 0x1b shift
multiply 0x1b altgr
dead_macron 0x1b shift altgr
ae 0x1e altgr
AE 0x1e shift altgr
ssharp 0x1f altgr
section 0x1f shift altgr
eth 0x20 altgr
ETH 0x20 shift altgr
bracketleft 0x21 altgr
ordfeminine 0x21 shift altgr
bracketright 0x22 altgr
ENG 0x22 shift altgr
hstroke 0x23 altgr
Hstroke 0x23 shift altgr
lstroke 0x25 altgr
ampersand 0x25 shift altgr
Lstroke 0x26 altgr
ccaron 0x27
Ccaron 0x27 shift
dead_acute 0x27 altgr
dead_doubleacute 0x27 shift altgr
cacute 0x28
Cacute 0x28 shift
ssharp 0x28 altgr
dead_caron 0x28 shift altgr
dead_cedilla 0x29
dead_diaeresis 0x29 shift
notsign 0x29 altgr
zcaron 0x2b
Zcaron 0x2b shift
currency 0x2b altgr
dead_breve 0x2b shift altgr
y 0x2c addupper
guillemotleft 0x2c altgr
less 0x2c shift altgr
guillemotright 0x2d altgr
greater 0x2d shift altgr
cent 0x2e altgr
copyright 0x2e shift altgr
at 0x2f altgr
grave 0x2f shift altgr
braceleft 0x30 altgr
apostrophe 0x30 shift altgr
braceright 0x31 altgr
section 0x32 altgr
masculine 0x32 shift altgr
comma 0x33
semicolon 0x33 shift
horizconnector 0x33 altgr
multiply 0x33 shift altgr
period 0x34
colon 0x34 shift
periodcentered 0x34 altgr
division 0x34 shift altgr
minus 0x35
underscore 0x35 shift
dead_belowdot 0x35 altgr
dead_abovedot 0x35 shift altgr

115
keymaps/hu Normal file
View File

@ -0,0 +1,115 @@
# Hungarian keyboard layout (QWERTZ)
# Created by: The NeverGone <never@delfin.klte.hu>
include common
map 0x40e
# AltGr keys:
notsign 0x29 altgr
asciitilde 0x02 altgr
caron 0x03 altgr
asciicircum 0x04 altgr
breve 0x05 altgr
degree 0x06 altgr
ogonek 0x07 altgr
grave 0x08 altgr
abovedot 0x09 altgr
acute 0x0a altgr
doubleacute 0x0b altgr
diaeresis 0x0c altgr
cedilla 0x0d altgr
backslash 0x10 altgr
bar 0x11 altgr
EuroSign 0x12 altgr
Iacute 0x17 altgr
division 0x1a altgr
multiply 0x1b altgr
dstroke 0x1f altgr
Dstroke 0x20 altgr
bracketleft 0x21 altgr
bracketright 0x22 altgr
iacute 0x24 altgr
lstroke 0x25 altgr
Lstroke 0x26 altgr
dollar 0x27 altgr
ssharp 0x28 altgr
currency 0x2b altgr
less 0x56 altgr
greater 0x2c altgr
numbersign 0x2d altgr
ampersand 0x2e altgr
at 0x2f altgr
braceleft 0x30 altgr
braceright 0x31 altgr
semicolon 0x33 altgr
asterisk 0x35 altgr
# Shift keys:
section 0x29 shift
apostrophe 0x02 shift
quotedbl 0x03 shift
plus 0x04 shift
exclam 0x05 shift
percent 0x06 shift
slash 0x07 shift
equal 0x08 shift
parenleft 0x09 shift
parenright 0x0a shift
Odiaeresis 0x0b shift
Udiaeresis 0x0c shift
Oacute 0x0d shift
Z 0x15 shift
Odoubleacute 0x1a shift
Uacute 0x1b shift
Eacute 0x27 shift
Aacute 0x28 shift
Udoubleacute 0x2b shift
Y 0x2c shift
question 0x33 shift
colon 0x34 shift
underscore 0x35 shift
F13 0x3b shift
F14 0x3c shift
F15 0x3d shift
F16 0x3e shift
F17 0x3f shift
F18 0x40 shift
F19 0x41 shift
F20 0x42 shift
F21 0x43 shift
F22 0x44 shift
F23 0x57 shift
F24 0x58 shift
# Ctrl keys:
F25 0x3b ctrl
F26 0x3c ctrl
F27 0x3d ctrl
F28 0x3e ctrl
F29 0x3f ctrl
F30 0x40 ctrl
F31 0x41 ctrl
F32 0x42 ctrl
F33 0x43 ctrl
F34 0x44 ctrl
F35 0x57 ctrl
#NoSymbol 0x58 ctrl
0 0x29
odiaeresis 0x0b
udiaeresis 0x0c
oacute 0x0d
z 0x15
odoubleacute 0x1a
uacute 0x1b
eacute 0x27
aacute 0x28
udoubleacute 0x2b
y 0x2c
comma 0x33
period 0x34
minus 0x35

140
keymaps/is Normal file
View File

@ -0,0 +1,140 @@
# 2004-03-16 Halldór Guðmundsson and Morten Lange
# Keyboard definition file for the Icelandic keyboard
# to be used in rdesktop 1.3.x ( See rdesktop.org)
# generated from XKB map de, and changed manually
# Location for example /usr/local/share/rdesktop/keymaps/is
include common
map 0x40f
exclam 0x02 shift
onesuperior 0x02 altgr
exclamdown 0x02 shift altgr
quotedbl 0x03 shift
twosuperior 0x03 altgr
oneeighth 0x03 shift altgr
#section 0x04 shift
numbersign 0x04 shift
threesuperior 0x04 altgr
sterling 0x04 shift altgr
dollar 0x05 shift
onequarter 0x05 altgr
currency 0x05 shift altgr
percent 0x06 shift
onehalf 0x06 altgr
threeeighths 0x06 shift altgr
ampersand 0x07 shift
threequarters 0x07 altgr
fiveeighths 0x07 shift altgr
slash 0x08 shift
braceleft 0x08 altgr
seveneighths 0x08 shift altgr
parenleft 0x09 shift
bracketleft 0x09 altgr
trademark 0x09 shift altgr
parenright 0x0a shift
bracketright 0x0a altgr
plusminus 0x0a shift altgr
equal 0x0b shift
braceright 0x0b altgr
#ssharp 0x0c
odiaeresis 0x0c
#question 0x0c shift
Odiaeresis 0x0c shift
backslash 0x0c altgr
questiondown 0x0c shift altgr
#acute 0x0d
minus 0x0d
#dead_acute 0x0d
#grave 0x0d shift
#dead_grave 0x0d shift
underscore 0x0d shift
dead_cedilla 0x0d altgr
dead_ogonek 0x0d shift altgr
at 0x10 altgr
Greek_OMEGA 0x10 shift altgr
EuroSign 0x12 altgr
paragraph 0x13 altgr
registered 0x13 shift altgr
tslash 0x14 altgr
Tslash 0x14 shift altgr
#z 0x15 addupper
leftarrow 0x15 altgr
yen 0x15 shift altgr
downarrow 0x16 altgr
uparrow 0x16 shift altgr
rightarrow 0x17 altgr
idotless 0x17 shift altgr
oslash 0x18 altgr
Ooblique 0x18 shift altgr
#thorn 0x19 altgr
#THORN 0x19 shift altgr
#udiaeresis 0x1a
#Udiaeresis 0x1a shift
#dead_diaeresis 0x1a altgr
#dead_abovering 0x1a shift altgr
eth 0x1a
ETH 0x1a shift
apostrophe 0x1b
question 0x1b shift
#plus 0x1b
#asterisk 0x1b shift
asciitilde 0x1b altgr
#grave 0x1b altgr
#dead_tilde 0x1b altgr
#dead_macron 0x1b shift altgr
#ae 0x1e altgr
#AE 0x1e shift altgr
#eth 0x20 altgr
#eth 0x20
#ETH 0x20 shift altgr
#ETH 0x20 shift
dstroke 0x21 altgr
ordfeminine 0x21 shift altgr
eng 0x22 altgr
ENG 0x22 shift altgr
hstroke 0x23 altgr
Hstroke 0x23 shift altgr
kra 0x25 altgr
#adiaeresis 0x27
#Adiaeresis 0x27 shift
ae 0x27
AE 0x27 shift
dead_doubleacute 0x27 altgr
#adiaeresis 0x28
#Adiaeresis 0x28 shift
#dead_caron 0x28 shift altgr
#asciicircum 0x29
acute 0x28
dead_acute 0x28
#dead_circumflex 0x29
#degree 0x29 shift
#notsign 0x29 altgr
plus 0x2b
asterisk 0x2b shift
grave 0x2b altgr
#numbersign 0x2b
#apostrophe 0x2b shift
#dead_breve 0x2b shift altgr
#y 0x2c addupper
guillemotleft 0x2c altgr
guillemotright 0x2d altgr
cent 0x2e altgr
copyright 0x2e shift altgr
leftdoublequotemark 0x2f altgr
rightdoublequotemark 0x30 altgr
mu 0x32 altgr
masculine 0x32 shift altgr
comma 0x33
semicolon 0x33 shift
horizconnector 0x33 altgr
multiply 0x33 shift altgr
period 0x34
colon 0x34 shift
periodcentered 0x34 altgr
division 0x34 shift altgr
#minus 0x35
#underscore 0x35 shift
thorn 0x35
THORN 0x35 shift
dead_belowdot 0x35 altgr
dead_abovedot 0x35 shift altgr

115
keymaps/it Normal file
View File

@ -0,0 +1,115 @@
# generated from XKB map it
include common
map 0x410
exclam 0x02 shift
onesuperior 0x02 altgr
exclamdown 0x02 shift altgr
quotedbl 0x03 shift
twosuperior 0x03 altgr
oneeighth 0x03 shift altgr
sterling 0x04 shift
threesuperior 0x04 altgr
dollar 0x05 shift
onequarter 0x05 altgr
percent 0x06 shift
onehalf 0x06 altgr
threeeighths 0x06 shift altgr
ampersand 0x07 shift
threequarters 0x07 altgr
fiveeighths 0x07 shift altgr
slash 0x08 shift
braceleft 0x08 altgr
seveneighths 0x08 shift altgr
parenleft 0x09 shift
trademark 0x09 shift altgr
parenright 0x0a shift
plusminus 0x0a shift altgr
equal 0x0b shift
braceright 0x0b altgr
degree 0x0b shift altgr
apostrophe 0x0c
question 0x0c shift
grave 0x0c altgr
questiondown 0x0c shift altgr
igrave 0x0d
asciicircum 0x0d shift
asciitilde 0x0d altgr
dead_ogonek 0x0d shift altgr
at 0x10 altgr
Greek_OMEGA 0x10 shift altgr
lstroke 0x11 altgr
Lstroke 0x11 shift altgr
EuroSign 0x12 altgr
cent 0x12 shift altgr
paragraph 0x13 altgr
registered 0x13 shift altgr
tslash 0x14 altgr
Tslash 0x14 shift altgr
leftarrow 0x15 altgr
yen 0x15 shift altgr
downarrow 0x16 altgr
uparrow 0x16 shift altgr
rightarrow 0x17 altgr
idotless 0x17 shift altgr
oslash 0x18 altgr
Ooblique 0x18 shift altgr
thorn 0x19 altgr
THORN 0x19 shift altgr
egrave 0x1a
eacute 0x1a shift
bracketleft 0x1a altgr
dead_abovering 0x1a shift altgr
plus 0x1b
asterisk 0x1b shift
bracketright 0x1b altgr
dead_macron 0x1b shift altgr
ae 0x1e altgr
AE 0x1e shift altgr
ssharp 0x1f altgr
section 0x1f shift altgr
eth 0x20 altgr
ETH 0x20 shift altgr
dstroke 0x21 altgr
ordfeminine 0x21 shift altgr
eng 0x22 altgr
ENG 0x22 shift altgr
hstroke 0x23 altgr
Hstroke 0x23 shift altgr
kra 0x25 altgr
lstroke 0x26 altgr
Lstroke 0x26 shift altgr
ograve 0x27
ccedilla 0x27 shift
at 0x27 altgr
dead_doubleacute 0x27 shift altgr
agrave 0x28
degree 0x28 shift
numbersign 0x28 altgr
backslash 0x29
bar 0x29 shift
notsign 0x29 altgr
ugrave 0x2b
section 0x2b shift
dead_grave 0x2b altgr
dead_breve 0x2b shift altgr
guillemotleft 0x2c altgr
guillemotright 0x2d altgr
cent 0x2e altgr
copyright 0x2e shift altgr
leftdoublequotemark 0x2f altgr
grave 0x2f shift altgr
rightdoublequotemark 0x30 altgr
mu 0x32 altgr
masculine 0x32 shift altgr
comma 0x33
semicolon 0x33 shift
horizconnector 0x33 altgr
multiply 0x33 shift altgr
period 0x34
colon 0x34 shift
periodcentered 0x34 altgr
division 0x34 shift altgr
minus 0x35
underscore 0x35 shift
dead_belowdot 0x35 altgr
dead_abovedot 0x35 shift altgr

104
keymaps/ja Normal file
View File

@ -0,0 +1,104 @@
# generated from XKB map jp106
include common
map 0x411
exclam 0x02 shift
kana_NU 0x02 altgr
quotedbl 0x03 shift
kana_FU 0x03 altgr
numbersign 0x04 shift
kana_A 0x04 altgr
kana_a 0x04 shift altgr
dollar 0x05 shift
kana_U 0x05 altgr
kana_u 0x05 shift altgr
percent 0x06 shift
kana_E 0x06 altgr
kana_e 0x06 shift altgr
ampersand 0x07 shift
kana_O 0x07 altgr
kana_o 0x07 shift altgr
apostrophe 0x08 shift
kana_YA 0x08 altgr
kana_ya 0x08 shift altgr
parenleft 0x09 shift
kana_YU 0x09 altgr
kana_yu 0x09 shift altgr
parenright 0x0a shift
kana_YO 0x0a altgr
kana_yo 0x0a shift altgr
asciitilde 0x0b shift
kana_WA 0x0b altgr
kana_WO 0x0b shift altgr
minus 0x0c
equal 0x0c shift
kana_HO 0x0c altgr
asciicircum 0x0d
asciitilde 0x0d shift
kana_HE 0x0d altgr
kana_TA 0x10 altgr
kana_TE 0x11 altgr
kana_I 0x12 altgr
kana_i 0x12 shift altgr
kana_SU 0x13 altgr
kana_KA 0x14 altgr
kana_N 0x15 altgr
kana_NA 0x16 altgr
kana_NI 0x17 altgr
kana_RA 0x18 altgr
kana_SE 0x19 altgr
at 0x1a
grave 0x1a shift
voicedsound 0x1a altgr
bracketleft 0x1b
braceleft 0x1b shift
semivoicedsound 0x1b altgr
kana_openingbracket 0x1b shift altgr
kana_CHI 0x1e altgr
kana_TO 0x1f altgr
kana_SHI 0x20 altgr
kana_HA 0x21 altgr
kana_KI 0x22 altgr
kana_KU 0x23 altgr
kana_MA 0x24 altgr
kana_NO 0x25 altgr
kana_RI 0x26 altgr
semicolon 0x27
plus 0x27 shift
kana_RE 0x27 altgr
colon 0x28
asterisk 0x28 shift
kana_KE 0x28 altgr
Zenkaku_Hankaku 0x29
bracketright 0x2b
braceright 0x2b shift
kana_MU 0x2b altgr
kana_closingbracket 0x2b shift altgr
kana_TSU 0x2c altgr
kana_tsu 0x2c shift altgr
kana_SA 0x2d altgr
kana_SO 0x2e altgr
kana_HI 0x2f altgr
kana_KO 0x30 altgr
kana_MI 0x31 altgr
kana_MO 0x32 altgr
comma 0x33
less 0x33 shift
kana_NE 0x33 altgr
kana_comma 0x33 shift altgr
period 0x34
greater 0x34 shift
kana_RU 0x34 altgr
kana_fullstop 0x34 shift altgr
slash 0x35
question 0x35 shift
kana_ME 0x35 altgr
kana_conjunctive 0x35 shift altgr
Eisu_toggle 0x3a shift
Execute 0x54 shift
Kanji 0x70
backslash 0x73
bar 0x7d shift
underscore 0x73 shift
Henkan_Mode 0x79
Katakana 0x70
Muhenkan 0x7b

57
keymaps/lt Normal file
View File

@ -0,0 +1,57 @@
# generated from XKB map lt
include common
map 0x427
exclam 0x02 shift
aogonek 0x02 altgr
Aogonek 0x02 shift altgr
at 0x03 shift
ccaron 0x03 altgr
Ccaron 0x03 shift altgr
numbersign 0x04 shift
eogonek 0x04 altgr
Eogonek 0x04 shift altgr
dollar 0x05 shift
eabovedot 0x05 altgr
Eabovedot 0x05 shift altgr
percent 0x06 shift
iogonek 0x06 altgr
Iogonek 0x06 shift altgr
asciicircum 0x07 shift
scaron 0x07 altgr
Scaron 0x07 shift altgr
ampersand 0x08 shift
uogonek 0x08 altgr
Uogonek 0x08 shift altgr
asterisk 0x09 shift
umacron 0x09 altgr
Umacron 0x09 shift altgr
parenleft 0x0a shift
doublelowquotemark 0x0a altgr
parenright 0x0b shift
leftdoublequotemark 0x0b altgr
minus 0x0c
underscore 0x0c shift
equal 0x0d
plus 0x0d shift
zcaron 0x0d altgr
Zcaron 0x0d shift altgr
bracketleft 0x1a
braceleft 0x1a shift
bracketright 0x1b
braceright 0x1b shift
semicolon 0x27
colon 0x27 shift
apostrophe 0x28
quotedbl 0x28 shift
grave 0x29
asciitilde 0x29 shift
backslash 0x2b
bar 0x2b shift
comma 0x33
less 0x33 shift
period 0x34
greater 0x34 shift
slash 0x35
question 0x35 shift
endash 0x56
EuroSign 0x56 shift

128
keymaps/lv Normal file
View File

@ -0,0 +1,128 @@
# generated from XKB map lv
include common
map 0x426
exclam 0x02 shift
onesuperior 0x02 altgr
exclamdown 0x02 shift altgr
at 0x03 shift
twosuperior 0x03 altgr
oneeighth 0x03 shift altgr
numbersign 0x04 shift
threesuperior 0x04 altgr
sterling 0x04 shift altgr
dollar 0x05 shift
EuroSign 0x05 altgr
cent 0x05 shift altgr
percent 0x06 shift
onehalf 0x06 altgr
threeeighths 0x06 shift altgr
asciicircum 0x07 shift
threequarters 0x07 altgr
fiveeighths 0x07 shift altgr
ampersand 0x08 shift
braceleft 0x08 altgr
seveneighths 0x08 shift altgr
asterisk 0x09 shift
bracketleft 0x09 altgr
trademark 0x09 shift altgr
parenleft 0x0a shift
bracketright 0x0a altgr
plusminus 0x0a shift altgr
parenright 0x0b shift
braceright 0x0b altgr
degree 0x0b shift altgr
minus 0x0c
underscore 0x0c shift
backslash 0x0c altgr
questiondown 0x0c shift altgr
equal 0x0d
plus 0x0d shift
dead_cedilla 0x0d altgr
dead_ogonek 0x0d shift altgr
at 0x10 altgr
Greek_OMEGA 0x10 shift altgr
lstroke 0x11 altgr
Lstroke 0x11 shift altgr
emacron 0x12 altgr
Emacron 0x12 shift altgr
rcedilla 0x13 altgr
Rcedilla 0x13 shift altgr
tslash 0x14 altgr
Tslash 0x14 shift altgr
leftarrow 0x15 altgr
yen 0x15 shift altgr
umacron 0x16 altgr
Umacron 0x16 shift altgr
imacron 0x17 altgr
Imacron 0x17 shift altgr
omacron 0x18 altgr
Omacron 0x18 shift altgr
thorn 0x19 altgr
THORN 0x19 shift altgr
bracketleft 0x1a
braceleft 0x1a shift
dead_diaeresis 0x1a altgr
dead_abovering 0x1a shift altgr
bracketright 0x1b
braceright 0x1b shift
dead_tilde 0x1b altgr
dead_macron 0x1b shift altgr
ISO_Next_Group 0x1c shift
amacron 0x1e altgr
Amacron 0x1e shift altgr
scaron 0x1f altgr
Scaron 0x1f shift altgr
eth 0x20 altgr
ETH 0x20 shift altgr
dstroke 0x21 altgr
ordfeminine 0x21 shift altgr
gcedilla 0x22 altgr
Gcedilla 0x22 shift altgr
hstroke 0x23 altgr
Hstroke 0x23 shift altgr
kcedilla 0x25 altgr
Kcedilla 0x25 shift altgr
lcedilla 0x26 altgr
Lcedilla 0x26 shift altgr
semicolon 0x27
colon 0x27 shift
dead_acute 0x27 altgr
dead_doubleacute 0x27 shift altgr
apostrophe 0x28
quotedbl 0x28 shift
leftdoublequotemark 0x28 altgr
doublelowquotemark 0x28 shift altgr
grave 0x29
asciitilde 0x29 shift
notsign 0x29 altgr
backslash 0x2b
bar 0x2b shift
dead_grave 0x2b altgr
dead_breve 0x2b shift altgr
zcaron 0x2c altgr
Zcaron 0x2c shift altgr
guillemotright 0x2d altgr
greater 0x2d shift altgr
ccaron 0x2e altgr
Ccaron 0x2e shift altgr
leftdoublequotemark 0x2f altgr
grave 0x2f shift altgr
rightdoublequotemark 0x30 altgr
apostrophe 0x30 shift altgr
ncedilla 0x31 altgr
Ncedilla 0x31 shift altgr
mu 0x32 altgr
masculine 0x32 shift altgr
comma 0x33
less 0x33 shift
horizconnector 0x33 altgr
multiply 0x33 shift altgr
period 0x34
greater 0x34 shift
periodcentered 0x34 altgr
division 0x34 shift altgr
slash 0x35
question 0x35 shift
dead_belowdot 0x35 altgr
dead_abovedot 0x35 shift altgr
nobreakspace 0x39 altgr

101
keymaps/mk Normal file
View File

@ -0,0 +1,101 @@
# generated from XKB map mk
include common
map 0x42f
exclam 0x02 shift
at 0x03 shift
doublelowquotemark 0x03 shift altgr
numbersign 0x04 shift
leftdoublequotemark 0x04 shift altgr
dollar 0x05 shift
percent 0x06 shift
asciicircum 0x07 shift
ampersand 0x08 shift
asterisk 0x09 shift
parenleft 0x0a shift
parenright 0x0b shift
minus 0x0c
underscore 0x0c shift
equal 0x0d
plus 0x0d shift
Cyrillic_lje 0x10 altgr
Cyrillic_LJE 0x10 shift altgr
Cyrillic_nje 0x11 altgr
Cyrillic_NJE 0x11 shift altgr
Cyrillic_ie 0x12 altgr
Cyrillic_IE 0x12 shift altgr
Cyrillic_er 0x13 altgr
Cyrillic_ER 0x13 shift altgr
Cyrillic_te 0x14 altgr
Cyrillic_TE 0x14 shift altgr
Macedonia_dse 0x15 altgr
Macedonia_DSE 0x15 shift altgr
Cyrillic_u 0x16 altgr
Cyrillic_U 0x16 shift altgr
Cyrillic_i 0x17 altgr
Cyrillic_I 0x17 shift altgr
Cyrillic_o 0x18 altgr
Cyrillic_O 0x18 shift altgr
Cyrillic_pe 0x19 altgr
Cyrillic_PE 0x19 shift altgr
bracketleft 0x1a
braceleft 0x1a shift
Cyrillic_sha 0x1a altgr
Cyrillic_SHA 0x1a shift altgr
bracketright 0x1b
braceright 0x1b shift
Macedonia_gje 0x1b altgr
Macedonia_GJE 0x1b shift altgr
Cyrillic_a 0x1e altgr
Cyrillic_A 0x1e shift altgr
Cyrillic_es 0x1f altgr
Cyrillic_ES 0x1f shift altgr
Cyrillic_de 0x20 altgr
Cyrillic_DE 0x20 shift altgr
Cyrillic_ef 0x21 altgr
Cyrillic_EF 0x21 shift altgr
Cyrillic_ghe 0x22 altgr
Cyrillic_GHE 0x22 shift altgr
Cyrillic_ha 0x23 altgr
Cyrillic_HA 0x23 shift altgr
Cyrillic_je 0x24 altgr
Cyrillic_JE 0x24 shift altgr
Cyrillic_ka 0x25 altgr
Cyrillic_KA 0x25 shift altgr
Cyrillic_el 0x26 altgr
Cyrillic_EL 0x26 shift altgr
semicolon 0x27
colon 0x27 shift
Cyrillic_che 0x27 altgr
Cyrillic_CHE 0x27 shift altgr
apostrophe 0x28
quotedbl 0x28 shift
Macedonia_kje 0x28 altgr
Macedonia_KJE 0x28 shift altgr
grave 0x29
asciitilde 0x29 shift
backslash 0x2b
bar 0x2b shift
Cyrillic_zhe 0x2b altgr
Cyrillic_ZHE 0x2b shift altgr
Cyrillic_ze 0x2c altgr
Cyrillic_ZE 0x2c shift altgr
Cyrillic_dzhe 0x2d altgr
Cyrillic_DZHE 0x2d shift altgr
Cyrillic_tse 0x2e altgr
Cyrillic_TSE 0x2e shift altgr
Cyrillic_ve 0x2f altgr
Cyrillic_VE 0x2f shift altgr
Cyrillic_be 0x30 altgr
Cyrillic_BE 0x30 shift altgr
Cyrillic_en 0x31 altgr
Cyrillic_EN 0x31 shift altgr
Cyrillic_em 0x32 altgr
Cyrillic_EM 0x32 shift altgr
comma 0x33
less 0x33 shift
semicolon 0x33 shift altgr
period 0x34
greater 0x34 shift
colon 0x34 shift altgr
slash 0x35
question 0x35 shift

16
keymaps/modifiers Normal file
View File

@ -0,0 +1,16 @@
Shift_R 0x36
Shift_L 0x2a
Alt_R 0xb8
Mode_switch 0xb8
Alt_L 0x38
Control_R 0x9d
Control_L 0x1d
# Translate Meta, Super and Hyper to Windows keys.
# This is hardcoded. See documentation for details.
# Translate Menu to the Windows Application key.
# This one does not work either.
Menu 0xdd

60
keymaps/nl Normal file
View File

@ -0,0 +1,60 @@
# Dutch (Netherlands)
include common
map 0x413
exclam 0x02 shift
onesuperior 0x02 altgr
quotebl 0x03 shift
twosuperior 0x03 altgr
numbersign 0x04 shift
threesuperior 0x04 altgr
dollar 0x05 shift
onequarter 0x05 altgr
percent 0x06 shift
onehalf 0x06 altgr
ampersand 0x07 shift
threequarters 0x07 altgr
underscore 0x08 shift
sterling 0x08 altgr
parenleft 0x09 shift
braceleft 0x09 altgr
parenright 0x0a shift
braceright 0x0a altgr
apostrophe 0x0b shift
slash 0x0c
question 0x0c shift
backslash 0x0c altgr
degree 0x0d
dead_tilde 0x0d shift
dead_cedilla 0x0d altgr
EuroSign 0x12 altgr
paragraph 0x13 altgr
dead_diaeresis 0x1a
dead_circumflex 0x1a shift
asterisk 0x1b
bar 0x1b shift
ssharp 0x1f altgr
plus 0x27
plusminus 0x27 shift
dead_acute 0x28
dead_grave 0x28 shift
at 0x29
section 0x29 shift
notsign 0x29 altgr
less 0x2b
greater 0x2b shift
guillemotleft 0x2c altgr
guillemotright 0x2d altgr
copyright 0x2e altgr
mu 0x32 altgr
comma 0x33
semicolon 0x33 shift
period 0x34
colon 0x34 shift
periodcentered 0x34 altgr
hyphen 0x35
equal 0x35 shift
bracketright 0x56
bracketleft 0x56 shift
brokenbar 0x56 altgr

3
keymaps/nl-be Normal file
View File

@ -0,0 +1,3 @@
# Dutch (Belgium)
map 0x813
include common

119
keymaps/no Normal file
View File

@ -0,0 +1,119 @@
# generated from XKB map no
include common
map 0x414
exclam 0x02 shift
exclamdown 0x02 altgr
onesuperior 0x02 shift altgr
quotedbl 0x03 shift
at 0x03 altgr
twosuperior 0x03 shift altgr
numbersign 0x04 shift
sterling 0x04 altgr
threesuperior 0x04 shift altgr
currency 0x05 shift
dollar 0x05 altgr
onequarter 0x05 shift altgr
percent 0x06 shift
onehalf 0x06 altgr
cent 0x06 shift altgr
ampersand 0x07 shift
yen 0x07 altgr
fiveeighths 0x07 shift altgr
slash 0x08 shift
braceleft 0x08 altgr
division 0x08 shift altgr
parenleft 0x09 shift
bracketleft 0x09 altgr
guillemotleft 0x09 shift altgr
parenright 0x0a shift
bracketright 0x0a altgr
guillemotright 0x0a shift altgr
equal 0x0b shift
braceright 0x0b altgr
degree 0x0b shift altgr
plus 0x0c
question 0x0c shift
plusminus 0x0c altgr
questiondown 0x0c shift altgr
backslash 0x0d
dead_grave 0x0d shift
dead_acute 0x0d altgr
notsign 0x0d shift altgr
Greek_OMEGA 0x10 shift altgr
lstroke 0x11 altgr
Lstroke 0x11 shift altgr
EuroSign 0x12 altgr
cent 0x12 shift altgr
registered 0x13 altgr
thorn 0x14 altgr
THORN 0x14 shift altgr
leftarrow 0x15 altgr
yen 0x15 shift altgr
downarrow 0x16 altgr
uparrow 0x16 shift altgr
rightarrow 0x17 altgr
idotless 0x17 shift altgr
oe 0x18 altgr
OE 0x18 shift altgr
thorn 0x19 altgr
THORN 0x19 shift altgr
aring 0x1a
Aring 0x1a shift
dead_diaeresis 0x1a altgr
dead_abovering 0x1a shift altgr
dead_diaeresis 0x1b
dead_circumflex 0x1b shift
asciicircum 0x01b shift
dead_tilde 0x1b altgr
asciitilde 0x1b altgr
dead_caron 0x1b shift altgr
ordfeminine 0x1e altgr
masculine 0x1e shift altgr
ssharp 0x1f altgr
section 0x1f shift altgr
eth 0x20 altgr
ETH 0x20 shift altgr
dstroke 0x21 altgr
ordfeminine 0x21 shift altgr
eng 0x22 altgr
ENG 0x22 shift altgr
hstroke 0x23 altgr
Hstroke 0x23 shift altgr
kra 0x25 altgr
lstroke 0x26 altgr
Lstroke 0x26 shift altgr
oslash 0x27
Ooblique 0x27 shift
dead_doubleacute 0x27 shift altgr
ae 0x28
AE 0x28 shift
dead_caron 0x28 shift altgr
bar 0x29
section 0x29 shift
brokenbar 0x29 altgr
paragraph 0x29 shift altgr
apostrophe 0x2b
asterisk 0x2b shift
multiply 0x2b shift altgr
guillemotleft 0x2c altgr
guillemotright 0x2d altgr
copyright 0x2e altgr
leftdoublequotemark 0x2f altgr
rightdoublequotemark 0x30 altgr
mu 0x32 altgr
masculine 0x32 shift altgr
comma 0x33
semicolon 0x33 shift
dead_cedilla 0x33 altgr
dead_ogonek 0x33 shift altgr
period 0x34
colon 0x34 shift
periodcentered 0x34 altgr
dead_abovedot 0x34 shift altgr
minus 0x35
underscore 0x35 shift
hyphen 0x35 altgr
macron 0x35 shift altgr
nobreakspace 0x39 altgr
onehalf 0x56 altgr
threequarters 0x56 shift altgr

122
keymaps/pl Normal file
View File

@ -0,0 +1,122 @@
# generated from XKB map pl
include common
map 0x415
exclam 0x02 shift
onesuperior 0x02 altgr
exclamdown 0x02 shift altgr
at 0x03 shift
twosuperior 0x03 altgr
oneeighth 0x03 shift altgr
numbersign 0x04 shift
threesuperior 0x04 altgr
sterling 0x04 shift altgr
dollar 0x05 shift
onequarter 0x05 altgr
percent 0x06 shift
onehalf 0x06 altgr
threeeighths 0x06 shift altgr
asciicircum 0x07 shift
threequarters 0x07 altgr
fiveeighths 0x07 shift altgr
ampersand 0x08 shift
braceleft 0x08 altgr
seveneighths 0x08 shift altgr
asterisk 0x09 shift
bracketleft 0x09 altgr
trademark 0x09 shift altgr
parenleft 0x0a shift
bracketright 0x0a altgr
plusminus 0x0a shift altgr
parenright 0x0b shift
braceright 0x0b altgr
degree 0x0b shift altgr
minus 0x0c
underscore 0x0c shift
backslash 0x0c altgr
questiondown 0x0c shift altgr
equal 0x0d
plus 0x0d shift
dead_cedilla 0x0d altgr
dead_ogonek 0x0d shift altgr
Greek_OMEGA 0x10 shift altgr
lstroke 0x11 altgr
Lstroke 0x11 shift altgr
eogonek 0x12 altgr
Eogonek 0x12 shift altgr
paragraph 0x13 altgr
registered 0x13 shift altgr
tslash 0x14 altgr
Tslash 0x14 shift altgr
leftarrow 0x15 altgr
yen 0x15 shift altgr
EuroSign 0x16 altgr
uparrow 0x16 shift altgr
rightarrow 0x17 altgr
idotless 0x17 shift altgr
oacute 0x18 altgr
Oacute 0x18 shift altgr
thorn 0x19 altgr
THORN 0x19 shift altgr
bracketleft 0x1a
braceleft 0x1a shift
dead_diaeresis 0x1a altgr
dead_abovering 0x1a shift altgr
bracketright 0x1b
braceright 0x1b shift
dead_tilde 0x1b altgr
dead_macron 0x1b shift altgr
aogonek 0x1e altgr
Aogonek 0x1e shift altgr
sacute 0x1f altgr
Sacute 0x1f shift altgr
eth 0x20 altgr
ETH 0x20 shift altgr
dstroke 0x21 altgr
ordfeminine 0x21 shift altgr
eng 0x22 altgr
ENG 0x22 shift altgr
hstroke 0x23 altgr
Hstroke 0x23 shift altgr
kra 0x25 altgr
lstroke 0x26 altgr
Lstroke 0x26 shift altgr
semicolon 0x27
colon 0x27 shift
dead_acute 0x27 altgr
dead_doubleacute 0x27 shift altgr
apostrophe 0x28
quotedbl 0x28 shift
dead_circumflex 0x28 altgr
dead_caron 0x28 shift altgr
grave 0x29
asciitilde 0x29 shift
notsign 0x29 altgr
backslash 0x2b
bar 0x2b shift
dead_grave 0x2b altgr
dead_breve 0x2b shift altgr
zabovedot 0x2c altgr
Zabovedot 0x2c shift altgr
zacute 0x2d altgr
Zacute 0x2d shift altgr
cacute 0x2e altgr
Cacute 0x2e shift altgr
leftdoublequotemark 0x2f altgr
grave 0x2f shift altgr
rightdoublequotemark 0x30 altgr
nacute 0x31 altgr
Nacute 0x31 shift altgr
mu 0x32 altgr
masculine 0x32 shift altgr
comma 0x33
less 0x33 shift
horizconnector 0x33 altgr
multiply 0x33 shift altgr
period 0x34
greater 0x34 shift
periodcentered 0x34 altgr
division 0x34 shift altgr
slash 0x35
question 0x35 shift
dead_belowdot 0x35 altgr
dead_abovedot 0x35 shift altgr

113
keymaps/pt Normal file
View File

@ -0,0 +1,113 @@
# generated from XKB map pt
include common
map 0x816
exclam 0x02 shift
onesuperior 0x02 altgr
exclamdown 0x02 shift altgr
quotedbl 0x03 shift
at 0x03 altgr
oneeighth 0x03 shift altgr
numbersign 0x04 shift
sterling 0x04 altgr
dollar 0x05 shift
section 0x05 altgr
percent 0x06 shift
onehalf 0x06 altgr
threeeighths 0x06 shift altgr
ampersand 0x07 shift
threequarters 0x07 altgr
fiveeighths 0x07 shift altgr
slash 0x08 shift
braceleft 0x08 altgr
seveneighths 0x08 shift altgr
parenleft 0x09 shift
bracketleft 0x09 altgr
trademark 0x09 shift altgr
parenright 0x0a shift
bracketright 0x0a altgr
plusminus 0x0a shift altgr
equal 0x0b shift
braceright 0x0b altgr
degree 0x0b shift altgr
apostrophe 0x0c
question 0x0c shift
backslash 0x0c altgr
questiondown 0x0c shift altgr
guillemotleft 0x0d
guillemotright 0x0d shift
dead_cedilla 0x0d altgr
dead_ogonek 0x0d shift altgr
Greek_OMEGA 0x10 shift altgr
lstroke 0x11 altgr
Lstroke 0x11 shift altgr
EuroSign 0x12 altgr
cent 0x12 shift altgr
paragraph 0x13 altgr
registered 0x13 shift altgr
tslash 0x14 altgr
Tslash 0x14 shift altgr
leftarrow 0x15 altgr
yen 0x15 shift altgr
downarrow 0x16 altgr
uparrow 0x16 shift altgr
rightarrow 0x17 altgr
idotless 0x17 shift altgr
oslash 0x18 altgr
Ooblique 0x18 shift altgr
thorn 0x19 altgr
THORN 0x19 shift altgr
plus 0x1a
asterisk 0x1a shift
dead_diaeresis 0x1a altgr
dead_abovering 0x1a shift altgr
dead_acute 0x1b
dead_grave 0x1b shift
dead_tilde 0x1b altgr
dead_macron 0x1b shift altgr
ae 0x1e altgr
AE 0x1e shift altgr
ssharp 0x1f altgr
eth 0x20 altgr
ETH 0x20 shift altgr
dstroke 0x21 altgr
ordfeminine 0x21 shift altgr
eng 0x22 altgr
ENG 0x22 shift altgr
hstroke 0x23 altgr
Hstroke 0x23 shift altgr
kra 0x25 altgr
lstroke 0x26 altgr
Lstroke 0x26 shift altgr
ccedilla 0x27
Ccedilla 0x27 shift
dead_doubleacute 0x27 shift altgr
masculine 0x28
ordfeminine 0x28 shift
dead_circumflex 0x28 altgr
dead_caron 0x28 shift altgr
backslash 0x29
bar 0x29 shift
notsign 0x29 altgr
dead_tilde 0x2b
dead_circumflex 0x2b shift
dead_breve 0x2b shift altgr
less 0x56
greater 0x56 shift
cent 0x2e altgr
copyright 0x2e shift altgr
leftdoublequotemark 0x2f altgr
grave 0x2f shift altgr
rightdoublequotemark 0x30 altgr
mu 0x32 altgr
comma 0x33
semicolon 0x33 shift
horizconnector 0x33 altgr
multiply 0x33 shift altgr
period 0x34
colon 0x34 shift
periodcentered 0x34 altgr
division 0x34 shift altgr
minus 0x35
underscore 0x35 shift
dead_belowdot 0x35 altgr
dead_abovedot 0x35 shift altgr

69
keymaps/pt-br Normal file
View File

@ -0,0 +1,69 @@
# generated from XKB map br
include common
map 0x416
exclam 0x02 shift
onesuperior 0x02 altgr
exclamdown 0x02 shift altgr
at 0x03 shift
twosuperior 0x03 altgr
onehalf 0x03 shift altgr
numbersign 0x04 shift
threesuperior 0x04 altgr
threequarters 0x04 shift altgr
dollar 0x05 shift
sterling 0x05 altgr
onequarter 0x05 shift altgr
percent 0x06 shift
cent 0x06 altgr
dead_diaeresis 0x07 shift
notsign 0x07 altgr
diaeresis 0x07 shift altgr
ampersand 0x08 shift
braceleft 0x08 altgr
asterisk 0x09 shift
bracketleft 0x09 altgr
parenleft 0x0a shift
bracketright 0x0a altgr
parenright 0x0b shift
braceright 0x0b altgr
minus 0x0c
underscore 0x0c shift
backslash 0x0c altgr
equal 0x0d
plus 0x0d shift
section 0x0d altgr
EuroSign 0x12 altgr
registered 0x13 altgr
dead_acute 0x1a
dead_grave 0x1a shift
acute 0x1a altgr
grave 0x1a shift altgr
bracketleft 0x1b
braceleft 0x1b shift
ordfeminine 0x1b altgr
ccedilla 0x27
Ccedilla 0x27 shift
dead_tilde 0x28
dead_circumflex 0x28 shift
asciitilde 0x28 altgr
asciicircum 0x28 shift altgr
apostrophe 0x29
quotedbl 0x29 shift
bracketright 0x2b
braceright 0x2b shift
masculine 0x2b altgr
copyright 0x2e altgr
mu 0x32 altgr
comma 0x33
less 0x33 shift
period 0x34
greater 0x34 shift
semicolon 0x35
colon 0x35 shift
comma 0x53 numlock
backslash 0x56
bar 0x56 shift
slash 0x73
question 0x73 shift
degree 0x73 altgr
KP_Decimal 0x34

109
keymaps/ru Normal file
View File

@ -0,0 +1,109 @@
# generated from XKB map ru
include common
map 0x419
exclam 0x02 shift
at 0x03 shift
quotedbl 0x03 shift altgr
numbersign 0x04 shift
dollar 0x05 shift
asterisk 0x05 shift altgr
percent 0x06 shift
colon 0x06 shift altgr
asciicircum 0x07 shift
comma 0x07 shift altgr
ampersand 0x08 shift
period 0x08 shift altgr
asterisk 0x09 shift
semicolon 0x09 shift altgr
parenleft 0x0a shift
parenright 0x0b shift
minus 0x0c
underscore 0x0c shift
equal 0x0d
plus 0x0d shift
Cyrillic_shorti 0x10 altgr
Cyrillic_SHORTI 0x10 shift altgr
Cyrillic_tse 0x11 altgr
Cyrillic_TSE 0x11 shift altgr
Cyrillic_u 0x12 altgr
Cyrillic_U 0x12 shift altgr
Cyrillic_ka 0x13 altgr
Cyrillic_KA 0x13 shift altgr
Cyrillic_ie 0x14 altgr
Cyrillic_IE 0x14 shift altgr
Cyrillic_en 0x15 altgr
Cyrillic_EN 0x15 shift altgr
Cyrillic_ghe 0x16 altgr
Cyrillic_GHE 0x16 shift altgr
Cyrillic_sha 0x17 altgr
Cyrillic_SHA 0x17 shift altgr
Cyrillic_shcha 0x18 altgr
Cyrillic_SHCHA 0x18 shift altgr
Cyrillic_ze 0x19 altgr
Cyrillic_ZE 0x19 shift altgr
bracketleft 0x1a
braceleft 0x1a shift
Cyrillic_ha 0x1a altgr
Cyrillic_HA 0x1a shift altgr
bracketright 0x1b
braceright 0x1b shift
Cyrillic_hardsign 0x1b altgr
Cyrillic_HARDSIGN 0x1b shift altgr
Cyrillic_ef 0x1e altgr
Cyrillic_EF 0x1e shift altgr
Cyrillic_yeru 0x1f altgr
Cyrillic_YERU 0x1f shift altgr
Cyrillic_ve 0x20 altgr
Cyrillic_VE 0x20 shift altgr
Cyrillic_a 0x21 altgr
Cyrillic_A 0x21 shift altgr
Cyrillic_pe 0x22 altgr
Cyrillic_PE 0x22 shift altgr
Cyrillic_er 0x23 altgr
Cyrillic_ER 0x23 shift altgr
Cyrillic_o 0x24 altgr
Cyrillic_O 0x24 shift altgr
Cyrillic_el 0x25 altgr
Cyrillic_EL 0x25 shift altgr
Cyrillic_de 0x26 altgr
Cyrillic_DE 0x26 shift altgr
semicolon 0x27
colon 0x27 shift
Cyrillic_zhe 0x27 altgr
Cyrillic_ZHE 0x27 shift altgr
apostrophe 0x28
quotedbl 0x28 shift
Cyrillic_e 0x28 altgr
Cyrillic_E 0x28 shift altgr
grave 0x29
asciitilde 0x29 shift
Cyrillic_io 0x29 altgr
Cyrillic_IO 0x29 shift altgr
backslash 0x2b
bar 0x2b shift
Cyrillic_ya 0x2c altgr
Cyrillic_YA 0x2c shift altgr
Cyrillic_che 0x2d altgr
Cyrillic_CHE 0x2d shift altgr
Cyrillic_es 0x2e altgr
Cyrillic_ES 0x2e shift altgr
Cyrillic_em 0x2f altgr
Cyrillic_EM 0x2f shift altgr
Cyrillic_i 0x30 altgr
Cyrillic_I 0x30 shift altgr
Cyrillic_te 0x31 altgr
Cyrillic_TE 0x31 shift altgr
Cyrillic_softsign 0x32 altgr
Cyrillic_SOFTSIGN 0x32 shift altgr
comma 0x33
less 0x33 shift
Cyrillic_be 0x33 altgr
Cyrillic_BE 0x33 shift altgr
period 0x34
greater 0x34 shift
Cyrillic_yu 0x34 altgr
Cyrillic_YU 0x34 shift altgr
slash 0x35
question 0x35 shift
slash 0x56 altgr
bar 0x56 shift altgr

110
keymaps/sl Normal file
View File

@ -0,0 +1,110 @@
# generated from XKB map sl
include common
map 0x424
exclam 0x02 shift
asciitilde 0x02 altgr
dead_tilde 0x02 shift altgr
quotedbl 0x03 shift
dead_caron 0x03 altgr
caron 0x03 shift altgr
numbersign 0x04 shift
asciicircum 0x04 altgr
dead_circumflex 0x04 shift altgr
dollar 0x05 shift
dead_breve 0x05 altgr
breve 0x05 shift altgr
percent 0x06 shift
degree 0x06 altgr
dead_abovering 0x06 shift altgr
ampersand 0x07 shift
dead_ogonek 0x07 altgr
ogonek 0x07 shift altgr
slash 0x08 shift
grave 0x08 altgr
dead_grave 0x08 shift altgr
parenleft 0x09 shift
dead_abovedot 0x09 altgr
abovedot 0x09 shift altgr
parenright 0x0a shift
dead_acute 0x0a altgr
equal 0x0b shift
dead_doubleacute 0x0b altgr
doubleacute 0x0b shift altgr
apostrophe 0x0c
question 0x0c shift
dead_diaeresis 0x0c altgr
diaeresis 0x0c shift altgr
plus 0x0d
asterisk 0x0d shift
dead_cedilla 0x0d altgr
cedilla 0x0d shift altgr
backslash 0x10 altgr
Greek_OMEGA 0x10 shift altgr
bar 0x11 altgr
Lstroke 0x11 shift altgr
EuroSign 0x12 altgr
paragraph 0x13 altgr
registered 0x13 shift altgr
tslash 0x14 altgr
Tslash 0x14 shift altgr
z 0x15 addupper
leftarrow 0x15 altgr
yen 0x15 shift altgr
downarrow 0x16 altgr
uparrow 0x16 shift altgr
rightarrow 0x17 altgr
idotless 0x17 shift altgr
oslash 0x18 altgr
Ooblique 0x18 shift altgr
thorn 0x19 altgr
THORN 0x19 shift altgr
scaron 0x1a
Scaron 0x1a shift
division 0x1a altgr
dstroke 0x1b
Dstroke 0x1b shift
multiply 0x1b altgr
dead_macron 0x1b shift altgr
ae 0x1e altgr
AE 0x1e shift altgr
ssharp 0x1f altgr
section 0x1f shift altgr
eth 0x20 altgr
ETH 0x20 shift altgr
bracketleft 0x21 altgr
ordfeminine 0x21 shift altgr
bracketright 0x22 altgr
ENG 0x22 shift altgr
hstroke 0x23 altgr
Hstroke 0x23 shift altgr
lstroke 0x25 altgr
Lstroke 0x26 altgr
ccaron 0x27
Ccaron 0x27 shift
cacute 0x28
Cacute 0x28 shift
ssharp 0x28 altgr
dead_cedilla 0x29
notsign 0x29 altgr
zcaron 0x2b
Zcaron 0x2b shift
currency 0x2b altgr
y 0x2c addupper
guillemotleft 0x2c altgr
guillemotright 0x2d altgr
cent 0x2e altgr
copyright 0x2e shift altgr
at 0x2f altgr
braceleft 0x30 altgr
braceright 0x31 altgr
section 0x32 altgr
masculine 0x32 shift altgr
comma 0x33
semicolon 0x33 shift
horizconnector 0x33 altgr
period 0x34
colon 0x34 shift
periodcentered 0x34 altgr
minus 0x35
underscore 0x35 shift
dead_belowdot 0x35 altgr

82
keymaps/sv Normal file
View File

@ -0,0 +1,82 @@
map 0x0000041d
include common
#
# Top row
#
section 0x29
onehalf 0x29 shift
# 1
exclam 0x2 shift
# 2
quotedbl 0x3 shift
at 0x3 altgr
# 3
numbersign 0x4 shift
sterling 0x4 altgr
# 4
currency 0x5 shift
dollar 0x5 altgr
# 5
percent 0x6 shift
# 6
ampersand 0x7 shift
# 7
slash 0x8 shift
braceleft 0x8 altgr
# 8
parenleft 0x9 shift
bracketleft 0x9 altgr
# 9
parenright 0xa shift
bracketright 0xa altgr
# 0
equal 0xb shift
braceright 0xb altgr
plus 0xc
question 0xc shift
backslash 0xc altgr
acute 0xd
dead_acute 0xd
grave 0xd shift
dead_grave 0xd shift
#
# QWERTY first row
#
EuroSign 0x12 altgr
aring 0x1a
Aring 0x1a shift
dead_diaeresis 0x1b
dead_circumflex 0x1b shift
dead_tilde 0x1b altgr
#
# QWERTY second row
#
odiaeresis 0x27
Odiaeresis 0x27 shift
adiaeresis 0x28
Adiaeresis 0x28 shift
apostrophe 0x2b
asterisk 0x2b shift
#
# QWERTY third row
#
less 0x56
greater 0x56 shift
bar 0x56 altgr
mu 0x32 altgr
comma 0x33
semicolon 0x33 shift
period 0x34
colon 0x34 shift
minus 0x35
underscore 0x35 shift

131
keymaps/th Normal file
View File

@ -0,0 +1,131 @@
# generated from XKB map th
include common
map 0x41e
exclam 0x02 shift
Thai_lakkhangyao 0x02 altgr
plus 0x02 shift altgr
at 0x03 shift
slash 0x03 altgr
Thai_leknung 0x03 shift altgr
numbersign 0x04 shift
minus 0x04 altgr
Thai_leksong 0x04 shift altgr
dollar 0x05 shift
Thai_phosamphao 0x05 altgr
Thai_leksam 0x05 shift altgr
percent 0x06 shift
Thai_thothung 0x06 altgr
Thai_leksi 0x06 shift altgr
asciicircum 0x07 shift
Thai_sarau 0x07 altgr
Thai_sarauu 0x07 shift altgr
ampersand 0x08 shift
Thai_saraue 0x08 altgr
Thai_baht 0x08 shift altgr
asterisk 0x09 shift
Thai_khokhwai 0x09 altgr
Thai_lekha 0x09 shift altgr
parenleft 0x0a shift
Thai_totao 0x0a altgr
Thai_lekhok 0x0a shift altgr
parenright 0x0b shift
Thai_chochan 0x0b altgr
Thai_lekchet 0x0b shift altgr
minus 0x0c
underscore 0x0c shift
Thai_khokhai 0x0c altgr
Thai_lekpaet 0x0c shift altgr
equal 0x0d
plus 0x0d shift
Thai_chochang 0x0d altgr
Thai_lekkao 0x0d shift altgr
Thai_maiyamok 0x10 altgr
Thai_leksun 0x10 shift altgr
Thai_saraaimaimalai 0x11 altgr
quotedbl 0x11 shift altgr
Thai_saraam 0x12 altgr
Thai_dochada 0x12 shift altgr
Thai_phophan 0x13 altgr
Thai_thonangmontho 0x13 shift altgr
Thai_saraa 0x14 altgr
Thai_thothong 0x14 shift altgr
Thai_maihanakat 0x15 altgr
Thai_nikhahit 0x15 shift altgr
Thai_saraii 0x16 altgr
Thai_maitri 0x16 shift altgr
Thai_rorua 0x17 altgr
Thai_nonen 0x17 shift altgr
Thai_nonu 0x18 altgr
Thai_paiyannoi 0x18 shift altgr
Thai_yoyak 0x19 altgr
Thai_yoying 0x19 shift altgr
bracketleft 0x1a
braceleft 0x1a shift
Thai_bobaimai 0x1a altgr
Thai_thothan 0x1a shift altgr
bracketright 0x1b
braceright 0x1b shift
Thai_loling 0x1b altgr
comma 0x1b shift altgr
Thai_fofan 0x1e altgr
Thai_ru 0x1e shift altgr
Thai_hohip 0x1f altgr
Thai_khorakhang 0x1f shift altgr
Thai_kokai 0x20 altgr
Thai_topatak 0x20 shift altgr
Thai_dodek 0x21 altgr
Thai_sarao 0x21 shift altgr
Thai_sarae 0x22 altgr
Thai_chochoe 0x22 shift altgr
Thai_maitho 0x23 altgr
Thai_maitaikhu 0x23 shift altgr
Thai_maiek 0x24 altgr
Thai_maichattawa 0x24 shift altgr
Thai_saraaa 0x25 altgr
Thai_sorusi 0x25 shift altgr
Thai_sosua 0x26 altgr
Thai_sosala 0x26 shift altgr
semicolon 0x27
colon 0x27 shift
Thai_wowaen 0x27 altgr
Thai_soso 0x27 shift altgr
apostrophe 0x28
quotedbl 0x28 shift
Thai_ngongu 0x28 altgr
period 0x28 shift altgr
grave 0x29
asciitilde 0x29 shift
underscore 0x29 altgr
percent 0x29 shift altgr
ISO_First_Group 0x2a shift
backslash 0x2b
bar 0x2b shift
Thai_khokhuat 0x2b altgr
Thai_khokhon 0x2b shift altgr
Thai_phophung 0x2c altgr
parenleft 0x2c shift altgr
Thai_popla 0x2d altgr
parenright 0x2d shift altgr
Thai_saraae 0x2e altgr
Thai_choching 0x2e shift altgr
Thai_oang 0x2f altgr
Thai_honokhuk 0x2f shift altgr
Thai_sarai 0x30 altgr
Thai_phinthu 0x30 shift altgr
Thai_sarauee 0x31 altgr
Thai_thanthakhat 0x31 shift altgr
Thai_thothahan 0x32 altgr
question 0x32 shift altgr
comma 0x33
less 0x33 shift
Thai_moma 0x33 altgr
Thai_thophuthao 0x33 shift altgr
period 0x34
greater 0x34 shift
Thai_saraaimaimuan 0x34 altgr
Thai_lochula 0x34 shift altgr
slash 0x35
question 0x35 shift
Thai_fofa 0x35 altgr
Thai_lu 0x35 shift altgr
ISO_Last_Group 0x36 shift

123
keymaps/tr Normal file
View File

@ -0,0 +1,123 @@
# generated from XKB map tr
include common
map 0x41f
exclam 0x02 shift
onesuperior 0x02 altgr
exclamdown 0x02 shift altgr
apostrophe 0x03 shift
at 0x03 altgr
oneeighth 0x03 shift altgr
dead_circumflex 0x04 shift
numbersign 0x04 altgr
sterling 0x04 shift altgr
plus 0x05 shift
dollar 0x05 altgr
percent 0x06 shift
onehalf 0x06 altgr
threeeighths 0x06 shift altgr
ampersand 0x07 shift
asciicircum 0x07 altgr
fiveeighths 0x07 shift altgr
slash 0x08 shift
braceleft 0x08 altgr
seveneighths 0x08 shift altgr
parenleft 0x09 shift
bracketleft 0x09 altgr
trademark 0x09 shift altgr
parenright 0x0a shift
bracketright 0x0a altgr
plusminus 0x0a shift altgr
equal 0x0b shift
braceright 0x0b altgr
degree 0x0b shift altgr
asterisk 0x0c
question 0x0c shift
backslash 0x0c altgr
questiondown 0x0c shift altgr
minus 0x0d
underscore 0x0d shift
dead_cedilla 0x0d altgr
dead_ogonek 0x0d shift altgr
at 0x10 altgr
Greek_OMEGA 0x10 shift altgr
lstroke 0x11 altgr
Lstroke 0x11 shift altgr
EuroSign 0x12 altgr
paragraph 0x13 altgr
registered 0x13 shift altgr
tslash 0x14 altgr
Tslash 0x14 shift altgr
leftarrow 0x15 altgr
yen 0x15 shift altgr
downarrow 0x16 altgr
uparrow 0x16 shift altgr
idotless 0x17
I 0x17 shift
rightarrow 0x17 altgr
oslash 0x18 altgr
Ooblique 0x18 shift altgr
thorn 0x19 altgr
THORN 0x19 shift altgr
gbreve 0x1a
Gbreve 0x1a shift
dead_diaeresis 0x1a altgr
dead_abovering 0x1a shift altgr
udiaeresis 0x1b
Udiaeresis 0x1b shift
asciitilde 0x1b altgr
dead_macron 0x1b shift altgr
ae 0x1e altgr
AE 0x1e shift altgr
ssharp 0x1f altgr
section 0x1f shift altgr
eth 0x20 altgr
ETH 0x20 shift altgr
dstroke 0x21 altgr
ordfeminine 0x21 shift altgr
eng 0x22 altgr
ENG 0x22 shift altgr
hstroke 0x23 altgr
Hstroke 0x23 shift altgr
kra 0x25 altgr
ampersand 0x25 shift altgr
lstroke 0x26 altgr
Lstroke 0x26 shift altgr
scedilla 0x27
Scedilla 0x27 shift
dead_acute 0x27 altgr
dead_doubleacute 0x27 shift altgr
i 0x28
Iabovedot 0x28 shift
dead_circumflex 0x28 altgr
dead_caron 0x28 shift altgr
backslash 0x29
quotedbl 0x29 shift
asciitilde 0x29 altgr
comma 0x2b
semicolon 0x2b shift
bar 0x2b altgr
dead_breve 0x2b shift altgr
guillemotleft 0x2c altgr
less 0x2c shift altgr
guillemotright 0x2d altgr
greater 0x2d shift altgr
cent 0x2e altgr
copyright 0x2e shift altgr
leftdoublequotemark 0x2f altgr
grave 0x2f shift altgr
rightdoublequotemark 0x30 altgr
apostrophe 0x30 shift altgr
mu 0x32 altgr
masculine 0x32 shift altgr
odiaeresis 0x33
Odiaeresis 0x33 shift
less 0x33 altgr
multiply 0x33 shift altgr
ccedilla 0x34
Ccedilla 0x34 shift
greater 0x34 altgr
division 0x34 shift altgr
period 0x35
colon 0x35 shift
dead_belowdot 0x35 altgr
dead_abovedot 0x35 shift altgr

View File

@ -189,6 +189,22 @@ command line application. The emulated serial port is redirected on
the console. Therefore, you can still use QEMU to debug a Linux kernel the console. Therefore, you can still use QEMU to debug a Linux kernel
with a serial console. with a serial console.
@item -k language
Use keyboard layout @var{language} (for example @code{fr} for
French). This option is only needed where it is not easy to get raw PC
keycodes (e.g. on Macs or with some X11 servers). You don't need to
use it on PC/Linux or PC/Windows hosts.
The available layouts are:
@example
ar de-ch es fo fr-ca hu ja mk no pt-br sv
da en-gb et fr fr-ch is lt nl pl ru th
de en-us fi fr-be hr it lv nl-be pt sl tr
@end example
The default is @code{en-us}.
@item -enable-audio @item -enable-audio
The SB16 emulation is disabled by default as it may give problems with The SB16 emulation is disabled by default as it may give problems with

140
sdl.c
View File

@ -29,10 +29,6 @@
#include <signal.h> #include <signal.h>
#endif #endif
#if defined(__APPLE__)
#define CONFIG_SDL_GENERIC_KBD
#endif
static SDL_Surface *screen; static SDL_Surface *screen;
static int gui_grab; /* if true, all keyboard/mouse events are grabbed */ static int gui_grab; /* if true, all keyboard/mouse events are grabbed */
static int last_vm_running; static int last_vm_running;
@ -72,118 +68,26 @@ static void sdl_resize(DisplayState *ds, int w, int h)
ds->height = h; ds->height = h;
} }
#ifdef CONFIG_SDL_GENERIC_KBD /* generic keyboard conversion */
/* XXX: use keymap tables defined in the VNC patch because the #include "sdl_keysym.h"
following code suppose you have a US keyboard. */ #include "keymaps.c"
static const uint8_t scancodes[SDLK_LAST] = { static kbd_layout_t *kbd_layout = NULL;
[SDLK_ESCAPE] = 0x01,
[SDLK_1] = 0x02,
[SDLK_2] = 0x03,
[SDLK_3] = 0x04,
[SDLK_4] = 0x05,
[SDLK_5] = 0x06,
[SDLK_6] = 0x07,
[SDLK_7] = 0x08,
[SDLK_8] = 0x09,
[SDLK_9] = 0x0a,
[SDLK_0] = 0x0b,
[SDLK_MINUS] = 0x0c,
[SDLK_EQUALS] = 0x0d,
[SDLK_BACKSPACE] = 0x0e,
[SDLK_TAB] = 0x0f,
[SDLK_q] = 0x10,
[SDLK_w] = 0x11,
[SDLK_e] = 0x12,
[SDLK_r] = 0x13,
[SDLK_t] = 0x14,
[SDLK_y] = 0x15,
[SDLK_u] = 0x16,
[SDLK_i] = 0x17,
[SDLK_o] = 0x18,
[SDLK_p] = 0x19,
[SDLK_LEFTBRACKET] = 0x1a,
[SDLK_RIGHTBRACKET] = 0x1b,
[SDLK_RETURN] = 0x1c,
[SDLK_LCTRL] = 0x1d,
[SDLK_a] = 0x1e,
[SDLK_s] = 0x1f,
[SDLK_d] = 0x20,
[SDLK_f] = 0x21,
[SDLK_g] = 0x22,
[SDLK_h] = 0x23,
[SDLK_j] = 0x24,
[SDLK_k] = 0x25,
[SDLK_l] = 0x26,
[SDLK_SEMICOLON] = 0x27,
[SDLK_QUOTE] = 0x28,
[SDLK_BACKQUOTE] = 0x29,
[SDLK_LSHIFT] = 0x2a,
[SDLK_BACKSLASH] = 0x2b,
[SDLK_z] = 0x2c,
[SDLK_x] = 0x2d,
[SDLK_c] = 0x2e,
[SDLK_v] = 0x2f,
[SDLK_b] = 0x30,
[SDLK_n] = 0x31,
[SDLK_m] = 0x32,
[SDLK_COMMA] = 0x33,
[SDLK_PERIOD] = 0x34,
[SDLK_SLASH] = 0x35,
[SDLK_KP_MULTIPLY] = 0x37,
[SDLK_LALT] = 0x38,
[SDLK_SPACE] = 0x39,
[SDLK_CAPSLOCK] = 0x3a,
[SDLK_F1] = 0x3b,
[SDLK_F2] = 0x3c,
[SDLK_F3] = 0x3d,
[SDLK_F4] = 0x3e,
[SDLK_F5] = 0x3f,
[SDLK_F6] = 0x40,
[SDLK_F7] = 0x41,
[SDLK_F8] = 0x42,
[SDLK_F9] = 0x43,
[SDLK_F10] = 0x44,
[SDLK_NUMLOCK] = 0x45,
[SDLK_SCROLLOCK] = 0x46,
[SDLK_KP7] = 0x47,
[SDLK_KP8] = 0x48,
[SDLK_KP9] = 0x49,
[SDLK_KP_MINUS] = 0x4a,
[SDLK_KP4] = 0x4b,
[SDLK_KP5] = 0x4c,
[SDLK_KP6] = 0x4d,
[SDLK_KP_PLUS] = 0x4e,
[SDLK_KP1] = 0x4f,
[SDLK_KP2] = 0x50,
[SDLK_KP3] = 0x51,
[SDLK_KP0] = 0x52,
[SDLK_KP_PERIOD] = 0x53,
[SDLK_PRINT] = 0x54,
[SDLK_LMETA] = 0x56,
[SDLK_KP_ENTER] = 0x9c, static uint8_t sdl_keyevent_to_keycode_generic(const SDL_KeyboardEvent *ev)
[SDLK_KP_DIVIDE] = 0xb5,
[SDLK_UP] = 0xc8,
[SDLK_DOWN] = 0xd0,
[SDLK_RIGHT] = 0xcd,
[SDLK_LEFT] = 0xcb,
[SDLK_INSERT] = 0xd2,
[SDLK_HOME] = 0xc7,
[SDLK_END] = 0xcf,
[SDLK_PAGEUP] = 0xc9,
[SDLK_PAGEDOWN] = 0xd1,
[SDLK_DELETE] = 0xd3,
};
static uint8_t sdl_keyevent_to_keycode(const SDL_KeyboardEvent *ev)
{ {
return scancodes[ev->keysym.sym]; int keysym;
/* workaround for X11+SDL bug with AltGR */
keysym = ev->keysym.sym;
if (keysym == 0 && ev->keysym.scancode == 113)
keysym = SDLK_MODE;
return keysym2scancode(kbd_layout, keysym);
} }
#elif defined(_WIN32) /* specific keyboard conversions from scan codes */
#if defined(_WIN32)
static uint8_t sdl_keyevent_to_keycode(const SDL_KeyboardEvent *ev) static uint8_t sdl_keyevent_to_keycode(const SDL_KeyboardEvent *ev)
{ {
@ -305,8 +209,11 @@ static void sdl_process_key(SDL_KeyboardEvent *ev)
return; return;
} }
/* XXX: not portable, but avoids complicated mappings */ if (kbd_layout) {
keycode = sdl_keyevent_to_keycode_generic(ev);
} else {
keycode = sdl_keyevent_to_keycode(ev); keycode = sdl_keyevent_to_keycode(ev);
}
switch(keycode) { switch(keycode) {
case 0x00: case 0x00:
@ -558,6 +465,17 @@ void sdl_display_init(DisplayState *ds, int full_screen)
{ {
int flags; int flags;
#if defined(__APPLE__)
/* always use generic keymaps */
if (!keyboard_layout)
keyboard_layout = "en-us";
#endif
if(keyboard_layout) {
kbd_layout = init_keyboard_layout(keyboard_layout);
if (!kbd_layout)
exit(1);
}
flags = SDL_INIT_VIDEO | SDL_INIT_NOPARACHUTE; flags = SDL_INIT_VIDEO | SDL_INIT_NOPARACHUTE;
if (SDL_Init (flags)) { if (SDL_Init (flags)) {
fprintf(stderr, "Could not initialize SDL - exiting\n"); fprintf(stderr, "Could not initialize SDL - exiting\n");

275
sdl_keysym.h Normal file
View File

@ -0,0 +1,275 @@
typedef struct {
const char* name;
int keysym;
} name2keysym_t;
static name2keysym_t name2keysym[]={
/* ascii */
{ "space", 0x020},
{ "exclam", 0x021},
{ "quotedbl", 0x022},
{ "numbersign", 0x023},
{ "dollar", 0x024},
{ "percent", 0x025},
{ "ampersand", 0x026},
{ "apostrophe", 0x027},
{ "parenleft", 0x028},
{ "parenright", 0x029},
{ "asterisk", 0x02a},
{ "plus", 0x02b},
{ "comma", 0x02c},
{ "minus", 0x02d},
{ "period", 0x02e},
{ "slash", 0x02f},
{ "0", 0x030},
{ "1", 0x031},
{ "2", 0x032},
{ "3", 0x033},
{ "4", 0x034},
{ "5", 0x035},
{ "6", 0x036},
{ "7", 0x037},
{ "8", 0x038},
{ "9", 0x039},
{ "colon", 0x03a},
{ "semicolon", 0x03b},
{ "less", 0x03c},
{ "equal", 0x03d},
{ "greater", 0x03e},
{ "question", 0x03f},
{ "at", 0x040},
{ "A", 0x041},
{ "B", 0x042},
{ "C", 0x043},
{ "D", 0x044},
{ "E", 0x045},
{ "F", 0x046},
{ "G", 0x047},
{ "H", 0x048},
{ "I", 0x049},
{ "J", 0x04a},
{ "K", 0x04b},
{ "L", 0x04c},
{ "M", 0x04d},
{ "N", 0x04e},
{ "O", 0x04f},
{ "P", 0x050},
{ "Q", 0x051},
{ "R", 0x052},
{ "S", 0x053},
{ "T", 0x054},
{ "U", 0x055},
{ "V", 0x056},
{ "W", 0x057},
{ "X", 0x058},
{ "Y", 0x059},
{ "Z", 0x05a},
{ "bracketleft", 0x05b},
{ "backslash", 0x05c},
{ "bracketright", 0x05d},
{ "asciicircum", 0x05e},
{ "underscore", 0x05f},
{ "grave", 0x060},
{ "a", 0x061},
{ "b", 0x062},
{ "c", 0x063},
{ "d", 0x064},
{ "e", 0x065},
{ "f", 0x066},
{ "g", 0x067},
{ "h", 0x068},
{ "i", 0x069},
{ "j", 0x06a},
{ "k", 0x06b},
{ "l", 0x06c},
{ "m", 0x06d},
{ "n", 0x06e},
{ "o", 0x06f},
{ "p", 0x070},
{ "q", 0x071},
{ "r", 0x072},
{ "s", 0x073},
{ "t", 0x074},
{ "u", 0x075},
{ "v", 0x076},
{ "w", 0x077},
{ "x", 0x078},
{ "y", 0x079},
{ "z", 0x07a},
{ "braceleft", 0x07b},
{ "bar", 0x07c},
{ "braceright", 0x07d},
{ "asciitilde", 0x07e},
/* latin 1 extensions */
{ "nobreakspace", 0x0a0},
{ "exclamdown", 0x0a1},
{ "cent", 0x0a2},
{ "sterling", 0x0a3},
{ "currency", 0x0a4},
{ "yen", 0x0a5},
{ "brokenbar", 0x0a6},
{ "section", 0x0a7},
{ "diaeresis", 0x0a8},
{ "copyright", 0x0a9},
{ "ordfeminine", 0x0aa},
{ "guillemotleft", 0x0ab},
{ "notsign", 0x0ac},
{ "hyphen", 0x0ad},
{ "registered", 0x0ae},
{ "macron", 0x0af},
{ "degree", 0x0b0},
{ "plusminus", 0x0b1},
{ "twosuperior", 0x0b2},
{ "threesuperior", 0x0b3},
{ "acute", 0x0b4},
{ "mu", 0x0b5},
{ "paragraph", 0x0b6},
{ "periodcentered", 0x0b7},
{ "cedilla", 0x0b8},
{ "onesuperior", 0x0b9},
{ "masculine", 0x0ba},
{ "guillemotright", 0x0bb},
{ "onequarter", 0x0bc},
{ "onehalf", 0x0bd},
{ "threequarters", 0x0be},
{ "questiondown", 0x0bf},
{ "Agrave", 0x0c0},
{ "Aacute", 0x0c1},
{ "Acircumflex", 0x0c2},
{ "Atilde", 0x0c3},
{ "Adiaeresis", 0x0c4},
{ "Aring", 0x0c5},
{ "AE", 0x0c6},
{ "Ccedilla", 0x0c7},
{ "Egrave", 0x0c8},
{ "Eacute", 0x0c9},
{ "Ecircumflex", 0x0ca},
{ "Ediaeresis", 0x0cb},
{ "Igrave", 0x0cc},
{ "Iacute", 0x0cd},
{ "Icircumflex", 0x0ce},
{ "Idiaeresis", 0x0cf},
{ "ETH", 0x0d0},
{ "Eth", 0x0d0},
{ "Ntilde", 0x0d1},
{ "Ograve", 0x0d2},
{ "Oacute", 0x0d3},
{ "Ocircumflex", 0x0d4},
{ "Otilde", 0x0d5},
{ "Odiaeresis", 0x0d6},
{ "multiply", 0x0d7},
{ "Ooblique", 0x0d8},
{ "Oslash", 0x0d8},
{ "Ugrave", 0x0d9},
{ "Uacute", 0x0da},
{ "Ucircumflex", 0x0db},
{ "Udiaeresis", 0x0dc},
{ "Yacute", 0x0dd},
{ "THORN", 0x0de},
{ "Thorn", 0x0de},
{ "ssharp", 0x0df},
{ "agrave", 0x0e0},
{ "aacute", 0x0e1},
{ "acircumflex", 0x0e2},
{ "atilde", 0x0e3},
{ "adiaeresis", 0x0e4},
{ "aring", 0x0e5},
{ "ae", 0x0e6},
{ "ccedilla", 0x0e7},
{ "egrave", 0x0e8},
{ "eacute", 0x0e9},
{ "ecircumflex", 0x0ea},
{ "ediaeresis", 0x0eb},
{ "igrave", 0x0ec},
{ "iacute", 0x0ed},
{ "icircumflex", 0x0ee},
{ "idiaeresis", 0x0ef},
{ "eth", 0x0f0},
{ "ntilde", 0x0f1},
{ "ograve", 0x0f2},
{ "oacute", 0x0f3},
{ "ocircumflex", 0x0f4},
{ "otilde", 0x0f5},
{ "odiaeresis", 0x0f6},
{ "division", 0x0f7},
{ "oslash", 0x0f8},
{ "ooblique", 0x0f8},
{ "ugrave", 0x0f9},
{ "uacute", 0x0fa},
{ "ucircumflex", 0x0fb},
{ "udiaeresis", 0x0fc},
{ "yacute", 0x0fd},
{ "thorn", 0x0fe},
{ "ydiaeresis", 0x0ff},
{"EuroSign", SDLK_EURO},
/* modifiers */
{"Control_L", SDLK_LCTRL},
{"Control_R", SDLK_RCTRL},
{"Alt_L", SDLK_LALT},
{"Alt_R", SDLK_RALT},
{"Caps_Lock", SDLK_CAPSLOCK},
{"Meta_L", SDLK_LMETA},
{"Meta_R", SDLK_RMETA},
{"Shift_L", SDLK_LSHIFT},
{"Shift_R", SDLK_RSHIFT},
/* special keys */
{"BackSpace", SDLK_BACKSPACE},
{"Tab", SDLK_TAB},
{"Return", SDLK_RETURN},
{"Right", SDLK_RIGHT},
{"Left", SDLK_LEFT},
{"Up", SDLK_UP},
{"Down", SDLK_DOWN},
{"Page_Down", SDLK_PAGEDOWN},
{"Page_Up", SDLK_PAGEUP},
{"Insert", SDLK_INSERT},
{"Delete", SDLK_DELETE},
{"Home", SDLK_HOME},
{"End", SDLK_END},
{"Scroll_Lock", SDLK_SCROLLOCK},
{"F1", SDLK_F1},
{"F2", SDLK_F2},
{"F3", SDLK_F3},
{"F4", SDLK_F4},
{"F5", SDLK_F5},
{"F6", SDLK_F6},
{"F7", SDLK_F7},
{"F8", SDLK_F8},
{"F9", SDLK_F9},
{"F10", SDLK_F10},
{"F11", SDLK_F11},
{"F12", SDLK_F12},
{"F13", SDLK_F13},
{"F14", SDLK_F14},
{"F15", SDLK_F15},
{"Sys_Req", SDLK_SYSREQ},
{"KP_0", SDLK_KP0},
{"KP_1", SDLK_KP1},
{"KP_2", SDLK_KP2},
{"KP_3", SDLK_KP3},
{"KP_4", SDLK_KP4},
{"KP_5", SDLK_KP5},
{"KP_6", SDLK_KP6},
{"KP_7", SDLK_KP7},
{"KP_8", SDLK_KP8},
{"KP_9", SDLK_KP9},
{"KP_Add", SDLK_KP_PLUS},
{"KP_Decimal", SDLK_KP_PERIOD},
{"KP_Divide", SDLK_KP_DIVIDE},
{"KP_Enter", SDLK_KP_ENTER},
{"KP_Equal", SDLK_KP_EQUALS},
{"KP_Multiply", SDLK_KP_MULTIPLY},
{"KP_Subtract", SDLK_KP_MINUS},
{"help", SDLK_HELP},
{"Menu", SDLK_MENU},
{"Power", SDLK_POWER},
{"Print", SDLK_PRINT},
{"Mode_switch", SDLK_MODE},
{"Multi_Key", SDLK_COMPOSE},
{"Num_Lock", SDLK_NUMLOCK},
{"Pause", SDLK_PAUSE},
{0,0},
};

7
vl.c
View File

@ -112,6 +112,7 @@ int vga_ram_size;
int bios_size; int bios_size;
static DisplayState display_state; static DisplayState display_state;
int nographic; int nographic;
const char* keyboard_layout = NULL;
int64_t ticks_per_sec; int64_t ticks_per_sec;
int boot_device = 'c'; int boot_device = 'c';
int ram_size; int ram_size;
@ -2541,6 +2542,7 @@ void help(void)
"-snapshot write to temporary files instead of disk image files\n" "-snapshot write to temporary files instead of disk image files\n"
"-m megs set virtual RAM size to megs MB [default=%d]\n" "-m megs set virtual RAM size to megs MB [default=%d]\n"
"-nographic disable graphical output and redirect serial I/Os to console\n" "-nographic disable graphical output and redirect serial I/Os to console\n"
"-k language use keyboard layout (for example \"fr\" for French)\n"
"-enable-audio enable audio support\n" "-enable-audio enable audio support\n"
"-localtime set the real time clock to local time [default=utc]\n" "-localtime set the real time clock to local time [default=utc]\n"
"-full-screen start in full screen\n" "-full-screen start in full screen\n"
@ -2658,6 +2660,7 @@ enum {
QEMU_OPTION_pci, QEMU_OPTION_pci,
QEMU_OPTION_isa, QEMU_OPTION_isa,
QEMU_OPTION_prep, QEMU_OPTION_prep,
QEMU_OPTION_k,
QEMU_OPTION_localtime, QEMU_OPTION_localtime,
QEMU_OPTION_cirrusvga, QEMU_OPTION_cirrusvga,
QEMU_OPTION_g, QEMU_OPTION_g,
@ -2689,6 +2692,7 @@ const QEMUOption qemu_options[] = {
{ "snapshot", 0, QEMU_OPTION_snapshot }, { "snapshot", 0, QEMU_OPTION_snapshot },
{ "m", HAS_ARG, QEMU_OPTION_m }, { "m", HAS_ARG, QEMU_OPTION_m },
{ "nographic", 0, QEMU_OPTION_nographic }, { "nographic", 0, QEMU_OPTION_nographic },
{ "k", HAS_ARG, QEMU_OPTION_k },
{ "enable-audio", 0, QEMU_OPTION_enable_audio }, { "enable-audio", 0, QEMU_OPTION_enable_audio },
{ "nics", HAS_ARG, QEMU_OPTION_nics}, { "nics", HAS_ARG, QEMU_OPTION_nics},
@ -3092,6 +3096,9 @@ int main(int argc, char **argv)
case QEMU_OPTION_prep: case QEMU_OPTION_prep:
prep_enabled = 1; prep_enabled = 1;
break; break;
case QEMU_OPTION_k:
keyboard_layout = optarg;
break;
case QEMU_OPTION_localtime: case QEMU_OPTION_localtime:
rtc_utc = 0; rtc_utc = 0;
break; break;

1
vl.h
View File

@ -123,6 +123,7 @@ extern int cirrus_vga_enabled;
extern int graphic_width; extern int graphic_width;
extern int graphic_height; extern int graphic_height;
extern int graphic_depth; extern int graphic_depth;
extern const char *keyboard_layout;
/* XXX: make it dynamic */ /* XXX: make it dynamic */
#if defined (TARGET_PPC) #if defined (TARGET_PPC)