Bochs/bochs/gui/keymaps/x11-pc-de.map
Volker Ruppert 4c81e496b6 Some work on the USB keyboard / keypad emulation.
- Unified USB keyboard and keypad code. Removed the keypad lookup table.
- Moved keyboard indicator stuff to the devices code and use it for both the
  USB and legacy keyboard device. In the USB case a different color is used.
- In the SDL, SDL2 and X guis added new status indicator color yellow. It is
  designed to be used by the USB keyboard (write flag 1 and "auto_off" flag 0).
- Added missing sysmbol to the German X11 keymap table.
2020-12-15 11:29:36 +00:00

250 lines
15 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Bochs Keymap file
# $Id$
# Target: PC(x86) keyboard, DE keymap
# Author: Volker Ruppert
#
# The keymap file describes the layout of a keyboard, and how it translates
# into Bochs key codes.
#
# Format:
# BX_Keysym ASCII_equivalent Xwin_Keysym
#
# Or, for keys that require modifiers:
# BX_Keysym+BX_Modifier ASCII_equivalent Xwin_Keysym
#
# BX_Keysym and BX_Modifier must be present in the bx_key_symbol[] list in
# gui/keymap.cc. The BX_Modifier is usually a shift key press, but it
# could be any key. Presently a maximum of one modifier is supported, but this
# could be changed in keymap.h (structure def has only one slot for modifier),
# keymap.cc (parsing code), and iodev/keyboard.cc (simulate keypresses for >1
# modifier).
#
# The ASCII_equivalent must be either apostrophe + one character + apostrophe,
# or one of these keywords: space, return, tab, backslash, apostrophe, none.
# This format is designed to look like a char constant in C, but it's a very
# simple parser. There's no concept of backslash being an escape char. The
# backslash and apostrophe entries are provided for aesthetic purposes only: no
# C++ programmer wants to see '\' or '''. The parser doesn't care, but they are
# ugly.
#
# Xwin_Keysym is the X windows equivalent of the key combination. These
# codes should match whatever you find in /usr/X11R6/include/X11/keysymdef.h.
# If you're running X windows, Bochs will take each of these Xwin_Keysyms,
# pull off the XK_ in front, and use XStringToKeysym() to change them into
# numerical codes. If this lookup fails, you will get a panic and you need
# to edit the keymap file.
BX_KEY_0 '0' XK_0
BX_KEY_0+BX_KEY_ALT_R '}' XK_braceright
BX_KEY_0+BX_KEY_SHIFT_L '=' XK_equal
BX_KEY_1 '1' XK_1
BX_KEY_1+BX_KEY_SHIFT_L '!' XK_exclam
BX_KEY_1+BX_KEY_ALT_R '¹' XK_onesuperior
BX_KEY_2 '2' XK_2
BX_KEY_2+BX_KEY_SHIFT_L '"' XK_quotedbl
BX_KEY_2+BX_KEY_ALT_R '²' XK_twosuperior
BX_KEY_3 '3' XK_3
BX_KEY_3+BX_KEY_SHIFT_L '§' XK_section
BX_KEY_3+BX_KEY_ALT_R '³' XK_threesuperior
BX_KEY_4 '4' XK_4
BX_KEY_4+BX_KEY_SHIFT_L '$' XK_dollar
BX_KEY_4+BX_KEY_ALT_R '¼' XK_onequarter
BX_KEY_5 '5' XK_5
BX_KEY_5+BX_KEY_ALT_R '½' XK_onehalf
BX_KEY_5+BX_KEY_SHIFT_L '%' XK_percent
BX_KEY_6 '6' XK_6
BX_KEY_6+BX_KEY_SHIFT_L '&' XK_ampersand
BX_KEY_6+BX_KEY_ALT_R '¾' XK_threequarters
BX_KEY_7 '7' XK_7
BX_KEY_7+BX_KEY_ALT_R '{' XK_braceleft
BX_KEY_7+BX_KEY_SHIFT_L '/' XK_slash
BX_KEY_8 '8' XK_8
BX_KEY_8+BX_KEY_ALT_R '[' XK_bracketleft
BX_KEY_8+BX_KEY_SHIFT_L '(' XK_parenleft
BX_KEY_9 '9' XK_9
BX_KEY_9+BX_KEY_ALT_R ']' XK_bracketright
BX_KEY_9+BX_KEY_SHIFT_L ')' XK_parenright
BX_KEY_A+BX_KEY_SHIFT_L 'A' XK_A
BX_KEY_A 'a' XK_a
BX_KEY_A+BX_KEY_ALT_R 'æ' XK_ae
BX_KEY_B+BX_KEY_SHIFT_L 'B' XK_B
BX_KEY_B 'b' XK_b
BX_KEY_B+BX_KEY_ALT_R none XK_rightdoublequotemark
BX_KEY_C+BX_KEY_SHIFT_L 'C' XK_C
BX_KEY_C 'c' XK_c
BX_KEY_C+BX_KEY_ALT_R '¢' XK_cent
BX_KEY_D+BX_KEY_SHIFT_L 'D' XK_D
BX_KEY_D 'd' XK_d
BX_KEY_D+BX_KEY_ALT_R 'ð' XK_eth
BX_KEY_E+BX_KEY_SHIFT_L 'E' XK_E
BX_KEY_E+BX_KEY_ALT_R none XK_EuroSign
BX_KEY_E 'e' XK_e
BX_KEY_F+BX_KEY_SHIFT_L 'F' XK_F
BX_KEY_F+BX_KEY_ALT_R none XK_dstroke
BX_KEY_F 'f' XK_f
BX_KEY_G+BX_KEY_SHIFT_L 'G' XK_G
BX_KEY_G+BX_KEY_ALT_R none XK_eng
BX_KEY_G 'g' XK_g
BX_KEY_H+BX_KEY_SHIFT_L 'H' XK_H
BX_KEY_H 'h' XK_h
BX_KEY_H+BX_KEY_ALT_R none XK_hstroke
BX_KEY_I+BX_KEY_SHIFT_L 'I' XK_I
BX_KEY_I 'i' XK_i
BX_KEY_I+BX_KEY_ALT_R none XK_rightarrow
BX_KEY_J+BX_KEY_SHIFT_L 'J' XK_J
BX_KEY_J 'j' XK_j
BX_KEY_K+BX_KEY_SHIFT_L 'K' XK_K
BX_KEY_K 'k' XK_k
BX_KEY_K+BX_KEY_ALT_R none XK_kra
BX_KEY_L+BX_KEY_SHIFT_L 'L' XK_L
BX_KEY_L 'l' XK_l
BX_KEY_M+BX_KEY_SHIFT_L 'M' XK_M
BX_KEY_M 'm' XK_m
BX_KEY_M+BX_KEY_ALT_R 'µ' XK_mu
BX_KEY_N+BX_KEY_SHIFT_L 'N' XK_N
BX_KEY_N 'n' XK_n
BX_KEY_O+BX_KEY_SHIFT_L 'O' XK_O
BX_KEY_O 'o' XK_o
BX_KEY_O+BX_KEY_ALT_R 'ø' XK_oslash
BX_KEY_P+BX_KEY_SHIFT_L 'P' XK_P
BX_KEY_P 'p' XK_p
BX_KEY_P+BX_KEY_ALT_R 'þ' XK_thorn
BX_KEY_Q+BX_KEY_SHIFT_L 'Q' XK_Q
BX_KEY_Q+BX_KEY_ALT_R '@' XK_at
BX_KEY_Q 'q' XK_q
BX_KEY_R+BX_KEY_SHIFT_L 'R' XK_R
BX_KEY_R+BX_KEY_ALT_R '¶' XK_paragraph
BX_KEY_R 'r' XK_r
BX_KEY_S+BX_KEY_SHIFT_L 'S' XK_S
BX_KEY_S 's' XK_s
BX_KEY_T+BX_KEY_SHIFT_L 'T' XK_T
BX_KEY_T 't' XK_t
BX_KEY_T+BX_KEY_ALT_R none XK_tslash
BX_KEY_U+BX_KEY_SHIFT_L 'U' XK_U
BX_KEY_U+BX_KEY_ALT_R none XK_downarrow
BX_KEY_U 'u' XK_u
BX_KEY_V+BX_KEY_SHIFT_L 'V' XK_V
BX_KEY_V+BX_KEY_ALT_R none XK_leftdoublequotemark
BX_KEY_V 'v' XK_v
BX_KEY_W+BX_KEY_SHIFT_L 'W' XK_W
BX_KEY_W+BX_KEY_ALT_R none XK_lstroke
BX_KEY_W 'w' XK_w
BX_KEY_X+BX_KEY_SHIFT_L 'X' XK_X
BX_KEY_X+BX_KEY_ALT_R '»' XK_guillemotright
BX_KEY_X 'x' XK_x
BX_KEY_Y+BX_KEY_SHIFT_L 'Z' XK_Z
BX_KEY_Y+BX_KEY_ALT_R none XK_leftarrow
BX_KEY_Y 'z' XK_z
BX_KEY_Z+BX_KEY_SHIFT_L 'Y' XK_Y
BX_KEY_Z+BX_KEY_ALT_R '«' XK_guillemotleft
BX_KEY_Z 'y' XK_y
BX_KEY_F1 none XK_F1
BX_KEY_F2 none XK_F2
BX_KEY_F3 none XK_F3
BX_KEY_F4 none XK_F4
BX_KEY_F5 none XK_F5
BX_KEY_F6 none XK_F6
BX_KEY_F7 none XK_F7
BX_KEY_F8 none XK_F8
BX_KEY_F9 none XK_F9
BX_KEY_F10 none XK_F10
BX_KEY_F11 none XK_F11
BX_KEY_F12 none XK_F12
BX_KEY_ALT_L none XK_Alt_L
BX_KEY_ALT_L none XK_Meta_L
BX_KEY_ALT_R none XK_Alt_R
BX_KEY_ALT_R none XK_Mode_switch
BX_KEY_ALT_R none XK_Multi_key
BX_KEY_ALT_R none XK_ISO_Level3_Shift
BX_KEY_BACKSLASH apostrophe XK_apostrophe
BX_KEY_BACKSLASH '#' XK_numbersign
BX_KEY_BACKSPACE none XK_BackSpace
BX_KEY_CAPS_LOCK none XK_Caps_Lock
BX_KEY_COMMA ',' XK_comma
BX_KEY_COMMA+BX_KEY_ALT_R none XK_horizconnector
BX_KEY_COMMA+BX_KEY_SHIFT_L ';' XK_semicolon
BX_KEY_CTRL_L none XK_Control_L
BX_KEY_CTRL_R none XK_Control_R
BX_KEY_DELETE none XK_Delete
BX_KEY_DOWN none XK_Down
BX_KEY_END none XK_End
BX_KEY_ENTER return XK_Return
BX_KEY_EQUALS none XK_acute
BX_KEY_EQUALS+BX_KEY_ALT_R '¸' XK_cedilla
BX_KEY_EQUALS+BX_KEY_SHIFT_L '`' XK_grave
BX_KEY_ESC none XK_Escape
BX_KEY_GRAVE '^' XK_asciicircum
BX_KEY_GRAVE+BX_KEY_SHIFT_L '°' XK_degree
BX_KEY_GRAVE+BX_KEY_ALT_R '¬' XK_notsign
BX_KEY_HOME none XK_Home
BX_KEY_INSERT none XK_Insert
BX_KEY_KP_5 none XK_KP_5
BX_KEY_KP_5 none XK_KP_Begin
BX_KEY_KP_ADD none XK_KP_Add
BX_KEY_KP_DELETE none XK_KP_Decimal
BX_KEY_KP_DELETE none XK_KP_Delete
BX_KEY_KP_DELETE none XK_KP_Separator
BX_KEY_KP_DIVIDE none XK_KP_Divide
BX_KEY_KP_DOWN none XK_KP_2
BX_KEY_KP_DOWN none XK_KP_Down
BX_KEY_KP_END none XK_KP_1
BX_KEY_KP_END none XK_KP_End
BX_KEY_KP_ENTER none XK_KP_Enter
BX_KEY_KP_HOME none XK_KP_7
BX_KEY_KP_HOME none XK_KP_Home
BX_KEY_KP_INSERT none XK_KP_0
BX_KEY_KP_INSERT none XK_KP_Insert
BX_KEY_KP_LEFT none XK_KP_4
BX_KEY_KP_LEFT none XK_KP_Left
BX_KEY_KP_MULTIPLY none XK_KP_Multiply
BX_KEY_KP_PAGE_DOWN none XK_KP_3
BX_KEY_KP_PAGE_DOWN none XK_KP_Page_Down
BX_KEY_KP_PAGE_UP none XK_KP_9
BX_KEY_KP_PAGE_UP none XK_KP_Page_Up
BX_KEY_KP_RIGHT none XK_KP_6
BX_KEY_KP_RIGHT none XK_KP_Right
BX_KEY_KP_SUBTRACT none XK_KP_Subtract
BX_KEY_KP_UP none XK_KP_8
BX_KEY_KP_UP none XK_KP_Up
BX_KEY_LEFT none XK_Left
BX_KEY_LEFT_BACKSLASH+BX_KEY_ALT_R '|' XK_bar
BX_KEY_LEFT_BACKSLASH+BX_KEY_SHIFT_L '>' XK_greater
BX_KEY_LEFT_BACKSLASH '<' XK_less
BX_KEY_LEFT_BRACKET+BX_KEY_SHIFT_L 'Ü' XK_Udiaeresis
BX_KEY_LEFT_BRACKET+BX_KEY_ALT_L none XK_diaeresis
BX_KEY_LEFT_BRACKET 'ü' XK_udiaeresis
BX_KEY_MENU none XK_Menu
BX_KEY_MINUS+BX_KEY_ALT_L backslash XK_backslash
BX_KEY_MINUS+BX_KEY_SHIFT_L '?' XK_question
BX_KEY_MINUS 'ß' XK_ssharp
BX_KEY_NUM_LOCK none XK_Num_Lock
BX_KEY_PAGE_DOWN none XK_Page_Down
BX_KEY_PAGE_UP none XK_Page_Up
BX_KEY_PAUSE none XK_Break
BX_KEY_PAUSE none XK_Pause
BX_KEY_PERIOD+BX_KEY_SHIFT_L ':' XK_colon
BX_KEY_PERIOD '.' XK_period
BX_KEY_PERIOD+BX_KEY_ALT_L '·' XK_periodcentered
BX_KEY_PRINT none XK_Print
BX_KEY_PRINT none XK_Sys_Req
BX_KEY_RIGHT none XK_Right
BX_KEY_RIGHT_BRACKET+BX_KEY_ALT_R '~' XK_asciitilde
BX_KEY_RIGHT_BRACKET+BX_KEY_SHIFT_L '*' XK_asterisk
BX_KEY_RIGHT_BRACKET '+' XK_plus
BX_KEY_SCRL_LOCK none XK_Scroll_Lock
BX_KEY_SEMICOLON+BX_KEY_SHIFT_L 'Ö' XK_Odiaeresis
BX_KEY_SEMICOLON 'ö' XK_odiaeresis
BX_KEY_SHIFT_L none XK_Shift_L
BX_KEY_SHIFT_R none XK_Shift_R
BX_KEY_SINGLE_QUOTE+BX_KEY_SHIFT_L 'Ä' XK_Adiaeresis
BX_KEY_SINGLE_QUOTE 'ä' XK_adiaeresis
BX_KEY_SLASH none XK_dead_belowdot
BX_KEY_SLASH '-' XK_minus
BX_KEY_SLASH+BX_KEY_SHIFT_L '_' XK_underscore
BX_KEY_SPACE space XK_space
BX_KEY_TAB none XK_ISO_Left_Tab
BX_KEY_TAB tab XK_Tab
BX_KEY_UP none XK_Up
BX_KEY_WIN_L none XK_Super_L
BX_KEY_WIN_R none XK_Super_R