# Bochs Keymap file # $Id$ # Target: PC(x86) keyboard, IT_IT keymap (it) # Author: Michele Giacomone # # 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_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_CTRL_L none XK_Control_L BX_KEY_SHIFT_L none XK_Shift_L 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_CTRL_R none XK_Control_R BX_KEY_SHIFT_R none XK_Shift_R BX_KEY_CAPS_LOCK none XK_Caps_Lock BX_KEY_NUM_LOCK none XK_Num_Lock BX_KEY_ALT_L none XK_Alt_L BX_KEY_ALT_R none XK_ISO_Level3_Shift BX_KEY_A 'a' XK_a BX_KEY_A+BX_KEY_SHIFT_L 'A' XK_A BX_KEY_A+BX_KEY_ALT_R 'á' XK_ae BX_KEY_A+BX_KEY_SHIFT_L+BX_KEY_ALT_R 'Á' XK_AE BX_KEY_B 'b' XK_b BX_KEY_B+BX_KEY_SHIFT_L 'B' XK_B BX_KEY_B+BX_KEY_ALT_R 'b' XK_rightdoublequotemark BX_KEY_B+BX_KEY_SHIFT_L+BX_KEY_ALT_R none XK_rightsinglequotemark BX_KEY_C 'c' XK_c BX_KEY_C+BX_KEY_SHIFT_L 'C' XK_C BX_KEY_C+BX_KEY_ALT_R '©' XK_cent BX_KEY_C+BX_KEY_SHIFT_L+BX_KEY_ALT_R '¢' XK_copyright BX_KEY_D 'd' XK_d BX_KEY_D+BX_KEY_SHIFT_L 'D' XK_D BX_KEY_D+BX_KEY_ALT_R 'ð' XK_eth BX_KEY_D+BX_KEY_SHIFT_L+BX_KEY_ALT_R 'Ð' XK_ETH BX_KEY_E 'e' XK_e BX_KEY_E+BX_KEY_SHIFT_L 'E' XK_E BX_KEY_E+BX_KEY_ALT_R 'é' XK_EuroSign #BX_KEY_E+BX_KEY_SHIFT_L+BX_KEY_ALT_R 'É' XK_cent same as 67 BX_KEY_F 'f' XK_f BX_KEY_F+BX_KEY_SHIFT_L 'F' XK_F BX_KEY_F+BX_KEY_ALT_R 'f' XK_dstroke BX_KEY_F+BX_KEY_SHIFT_L+BX_KEY_ALT_R none XK_ordfeminine BX_KEY_G 'g' XK_g BX_KEY_G+BX_KEY_SHIFT_L 'G' XK_G BX_KEY_G+BX_KEY_ALT_R 'g' XK_eng BX_KEY_G+BX_KEY_SHIFT_L+BX_KEY_ALT_R none XK_ENG BX_KEY_H 'h' XK_h BX_KEY_H+BX_KEY_SHIFT_L 'H' XK_H BX_KEY_H+BX_KEY_ALT_R 'h' XK_hstroke BX_KEY_H+BX_KEY_SHIFT_L+BX_KEY_ALT_R none XK_Hstroke BX_KEY_I 'i' XK_i BX_KEY_I+BX_KEY_SHIFT_L 'I' XK_I BX_KEY_I+BX_KEY_ALT_R 'í' XK_rightarrow BX_KEY_I+BX_KEY_SHIFT_L+BX_KEY_ALT_R 'Í' XK_idotless BX_KEY_J 'j' XK_j BX_KEY_J+BX_KEY_SHIFT_L 'J' XK_J BX_KEY_J+BX_KEY_ALT_R 'j' XK_dead_hook BX_KEY_J+BX_KEY_SHIFT_L+BX_KEY_ALT_R none XK_dead_horn BX_KEY_K 'k' XK_k BX_KEY_K+BX_KEY_SHIFT_L 'K' XK_K BX_KEY_K+BX_KEY_ALT_R '½' XK_kra #BX_KEY_K+BX_KEY_SHIFT_L+BX_KEY_ALT_R '¼' XK_ampersand same as 186 BX_KEY_L 'l' XK_l BX_KEY_L+BX_KEY_SHIFT_L 'L' XK_L BX_KEY_L+BX_KEY_ALT_R 'ø' XK_lstroke BX_KEY_L+BX_KEY_SHIFT_L+BX_KEY_ALT_R 'Ø' XK_Lstroke BX_KEY_M 'm' XK_m BX_KEY_M+BX_KEY_SHIFT_L 'M' XK_M BX_KEY_M+BX_KEY_ALT_R 'µ' XK_mu BX_KEY_M+BX_KEY_SHIFT_L+BX_KEY_ALT_R 'µ' XK_masculine BX_KEY_N 'n' XK_n BX_KEY_N+BX_KEY_SHIFT_L 'N' XK_N BX_KEY_N+BX_KEY_ALT_R 'ñ' XK_ntilde BX_KEY_N+BX_KEY_SHIFT_L+BX_KEY_ALT_R 'Ñ' XK_Ntilde BX_KEY_O 'o' XK_o BX_KEY_O+BX_KEY_SHIFT_L 'O' XK_O BX_KEY_O+BX_KEY_ALT_R 'ó' XK_oslash BX_KEY_O+BX_KEY_SHIFT_L+BX_KEY_ALT_R 'Ó' XK_Oslash BX_KEY_P 'p' XK_p BX_KEY_P+BX_KEY_SHIFT_L 'P' XK_P BX_KEY_P+BX_KEY_ALT_R 'ö' XK_thorn BX_KEY_P+BX_KEY_SHIFT_L+BX_KEY_ALT_R 'Ö' XK_THORN BX_KEY_Q 'q' XK_q BX_KEY_Q+BX_KEY_SHIFT_L 'Q' XK_Q #BX_KEY_Q+BX_KEY_ALT_R 'ä' XK_at same as 221 BX_KEY_Q+BX_KEY_SHIFT_L+BX_KEY_ALT_R 'Ä' XK_Greek_OMEGA BX_KEY_R 'r' XK_r BX_KEY_R+BX_KEY_SHIFT_L 'R' XK_R BX_KEY_R+BX_KEY_ALT_R '®' XK_paragraph BX_KEY_R+BX_KEY_SHIFT_L+BX_KEY_ALT_R '®' XK_registered BX_KEY_S 's' XK_s BX_KEY_S+BX_KEY_SHIFT_L 'S' XK_S BX_KEY_S+BX_KEY_ALT_R 'ß' XK_ssharp #BX_KEY_S+BX_KEY_SHIFT_L+BX_KEY_ALT_R '§' XK_section same as 232 BX_KEY_T 't' XK_t BX_KEY_T+BX_KEY_SHIFT_L 'T' XK_T BX_KEY_T+BX_KEY_ALT_R 'þ' XK_tslash BX_KEY_T+BX_KEY_SHIFT_L+BX_KEY_ALT_R 'Þ' XK_Tslash BX_KEY_U 'u' XK_u BX_KEY_U+BX_KEY_SHIFT_L 'U' XK_U BX_KEY_U+BX_KEY_ALT_R 'ú' XK_downarrow BX_KEY_U+BX_KEY_SHIFT_L+BX_KEY_ALT_R 'Ú' XK_uparrow BX_KEY_V 'v' XK_v BX_KEY_V+BX_KEY_SHIFT_L 'V' XK_V BX_KEY_V+BX_KEY_ALT_R 'v' XK_leftdoublequotemark BX_KEY_V+BX_KEY_SHIFT_L+BX_KEY_ALT_R none XK_leftsinglequotemark BX_KEY_W 'w' XK_w BX_KEY_W+BX_KEY_SHIFT_L 'W' XK_W #BX_KEY_W+BX_KEY_ALT_R 'å' XK_lstroke #BX_KEY_W+BX_KEY_SHIFT_L+BX_KEY_ALT_R 'Å' XK_Lstroke BX_KEY_X 'x' XK_x BX_KEY_X+BX_KEY_SHIFT_L 'X' XK_X #BX_KEY_X+BX_KEY_ALT_R 'x' XK_guillemotright same as 255 #BX_KEY_X+BX_KEY_SHIFT_L+BX_KEY_ALT_R none XK_greater same as 253 BX_KEY_Y 'y' XK_y BX_KEY_Y+BX_KEY_SHIFT_L 'Y' XK_Y BX_KEY_Y+BX_KEY_ALT_R 'ü' XK_leftarrow BX_KEY_Y+BX_KEY_SHIFT_L+BX_KEY_ALT_R 'Ü' XK_yen BX_KEY_Z 'z' XK_z BX_KEY_Z+BX_KEY_SHIFT_L 'Z' XK_Z #BX_KEY_Z+BX_KEY_ALT_R 'æ' XK_guillemotleft same as 254 #BX_KEY_Z+BX_KEY_SHIFT_L+BX_KEY_ALT_R 'Æ' XK_less same as 252 BX_KEY_0 '0' XK_0 BX_KEY_0+BX_KEY_SHIFT_L ')' XK_equal BX_KEY_0+BX_KEY_ALT_R '°' XK_braceright BX_KEY_0+BX_KEY_SHIFT_L+BX_KEY_ALT_R none XK_dead_ogonek 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_1+BX_KEY_SHIFT_L+BX_KEY_ALT_R '¹' XK_exclamdown 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_2+BX_KEY_SHIFT_L+BX_KEY_ALT_R none XK_dead_doubleacute BX_KEY_3 '3' XK_3 BX_KEY_3+BX_KEY_SHIFT_L '#' XK_sterling BX_KEY_3+BX_KEY_ALT_R '³' XK_threesuperior BX_KEY_3+BX_KEY_SHIFT_L+BX_KEY_ALT_R none XK_dead_tilde 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_4+BX_KEY_SHIFT_L+BX_KEY_ALT_R '£' XK_oneeighth BX_KEY_5 '5' XK_5 BX_KEY_5+BX_KEY_SHIFT_L '%' XK_percent BX_KEY_5+BX_KEY_ALT_R '¤' XK_onehalf BX_KEY_5+BX_KEY_SHIFT_L+BX_KEY_ALT_R none XK_threeeighths BX_KEY_6 '6' XK_6 BX_KEY_6+BX_KEY_SHIFT_L none XK_ampersand BX_KEY_6+BX_KEY_ALT_R '¼' XK_notsign BX_KEY_6+BX_KEY_SHIFT_L+BX_KEY_ALT_R '^' XK_fiveeighths BX_KEY_7 '7' XK_7 BX_KEY_7+BX_KEY_SHIFT_L '&' XK_slash BX_KEY_7+BX_KEY_ALT_R '½' XK_braceleft BX_KEY_7+BX_KEY_SHIFT_L+BX_KEY_ALT_R none XK_seveneighths BX_KEY_8 '8' XK_8 BX_KEY_8+BX_KEY_SHIFT_L '*' XK_parenleft #BX_KEY_8+BX_KEY_ALT_R '¾' XK_bracketleft same as 229 BX_KEY_8+BX_KEY_SHIFT_L+BX_KEY_ALT_R none XK_trademark BX_KEY_9 '9' XK_9 BX_KEY_9+BX_KEY_SHIFT_L '(' XK_parenright #BX_KEY_9+BX_KEY_ALT_R none XK_bracketright same as 237 BX_KEY_9+BX_KEY_SHIFT_L+BX_KEY_ALT_R none XK_plusminus BX_KEY_ESC '' XK_Escape BX_KEY_SPACE space XK_space BX_KEY_SINGLE_QUOTE apostrophe XK_agrave BX_KEY_SINGLE_QUOTE+BX_KEY_SHIFT_L '"' XK_degree BX_KEY_SINGLE_QUOTE+BX_KEY_ALT_R apostrophe XK_numbersign BX_KEY_SINGLE_QUOTE+BX_KEY_ALT_R+BX_KEY_SHIFT_L '"' XK_dead_abovering BX_KEY_COMMA ',' XK_comma BX_KEY_COMMA+BX_KEY_SHIFT_L '<' XK_semicolon BX_KEY_COMMA+BX_KEY_ALT_R 'ç' XK_dead_acute BX_KEY_COMMA+BX_KEY_ALT_R+BX_KEY_SHIFT_L 'Ç' XK_multiply BX_KEY_PERIOD '.' XK_period BX_KEY_PERIOD+BX_KEY_SHIFT_L '>' XK_colon BX_KEY_PERIOD+BX_KEY_ALT_R '·' XK_periodcentered BX_KEY_PERIOD+BX_KEY_ALT_R+BX_KEY_SHIFT_L none XK_dead_diaeresis BX_KEY_SLASH '/' XK_minus BX_KEY_SLASH+BX_KEY_SHIFT_L '?' XK_underscore BX_KEY_SLASH+BX_KEY_ALT_R '¿' XK_dead_macron BX_KEY_SLASH+BX_KEY_ALT_R+BX_KEY_SHIFT_L none XK_division BX_KEY_SEMICOLON ';' XK_ograve BX_KEY_SEMICOLON+BX_KEY_SHIFT_L ':' XK_ccedilla BX_KEY_SEMICOLON+BX_KEY_ALT_R '¶' XK_at BX_KEY_SEMICOLON+BX_KEY_ALT_R+BX_KEY_SHIFT_L '°' XK_dead_cedilla BX_KEY_EQUALS '=' XK_igrave BX_KEY_EQUALS+BX_KEY_SHIFT_L '+' XK_asciicircum BX_KEY_EQUALS+BX_KEY_ALT_R '×' XK_asciitilde BX_KEY_EQUALS+BX_KEY_ALT_R+BX_SHIFT_L '÷' XK_dead_circumflex BX_KEY_LEFT_BRACKET '[' XK_egrave BX_KEY_LEFT_BRACKET+BX_KEY_SHIFT_L '{' XK_eacute BX_KEY_LEFT_BRACKET+BX_KEY_ALT_R '«' XK_bracketleft #BX_KEY_LEFT_BRACKET+BX_KEY_ALT_R+BX_KEY_SHIFT_L none XK_braceleft same as 191 BX_KEY_BACKSLASH backslash XK_ugrave BX_KEY_BACKSLASH+BX_KEY_SHIFT_L '|' XK_section BX_KEY_BACKSLASH+BX_KEY_ALT_R '¬' XK_dead_grave BX_KEY_BACKSLASH+BX_KEY_ALT_R+BX_KEY_SHIFT_L '¦' XK_dead_breve BX_KEY_RIGHT_BRACKET ']' XK_plus BX_KEY_RIGHT_BRACKET+BX_KEY_SHIFT_L '}' XK_asterisk BX_KEY_RIGHT_BRACKET+BX_KEY_ALT_R '»' XK_bracketright #BX_KEY_RIGHT_BRACKET+BX_KEY_ALT_R+BX_KEY_SHIFT_L none XK_braceright same as 163 BX_KEY_MINUS '-' XK_apostrophe BX_KEY_MINUS+BX_KEY_SHIFT_L '_' XK_question BX_KEY_MINUS+BX_KEY_ALT_R '¥' XK_grave BX_KEY_MINUS+BX_KEY_ALT_R+BX_KEY_SHIFT_L none XK_questiondown BX_KEY_GRAVE '`' XK_backslash BX_KEY_GRAVE+BX_KEY_SHIFT_L '~' XK_bar #BX_KEY_GRAVE+BX_KEY_ALT_R none XK_notsign same as 187 BX_KEY_GRAVE+BX_KEY_ALT_R+BX_KEY_SHIFT_L none XK_brokenbar BX_KEY_BACKSPACE '' XK_BackSpace #BX_KEY_BACKSPACE+BX_KEY_ALT_R none XK_ 0x0000 non definito BX_KEY_ENTER return XK_Return BX_KEY_TAB tab XK_Tab BX_KEY_TAB+BX_KEY_SHIFT_L none XK_ISO_Left_Tab BX_KEY_LEFT_BACKSLASH backslash XK_less BX_KEY_LEFT_BACKSLASH+BX_KEY_SHIFT_L '|' XK_greater BX_KEY_LEFT_BACKSLASH+BX_KEY_ALT_R backslash XK_guillemotleft BX_KEY_LEFT_BACKSLASH+BX_KEY_ALT_R+BX_KEY_SHIFT_L none XK_guillemotright BX_KEY_PRINT none XK_Print BX_KEY_SCRL_LOCK none XK_Scroll_Lock BX_KEY_PAUSE none XK_Pause BX_KEY_INSERT none XK_Insert BX_KEY_DELETE none XK_Delete BX_KEY_HOME none XK_Home BX_KEY_END none XK_End BX_KEY_PAGE_UP none XK_Page_Up BX_KEY_PAGE_DOWN none XK_Page_Down BX_KEY_KP_ADD '+' XK_KP_Add BX_KEY_KP_SUBTRACT '-' XK_KP_Subtract BX_KEY_KP_END none XK_KP_End BX_KEY_KP_END '1' XK_KP_1 BX_KEY_KP_DOWN none XK_KP_Down BX_KEY_KP_DOWN '2' XK_KP_2 BX_KEY_KP_PAGE_DOWN none XK_KP_Page_Down BX_KEY_KP_PAGE_DOWN '3' XK_KP_3 BX_KEY_KP_LEFT none XK_KP_Left BX_KEY_KP_LEFT '4' XK_KP_4 BX_KEY_KP_5 none XK_KP_Begin BX_KEY_KP_5 '5' XK_KP_5 BX_KEY_KP_RIGHT none XK_KP_Right BX_KEY_KP_RIGHT '6' XK_KP_6 BX_KEY_KP_HOME none XK_KP_Home BX_KEY_KP_HOME '7' XK_KP_7 BX_KEY_KP_UP none XK_KP_Up BX_KEY_KP_UP '8' XK_KP_8 BX_KEY_KP_PAGE_UP none XK_KP_Page_Up BX_KEY_KP_PAGE_UP '9' XK_KP_9 BX_KEY_KP_INSERT none XK_KP_Insert BX_KEY_KP_INSERT '0' XK_KP_0 BX_KEY_KP_DELETE none XK_KP_Delete BX_KEY_KP_DELETE '.' XK_KP_Decimal BX_KEY_KP_ENTER return XK_KP_Enter BX_KEY_KP_MULTIPLY '*' XK_KP_Multiply BX_KEY_KP_DIVIDE '/' XK_KP_Divide BX_KEY_UP none XK_Up BX_KEY_DOWN none XK_Down BX_KEY_LEFT none XK_Left BX_KEY_RIGHT none XK_Right BX_KEY_WIN_L none XK_Super_L BX_KEY_WIN_R none XK_Super_R BX_KEY_MENU none XK_Menu BX_KEY_ALT_SYSREQ none XK_Sys_Req BX_KEY_CTRL_BREAK none XK_Break #BX_KEY_INT_BACK none All the following keys are not present in keysymdef.h #BX_KEY_INT_FORWARD none #BX_KEY_INT_STOP none #BX_KEY_INT_MAIL none #BX_KEY_INT_SEARCH none #BX_KEY_INT_FAV none #BX_KEY_INT_HOME none #BX_KEY_POWER_MYCOMP none #BX_KEY_POWER_CALC none #BX_KEY_POWER_SLEEP none #BX_KEY_POWER_POWER none #BX_KEY_POWER_WAKE none