1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159
|
/*
* This file defines a german keyboard layout.
*
* For each keycode there are four possible characters the code might
* return: The first is for the normal key, the second for the shifted
* key, the third for it's altgr combination. The fourth field has
* actually no meaning (ignore the KT_CONTROL definition below - it's
* definitly not used). I defined four because the Linux keytable
* seems also to define up to four variations for a single keycode.
*
* To implement your own keymap: Look into the output of the
* dumpkeys command. Read the `keycode xxx = ' lines, this is
* what you are looking for and what you have to fill in the table
* below -- 27JUL99wzk
*
*/
#define KT_NORMAL 0
#define KT_SHIFTED 1
#define KT_ALTGR 2
#define KT_CONTROL 3
int keytable[NR_KEYS][4] = {
/* 000 */ { NoSymbol, NoSymbol, NoSymbol, NoSymbol },
/* 001 */ { XK_Escape, XK_Escape, NoSymbol, NoSymbol },
/* 002 */ { XK_1, XK_exclam, NoSymbol, NoSymbol },
/* 003 */ { XK_2, XK_quotedbl, XK_twosuperior, NoSymbol },
/* 004 */ { XK_3, XK_section, XK_threesuperior, NoSymbol },
/* 005 */ { XK_4, XK_dollar, NoSymbol, NoSymbol },
/* 006 */ { XK_5, XK_percent, NoSymbol, NoSymbol },
/* 007 */ { XK_6, XK_ampersand, NoSymbol, NoSymbol },
/* 008 */ { XK_7, XK_slash, XK_braceleft, NoSymbol },
/* 009 */ { XK_8, XK_parenleft, XK_bracketleft, NoSymbol },
/* 010 */ { XK_9, XK_parenright, XK_bracketright, NoSymbol },
/* 011 */ { XK_0, XK_equal, XK_braceright, NoSymbol },
/* 012 */ { XK_ssharp, XK_question, XK_backslash, NoSymbol },
/* 013 */ { XK_apostrophe, XK_grave, NoSymbol, NoSymbol },
/* 014 */ { XK_BackSpace, XK_BackSpace, XK_BackSpace, NoSymbol },
/* 015 */ { XK_Tab, XK_ISO_Left_Tab, NoSymbol, NoSymbol },
/* 016 */ { XK_q, XK_Q, XK_at, NoSymbol },
/* 017 */ { XK_w, XK_W, NoSymbol, NoSymbol },
/* 018 */ { XK_e, XK_E, NoSymbol, NoSymbol },
/* 019 */ { XK_r, XK_R, NoSymbol, NoSymbol },
/* 020 */ { XK_t, XK_T, NoSymbol, NoSymbol },
/* 021 */ { XK_z, XK_Z, NoSymbol, NoSymbol },
/* 022 */ { XK_u, XK_U, NoSymbol, NoSymbol },
/* 023 */ { XK_i, XK_I, NoSymbol, NoSymbol },
/* 024 */ { XK_o, XK_O, NoSymbol, NoSymbol },
/* 025 */ { XK_p, XK_P, NoSymbol, NoSymbol },
/* 026 */ { XK_udiaeresis, XK_Udiaeresis, NoSymbol, NoSymbol },
/* 027 */ { XK_plus, XK_asterisk, XK_asciitilde, NoSymbol },
/* 028 */ { XK_Return, XK_Return, NoSymbol, NoSymbol },
/* 029 */ { XK_Control_L, XK_Control_L, NoSymbol, NoSymbol },
/* 030 */ { XK_a, XK_A, NoSymbol, NoSymbol },
/* 031 */ { XK_s, XK_S, NoSymbol, NoSymbol },
/* 032 */ { XK_d, XK_D, NoSymbol, NoSymbol },
/* 033 */ { XK_f, XK_F, NoSymbol, NoSymbol },
/* 034 */ { XK_g, XK_G, NoSymbol, NoSymbol },
/* 035 */ { XK_h, XK_H, NoSymbol, NoSymbol },
/* 036 */ { XK_j, XK_J, NoSymbol, NoSymbol },
/* 037 */ { XK_k, XK_K, NoSymbol, NoSymbol },
/* 038 */ { XK_l, XK_L, NoSymbol, NoSymbol },
/* 039 */ { XK_odiaeresis, XK_Odiaeresis, NoSymbol, NoSymbol },
/* 040 */ { XK_adiaeresis, XK_Adiaeresis, NoSymbol, NoSymbol },
/* 041 */ { XK_asciicircum, XK_degree, NoSymbol, NoSymbol },
/* 042 */ { XK_Shift_L, XK_Shift_L, NoSymbol, NoSymbol },
/* 043 */ { XK_numbersign, XK_apostrophe, NoSymbol, NoSymbol },
/* 044 */ { XK_y, XK_Y, NoSymbol, NoSymbol },
/* 045 */ { XK_x, XK_X, NoSymbol, NoSymbol },
/* 046 */ { XK_c, XK_C, NoSymbol, NoSymbol },
/* 047 */ { XK_v, XK_V, NoSymbol, NoSymbol },
/* 048 */ { XK_b, XK_B, NoSymbol, NoSymbol },
/* 049 */ { XK_n, XK_N, NoSymbol, NoSymbol },
/* 050 */ { XK_m, XK_M, NoSymbol, NoSymbol },
/* 051 */ { XK_comma, XK_semicolon, NoSymbol, NoSymbol },
/* 052 */ { XK_period, XK_colon, NoSymbol, NoSymbol },
/* 053 */ { XK_minus, XK_underscore, NoSymbol, NoSymbol },
/* 054 */ { XK_Shift_R, XK_Shift_R, NoSymbol, NoSymbol },
/* 055 */ { XK_KP_Multiply, XK_KP_Multiply, NoSymbol, NoSymbol },
/* 056 */ { XK_Alt_L, XK_Meta_L, NoSymbol, NoSymbol },
/* 057 */ { XK_space, XK_space, NoSymbol, NoSymbol },
/* 058 */ { XK_Caps_Lock, XK_Caps_Lock, NoSymbol, NoSymbol },
/* 059 */ { XK_F1, XK_F1, NoSymbol, NoSymbol },
/* 060 */ { XK_F2, XK_F2, NoSymbol, NoSymbol },
/* 061 */ { XK_F3, XK_F3, NoSymbol, NoSymbol },
/* 062 */ { XK_F4, XK_F4, NoSymbol, NoSymbol },
/* 063 */ { XK_F5, XK_F5, NoSymbol, NoSymbol },
/* 064 */ { XK_F6, XK_F6, NoSymbol, NoSymbol },
/* 065 */ { XK_F7, XK_F7, NoSymbol, NoSymbol },
/* 066 */ { XK_F8, XK_F8, NoSymbol, NoSymbol },
/* 067 */ { XK_F9, XK_F9, NoSymbol, NoSymbol },
/* 068 */ { XK_F10, XK_F10, NoSymbol, NoSymbol },
/* 069 */ { XK_Num_Lock, XK_Num_Lock, NoSymbol, NoSymbol },
/* 070 */ { XK_Scroll_Lock, XK_Scroll_Lock, NoSymbol, NoSymbol },
/* 071 */ { XK_KP_Home, XK_KP_7, NoSymbol, NoSymbol },
/* 072 */ { XK_KP_Up, XK_KP_8, NoSymbol, NoSymbol },
/* 073 */ { XK_KP_Prior, XK_KP_9, NoSymbol, NoSymbol },
/* 074 */ { XK_KP_Subtract, XK_KP_Subtract, NoSymbol, NoSymbol },
/* 075 */ { XK_KP_Left, XK_KP_4, NoSymbol, NoSymbol },
/* 076 */ { XK_KP_Begin, XK_KP_5, NoSymbol, NoSymbol },
/* 077 */ { XK_KP_Right, XK_KP_6, NoSymbol, NoSymbol },
/* 078 */ { XK_KP_Add, XK_KP_Add, NoSymbol, NoSymbol },
/* 079 */ { XK_KP_End, XK_KP_1, NoSymbol, NoSymbol },
/* 080 */ { XK_KP_Down, XK_KP_2, NoSymbol, NoSymbol },
/* 081 */ { XK_KP_Next, XK_KP_3, NoSymbol, NoSymbol },
/* 082 */ { XK_KP_Insert, XK_KP_0, NoSymbol, NoSymbol },
/* 083 */ { XK_KP_Delete, XK_KP_Decimal, NoSymbol, NoSymbol },
/* 084 */ { XK_Sys_Req, NoSymbol, NoSymbol, NoSymbol },
/* 085 */ { NoSymbol, NoSymbol, NoSymbol, NoSymbol },
/* 086 */ { XK_less, XK_greater, XK_bar, NoSymbol },
/* 087 */ { XK_F11, XK_F11, NoSymbol, NoSymbol },
/* 088 */ { XK_F12, XK_F12, NoSymbol, NoSymbol },
/* 089 */ { XK_Home, XK_Home, NoSymbol, NoSymbol },
/* 090 */ { XK_Up, XK_Up, NoSymbol, NoSymbol },
/* 091 */ { XK_Prior, XK_Prior, NoSymbol, NoSymbol },
/* 092 */ { XK_Left, XK_Left, NoSymbol, NoSymbol },
/* 093 */ { XK_Begin, XK_Begin, NoSymbol, NoSymbol },
/* 094 */ { XK_Right, XK_Right, NoSymbol, NoSymbol },
/* 095 */ { XK_End, XK_End, NoSymbol, NoSymbol },
/* 096 */ { XK_KP_Enter, XK_KP_Enter, NoSymbol, NoSymbol },
/* 097 */ { XK_Control_R, XK_Control_R, NoSymbol, NoSymbol },
/* 098 */ { XK_KP_Divide, XK_KP_Divide, NoSymbol, NoSymbol },
/* 099 */ { XK_Print, XK_Print, NoSymbol, NoSymbol },
/* 100 */ { XK_Alt_R, XK_Alt_R, NoSymbol, NoSymbol },
/* 101 */ { XK_Control_R, XK_Control_R, NoSymbol, NoSymbol },
/* 102 */ { XK_Home, XK_Home, NoSymbol, NoSymbol },
/* 103 */ { XK_Up, XK_Up, NoSymbol, NoSymbol },
/* 104 */ { XK_Prior, XK_Prior, NoSymbol, NoSymbol },
/* 105 */ { XK_Left, XK_Left, NoSymbol, NoSymbol },
/* 106 */ { XK_Right, XK_Right, NoSymbol, NoSymbol },
/* 107 */ { XK_End, XK_End, NoSymbol, NoSymbol },
/* 108 */ { XK_Down, XK_Down, NoSymbol, NoSymbol },
/* 109 */ { XK_Next, XK_Next, NoSymbol, NoSymbol },
/* 110 */ { XK_Insert, XK_Insert, NoSymbol, NoSymbol },
/* 111 */ { XK_Delete, XK_Delete, NoSymbol, NoSymbol },
/* 112 */ { NoSymbol, NoSymbol, NoSymbol, NoSymbol },
/* 113 */ { NoSymbol, NoSymbol, NoSymbol, NoSymbol },
/* 114 */ { NoSymbol, NoSymbol, NoSymbol, NoSymbol },
/* 115 */ { NoSymbol, NoSymbol, NoSymbol, NoSymbol },
/* 116 */ { NoSymbol, NoSymbol, NoSymbol, NoSymbol },
/* 117 */ { NoSymbol, NoSymbol, NoSymbol, NoSymbol },
/* 118 */ { NoSymbol, NoSymbol, NoSymbol, NoSymbol },
/* 119 */ { XK_Pause, XK_Pause, NoSymbol, NoSymbol },
/* 120 */ { NoSymbol, NoSymbol, NoSymbol, NoSymbol },
/* 121 */ { NoSymbol, NoSymbol, NoSymbol, NoSymbol },
/* 122 */ { NoSymbol, NoSymbol, NoSymbol, NoSymbol },
/* 123 */ { NoSymbol, NoSymbol, NoSymbol, NoSymbol },
/* 124 */ { NoSymbol, NoSymbol, NoSymbol, NoSymbol },
/* 125 */ { NoSymbol, NoSymbol, NoSymbol, NoSymbol },
/* 126 */ { NoSymbol, NoSymbol, NoSymbol, NoSymbol },
/* 127 */ { NoSymbol, NoSymbol, NoSymbol, NoSymbol }
};
|