2008-02-06 16:16:50 +01:00
|
|
|
/*
|
|
|
|
* Keymap for russian keyboard.
|
|
|
|
* Modified by Roman V. Ignatov <ignatov@minix3.ru>
|
|
|
|
* Charset: cp866
|
|
|
|
*/
|
|
|
|
|
|
|
|
/* 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(228), A('a'), A(148), C('A') },
|
|
|
|
K(B) = { L('b'), 'B', A(168), A('b'), A(136), C('B') },
|
|
|
|
K(C) = { L('c'), 'C', A(225), A('c'), A(145), C('C') },
|
|
|
|
K(D) = { L('d'), 'D', A(162), A('d'), A(130), C('D') },
|
|
|
|
K(E) = { L('e'), 'E', A(227), A('e'), A(147), C('E') },
|
|
|
|
K(F) = { L('f'), 'F', A(160), A('f'), A(128), C('F') },
|
|
|
|
K(G) = { L('g'), 'G', A(175), A('g'), A(143), C('G') },
|
|
|
|
K(H) = { L('h'), 'H', A(224), A('h'), A(144), C('H') },
|
|
|
|
K(I) = { L('i'), 'I', A(232), A('i'), A(152), C('I') },
|
|
|
|
K(J) = { L('j'), 'J', A(174), A('j'), A(142), C('J') },
|
|
|
|
K(K) = { L('k'), 'K', A(171), A('k'), A(139), C('K') },
|
|
|
|
K(L) = { L('l'), 'L', A(164), A('l'), A(132), C('L') },
|
|
|
|
K(M) = { L('m'), 'M', A(236), A('m'), A(156), C('M') },
|
|
|
|
K(N) = { L('n'), 'N', A(226), A('n'), A(146), C('N') },
|
|
|
|
K(O) = { L('o'), 'O', A(233), A('o'), A(153), C('O') },
|
|
|
|
K(P) = { L('p'), 'P', A(167), A('p'), A(135), C('P') },
|
|
|
|
K(Q) = { L('q'), 'Q', A(169), A('q'), A(137), C('Q') },
|
|
|
|
K(R) = { L('r'), 'R', A(170), A('r'), A(138), C('R') },
|
|
|
|
K(S) = { L('s'), 'S', A(235), A('s'), A(155), C('S') },
|
|
|
|
K(T) = { L('t'), 'T', A(165), A('t'), A(133), C('T') },
|
|
|
|
K(U) = { L('u'), 'U', A(163), A('u'), A(131), C('U') },
|
|
|
|
K(V) = { L('v'), 'V', A(172), A('v'), A(140), C('V') },
|
|
|
|
K(W) = { L('w'), 'W', A(230), A('w'), A(150), C('W') },
|
|
|
|
K(X) = { L('x'), 'X', A(231), A('x'), A(151), C('X') },
|
|
|
|
K(Y) = { L('y'), 'Y', A(173), A('y'), A(141), C('Y') },
|
|
|
|
K(Z) = { L('z'), 'Z', A(239), A('z'), A(159), C('Z') },
|
|
|
|
K(1) = { '1', '!', '1', A('1'), '!', C('A') },
|
|
|
|
K(2) = { '2', '@', '2', A('2'), '"', C('@') },
|
|
|
|
K(3) = { '3', '#', '3', A('3'), 'N', C('C') },
|
|
|
|
K(4) = { '4', '$', '4', A('4'), ';', C('D') },
|
|
|
|
K(5) = { '5', '%', '5', A('5'), '%', C('E') },
|
|
|
|
K(6) = { '6', '^', '6', A('6'), ':', C('^') },
|
|
|
|
K(7) = { '7', '&', '7', A('7'), '?', C('G') },
|
|
|
|
K(8) = { '8', '*', '8', A('8'), '*', C('H') },
|
|
|
|
K(9) = { '9', '(', '9', A('9'), '(', C('I') },
|
|
|
|
K(0) = { '0', ')', '0', A('0'), ')', C('@') },
|
|
|
|
K(ENTER) = { C('M'), C('M'), C('M'), CA('M'),C('M') ,C('J') },
|
|
|
|
K(ESCAPE) = { C('['), C('['), CA('['),CA('['),CA('['),C('[') },
|
|
|
|
K(BACKSPACE) = { C('H'), C('H'), C('H'), CA('H'),C('H'), DEL },
|
|
|
|
K(TAB) = { C('I'), C('I'), C('I'), CA('I'),C('I'), C('I') },
|
|
|
|
K(SPACEBAR) = { ' ', ' ', ' ', A(' '), ' ', C('@') },
|
|
|
|
K(DASH) = { '-', '_', '-', A('-'), '_', C('_') },
|
|
|
|
K(EQUAL) = { '=', '+', '=', A('='), '+', C('@') },
|
|
|
|
K(OPEN_BRACKET) = { '[', '{', A(229), A('['), A(149), C('[') },
|
|
|
|
K(CLOSE_BRACKET) = { ']', '}', A(234), A(']'), A(154), C(']') },
|
|
|
|
K(BACKSLASH) = { '\\', '|', '\\', A('\\'),'|', C('\\') },
|
|
|
|
K(SEMICOLON) = { ';', ':', A(166), A(';'), A(134), C('@') },
|
|
|
|
K(APOSTROPH) = { '\'', '"', A(237), A('\''),A(157), C('@') },
|
|
|
|
K(GRAVE_ACCENT) = { '`', '~', A(241), A('`'), A(240), C('@') },
|
|
|
|
K(COMMA) = { ',', '<', A(161), A(','), A(129), C('@') },
|
|
|
|
K(PERIOD) = { '.', '>', A(238), A('.'), A(158), C('@') },
|
|
|
|
K(SLASH) = { '/', '?', '.', A('/'), ',', C('@') },
|
|
|
|
K(CAPS_LOCK) = { CALOCK, CALOCK, CALOCK, CALOCK, CALOCK, CALOCK },
|
|
|
|
K(F1) = { F1, SF1, F1, AF1, SF1, CF1 },
|
|
|
|
K(F2) = { F2, SF2, F2, AF2, SF2, CF2 },
|
|
|
|
K(F3) = { F3, SF3, F3, AF3, SF3, CF3 },
|
|
|
|
K(F4) = { F4, SF4, F4, AF4, SF4, CF4 },
|
|
|
|
K(F5) = { F5, SF5, F5, AF5, SF5, CF5 },
|
|
|
|
K(F6) = { F6, SF6, F6, AF6, SF6, CF6 },
|
|
|
|
K(F7) = { F7, SF7, F7, AF7, SF7, CF7 },
|
|
|
|
K(F8) = { F8, SF8, F8, AF8, SF8, CF8 },
|
|
|
|
K(F9) = { F9, SF9, F9, AF9, SF9, CF9 },
|
|
|
|
K(F10) = { F10, SF10, F10, AF10, SF10, CF10 },
|
|
|
|
K(F11) = { F11, SF11, F11, AF11, SF11, CF11 },
|
|
|
|
K(F12) = { F12, SF12, F12, AF12, SF12, CF12 },
|
|
|
|
K(SCROLL_LOCK) = { SLOCK, SLOCK, SLOCK, SLOCK, SLOCK, SLOCK },
|
|
|
|
K(INSERT) = { INSRT, INSRT, INSRT, AINSRT, INSRT, CINSRT },
|
|
|
|
K(HOME) = { HOME, HOME, HOME, AHOME, HOME, CHOME },
|
|
|
|
K(PAGE_UP) = { PGUP, PGUP, PGUP, APGUP, PGUP, CPGUP },
|
|
|
|
K(DELETE) = { DEL, DEL, DEL, A(DEL), DEL, DEL },
|
|
|
|
K(END) = { END, END, END, AEND, END, CEND },
|
|
|
|
K(PAGE_DOWN) = { PGDN, PGDN, PGDN, APGDN, PGDN, CPGDN },
|
|
|
|
K(RIGHT_ARROW) = { RIGHT, RIGHT, RIGHT, ARIGHT, RIGHT, CRIGHT },
|
|
|
|
K(LEFT_ARROW) = { LEFT, LEFT, LEFT, ALEFT, LEFT, CLEFT },
|
|
|
|
K(DOWN_ARROW) = { DOWN, DOWN, DOWN, ADOWN, DOWN, CDOWN },
|
|
|
|
K(UP_ARROW) = { UP, UP, UP, AUP, UP, CUP },
|
|
|
|
K(NUM_LOCK) = { NLOCK, NLOCK, NLOCK, NLOCK, NLOCK, NLOCK },
|
2013-10-02 13:37:49 +02:00
|
|
|
K(KP_SLASH) = { '/', '/', A('/'), A('/'), '/', C('@') },
|
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(KP_STAR) = { '*', '*', '*', A('*'), '*', C('@') },
|
|
|
|
K(KP_DASH) = { '-', '-', '-', AMIN, '-', CMIN },
|
|
|
|
K(KP_PLUS) = { '+', '+', '+', APLUS, '+', CPLUS },
|
|
|
|
K(KP_ENTER) = { C('M'), C('M'), C('M'), CA('M'),C('M'), C('J') },
|
|
|
|
K(KP_1) = { NEND, '1', END, AEND, '1', CEND },
|
|
|
|
K(KP_2) = { NDOWN, '2', DOWN, ADOWN, '2', CDOWN },
|
|
|
|
K(KP_3) = { NPGDN, '3', PGDN, APGDN, '3', CPGDN },
|
|
|
|
K(KP_4) = { NLEFT, '4', LEFT, ALEFT, '4', CLEFT },
|
|
|
|
K(KP_5) = { NMID, '5', MID, AMID, '5', CMID },
|
|
|
|
K(KP_6) = { NRIGHT, '6', RIGHT, ARIGHT, '6', CRIGHT },
|
|
|
|
K(KP_7) = { NHOME, '7', HOME, AHOME, '7', CHOME },
|
|
|
|
K(KP_8) = { NUP, '8', UP, AUP, '8', CUP },
|
|
|
|
K(KP_9) = { NPGUP, '9', PGUP, APGUP, '9', CPGUP },
|
|
|
|
K(KP_0) = { NINSRT, '0', INSRT, AINSRT, '0', CINSRT },
|
|
|
|
K(KP_PERIOD) = { NDEL, '.', DEL, A(DEL), '.', DEL },
|
|
|
|
K(EUROPE_2) = { '<', '>', '<', A('|'), '>', C('@') },
|
|
|
|
K(APPLICATION) = { C('M'), C('M'), C('M'), CA('M'),C('M') ,C('J') },
|
|
|
|
K(SYSREQ) = { C('M'), C('M'), C('M'), CA('M'),C('M'), C('J') },
|
|
|
|
K(LEFT_CTRL) = { LCTRL, LCTRL, LCTRL, LCTRL, LCTRL, LCTRL },
|
|
|
|
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 }
|