2005-04-21 16:53:53 +02:00
|
|
|
/* Keymap for US MF-2 keyboard with the Caps Lock and Control key swapped. */
|
|
|
|
|
|
|
|
/* scan-code !Shift Shift Alt1 Alt2 Alt+Sh Ctrl */
|
|
|
|
/* ==================================================================== */
|
Input infrastructure, INPUT server, PCKBD driver
This commit separates the low-level keyboard driver from TTY, putting
it in a separate driver (PCKBD). The commit also separates management
of raw input devices from TTY, and puts it in a separate server
(INPUT). All keyboard and mouse input from hardware is sent by drivers
to the INPUT server, which either sends it to a process that has
opened a raw input device, or otherwise forwards it to TTY for
standard processing.
Design by Dirk Vogt. Prototype by Uli Kastlunger.
Additional changes made to the prototype:
- the event communication is now based on USB HID codes; all input
drivers have to use USB codes to describe events;
- all TTY keymaps have been converted to USB format, with the effect
that a single keymap covers all keys; there is no (static) escaped
keymap anymore;
- further keymap tweaks now allow remapping of literally all keys;
- input device renumbering and protocol rewrite;
- INPUT server rewrite, with added support for cancel and select;
- PCKBD reimplementation, including PC/AT-to-USB translation;
- support for manipulating keyboard LEDs has been added;
- keyboard and mouse multiplexer devices have been added to INPUT,
primarily so that an X server need only open two devices;
- a new "libinputdriver" library abstracts away protocol details from
input drivers, and should be used by all future input drivers;
- both INPUT and PCKBD can be restarted;
- TTY is now scheduled by KERNEL, so that it won't be punished for
running a lot; without this, simply running "yes" on the console
kills the system;
- the KIOCBELL IOCTL has been moved to /dev/console;
- support for the SCANCODES termios setting has been removed;
- obsolete keymap compression has been removed;
- the obsolete Olivetti M24 keymap has been removed.
Change-Id: I3a672fb8c4fd566734e4b46d3994b4b7fc96d578
2013-09-28 14:46:21 +02:00
|
|
|
K(A) = { L('a'), 'A', A('a'), A('a'), A('A'), C('A') },
|
|
|
|
K(B) = { L('b'), 'B', A('b'), A('b'), A('B'), C('B') },
|
|
|
|
K(C) = { L('c'), 'C', A('c'), A('c'), A('C'), C('C') },
|
|
|
|
K(D) = { L('d'), 'D', A('d'), A('d'), A('D'), C('D') },
|
|
|
|
K(E) = { L('e'), 'E', A('e'), A('e'), A('E'), C('E') },
|
|
|
|
K(F) = { L('f'), 'F', A('f'), A('f'), A('F'), C('F') },
|
|
|
|
K(G) = { L('g'), 'G', A('g'), A('g'), A('G'), C('G') },
|
|
|
|
K(H) = { L('h'), 'H', A('h'), A('h'), A('H'), C('H') },
|
|
|
|
K(I) = { L('i'), 'I', A('i'), A('i'), A('I'), C('I') },
|
|
|
|
K(J) = { L('j'), 'J', A('j'), A('j'), A('J'), C('J') },
|
|
|
|
K(K) = { L('k'), 'K', A('k'), A('k'), A('K'), C('K') },
|
|
|
|
K(L) = { L('l'), 'L', A('l'), A('l'), A('L'), C('L') },
|
|
|
|
K(M) = { L('m'), 'M', A('m'), A('m'), A('M'), C('M') },
|
|
|
|
K(N) = { L('n'), 'N', A('n'), A('n'), A('N'), C('N') },
|
|
|
|
K(O) = { L('o'), 'O', A('o'), A('o'), A('O'), C('O') },
|
|
|
|
K(P) = { L('p'), 'P', A('p'), A('p'), A('P'), C('P') },
|
|
|
|
K(Q) = { L('q'), 'Q', A('q'), A('q'), A('Q'), C('Q') },
|
|
|
|
K(R) = { L('r'), 'R', A('r'), A('r'), A('R'), C('R') },
|
|
|
|
K(S) = { L('s'), 'S', A('s'), A('s'), A('S'), C('S') },
|
|
|
|
K(T) = { L('t'), 'T', A('t'), A('t'), A('T'), C('T') },
|
|
|
|
K(U) = { L('u'), 'U', A('u'), A('u'), A('U'), C('U') },
|
|
|
|
K(V) = { L('v'), 'V', A('v'), A('v'), A('V'), C('V') },
|
|
|
|
K(W) = { L('w'), 'W', A('w'), A('w'), A('W'), C('W') },
|
|
|
|
K(X) = { L('x'), 'X', A('x'), A('x'), A('X'), C('X') },
|
|
|
|
K(Y) = { L('y'), 'Y', A('y'), A('y'), A('Y'), C('Y') },
|
|
|
|
K(Z) = { L('z'), 'Z', A('z'), A('z'), A('Z'), C('Z') },
|
|
|
|
K(1) = { '1', '!', A('1'), A('1'), A('!'), C('A') },
|
|
|
|
K(2) = { '2', '@', A('2'), A('2'), A('@'), C('@') },
|
|
|
|
K(3) = { '3', '#', A('3'), A('3'), A('#'), C('C') },
|
|
|
|
K(4) = { '4', '$', A('4'), A('4'), A('$'), C('D') },
|
|
|
|
K(5) = { '5', '%', A('5'), A('5'), A('%'), C('E') },
|
|
|
|
K(6) = { '6', '^', A('6'), A('6'), A('^'), C('^') },
|
|
|
|
K(7) = { '7', '&', A('7'), A('7'), A('&'), C('G') },
|
|
|
|
K(8) = { '8', '*', A('8'), A('8'), A('*'), C('H') },
|
|
|
|
K(9) = { '9', '(', A('9'), A('9'), A('('), C('I') },
|
|
|
|
K(0) = { '0', ')', A('0'), A('0'), A(')'), C('@') },
|
|
|
|
K(ENTER) = { C('M'), C('M'), CA('M'),CA('M'),CA('M'),C('J') },
|
|
|
|
K(ESCAPE) = { C('['), C('['), CA('['),CA('['),CA('['),C('[') },
|
|
|
|
K(BACKSPACE) = { C('H'), C('H'), CA('H'),CA('H'),CA('H'),DEL },
|
|
|
|
K(TAB) = { C('I'), C('I'), CA('I'),CA('I'),CA('I'),C('I') },
|
|
|
|
K(SPACEBAR) = { ' ', ' ', A(' '), A(' '), A(' '), C('@') },
|
|
|
|
K(DASH) = { '-', '_', A('-'), A('-'), A('_'), C('_') },
|
|
|
|
K(EQUAL) = { '=', '+', A('='), A('='), A('+'), C('@') },
|
|
|
|
K(OPEN_BRACKET) = { '[', '{', A('['), A('['), A('{'), C('[') },
|
|
|
|
K(CLOSE_BRACKET) = { ']', '}', A(']'), A(']'), A('}'), C(']') },
|
|
|
|
K(BACKSLASH) = { '\\', '|', A('\\'),A('\\'),A('|'), C('\\') },
|
|
|
|
K(SEMICOLON) = { ';', ':', A(';'), A(';'), A(':'), C('@') },
|
|
|
|
K(APOSTROPH) = { '\'', '"', A('\''),A('\''),A('"'), C('@') },
|
|
|
|
K(GRAVE_ACCENT) = { '`', '~', A('`'), A('`'), A('~'), C('@') },
|
|
|
|
K(COMMA) = { ',', '<', A(','), A(','), A('<'), C('@') },
|
|
|
|
K(PERIOD) = { '.', '>', A('.'), A('.'), A('>'), C('@') },
|
|
|
|
K(SLASH) = { '/', '?', A('/'), A('/'), A('?'), C('@') },
|
|
|
|
K(CAPS_LOCK) = { LCTRL, LCTRL, LCTRL, LCTRL, LCTRL, LCTRL },
|
|
|
|
K(F1) = { F1, SF1, AF1, AF1, ASF1, CF1 },
|
|
|
|
K(F2) = { F2, SF2, AF2, AF2, ASF2, CF2 },
|
|
|
|
K(F3) = { F3, SF3, AF3, AF3, ASF3, CF3 },
|
|
|
|
K(F4) = { F4, SF4, AF4, AF4, ASF4, CF4 },
|
|
|
|
K(F5) = { F5, SF5, AF5, AF5, ASF5, CF5 },
|
|
|
|
K(F6) = { F6, SF6, AF6, AF6, ASF6, CF6 },
|
|
|
|
K(F7) = { F7, SF7, AF7, AF7, ASF7, CF7 },
|
|
|
|
K(F8) = { F8, SF8, AF8, AF8, ASF8, CF8 },
|
|
|
|
K(F9) = { F9, SF9, AF9, AF9, ASF9, CF9 },
|
|
|
|
K(F10) = { F10, SF10, AF10, AF10, ASF10, CF10 },
|
|
|
|
K(F11) = { F11, SF11, AF11, AF11, ASF11, CF11 },
|
|
|
|
K(F12) = { F12, SF12, AF12, AF12, ASF12, CF12 },
|
|
|
|
K(SCROLL_LOCK) = { SLOCK, SLOCK, SLOCK, SLOCK, SLOCK, SLOCK },
|
|
|
|
K(INSERT) = { INSRT, INSRT, AINSRT, AINSRT, AINSRT, CINSRT },
|
|
|
|
K(HOME) = { HOME, HOME, AHOME, AHOME, AHOME, CHOME },
|
|
|
|
K(PAGE_UP) = { PGUP, PGUP, APGUP, APGUP, APGUP, CPGUP },
|
|
|
|
K(DELETE) = { DEL, DEL, A(DEL), A(DEL), A(DEL), DEL },
|
|
|
|
K(END) = { END, END, AEND, AEND, AEND, CEND },
|
|
|
|
K(PAGE_DOWN) = { PGDN, PGDN, APGDN, APGDN, APGDN, CPGDN },
|
|
|
|
K(RIGHT_ARROW) = { RIGHT, RIGHT, ARIGHT, ARIGHT, ARIGHT, CRIGHT },
|
|
|
|
K(LEFT_ARROW) = { LEFT, LEFT, ALEFT, ALEFT, ALEFT, CLEFT },
|
|
|
|
K(DOWN_ARROW) = { DOWN, DOWN, ADOWN, ADOWN, ADOWN, CDOWN },
|
|
|
|
K(UP_ARROW) = { UP, UP, AUP, AUP, AUP, CUP },
|
|
|
|
K(NUM_LOCK) = { NLOCK, NLOCK, NLOCK, NLOCK, NLOCK, NLOCK },
|
|
|
|
K(KP_SLASH) = { '/', '/', A('/'), A('/'), A('/'), C('@') },
|
|
|
|
K(KP_STAR) = { '*', '*', A('*'), A('*'), A('*'), C('@') },
|
|
|
|
K(KP_DASH) = { '-', '-', AMIN, AMIN, A('-'), CMIN },
|
|
|
|
K(KP_PLUS) = { '+', '+', APLUS, APLUS, A('+'), CPLUS },
|
|
|
|
K(KP_ENTER) = { C('M'), C('M'), CA('M'),CA('M'),CA('M'),C('J') },
|
|
|
|
K(KP_1) = { NEND, '1', AEND, AEND, A('1'), CEND },
|
|
|
|
K(KP_2) = { NDOWN, '2', ADOWN, ADOWN, A('2'), CDOWN },
|
|
|
|
K(KP_3) = { NPGDN, '3', APGDN, APGDN, A('3'), CPGDN },
|
|
|
|
K(KP_4) = { NLEFT, '4', ALEFT, ALEFT, A('4'), CLEFT },
|
|
|
|
K(KP_5) = { NMID, '5', AMID, AMID, A('5'), CMID },
|
|
|
|
K(KP_6) = { NRIGHT, '6', ARIGHT, ARIGHT, A('6'), CRIGHT },
|
|
|
|
K(KP_7) = { NHOME, '7', AHOME, AHOME, A('7'), CHOME },
|
|
|
|
K(KP_8) = { NUP, '8', AUP, AUP, A('8'), CUP },
|
|
|
|
K(KP_9) = { NPGUP, '9', APGUP, APGUP, A('9'), CPGUP },
|
|
|
|
K(KP_0) = { NINSRT, '0', AINSRT, AINSRT, A('0'), CINSRT },
|
|
|
|
K(KP_PERIOD) = { NDEL, '.', A(DEL), A(DEL), A('.'), DEL },
|
|
|
|
K(EUROPE_2) = { '<', '>', A('<'), A('|'), A('>'), C('@') },
|
|
|
|
K(APPLICATION) = { C('M'), C('M'), CA('M'),CA('M'),CA('M'),C('J') },
|
|
|
|
K(SYSREQ) = { C('M'), C('M'), CA('M'),CA('M'),CA('M'),C('J') },
|
|
|
|
K(LEFT_CTRL) = { CALOCK, CALOCK, CALOCK, CALOCK, CALOCK, CALOCK },
|
|
|
|
K(LEFT_SHIFT) = { LSHIFT, LSHIFT, LSHIFT, LSHIFT, LSHIFT, LSHIFT },
|
|
|
|
K(LEFT_ALT) = { LALT, LALT, LALT, LALT, LALT, LALT },
|
|
|
|
K(LEFT_GUI) = { LEFT, '<', ALEFT, ALEFT, A('<'), CLEFT },
|
|
|
|
K(RIGHT_CTRL) = { RCTRL, RCTRL, RCTRL, RCTRL, RCTRL, RCTRL },
|
|
|
|
K(RIGHT_SHIFT) = { RSHIFT, RSHIFT, RSHIFT, RSHIFT, RSHIFT, RSHIFT },
|
|
|
|
K(RIGHT_ALT) = { RALT, RALT, RALT, RALT, RALT, RALT },
|
|
|
|
K(RIGHT_GUI) = { RIGHT, '>', ARIGHT, ARIGHT, A('>'), CRIGHT }
|