Скан-код
Содержание:
Скан-коды клавиш
Все скан-коды ниже даются в шестнадцатеричной системе.
Большинство скан-кодов на XT-клавиатуре соответствуют физическому местоположению клавиш, начиная с клавиш Esc (код 01) и цифровых клавиш 1-9 (коды 02-0A). К примеру, клавиши второго ряда (Tab ↹ Q W E R T Y U I O P ↵ Enter) имеют последовательные скан-коды 0F-1C (15-28 в десятичной системе).
На клавиатурах другой раскладки (например, AZERTY) скан-коды соответствуют расположению клавиш: так, у французского A скан-код как у американского Q. Преобразованием скан-кодов в коды нажатых клавиш занимается ОС или BIOS.
| Клавиша | Код нажатия XT | Код отпускания XT | Код нажатия AT | Код отпускания AT |
|---|---|---|---|---|
| Основная клавиатура | ||||
| A | 1E | 9E | 1C | F0,1C |
| B | 30 | B0 | 32 | F0,32 |
| C | 2E | AE | 21 | F0,21 |
| D | 20 | A0 | 23 | F0,23 |
| E | 12 | 92 | 24 | F0,24 |
| F | 21 | A1 | 2B | F0,2B |
| G | 22 | A2 | 34 | F0,34 |
| H | 23 | A3 | 33 | F0,33 |
| I | 17 | 97 | 43 | F0,43 |
| J | 24 | A4 | 38 | F0,3B |
| K | 25 | A5 | 42 | F0,42 |
| L | 26 | A6 | 4B | F0,4B |
| M | 32 | B2 | 3A | F0,3A |
| N | 31 | B1 | 31 | F0,31 |
| O | 18 | 98 | 44 | F0,44 |
| P | 19 | 99 | 4D | F0,4D |
| Q | 10 | 90 | 15 | F0,15 |
| R | 13 | 93 | 2D | F0,2D |
| S | 1F | 9F | 1B | F0,1B |
| T | 14 | 94 | 2C | F0,2C |
| U | 16 | 96 | 3C | F0,3C |
| V | 2F | AF | 2A | F0,2A |
| W | 11 | 91 | 1D | F0,1D |
| X | 2D | AD | 22 | F0,22 |
| Y | 15 | 95 | 35 | F0,35 |
| Z | 2C | AC | 1A | F0,1A |
| 0B | 8B | 45 | F0,45 | |
| 1 | 02 | 82 | 16 | F0,16 |
| 2 | 03 | 83 | 1E | F0,1E |
| 3 | 04 | 84 | 26 | F0,26 |
| 4 | 05 | 85 | 25 | F0,25 |
| 5 | 06 | 86 | 2E | F0,2E |
| 6 | 07 | 87 | 36 | F0,36 |
| 7 | 08 | 88 | 3D | F0,3D |
| 8 | 09 | 89 | 3E | F0,3E |
| 9 | 0A | 8A | 46 | F0,46 |
| ~ | 29 | 89 | 0E | F0,0E |
| - | 0C | 8C | 4E | F0,4E |
| = | 0D | 82 | 55 | F0,55 |
| \ | 2B | AB | 5D | F0,5D |
| 1A | 9A | 54 | F0,54 | |
| 1B | 9B | 5B | F0,5B | |
| ; | 27 | A7 | 4C | F0,4C |
| ' | 28 | A8 | 52 | F0,52 |
| , | 33 | B3 | 41 | F0,41 |
| . | 34 | B4 | 49 | F0,49 |
| 35 | B5 | 4A | F0,4A | |
| BS | 0E | 8E | 66 | F0,66 |
| Space | 39 | B9 | 29 | F0,29 |
| Tab ↹ | 0F | 8F | 0D | F0,0D |
| ⇪ Caps Lock | 3A | BA | 58 | F0,58 |
| Левый ⇧ Shift | 2A | AA | 12 | F0,12 |
| Левый Ctrl | 1D | 9D | 14 | F0,14 |
| Левый Alt | 38 | B8 | 11 | F0,11 |
| Левый ⊞ Win | E0,5B | E0,DB | E0,1F | E0,F0,1F |
| Правый ⇧ Shift | 36 | B6 | 59 | F0,59 |
| Правый Ctrl | E0,1D | E0,9D | E0,14 | E0,F0,14 |
| Правый Alt | E0,38 | E0,B8 | E0,11 | E0,F0,11 |
| Правый ⊞ Win | E0,5C | E0,DC | E0,27 | E0,F0,27 |
| ≣ Menu | E0,5D | E0,DD | E0,2F | E0,F0,2F |
| ↵ Enter | 1C | 9C | 5A | F0,5A |
| Esc | 01 | 81 | 76 | F0,76 |
| F1 | 3B | BB | 05 | F0,05 |
| F2 | 3C | BC | 06 | F0,06 |
| F3 | 3D | BD | 04 | F0,04 |
| F4 | 3E | BE | 0C | F0,0C |
| F5 | 3F | BF | 03 | F0,03 |
| F6 | 40 | C0 | 0B | F0,0B |
| F7 | 41 | C1 | 83 | F0,83 |
| F8 | 42 | C2 | 0A | F0,0A |
| F9 | 43 | C3 | 01 | F0,01 |
| F10 | 44 | C4 | 09 | F0,09 |
| F11 | 57 | D7 | 78 | F0,78 |
| F12 | 58 | D8 | 07 | F0,07 |
| PrtScr | E0,2A,E0,37 | E0,B7,E0,AA | E0,12,E0,7C | E0,F0,7C,E0,F0,12 |
| Alt+PrtScr | 54 (вместо PrtScr,
код для клавиши Alt генерируется отдельно) |
D4 (вместо PrtScr,
код для клавиши Alt генерируется отдельно) |
? | ? |
|
Ctrl+PrtScr,
⇧ Shift+PrtScr (SysReq) |
E0,37 (вместо PrtScr,
код для Ctrl или ⇧ Shift генерируется отдельно) |
E0,B7 (вместо PrtScr,
код для Ctrl или ⇧ Shift генерируется отдельно) |
? | ? |
| Scroll Lock | 46 | C6 | 7E | F0,7E |
| Pause | E1,1D,45, E1,9D,C5 | — | E1,14,77, E1,F0,14,F0,77 | — |
|
Ctrl+Break
(Ctrl+Pause) |
E0,46 (вместо Break,
код для клавиши Ctrl генерируется отдельно) |
E0,C6 (вместо Break,
код для клавиши Ctrl генерируется отдельно) |
? | ? |
| Insert | E0,52 | E0,D2 | E0,70 | E0,F0,70 |
| Home | E0,47 | E0,C7 | E0,6C | E0,F0,6C |
| End | E0,4F | E0,CF | E0,69 | E0,F0,69 |
| Page Up | E0,49 | E0,C9 | E0,7D | E0,F0,7D |
| Page Down | E0,51 | E0,D1 | E0,7A | E0,F0,7A |
| Delete | E0,53 | E0,D3 | E0,71 | E0,F0,71 |
| ↑ | E0,48 | E0,C8 | E0,75 | E0,F0,75 |
| ← | E0,4B | E0,CB | E0,6B | E0,F0,6B |
| ↓ | E0,50 | E0,D0 | E0,72 | E0,F0,70 |
| → | E0,4D | E0,CD | E0,74 | E0,F0,74 |
| Цифровая клавиатура | ||||
| Num Lock | 45 | C5 | 77 | F0,77 |
| E0,35 | E0,B5 | E0,4A | E0,F0,4A | |
| * | 37 | B7 | 7C | F0,7C |
| - | 4A | CA | 7B | F0,7B |
| + | 4E | CE | 79 | F0,79 |
| ↵ Enter | E0,1C | E0,9C | E0,5A | E0,F0,5A |
| . | 53 | D3 | 71 | F0,71 |
| 52 | D2 | 70 | F0,70 | |
| 1 | 4F | CF | 69 | F0,69 |
| 2 | 50 | D0 | 72 | F0,72 |
| 3 | 51 | D1 | 7A | F0,7A |
| 4 | 4B | CB | 6B | F0,6B |
| 5 | 4C | CC | 73 | F0,73 |
| 6 | 4D | CD | 74 | F0,74 |
| 7 | 47 | C7 | 6C | F0,6C |
| 8 | 48 | C8 | 75 | F0,75 |
| 9 | 49 | C9 | 7D | F0,7D |
| Клавиши ACPI | ||||
| Power | E0,5E | E0,DE | E0,37 | E0,F0,37 |
| Sleep | E0,5F | E0,DF | E0,3F | E0,F0,3F |
| Wake | E0,63 | E0,E3 | E0,5E | E0,F0,5E |
| Мультимедиа клавиши | ||||
| Управление проигрывателем | ||||
| Следующий трек | E0,19 | E0, 99 | E0, 4D | E0,F0,4D |
| Предыдущий трек | E0,10 | E0, 90 | E0,15 | E0,F0,15 |
| Остановить | E0,24 | E0,A4 | E0,3B | E0,F0,3B |
| Проигрывать/пауза | E0,22 | E0,A2 | E0,34 | E0,F0,3B |
| Звук вкл/откл | E0,20 | E0,A0 | E0,23 | E0,F0,23 |
| Увеличить громкость | E0,30 | E0,B0 | E0,32 | E0,F0,32 |
| Уменьшить громкость | E0,2E | E0,AE | E0,21 | E0,F0,21 |
| Управление браузером | ||||
| Поиск | E0,65 | E0,E5 | E0,10 | E0,F0,10 |
| Домашняя страница | E0,32 | E0,B2 | E0,3A | E0,F0,3A |
| Назад | E0,6A | E0,EA | E0,38 | E0,F0,38 |
| Вперед | E0,69 | E0,E9 | E0,30 | E0,F0,30 |
| Стоп | E0,68 | E0, E8 | E0,28 | E0,F0,28 |
| Обновить | E0,67 | E0,E7 | E0,20 | E0,F0,20 |
| Закладки | E0,66 | E0, E6 | E0,18 | E0,F0,18 |
| Управление приложениями | ||||
| Media Select | E0,6D | E0,ED | E0,50 | E0,F0,50 |
| Электронная почта | E0,6C | E0,EC | E0,48 | E0,F0,48 |
| Калькулятор | E0,21 | E0,A1 | E0,2B | E0,F0,2B |
| Мой компьютер | E0,6B | E0,EB | E0,40 | E0,F0,40 |
В чистом DOS клавиша Pause генерирует 6 скан-кодов при нажатии и не генерирует скан-кодов при удержании и отпускании. Под Windows же (в том числе и в VMware и DOSBox) клавиша Pause работает так же, как и любая другая: при нажатии и удержании генерирует скан-коды E1,1D,45, а при отпускании — E1,9D,C5.
Десятка самых используемых сочетаний
Вы с успехом можете их применять:
1. Эти сочетания наверняка знают многие. Горячие клавиши Копировать:
Ctrl + C или
Ctrl + Insert
Они необходимы для копирования выделенного фрагмента текста следующим образом:
Сначала выделяем текст (или картинку, таблицу).
Затем нажимаем на клавишу Ctrl и, не отпуская ее, одновременно нажимаем на клавишу с буквой С (кратко это пишут так: Ctrl + C).
Отпускаем клавиши, теперь выделенный фрагмент скопирован в буфер обмена (в оперативную память компьютера).
Внешне на экране компьютера процедура Копировать никак не проявляется. Чтобы «достать» из памяти компьютера то, что мы туда поместили с помощью горячих клавиш Копировать:
надо поставить курсор в то место, куда требуется поместить скопированный фрагмент, и
нажать на горячие клавиши Вставить: Ctrl + V.
С помощью какой комбинации клавиш можно скопировать текст или объекты в буфер обмена?
Для этого есть горячие клавиши Копировать: Ctrl + C и Вставить: Ctrl + V. Их можно назвать сладкой парочкой. Их чаще всего используют в одной связке, то есть, сначала с помощью Ctrl + C копируют выделенный фрагмент, потом сразу делают его вставку клавишами Ctrl+V.
Можно использовать другую сладкую парочку, чтобы Копировать Вставить – это Ctrl + Insert и Shift + Insert. Здесь, как говорится, дело вкуса.
2. Ctrl + V или Shift + Insert – горячие клавиши Вставить текст или объект, скопированный в буфер обмена.
3. Ctrl + Z и Ctrl + Y – горячие клавиши Отменить.
С помощью этих команд можно отменить любые изменения, к примеру, если Вы случайно вырезали или удалили текст.
Чтобы отменить несколько последних изменений, нужно нажать одно из этих сочетаний (Ctrl + Z, либо Ctrl + Y) несколько раз.
Ctrl + X – горячие клавиши Вырезать
Это сочетание позволяет вырезать то, что нужно, и одновременно с этим закинуть вырезанное в буфер обмена. Потом можно вставить вырезанное в нужное место.
4. Ctrl + F – горячие клавиши Поиск.
Очень полезная «парочка» клавиш, открывает строку поиска почти в любой программе или в браузере.
Иногда Ctrl + F называют также горячими клавишами Найти.
5. Alt + Tab – горячие клавиши переключения окон.
Удобно для быстрого переключения между окошками открытых программ. Если для Вас это в новинку, просто попробуйте. Есть вероятность, что Вы предпочтете этот способ привычной мышке.
Если добавить к этим сочетаниям Shift (получится Shift+ Alt+ Tab), Вы будете перемещаться в обратном направлении, то есть, сможете вернуться к той программе, в которой Вы были на предыдущем шаге.
Ctrl + Tab – горячие клавиши переключения вкладок. С их помощью можно быстро перемещаться между вкладками в браузере.
6. Ctrl + Backspace – горячие клавиши Удалить. Они сэкономят уйму времени, если надо быстро удалить слово при наборе текста. В Блокноте эти сочетания клавиш не работают, а в Ворде отлично работают.
Набираем слово, ставим курсор сразу после слова и потом, если слово нужно удалить, просто жмем на Ctrl + Backspace. При этом Ворд удалит целое слово слева от курсора.
7. Ctrl + S – горячие клавиши Сохранить. Они используются для быстрого сохранения файла во многих программах. Применяйте его, если работаете над чем-то важным, например, когда садится батарея ноутбука.
В Word и Excel горячие клавиши Сохранить – это Shift + F12.
8. Crtl + Home или Crtl + End перемещает курсор в начало или конец документа соответственно.
Клавиши перемещения страниц Page Up (вверх) и Page Down (вниз) могут заменить полосу прокрутки.
9. Crtl + P – горячие клавиши Печать.
Используются для открытия окна предварительного просмотра текущей страницы в браузере или для вызова окна печати документа в текстовых редакторах.
10. Alt + F4 – горячие клавиши Закрыть.
Они позволяют закрыть то приложение или программу, с которым Вы работаете, то есть, закрыть активное приложение.
Диалоговые окна, которые ведут с Вами диалог в приложении или программе, например, спрашивают, «Сохранить текст?», закрываются с помощью клавиши Esc.
Если вам кажется, что запомнить все эти сочетания сложно, попробуйте для начала использовать этот текст в качестве шпаргалки. Применив каждое из них несколько раз на практике, Вы наверняка все легко запомните и сможете не только упростить свою работу на компьютере, но и, например, блеснуть знаниями, если у кого-то рядом сломается мышка.
Видео “Что такое горячие клавиши и зачем они нужны”
А вдруг и это будет интересно:
1. О пользе аудиокниг
2. Упражнения для глаз за компьютером
3. Как сделать скриншот в операционной системе Windows
4. Как устроен компьютер
5. Что такое смайлик? (и клавиши для текстовых смайликов)
1.3 Escape scancodes
The codes e0 and e1 introduce scancode sequences,
and are not usually used as isolated scancodes themselves
(but see
).
(The prefix e0 was originally used for the grey duplicates
of keys on the original PC/XT keyboard. These days e0 is
just used to expand code space. The prefix e1 used for
Pause/Break indicated that this key sends the make/break sequence
at make time, and does nothing upon release.)
This, and the above, means that the values
00, 60, 61, 6e, 71,
7a, 7c, 7e, 7f
are unavailable to signify key presses (on a default keyboard).
Nevertheless they also occur as scancodes, see for example the
and
keyboards below.
Also other prefixes occur, see
.
uses an e2 prefix
for the codes sent by a pointing device integrated on the keyboard.
Бесплатные отечественные сайты для поиска товара по штрих-коду
Кроме общеизвестных мировых ресурсов, получить данные о товаре по штрих-коду online помогут ряд отечественных бесплатных сервисов.
| Сервисы: | Описание: |
|---|---|
| Довольно эффективный российский ресурс, позволяющий узнать данные товара. Для осуществления процедуры поиска будет необходимо ввести номер товара в соответствующую строку на странице сайта, после чего кликнуть на «Поиск». | |
| Один из популярных отечественных ресурсов, позволяющих получить данные онлайн. Достаточно перейти на данный ресурс и ввести номер штрих-кода в соответствующий квадрат. Останется нажать на кнопку «Найти». | |
| Документальный вспомогательный сервис, содержащий массу полезного для ведения документооборота. В функционале своих возможностей имеет инструментарий для выведения информации по товару. Пользование сервисом аналогично вышеописанным альтернативам. | |
| Ещё один простой сервис схожего плана. |
Decode.org.ua — простой сервис для распознания штрих-кодов
В целом, указанные сервисы позволяют достаточно легко и быстро получить информацию об искомом нами продукте.
1.8 Turbo Mode
On some motherboards the LCtrl-LAlt-GreyPlus and LCtrl-LAlt-GreyMinus
switch Turbo mode on/off, respectively. For these, the motherboard
may generate the same scancode sequence when the Turbo button is
pushed: Turbo Switch (High->Low):
1d 38 4a ce b8 9d
and Turbo Switch (Low->High):
1d 38 4e ce b8 9d.
Other peculiar combinations in this style include
LCtrl-LAlt-LShift-GreyMinus and LCtrl-LAlt-LShift-GreyPlus to turn
system cache off/on.
If Green PC system power saving mode is enabled in AMIBIOS Setup,
the AMI MegaKey keyboard controller recognizes the combinations
Ctrl-Alt-\ (put the system into immediate power down mode),
Ctrl-Alt- (enables the Green PC power down mode).
Thio Yu Jin <> complains that on his Toshiba 4010CDS
the Ctrl-Alt-Shift-T key combination brings up the Toshiba user manual.
(04 Mar 1999 — not April 1.)
События keydown и keyup
Событие происходит при нажатии клавиши, а – при отпускании.
Свойство объекта события позволяет получить символ, а свойство – «физический код клавиши».
К примеру, одну и ту же клавишу Z можно нажать с клавишей Shift и без неё. В результате получится два разных символа: в нижнем регистре и в верхнем регистре.
Свойство – это непосредственно символ, и он может различаться. Но всегда будет тот же:
| Клавиша | ||
|---|---|---|
| Z | (нижний регистр) | |
| Shift+Z | (Верхний регистр) |
Если пользователь работает с разными языками, то при переключении на другой язык символ изменится с на совершенно другой. Получившееся станет новым значением , тогда как останется тем же: .
«KeyZ» и другие клавишные коды
У каждой клавиши есть код, который зависит от её расположения на клавиатуре. Подробно о клавишных кодах можно прочитать в спецификации о кодах событий UI.
Например:
- Буквенные клавиши имеют коды по типу : , и т.д.
- Коды числовых клавиш строятся по принципу: : , и т.д.
- Код специальных клавиш – это их имя: , , и т.д.
Существует несколько широко распространённых раскладок клавиатуры, и в спецификации приведены клавишные коды к каждой из них.
Можно их прочитать в или просто нажмите нужную клавишу на выше и посмотрите.
Регистр важен: , а не
Выглядит очевидно, но многие всё равно ошибаются.
Пожалуйста, избегайте опечаток: правильно , а не . Условие работать не будет: первая буква в слове должна быть заглавная.
А что, если клавиша не буквенно-цифровая? Например, или , или какая-либо другая специальная клавиша? В таких случаях значение свойства примерно тоже, что и у :
| Клавиша | ||
|---|---|---|
| F1 | ||
| Backspace | ||
| Shift | или |
Обратите внимание, что точно указывает, какая именно клавиша нажата. Так, большинство клавиатур имеют по две клавиши Shift: слева и справа
уточняет, какая именно из них была нажата, в то время как сообщает о «смысле» клавиши: что вообще было нажато ().
Допустим, мы хотим обработать горячую клавишу Ctrl+Z (или Cmd+Z для Mac). Большинство текстовых редакторов к этой комбинации подключают действие «Отменить». Мы можем поставить обработчик событий на и проверять, какая клавиша была нажата.
Здесь возникает дилемма: в нашем обработчике стоит проверять значение или ?
С одной стороны, значение – это символ, он изменяется в зависимости от языка, и если у пользователя установлено в ОС несколько языков, и он переключается между ними, нажатие на одну и ту же клавишу будет давать разные символы. Так что имеет смысл проверять , ведь его значение всегда одно и тоже.
Вот пример кода:
С другой стороны, с тоже есть проблемы. На разных раскладках к одной и той же клавише могут быть привязаны разные символы.
Например, вот схема стандартной (US) раскладки («QWERTY») и под ней немецкой («QWERTZ») раскладки (из Википедии):
Для одной и той же клавиши в американской раскладке значение равно «Z», в то время как в немецкой «Y».
Буквально, для пользователей с немецкой раскладкой при нажатии на Y будет равен .
Если мы будем проверять в нашем коде , то для людей с немецкой раскладкой такая проверка сработает, когда они нажимают Y.
Звучит очень странно, но это и в самом деле так. В прямо упоминается такое поведение.
Так что может содержать неправильный символ при неожиданной раскладке. Одни и те же буквы на разных раскладках могут сопоставляться с разными физическими клавишами, что приводит к разным кодам. К счастью, это происходит не со всеми кодами, а с несколькими, например , , (как мы уже видели), и не происходит со специальными клавишами, такими как . Вы можете найти полный список проблемных кодов в .
Чтобы отслеживать символы, зависящие от раскладки, надёжнее.
С другой стороны, преимущество заключается в том, что его значение всегда остаётся неизменным, будучи привязанным к физическому местоположению клавиши, даже если пользователь меняет язык. Так что горячие клавиши, использующие это свойство, будут работать даже в случае переключения языка.
Хотим поддерживать клавиши, меняющиеся при раскладке? Тогда – верный выбор.
Или мы хотим, чтобы горячая клавиша срабатывала даже после переключения на другой язык? Тогда может быть лучше.
Действия по умолчанию
Действия по умолчанию весьма разнообразны, много чего можно инициировать нажатием на клавиатуре.
Для примера:
- Появление символа (самое очевидное).
- Удаление символа (клавиша Delete).
- Прокрутка страницы (клавиша PageDown).
- Открытие диалогового окна браузера «Сохранить» (Ctrl+S)
- …и так далее.
Предотвращение стандартного действия с помощью работает практически во всех сценариях, кроме тех, которые происходят на уровне операционной системы. Например, комбинация Alt+F4 инициирует закрытие браузера в Windows, что бы мы ни делали в JavaScript.
Для примера, ниже ожидает телефонный номер, так что ничего кроме чисел, , или принято не будет:
Заметьте, что специальные клавиши, такие как Backspace, Left, Right, Ctrl+V, в этом поле для ввода не работают. Это побочный эффект чересчур жёсткого фильтра .
Добавим ему немного больше свободы:
Теперь стрелочки и удаление прекрасно работают.
…Впрочем, мы всё равно можем ввести в что угодно с помощью правого клика мыши и пункта «Вставить» контекстного меню. Так что такой фильтр не обладает 100% надёжностью. Мы можем просто оставить всё как есть, потому что в большинстве случаев это работает. Альтернатива – отслеживать событие , оно генерируется после любых изменений в поле , и мы можем проверять новое значение и подчёркивать/изменять его, если оно не подходит.
Настройка реакции в консоли
В консоли порядок действий несколько иной. Как ты помнишь, вывод dmesg рекомендовал назначить клавишные коды с помощью команды setkeycodes. Но здесь есть отличия — клавишных команд в консоли не может быть больше 128, следует выбирать значения от 0 до 127:
Посмотреть свободные значения можно в файле текущей клавиатурной раскладки. В Ubuntu и всех дистрибутивах, базирующихся на Debian, это обычно /etc/console-setup/boottime.kmap.gz. Если после запуска проблем с клавишами нет, заносим эту строку в один из стартовых скриптов, например в /etc/init.d/rc.local.
Теперь осталось задать соответствие клавиши и выполняемого действия. Здесь простор для творчества даже больше, чем в иксах. В keymaps(5) процедура установки соответствия keycode выглядит следующим образом:
Пример:
Но можно создавать и свои варианты, указывая команду в переменных:
Другими словами, по нажатии клавиши с кодом 120 будет выполнено действие, указанное в переменной F100; в нашем случае задано выключение компьютера. Вместо F100, естественно, можно использовать любое другое имя.
Теперь не менее важная часть — куда все это записывать. В документации и в многочисленных советах предлагается использовать текущий файл консольной раскладки (в моем случае — boottime.kmap.gz). Кстати, это единственный файл описания раскладок, доступный после установки KUbuntu; чтобы увидеть остальные варианты, следует установить пакет console-data. После этого в /usr/share/keymaps/i386/ можно обнаружить несколько подкаталогов с файлами внутри. Но если тебе понадобится перейти на другую раскладку (в Ubuntu и некоторых других дистрибутивах для этих целей используется файл /etc/default/console-setup или ~/.console-setup), все настройки нужно будет перенести в другой файл, что несколько
неудобно. Если ты все-таки решишься на этот шаг, используй имеющиеся записи как шаблон, ничего не записывая на первую позицию, а в конце не забудь оставить пустую строку.
Идентификация кодов клавиш
Скан коды
С помощью showkey
Традиционный способ узнать скан код — воспользоваться утилитой showkey. showkey ожидает нажатия клавиши, или выходит, если не было нажатий в течение 10 секунд. Чтобы работать с showkey, вы должны быть в виртуальной консоли, а не в графическом окружении или работать, залогинившись по сети. Выполните следующую команду:
# showkey --scancodes
и понажимайте клавиши на клавиатуре; вы должны увидеть скан коды на экране.
С помощью evtest
# evtest /dev/input/event12 ... Event: time 1434666536.001123, type 4 (EV_MSC), code 4 (MSC_SCAN), value 70053 Event: time 1434666536.001123, type 1 (EV_KEY), code 69 (KEY_NUMLOCK), value 0 Event: time 1434666536.001123, -------------- EV_SYN ------------
Используйте поле «value» из . В этом примере показано, что NumLock имеет сканкод 70053 и keycode 69.
С помощью dmesg
Примечание: Этот метод не показывает скан коды всех клавиш, он показывает их только для неизвестных клавиш.
Вы можете узнать скан код клавиши, нажав её и посмотрев вывод команды . Например, если у вас отображается такая строка:
Unknown key pressed (translated set 2, code 0xa0 on isa0060/serio0
значит, скан код нужной вам клавиши — .
Коды клавиш
Важно: Обратите внимание, что коды клавиш различаются в консольном и графическом режимах. Используйте соответствующую утилиту, чтобы узнать нужное значение
Режим консоли
В виртуальной консоли коды клавиш можно узнать утилитой showkey. showkey ждёт нажатия клавиш, и если нажатий нет в течение 10 секунд, выходит (это единственный способ выйти из программы) Чтобы работать с showkey, вы должны быть в виртуальной консоли, а не в графическом окружении. Выполните следующую команду:
# showkey --keycodes
и понажимайте клавиши на клавиатуре. Вы должны увидеть коды клавиш на экране.
Режим графики
В графическом режиме коды клавищ, используемые Xorg (Русский), можно узнать с помощью утилиты xev, которая поставляется в пакете . Разумеется, чтобы работать с xev, вы должны находиться в графическом окружении, а не в консоли.
Выполнив следующую команду, вы запустите xev с выводом только релевантной информации:
$ xev | grep -A2 --line-buffered '^KeyRelease' | sed -n '/keycode /s/^.*keycode \(*\).* (.*, \(.*\)).*$/\1 \2/p'
Вот пример вывода:
38 a 27 r 54 c 43 h 153 NoSymbol 144 NoSymbol
В этом примере были нажаты клавиши , , , и две мультимедиа клавиши. Первым четырём клавишам с кодами клавиш , , и правильно назначены символы, а мультимедиа клавишам с кодами клавиш и — нет. Надпись означает, что этим клавишам не назначен символ клавиши.
Если вы нажимаете клавишу и ничего не появляется на терминале, это может означать, что либо у клавиши нет скан кода, либо сканкоду не назначен код клавиши, либо какой-то другой процесс отлавливает нажатия клавиш. Если вы подозреваете, что процесс, слушающий X сервер отлавливает нажатия клавиш, вы можете попробовать запустить xev из чистой X сессии:
$ xinit /usr/bin/xterm -- :1
Символы
Ставить знаки можно при помощи Alt-кодов – дополнительных команд для ввода скрытых символов. Эти команды вводятся простым нажатием клавиши Alt + число в десятичной системе счисления.
- alt + 3 =
- Alt+8734 = ∞
- Alt + 0128 = €
Эти и другие символы представлены в следующих таблицах в виде рисунков. В столбце «Alt-код» находится числовое значение, после ввода которого, в сочетании с клавишей Alt, отобразится определённый знак. В столбце символ находится конечный результат.
Обратите внимание, если дополнительная цифровая клавиатура не включена – не нажат Num Lock, то комбинация клавиш Alt + число может привести к неожиданным результатам. Например, если в браузере нажать Alt + 4, без включенного Num Lock, то откроется предыдущая страница
Например, если в браузере нажать Alt + 4, без включенного Num Lock, то откроется предыдущая страница.
1.1 Key release
Below I’ll only mention the scancode for key press (`make’).
The scancode for key release (`break’) is obtained from it
by setting the high order bit (adding 0x80 = 128).
Thus, Esc press produces scancode 01, Esc release
scancode 81 (hex).
For sequences things are similar: Keypad-/ gives e0 35
when pressed, e0 b5 when released. Most keyboards will
repeat the make code (key down code) when the key repeats. Some will also
fake Shift down and Shift up events during the repeat.
The keys PrtSc/SysRq and Pause/Break are special.
The former produces scancode e0 2a e0 37
when no modifier key is pressed simultaneously, e0 37
together with Shift or Ctrl, but 54 together with (left or right) Alt.
(And one gets the expected sequences upon release. But see
.)
The latter produces scancode sequence
e1 1d 45 e1 9d c5
when pressed (without modifier) and nothing at all upon release.
However, together with (left or right) Ctrl, one gets
e0 46 e0 c6,
and again nothing at release. It does not repeat.
See
for a report on keys
with a different behaviour.
There are many reports of laptops with badly debounced key-up events.
Thus, unexpected key-up events should probably be regarded as not
unusual, and be ignored. Another source of key-up events without
preceding key-down can be the
.