Супер-ключ — это альтернативное название клавиши Windows или клавиши Command при использовании операционных систем или программного обеспечения Linux или BSD. Клавиша Super изначально была клавишей-модификатором на клавиатуре, разработанной для машин Lisp в Массачусетском технологическом институте.
В Linux клавиша Windows называется Супер ключ. Приложение получает нажатие клавиши Super, и его можно настроить, если вы не настроили его как глобальную горячую клавишу в своей среде dektop (KDE, GNOME и т. Д.)
Ключ Windows работает в Linux?
Да, в Linux это называется супер- или мета-ключом. Вы можете использовать его в настраиваемых сочетаниях клавиш, а в Unity он должен вызвать Dash. Ниже приведен пример того, как настроить ярлык с помощью клавиши Windows в KDE. Это должно быть аналогично в других средах рабочего стола.
Как мне найти ключ продукта Windows в Linux?
Чтобы найти исходный ключ продукта Windows 10 в Linux:
- Откройте приложение терминала.
- Вы должны запустить команду Linux от имени пользователя root.
- Введите sudo strings / sys / firmware / acpi / tables / MSDM, чтобы напечатать ключ продукта Windows 10 или Windows 8 OEM.
- Вы также можете использовать команду acpidump для получения той же информации в Linux.
Выпускает ли Microsoft Windows 11?
Дата объявлена: Microsoft начнет предлагать Windows 11 на Октябрь 5 к компьютерам, полностью отвечающим его аппаратным требованиям.
Что такое гипер-ключ?
Гипер-ключ волшебный ключ, который автоматически нажимает все стандартные модификаторы (ctrl + shift + cmd + opt). … С помощью Hyper Key можно определить сочетания клавиш в BTT, которые практически гарантированно не будут использоваться где-либо еще (кто захочет нажать, например, ctrl + shift + cmd + opt + P).
Является ли ключ продукта обязательным в Linux?
Мало того, что они должны быть вошел всякий раз, когда программа установлена, но пользователь также должен быть уверен, что не потеряет их. Потеря ключа продукта обычно означает, что программное обеспечение становится бесполезным после удаления, если перед удалением не используется приложение для восстановления ключей (хотя не все программы поддерживают это).
Как я могу получить OEM ключ Windows из BIOS?
Получение ключа Windows 10 с помощью CMD
- Получение ключа Windows 10 с помощью CMD. Командную строку или CMD можно использовать для получения информации об установочном ключе Windows. …
- Введите команду «slmgr / dli» и нажмите «Enter». …
- Получите ключ продукта Windows 10 в BIOS. …
- Если ваш ключ Windows находится в BIOS, вы можете его просмотреть:
Как мне найти лицензионный ключ Windows?
Как правило, если вы купили физическую копию Windows, ключ продукта должен быть на этикетке или карточке внутри коробки, в которой Windows была установлена. Если Windows была предустановлена на вашем ПК, ключ продукта должен появиться на наклейке на вашем устройстве. Если вы потеряли или не можете найти ключ продукта, обратитесь к производителю.
Что такое ключ ОС?
Супер ключ — это клавиша ОС на клавиатуре. В последних продуктах System76 это кнопка Pop (). … На обычных продуктах сторонних производителей он может быть помечен логотипом Windows. На аксессуарах Mac это может быть помечено как команда.
Где я могу получить ключ продукта Windows 10?
Найти ключ продукта Windows 10 на новом компьютере
- Нажмите клавишу Windows + X.
- Нажмите «Командная строка» («Администратор»)
- В командной строке введите: wmic path SoftwareLicensingService get OA3xOriginalProductKey. Это раскроет ключ продукта. Активация ключа продукта корпоративной лицензии.
Как мне найти ключ продукта Windows 7 из командной строки?
Шаг 1: нажмите Windows Key + R, а затем введите CMD в поле поиска. Шаг 2. Теперь введите или вставьте следующий код в cmd и нажмите Enter, чтобы увидеть результат. wmic path softwarelicensingservice получить OA3xOriginalProductKey. Шаг 3. Приведенная выше команда покажет вам ключ продукта, связанный с вашей Windows 7.
Где в реестре находится ключ продукта Windows 10?
Шаг 1. Перейдите в меню «Пуск» и найдите командную строку. Шаг 2: Щелкните правой кнопкой мыши командную строку и выберите «Запуск от имени администратора». Шаг 3. В командной строке вставьте эту команду «Wmic path softwarelicensingservice получить OA3xOriginalProductKey«. Шаг 4: Это отобразит все ключи для вашей Windows 10.
Содержание
- Keyboard input (Русский)
- Contents
- Определение скан-кодов
- С помощью showkey
- С помощью evtest
- С помощью dmesg
- Определение кодов клавиш
- Определение кодов клавиш в консоли
- Определение кодов клавиш в Xorg
- Где взять названия клавиш для каждого keycode клавиатуры?
- Как узнать название клавиши linux
Keyboard input (Русский)
Необходимым условием для изменения сопоставления клавиш является понимание того, как нажатие клавиши приводит к появлению символа:
- Клавиатура посылает компьютеру скан-код (scancode).
- Ядро Linux сопоставляет сканкод с кодом клавиши (keycode); смотрите Map scancodes to keycodes.
- Раскладка клавиатуры сопоставляет код клавиши с символом клавиши (keysym) в зависимости от того, какие клавиши-модификаторы нажаты.
- Для консоли Linux смотрите статью Конфигурация клавиатуры в консоли.
- Для Xorg и Wayland смотрите статью Конфигурация клавиатуры в Xorg.
Большинство ваших клавиш уже должны иметь код клавиши или хотя бы скан-код. Клавиши без скан-кода не распознаются ядром; это могут быть дополнительные клавиши от «игровых» клавиатур и т.д.
В Xorg некоторым символам клавиш (например XF86AudioPlay , XF86AudioRaiseVolume ) можно назначить действия (такие как запуск внешних приложений). Подробности смотрите в статье Горячие клавиши#Xorg.
В консоли Linux некоторым символам клавиш (например, F1 – F246 ) могут быть назначены определённые действия (например, переключение на другую консоль или печать некоторой последовательности символов). Подробности смотрите в статье Конфигурация клавиатуры в консоли#Создание своей раскладки.
Contents
Определение скан-кодов
С помощью showkey
Традиционный способ узнать скан код — воспользоваться утилитой showkey(1) . showkey ожидает нажатия клавиши, или выходит, если не было нажатий в течение 10 секунд. Чтобы работать с showkey, вы должны быть в виртуальной консоли, а не в графическом окружении или работать, залогинившись по сети. Выполните следующую команду:
и понажимайте клавиши на клавиатуре; вы должны увидеть скан коды на экране.
С помощью evtest
Для USB клавиатур, видимо, нужно использовать evtest(1) из пакета evtest вместо showkey:[1]
Используйте поле «value» из MSC_SCAN . В этом примере показано, что NumLock имеет сканкод 70053 и keycode 69.
С помощью dmesg
Вы можете узнать скан-код клавиши, нажав её и посмотрев вывод команды dmesg. Например, если у вас отображается такая строка:
значит, скан код нужной вам клавиши — 0xa0 .
Определение кодов клавиш
Коды клавиш Linux определены в файле /usr/include/linux/input-event-codes.h (смотрите переменные KEY_ ).
Определение кодов клавиш в консоли
В виртуальной консоли Linux коды клавиш можно узнать утилитой showkey(1) . showkey ждёт нажатия клавиш, и если нажатий нет в течение 10 секунд, выходит (это единственный способ выйти из программы) Чтобы работать с showkey, вы должны быть в виртуальной консоли, а не в графическом окружении. Выполните следующую команду:
и понажимайте клавиши на клавиатуре. Вы должны увидеть коды клавиш на экране.
Определение кодов клавиш в Xorg
В графическом режиме коды клавиш, которые использует Xorg, можно узнать с помощью утилиты xev(1) , которая поставляется в пакете xorg-xev . Разумеется, чтобы работать с xev, вы должны находиться в графическом окружении, а не в консоли.
Выполнив следующую команду, вы запустите xev с выводом только релевантной информации:
Вот пример вывода:
Xbindkeys — ещё одна обёртка для xev, которая сообщает коды клавиш.
Если вы нажимаете клавишу и ничего не появляется на терминале, это может означать, что либо у клавиши нет скан кода, либо сканкоду не назначен код клавиши, либо какой-то другой процесс отлавливает нажатия клавиш. Если вы подозреваете, что процесс, слушающий X сервер отлавливает нажатия клавиш, вы можете попробовать запустить xev из чистой X сессии:
Источник
Где взять названия клавиш для каждого keycode клавиатуры?
но эта таблица врёт (устарела): так, например, на самом деле keycode «А» не 0x41, а 0x26
остальные номера клавиш тоже не совпадают
возможно, уже где-то есть готовые либы, правильно переводящие keycode в name
на самом деле keycode «А» не 0x41, а 0x26
Можно посмотреть откуда их xev берет — keycode 38 (keysym 0x61, a)
но эта таблица врёт (устарела): так, например, на самом деле keycode «А» не 0x41, а 0x26
ты не различил ascii keycode и scan keycode
из функции XKeysymToString — осталось понять, откуда она берёт…
слишком жирная либа, чтобы ещё и её тянуть
На сколько я понял — кейсуммы есть в иксовом keysymdef.h. Соотвествие кейкода (это код клавиши, который с клавиатуры пришел в ядро) кейсумме (это то к чему привязан кейкод в иксах) определяет xmodmap через список соответствия кода с клавиатуры символу в раскладке через /usr/share/X11/xkb/symbols/ . А вот как интерпретировать сигналы с клавиатуры уже зависит от того, какой тип клавиатуры выбран, и список кодов клавиатуры в связке с «кодами», которые потом можно при помощи локали замаппить в кейкоды, можно посмореть в файлах /usr/share/X11/xkb/keycodes/ .
Мне кажется что я где-то запутал и усложнил, но не могу найти что тут можно выкинуть.
там какие-то не те коды
там с локалью, а мне надо без
Там соответствие «сигнала» клавиатуры какому-то иксовоу коду, который потом через локаль маппится в символ.
У тебя задача какая? Собрать список вида «a = 0x26»? Тогда без локали у тебя не получится.
Хочу добавить: можно дампнуть полный текущий конфиг xkb в файл
Там будет вся инфа, а не размазана по куче xkb инклудов. Я здесь с xkb упражнялся Настройка XKB
Задача собрать список вида «LeftArrow = 0x69», «F20 = 0x50»
она не соответствует реальным сканкодам
Опять же, коды стрелок не совпадают (хотя многие остальные клавиши — вроде да)
Да, вот тут, похоже, коды правильные. Спасибо.
В чём заключается жирность?
на самом деле keycode «А» не 0x41, а 0x26
на самом деле 0x1e
вообще никак не согласуется с теми кодами, которые я получаю на практике
никак не согласуется с теми кодами, которые я получаю на практике
смотря что ты практикуешь. По ссылке настоящие коды клавиш — драйверы различных устройств читают из контроллеров скан-коды и ставят им в соотвествие стандартные коды клавиш из этого хидера. Потом библиотеки прикладного уровня отслеживают нажатия клавиш и посылают тебе какой-то свой код клавиш.
Что посылает ядро можно посмотреть sudo evtest
вот иксовый код из xev той же клавиши A
у него наварное иксы
к слову, а в mir|wayland такие же коды, как в иксах или другие?
Тебе теорию надо курить сильно, ты не понимаешь что делаешь и как оно работает. Можешь вот это почитать для затравки.
А вообще дело в том, что куча абстракций навёрнуто между нажатием a и получением буквы a в посте на ЛОР-е. Сначала драйвер клавиатуры в общем случае какой-то код получает и как-то обменивается с железкой, потом отдаёт коды ядру линукса, преобразуя их в те, о которых знает ядро (смотри input-event-codes.h), на который тебе дали ссылку. Поверх этого могут крутиться иксы или вяленый, они коды от ядра уже в свои преобразуют (ты иксовые ищешь, боюсь в вяленом другие могут быть), поверх этого текстовой редактор сохраняет коды некоторых клавиш согласно кодировке. Это если грубо подумать опираясь на то, что иксы и вяленый не только на ядре linux-а работать должны. За детали реальной реализации не ручаюсь, т.к. не копался глубоко и это по сути только догадки.
а какой именно клавиатуры, они разные бывают
Нет, я общий смысл понимаю. Мне просто нужна таблица соответствия кейкодов названию клавиши. Обратите внимание, не символу, а названию — у Esc, например, нет символа, но есть название.
насколько я понимаю, они все переводятся ядром/иксами к неким стандартным кодам
в том, что уже qt использую, не хочу ещё и sdl тянуть
Источник
Как узнать название клавиши linux
НАЗВАНИЕ
keyboard — клавиатура персонального компьютера.
ОПИСАНИЕ
Клавиатура персонального компьютера используется для ввода данных, переключения экранов и направления некоторых управляющих сигналов компьютеру. Система UNIX выполняет эмуляцию экрана и клавиатуры терминала и при этом извлекает пользу из некоторых особенных клавиш и их комбинаций. Эти клавиши и их комбинации имеют специальные названия, которые уникальны в системе UNIX и могут соответствовать, а могут и не соответствовать меткам клавиш на вашей клавиатуре. Эти клавиши будут описаны позже.
Когда вы нажимаете клавишу, происходит одно из следующих событий:
- Вводится символ ASCII.
- Компьютеру посылается символьная строка.
- Запускается какая-либо функция.
- Меняется значение другой клавиши или клавиш.
Когда нажимается клавиша, клавиатура посылает компьютеру скан-код, который интерпретируется драйвером клавиатуры. Интерпретация кодов клавиш может быть изменена так, что клавиши могут начать функционировать по другому, отлично от их установок по умолчанию.
Различают три особенных события при нажатии клавиш:
- Переключение экранов.
- Генерация сигнала.
- Изменение значения предыдущего символа, символов или строки.
Переключение экранов (многоэкранный режим)
Для переключения на следующий экран нажмите Ctrl-PrtSc, используя клавиши Ctrl и PrtSc. Любой активный экран может быть выбран нажатием alt-Fn, где Fn — одна из функциональных клавиш. F1 относится к дисплею компьютера (/dev/tty01).
Сигналы
Сигналы оказывают воздействие на процесс или несколько процессов. Примерами сигналов являются Ctrl-d (конец ввода и выход из оболочки), Ctrl- (завершение процесса), Ctrl-s ( остановка выдачи еа экран) и Ctrl-q (возобновление выдачи).
Обычно символы ставятся в соответствие сигналам с помощью stty(1). Единственный способ поставить сигнал в соответствие символам через посредство stty.
Изменение значения нажатий клавиш
Действительный код, посылаемый драйверу клавиатуры, может быть изменен с помощью комбинации некоторых клавиш. Например, клавиша SHIFT меняет значение символов ASCII буквенно-цифровых клавиш. Удерживание клавиши Ctrl при нажатии других клавиш генерирует управляющие коды (Ctrl-d, Ctrl-s, Ctrl-q и др.).
Специальные клавиши
Для облегчения отыскания специальных клавиш в следующей таблице показано соответствие клавиш типичной консоли ключам системы UNIX. В этой таблице черточка (-) между названиями клавиш означает «удерживайте первую клавишу, нажимая на вторую».
Название в системе XENIX | Метки на клавиатуре | Действие | |||||||
---|---|---|---|---|---|---|---|---|---|
INTR | Del | Останавливает текущее действие и возвращает в оболочку. Эта клавиша называется также RUB OUT или INTERRUPT. | |||||||
BACKSPACE | ‘ | nop | nop | ‘,’ | ‘>’ | nop | nop | O | |
53 | ‘/’ | ‘?’ | nop | nop | ‘/’ | ‘?’ | nop | nop | O |
54 | rshift | rshift | rshift | rshift | rshift | rshift | rshift | rshift | O |
55 | ‘*’ | ‘*’ | nscr | nscr | ‘*’ | ‘*’ | nscr | nscr | O |
56 | alt | alt | alt | alt | alt | alt | alt | alt | O |
57 | ‘ ‘ | ‘ ‘ | ‘ ‘ | ‘ ‘ | ‘ ‘ | ‘ ‘ | ‘ ‘ | ‘ ‘ | O |
58 | clock | clock | clock | clock | clock | clock | clock | clock | O |
59 | fkey1 | fkey13 | fkey25 | fkey37 | scr1 | scr11 | scr1 | scr11 | O |
60 | fkey2 | fkey14 | fkey26 | fkey38 | scr2 | scr12 | scr2 | scr12 | O |
61 | fkey3 | fkey15 | fkey27 | fkey39 | scr3 | scr13 | scr3 | scr13 | O |
62 | fkey4 | fkey16 | fkey28 | fkey40 | scr4 | scr14 | scr4 | scr14 | O |
63 | fkey5 | fkey17 | fkey29 | fkey41 | scr5 | scr15 | scr5 | scr15 | O |
64 | fkey6 | fkey18 | fkey30 | fkey42 | scr6 | scr16 | scr6 | scr16 | O |
65 | fkey7 | fkey19 | fkey31 | fkey43 | scr7 | scr7 | scr7 | scr7 | O |
66 | fkey8 | fkey20 | fkey32 | fkey44 | scr8 | scr8 | scr8 | scr8 | O |
67 | fkey9 | fkey21 | fkey33 | fkey45 | scr9 | scr9 | scr9 | scr9 | O |
68 | fkey10 | fkey22 | fkey34 | fkey46 | scr10 | scr10 | scr10 | scr10 | O |
69 | nlock | nlock | dc3 | dc3 | nlock | nlock | dc3 | dc3 | O |
70 | slock | slock | del | del | slock | slock | del | del | O |
71 | fkey49 | ‘7’ | ‘7’ | ‘7’ | ‘7’ | ‘7’ | ‘7’ | ‘7’ | N |
72 | fkey50 | ‘8’ | ‘8’ | ‘8’ | ‘8’ | ‘8’ | ‘8’ | ‘8’ | N |
73 | fkey51 | ‘9’ | ‘9’ | ‘9’ | ‘9’ | ‘9’ | ‘9’ | ‘9’ | N |
74 | fkey52 | ‘-‘ | ‘-‘ | ‘-‘ | ‘-‘ | ‘-‘ | ‘-‘ | ‘-‘ | N |
75 | fkey53 | ‘4’ | ‘4’ | ‘4’ | ‘4’ | ‘4’ | ‘4’ | ‘4’ | N |
76 | fkey54 | ‘5’ | ‘5’ | ‘5’ | ‘5’ | ‘5’ | ‘5’ | ‘5’ | N |
77 | fkey55 | ‘6’ | ‘6’ | ‘6’ | ‘6’ | ‘6’ | ‘6’ | ‘6’ | N |
78 | fkey56 | ‘+’ | ‘+’ | ‘+’ | ‘+’ | ‘+’ | ‘+’ | ‘+’ | N |
79 | fkey57 | ‘1’ | ‘1’ | ‘1’ | ‘1’ | ‘1’ | ‘1’ | ‘1’ | N |
80 | fkey58 | ‘2’ | ‘2’ | ‘2’ | ‘2’ | ‘2’ | ‘2’ | ‘2’ | N |
81 | fkey59 | ‘3’ | ‘3’ | ‘3’ | ‘3’ | ‘3’ | ‘3’ | ‘3’ | N |
82 | fkey60 | ‘0’ | ‘0’ | ‘0’ | ‘0’ | ‘0’ | ‘0’ | ‘0’ | N |
83 | del | ‘.’ | del | del | del | del | del | del | N |
84 | nop | nop | nop | nop | nop | nop | nop | nop | O |
85 | fkey11 | fkey23 | fkey35 | fkey47 | scr11 | scr11 | scr11 | scr11 | O |
86 | fkey12 | fkey24 | fkey36 | fkey48 | scr12 | scr12 | scr12 | scr12 | O |
Следующие скан-коды генерируются только на клавиатурах, которые поддерживают и находятся в режиме AT.
SCAN CODE | BASE | SHIFT | CTRL | CTRL SHIFT | ALT | ALT SHIFT | ALT CTRL | ALT CTRL SHIFT | LOCK |
---|---|---|---|---|---|---|---|---|---|
87 | fkey11 | fkey23 | fkey35 | fkey47 | scr11 | scr11 | scr11 | scr11 | O |
88 | fkey12 | fkey24 | fkey36 | fkey48 | scr12 | scr12 | scr12 | scr12 | O |
89 | nop | nop | nop | nop | nop | nop | nop | nop | O |
90 | nop | nop | nop | nop | nop | nop | nop | nop | O |
91 | nop | nop | nop | nop | nop | nop | nop | nop | O |
92 | nop | nop | nop | nop | nop | nop | nop | nop | O |
93 | nop | nop | nop | nop | nop | nop | nop | nop | O |
94 | nop | nop | nop | nop | nop | nop | nop | nop | O |
95 | nop | nop | nop | nop | nop | nop | nop | nop | O |
96 | fkey50 | fkey50 | fkey50 | fkey50 | fkey50 | fkey50 | fkey50 | fkey50 | O |
97 | fkey53 | fkey53 | fkey53 | fkey53 | fkey53 | fkey53 | fkey53 | fkey53 | O |
98 | fkey58 | fkey58 | fkey58 | fkey58 | fkey58 | fkey58 | fkey58 | fkey58 | O |
99 | fkey55 | fkey55 | fkey55 | fkey55 | fkey55 | fkey55 | fkey55 | fkey55 | O |
100 | fkey49 | fkey49 | fkey49 | fkey49 | fkey49 | fkey49 | fkey49 | fkey49 | O |
101 | fkey51 | fkey51 | fkey51 | fkey51 | fkey51 | fkey51 | fkey51 | fkey51 | O |
102 | fkey57 | fkey57 | fkey57 | fkey57 | fkey57 | fkey57 | fkey57 | fkey57 | O |
103 | fkey59 | fkey59 | fkey59 | fkey59 | fkey59 | fkey59 | fkey59 | fkey59 | O |
104 | fkey60 | fkey60 | fkey60 | fkey60 | fkey60 | fkey60 | fkey60 | fkey60 | O |
105 | del | del | del | del | del | del | del | del | 0 |
106 | nop | nop | nop | nop | nop | nop | nop | nop | O |
107 | nop | nop | nop | nop | nop | nop | nop | nop | O |
108 | nop | nop | nop | nop | nop | nop | nop | nop | O |
109 | nop | nop | nop | nop | nop | nop | nop | nop | O |
110 | nop | nop | nop | nop | nop | nop | nop | nop | O |
111 | nop | nop | nop | nop | nop | nop | nop | nop | O |
112 | nop | nop | nop | nop | nop | nop | nop | nop | O |
113 | nop | nop | nop | nop | nop | nop | nop | nop | O |
114 | nop | nop | nop | nop | nop | nop | nop | nop | O |
115 | nop | nop | nop | nop | nop | nop | nop | nop | O |
116 | nop | nop | nop | nop | nop | nop | nop | nop | O |
117 | nop | nop | nop | nop | nop | nop | nop | nop | O |
118 | nop | nop | nop | nop | nop | nop | nop | nop | O |
119 | nop | nop | nop | nop | nop | nop | nop | nop | O |
120 | nop | nop | nop | nop | nop | nop | nop | nop | O |
121 | nop | nop | nop | nop | nop | nop | nop | nop | O |
122 | nop | nop | nop | nop | nop | nop | nop | nop | O |
123 | nop | nop | nop | nop | nop | nop | nop | nop | O |
124 | nop | nop | nop | nop | nop | nop | nop | nop | O |
125 | nop | nop | nop | nop | nop | nop | nop | nop | O |
126 | nop | nop | nop | nop | nop | nop | nop | nop | O |
127 | nop | nop | nop | nop | nop | nop | nop | nop | O |
128 | rctrl | rctrl | rctrl | rctrl | rctrl | rctrl | rctrl | rctrl | O |
129 | ralt | ralt | ralt | ralt | ralt | ralt | ralt | ralt | O |
130 | fkey60 | fkey60 | fkey60 | fkey60 | fkey60 | fkey60 | fkey60 | fkey60 | O |
131 | del | del | del | del | del | del | del | del | 0 |
132 | fkey49 | fkey49 | fkey49 | fkey49 | fkey49 | fkey49 | fkey49 | fkey49 | O |
133 | fkey57 | fkey57 | fkey57 | fkey57 | fkey57 | fkey57 | fkey57 | fkey57 | O |
134 | fkey51 | fkey51 | fkey51 | fkey51 | fkey51 | fkey51 | fkey51 | fkey51 | O |
135 | fkey59 | fkey59 | fkey59 | fkey59 | fkey59 | fkey59 | fkey59 | fkey59 | O |
136 | fkey53 | fkey53 | fkey53 | fkey53 | fkey53 | fkey53 | fkey53 | fkey53 | O |
137 | fkey55 | fkey55 | fkey55 | fkey55 | fkey55 | fkey55 | fkey55 | fkey55 | O |
138 | fkey50 | fkey50 | fkey50 | fkey50 | fkey50 | fkey50 | fkey50 | fkey50 | O |
139 | fkey58 | fkey58 | fkey58 | fkey58 | fkey58 | fkey58 | fkey58 | fkey58 | O |
140 | ‘/’ | nop | nop | nop | ‘/’ | nop | nop | nop | O |
141 | cr | cr | nl | nl | cr | cr | nl | nl | O |
В следующей таблице перечисляются «значения» специальных ключевых слов в файле /usr/lib/keyboard/keys (и в предыдущей таблице). mapkey(ADM) помещает «значение» ключевого слова в буфер управления вводом/выводом во время назначения клавиш. Эти ключевые слова используются только в файле скан-кодов /usr/lib/keyboard/keys для упрощения его чтения.
Название | Значение | Описание |
---|---|---|
nop | 0 | Действия нет — «пустое» нажатие клавиши |
lshift | 2 | Левая клавиша shift |
rshift | 3 | Правая клавиша shift |
clock | 4 | фиксация Capslock |
nclock | 5 | фиксация Numlock |
slock | 6 | фиксация Scroll lock |
alt | 7 | Клавиша Alt |
btab | 8 | Ключ обратной табуляции — генерирует фиксированную последовательность (esc [ Z) |
ctrl | 9 | Клавиша Ctrl |
nscr | 10 | Переключение на следующий экран |
scr1 | 11 | Переключение на экран #1 |
. | ||
scr16 | 26 | Переключение на экран #16 |
fkey1 | 27 | Функциональная клавиша #1 |
. | ||
fkey96 | 122 | Функциональная клавиша #96 |
rctl | 128* | Правая клавиша Ctrl |
ralt | 129* | Правая клавиша Alt |
* Только в режиме AT |
В следующей таблице перечисляются названия ключевых слов и их десятичные значения, которые могут взаимозаменяться в файле mapkey. Эти названия используются вместо соответствующих численных констант для облегчения чтения таблицы скан-кодов. Но в буфер управления вводом/выводом помещаются только десятичные значения. Они берутся из ascci(5).
Название | Значение | Название | Значение | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
nul | 0 | dc1 | 17 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
soh | 1 | dc2 | 18 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
stx | 2 | dc3 | 19 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
etx | 3 | dc4 | 20 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
eot | 4 | nak | 21 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
enq | 5 | syn | 22 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ack | 6 | etb | 23 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
bel | 7 | can | 24 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
bs | 8 | em | 25 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ht | 9 | sub | 26 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
nl | 10 | esc | 27 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
vt | 11 | fs | 28 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
np | 12 | gs | 29 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
cr | 13 | rs | 30 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
so | 14 | ns | 31 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
si | 15 | del | 127 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
dle | 16
Назначение клавиш клавиатуры Установка соответствий клавиш клавиатуры может быть также выполнена с помощью ioctl. Синтаксис — тот же, что и для соответствий функциональных клавиш в предыдущем разделе. При установке соответствий клавиш клавиатуры значение cmd=GIO_KEYMAP высвечивает текущую таблицу соответствий, а cmd=PIO_KEYMAP помещает готовый буфер на место. Назначение функциональных клавиш Таблица соответствий функциональных клавиш представляет собой массив из 512 байтов (typedef strmap_t — тип структуры), содержащий строки, заканчивающиеся нулем и переопределяющие функциональные клавиши. Первая строка приписывается первой функциональной клавише, вторая — второй и т.д. Не существует ограничения на длину строки, кроме предела самой таблицы, 512 байтов, включая нули. Строки обнуляются введением дополнительных нулевых символов. Далее приведен список значений функциональных клавиш, устанавливаемых по умолчанию:
Вы можете назначать функциональные клавиши с помощью ioctl(2). Синтаксис имеет вид: При установке соответствий клавиш клавиатуры значение cmd=GIO_KEYMAP высвечивает текущую таблицу соответствий, а cmd=PIO_KEYMAP устанавливает новую таблицу на место. Источник Adblock |
Где взять названия клавиш для каждого keycode клавиатуры?
но эта таблица врёт (устарела): так, например, на самом деле keycode «А» не 0x41, а 0x26
остальные номера клавиш тоже не совпадают
возможно, уже где-то есть готовые либы, правильно переводящие keycode в name
на самом деле keycode «А» не 0x41, а 0x26
но эта таблица врёт (устарела): так, например, на самом деле keycode «А» не 0x41, а 0x26
ты не различил ascii keycode и scan keycode
слишком жирная либа, чтобы ещё и её тянуть
Мне кажется что я где-то запутал и усложнил, но не могу найти что тут можно выкинуть.
там какие-то не те коды
там с локалью, а мне надо без
Там соответствие «сигнала» клавиатуры какому-то иксовоу коду, который потом через локаль маппится в символ.
У тебя задача какая? Собрать список вида «a = 0x26»? Тогда без локали у тебя не получится.
Хочу добавить: можно дампнуть полный текущий конфиг xkb в файл
Там будет вся инфа, а не размазана по куче xkb инклудов. Я здесь с xkb упражнялся Настройка XKB
Задача собрать список вида «LeftArrow = 0x69», «F20 = 0x50»
она не соответствует реальным сканкодам
Да, вот тут, похоже, коды правильные. Спасибо.
В чём заключается жирность?
на самом деле keycode «А» не 0x41, а 0x26
на самом деле 0x1e
вообще никак не согласуется с теми кодами, которые я получаю на практике
никак не согласуется с теми кодами, которые я получаю на практике
Что посылает ядро можно посмотреть sudo evtest
вот иксовый код из xev той же клавиши A
у него наварное иксы
к слову, а в mir|wayland такие же коды, как в иксах или другие?
Тебе теорию надо курить сильно, ты не понимаешь что делаешь и как оно работает. Можешь вот это почитать для затравки.
А вообще дело в том, что куча абстракций навёрнуто между нажатием a и получением буквы a в посте на ЛОР-е. Сначала драйвер клавиатуры в общем случае какой-то код получает и как-то обменивается с железкой, потом отдаёт коды ядру линукса, преобразуя их в те, о которых знает ядро (смотри input-event-codes.h), на который тебе дали ссылку. Поверх этого могут крутиться иксы или вяленый, они коды от ядра уже в свои преобразуют (ты иксовые ищешь, боюсь в вяленом другие могут быть), поверх этого текстовой редактор сохраняет коды некоторых клавиш согласно кодировке. Это если грубо подумать опираясь на то, что иксы и вяленый не только на ядре linux-а работать должны. За детали реальной реализации не ручаюсь, т.к. не копался глубоко и это по сути только догадки.
а какой именно клавиатуры, они разные бывают
насколько я понимаю, они все переводятся ядром/иксами к неким стандартным кодам
в том, что уже qt использую, не хочу ещё и sdl тянуть
Источник
Клавиатура к вашему компьютеру уже, скорее всего, подключена, вопрос может состоять только в том, чтобы настроить ее. Настройка клавиатуры заключается в настройке таких вещей, как:
Два последних параметра (скорость повтора и время задержки) устанавливаются с помощью специальной команды kbdrate .
9.3.1. Команда kbdrate
for tty in /dev/tty5*; do
Изменение раскладки клавиатуры — это вопрос значительно более сложный. Но, поскольку этот вопрос имеет большое значение как вообще для настройки клавиатуры, так и для решения проблемы русификации, его необходимо рассмотреть подробнее.
И начать придется с краткого изложения проблем кодировки символов.
9.3.2. Таблицы кодировки символов
В человеческом мире информация представляется последовательностями символов. Каждый символ имеет каноническое изображение, которое позволяет однозначно идентифицировать данный символ. Шрифты задают разные варианты начертания символов.
В вычислительных машинах для представления информации используются цепочки байтов. Поэтому для перевода информации из машинного представления в человеческий необходимы таблицы кодировки символов — таблицы соответствия между символами определенного языка и кодами символов.
Самой известной таблицей кодировки является код ASCII (Американский стандартный код для обмена информацией), который был разработан для передачи текстов по телеграфу задолго до появления компьютеров. Этот код является 7 битовым, т. е. для кодирования символов английского языка, служебных и управляющих символов используются только 128 7-битовых комбинаций. При этом первые 32 комбинации (кода) служат для кодирования управляющих сигналов (начало текста, конец строки, перевод каретки, звонок, конец текста и т. д.).
При разработке первых компьютеров фирмы IBM этот код был использован для представления символов в компьютере. Поскольку в исходном коде ASCII было всего 128 символов, для их кодирования хватило тех однобайтовых кодов, у которых 8-й бит равен 0. Во второй половине кодовой таблицы (значения байта с 8-м битом равным 1) фирма IBM разместила символы псевдографики, математические знаки и некоторые символы из языков, отличных от английского (немецкие умляуты, французские диакритические знаки, символы греческого алфавита и т.п.). Эту кодовую таблицу стали называть кодировкой IBM.
Когда IBM-совместимые персональные компьютеры стали использовать в других странах, потребовалось обеспечить обработку информации на языках, отличных от английского. Для того, чтобы полноценно поддерживать другие языки, фирма IBM ввела в употребление несколько кодовых таблиц, ориентированных на конкретные страны. Так для скандинавских стран была предложена таблица 865 (Nordic), для арабских стран — таблица 864 (Arabic), для Израиля — таблица 862 (Israel) и так далее. В этих таблицах часть кодов из второй половины кодовой таблицы использовалась для представления символов национальных алфавитов (за счет исключения некоторых символов псевдографики). Для представления символов кириллицы была введена кодировка IBM-866.
Однако с русским языком ситуация развивалась особым образом. Очевидно, что замену символов во второй половине кодовой таблицы можно произвести разными способами. В других европейских странах сумели найти единое решение, а для русского языка появилось несколько разных таблиц кодировки символов кириллицы: IBM-866, CP-1251, KOI8-R, ISO-8859-5. Все они одинаково изображают символы первой половины таблицы (от 0 до 127) и различаются представлением символов русского алфавита и псевдографики во второй половине.
Одна из самых известных кодовых таблиц для кириллицы получила название альтернативной (по отношению к кодировке IBM-866, наверное). Она была разработана фирмой Microsoft для MS-DOS. При ее разработке постарались сделать так, чтобы результирующая таблица была насколько это возможно совместима с кодировкой IBM. Поэтому альтернативная кодировка — это кодировка IBM, в которой все специфические европейские символы в верхней половине были заменены на кириллицу, оставляя псевдографические символы нетронутыми. Следовательно, это не портило вид программ, использующих для работы текстовые окна, что было очень существенным фактором для работы в среде MS-DOS, основой которой был именно текстовый режим.
Кодировка KOI-8 была разработана изначально с ориентировкой на UNIX. Так как UNIX в своей основе сетевая ОС, то основной идей при создании KOI-8 была идея об обеспечении перемещения кириллической информации по сети. Но для передачи-то использовался 7-битный стандарт ASCII. Разработчики поместили кириллические символы в верхней части таблицы таким образом, что позиции кириллических символов соответствуют их фонетическим аналогам в английском алфавите в нижней части таблицы. Это означает, что, если в тексте, написанном в KOI-8, мы убираем восьмой бит каждого символа, то мы все еще имеем «читабельный» текст, хотя он и написан английскими символами! Не удивительно, что KOI8-R быстро стал фактически стандартом для кириллицы в Интернет, что и нашло отражение в RFC 1489 ( «Registration of a Cyrillic Character Set»). Автором этого документа является Андрей А. Чернов, который проделал огромный объем работы, чтобы превратить KOI-8 в стандарт Интернет.
Международная организация по стандартизации (ISO) внесла свою лепту в создание различных кодировок кириллицы, когда ввела семейство стандартов, известных как ISO 8859-X. Это семейство есть совокупность 8-битных кодировок, где младшая половина каждой кодировки (символы с кодами 0—127) соответствует ASCII, а старшая половина определяет символы для различных языков. Например:
Фирма Microsoft еще больше запутала ситуацию с кодировками для русского языка, когда при разработке Windows ввела кодировку CP-1251.
Таблицы кодировок, содержащие 256 символов, стали называть расширенными кодами ASCII (потому что в основе любой из них лежит 128-символьный код ASCII), кодовыми страницами или английским термином character set (который часто сокращают до charset).
Но в мире есть языки, такие как китайский или японский, для которых 256 символов в принципе недостаточно. Кроме того, всегда существует проблема вывода или сохранения в одном файле одновременно текстов на разных языках (например, при цитировании). Поэтому была разработана универсальная кодовая таблица UNICODE, содержащая символы, применяемые в языках всех народов мира, а также различные служебные и вспомогательные символы (знаки препинания, математические и технические символы, стрелки, диакритические знаки и т. д.). Очевидно, что одного байта недостаточно для кодирования такого большого множества символов. Поэтому в UNICODE используются 16-битовые (2-байтовые) коды, что позволяет представить 65 536 символов. К настоящему времени задействовано около 49 000 кодов (последнее значительное изменение — введение символа валюты EURO в сентябре 1998 г.). Для совместимости с предыдущими кодировками первые 128 кодов совпадают со стандартом ASCII. На рис. 9.1 схематично представлено размещение символов разных языков в кодовом пространстве UNICODE.
Рис. 9.1. Структура UNICODE.
В стандарте UNICODE кроме определенного двоичного кода (эти коды принято обозначать буквой U, после которой следуют знак + и собственно код в шестнадцатеричном представлении) каждому символу присвоено определенное имя. В следующей таблице приведено несколько примеров кодов и имен символов из стандарта UNICODE.
Таблица 9.2. Примеры именования кодов UNICODE
Источник
Нихт ферштейн: учим пингвина понимать мультимедийные клавиши
Содержание статьи
Определение скан-кода клавиш
Что бы ты там не нажимал на своей клавиатуре, X-серверу и ядру, в общем-то, все равно, что на ней написано или нарисовано. Их интересуют исключительно скан-код кнопки, причем сначала иксы считывают таблицу кодов клавиш ядра, а затем уже код клавиши привязывается к собственной таблице кодов. Если в Windows проблемы настройки мультимедийных клавиш в консоли как таковой не существует, то в Linux приходится отдельно настраивать реакцию на нажатие кнопок в консоли и в X-Window.
Чтобы узнать код клавиши, следует использовать утилиту xev, входящую в состав Х-сервера. После ее запуска появляется окно Event Tester, теперь последовательно нажимаем клавиши, запоминая выдаваемый код:
$ xev
.
KeyRelease event, serial 31, synthetic NO, window 0x3e00001,
root 0x67, subw 0x0, time 279734676, (311,611), root:(1104,687),
state 0x2000, keycode 236 (keysym 0x1008ff19, XF86Mail), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
KeyRelease event, serial 31, synthetic NO, window 0x2600001,
root 0x67, subw 0x0, time 265877259, (883,334), root:(886,358),
state 0x0, keycode 161 (keysym 0x0, NoSymbol), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
Вывод может быть огромен, так как отслеживается каждое движение мышки при проходе над окном Event Tester. Клавишу описывает блок KeyRelease, в частности, значение keycode как раз и является скан-кодом, который мы хотим узнать. В приведенном примере нажаты две клавиши. Клавише с кодом 236 соответствует код клавиши для X-сервера, указанный в keysym, а также действие XF86Mail, которое в KDE запускает используемый по умолчанию почтовый клиент. Для клавиши с номером 161 код и действие не определены.
Возможна ситуация, когда клавиша нажимается, но ее скан-код не выдается. Это означает, что ядро не может найти соответствующее значение. В выводе dmesg должна быть такая строка:
Use ‘setkeycodes 0xec ‘ to make it known.
То есть тебе предлагают установить скан-код клавиши самостоятельно при помощи setkeycodes, при этом значение keycode выбрать очень просто. Переведи полученную цифру в десятичное число (большинство калькуляторов это умеют) и прибавь 128. В данном примере 0xec=236, то есть получаем скан-код 364. Если есть сомнения, список задействованных и незадействованных скан-кодов можно просмотреть, запустив в консоли утилиту getkeycodes или dumpkeys. Например, если вывод «getkeycodes | grep » ничего не дал, значит этот код можно смело использовать.
Помочь определить скан-код способна и утилита ХKeycaps (www.jwz.org/xkeycaps), которая является графическим фронт-эндом к Xmodmap.
В консоли программа xev, разумеется, не работает. Чтобы узнать скан-код, выдаваемый ядром, следует использовать утилиту showkey или getkeycodes:
$ showkey
клавиатура была в режиме UNICODE
нажмите любую клавишу (программа завершится через 10 сек после последнего нажатия).
0xe0 0x6c 0xe0 0xec
Первые две цифры соответствуют нажатой клавише, вторые – отсутствию нажатия.
Настройка привязки скан-кодов в X-Window
$ cat /usr/include/X11/XF86keysym.h
/*
* Keys found on some «Internet» keyboards.
*/
#define XF86XK_Standby 0x1008FF10
#define XF86XK_AudioLowerVolume 0x1008FF11
#define XF86XK_AudioRaiseVolume 0x1008FF13
#define XF86XK_AudioPlay 0x1008FF14
#define XF86XK_AudioStop 0x1008FF15
#define XF86XK_Mail 0x1008FF19
keycode 161 XF86Calculator
keycode 174 XF86AudioLowerVolume
keycode 176 XF86AudioRaiseVolume
keycode 162 XF86AudioPause
И так далее, принцип, думаю, ясен. Причем код клавиш можно заносить как в десятичном, так и шестнадцатеричном виде. По моим наблюдениям, коды большинства клавиш стандартизированы. Поэтому, если ты один раз настроишь реакцию на нажатие клавиши и перенесешь файл на другой комп, есть вероятность, что на другой клаве реакция на нажатие также подписанной клавиши будет аналогичная. Пользователи рабочего стола Gnome с GDM могут прописать все эти строки в общесистемный файл /etc/X11/Xmodmap.
В результате находим прелюбопытнейший файл /etc/X11/Xsession.d/80ubuntu-xmodmap такого содержания:
/usr/bin/xmodmap /usr/share/apps/kxkb/ubuntu.xmodmap || true
/.icewm, появляющийся после первого запуска, следует добавить строку:
В Fluxbox строка для запуска проигрывателя будет выглядеть так:
В конфигах обычно есть примеры, поэтому с остальными оконными менеджерами, думаю, ты без труда разберешься сам.
Настройка реакции в консоли
$ setkeycodes 0xec 118
Посмотреть свободные значения можно в файле текущей клавиатурной раскладки. В Ubuntu и всех дистрибутивах, базирующихся на Debian, это обычно /etc/console-setup/boottime.kmap.gz. Если после запуска проблем с клавишами нет, заносим эту строку в один из стартовых скриптов, например в /etc/init.d/rc.local.
Теперь осталось задать соответствие клавиши и выполняемого действия. Здесь простор для творчества даже больше, чем в иксах. В keymaps(5) процедура установки соответствия keycode выглядит следующим образом:
< plain | >keycode keynumber = keysym
# Переключение консоли на одну назад при нажатии на клавишу с кодом 105
keycode 105 = Decr_Console
# Переключение консоли на одну вперед при нажатии на и клавишу с кодом 106
alt keycode 106 = Incr_Console
Но можно создавать и свои варианты, указывая команду в переменных:
Другими словами, по нажатии клавиши с кодом 120 будет выполнено действие, указанное в переменной F100; в нашем случае задано выключение компьютера. Вместо F100, естественно, можно использовать любое другое имя.
/.console-setup), все настройки нужно будет перенести в другой файл, что несколько
неудобно. Если ты все-таки решишься на этот шаг, используй имеющиеся записи как шаблон, ничего не записывая на первую позицию, а в конце не забудь оставить пустую строку.
Немного о ноутбуке
$ sudo mcedit /etc/acpi/events/lid
$ sudo mcedit /etc/acpi/events/power
Это несколько упрощенные варианты, в KUbuntu ты найдешь более сложные скрипты. После этого требуется перезапуск демона acpid:
$ sudo /etc/init.d/acpid restart
Программы настройки
Возможности KeyTouch (keytouch.sf.net) несколько скромнее, эта утилита применяется исключительно для настройки мультимедийных клавиш. Хотя с ее помощью любой клавише можно назначить свое действие, отличающееся от установок по умолчанию. На сайте программы, кроме исходных текстов и пакетов для некоторых дистрибутивов, можно найти готовые настройки для мультимедийных клавиатур большинства известных производителей.
Полную версию статьи
читай в январском номере Хакера!
Источник
Linux console (Русский)/Keyboard configuration (Русский)
Сопоставление клавиш (раскладки) для виртуальной консоли, консольных шрифтов и консольных карт предоставляется пакетом kbd (зависимость для systemd), который также предоставляет множество инструментов низкого уровня для управления виртуальной консолью. Кроме того, systemd также предоставляет инструмент localectl, который может контролировать как локали системы, так и настройки раскладки клавиатуры как для виртуальной консоли, так и для Xorg.
Contents
Просмотр настроек клавиатуры
Используйте localectl status для просмотра текущих конфигураций клавиатуры.
Раскладки клавиатуры
Список раскладок
Соглашения об именах консольных раскладок несколько условны, но обычно они основаны на:
Для получения списка всех доступных раскладок используйте команду:
Чтобы найти раскладку клавиатуры, используйте следующую команду, заменив search_term кодом для вашего языка, страны или раскладки:
Альтернативно, используя find:
Временная конфигурация (Loadkeys)
Можно установить раскладку только для текущего сеанса. Это полезно при проверке различных раскладок, решение проблем и т.д.
Постоянная конфигурация
Создание своей раскладки
Вы используете горячие клавиши для вывода особенных символов, пользуясь консолью. Кроме того, мы можем также напечатать последовательность символов и некоторые escape-последовательности. Таким образом, если мы печатаем последовательность символов, составляющих команду, а затем escape-символ для новой строки, эта команда будет выполнена.
Сначала, создайте файл раскладки. Этот файл раскладки может быть где угодно, но этот способ подражает иерархии каталогов в /usr/local :
В качестве примечания следует отметить, что личная раскладка также полезна для переопределения поведения клавиш, уже обработанных стандартной раскладкой: при загрузке с помощью loadkeys директивы в стандартной раскладке будут заменены при конфликте с новыми директивами и сохраняются в противном случае. Таким образом, только изменения в раскладке должны быть указаны в личной раскладке.
Добавление директив
В этой личной раскладке требуются два типа директив. Прежде всего директивы keycode, которые соответствуют формату, указанному в стандартных раскладках по умолчанию. Эти директивы сопоставляют keycode с keysym. Keysyms представляют действия клавиатуры. Доступные действия включают вывод кодов символов или последовательностей символов, переключение консолей или раскладок клавиатуры, загрузку машины и многие другие действия. Полную активную текущую раскладку можно получить с помощью
Большинство keysyms интуитивно понятны. Например, чтобы настроить клавишу 112 для вывода символа ‘e’, директива примет следующий вид:
Чтобы настроить клавишу 112 для вывода символа евро, директива будет следующего вида:
Некоторые keysym не сразу связаны с действиями клавиатуры. В частности, keysyms с префиксом заглавной буквы F и от одной до трех цифр (F1-F246), составляющие число больше 30, всегда свободны. Это полезно для указания горячей клавиши для вывода последовательности символов и других действий:
Затем F70 может быть связан для вывода определенной строки:
Когда клавиша 112 нажата, она выведет содержимое F70. Чтобы выполнить команду в терминале, символ окончания новой строки должен быть добавлен в конец строки с командой. Например, чтобы ввести систему в спящий режим, добавляется следующая строка в раскладку:
Другие примеры
Сохранение изменений
Чтобы использовать свою раскладку, нужно ее загрузить с помощью loadkeys:
Регулировка задержки и скорости автоповтора
Задержка автоповтора означает количество времени (обычно в милисекундах), за которое необходимо нажать и удерживать клавишу для начала повторного процесса. После запуска повторяющегося процесса символ будет повторяться с определенной частотой (обычно заданной в Гц), указанной скоростью автоповтора. Эти значения могут быть изменены с помощью команды kbdrate. Обратите внимание, что эти настройки настраиваются отдельно для виртуальной консоли и для Xorg.
Например, чтобы установить задержку автоповтора в 200 мс и скорость автоповтора в 30 Гц, используйте следующую команду:
Ввод команды без указания задержки и скорости автоповтора приведет к сбросу значений до их соответствующих значений по умолчанию; задержка 250 мс и скорость 11 Гц:
Служба systemd
Службу systemd можно использовать для установки скорости клавиатуры. Например
Источник
Код клавиш в linux
ОПИСАНИЕ
Клавиатура персонального компьютера используется для ввода данных, переключения экранов и направления некоторых управляющих сигналов компьютеру. Система UNIX выполняет эмуляцию экрана и клавиатуры терминала и при этом извлекает пользу из некоторых особенных клавиш и их комбинаций. Эти клавиши и их комбинации имеют специальные названия, которые уникальны в системе UNIX и могут соответствовать, а могут и не соответствовать меткам клавиш на вашей клавиатуре. Эти клавиши будут описаны позже.
Когда нажимается клавиша, клавиатура посылает компьютеру скан-код, который интерпретируется драйвером клавиатуры. Интерпретация кодов клавиш может быть изменена так, что клавиши могут начать функционировать по другому, отлично от их установок по умолчанию.
Сигналы
Сигналы оказывают воздействие на процесс или несколько процессов. Примерами сигналов являются Ctrl-d (конец ввода и выход из оболочки), Ctrl- (завершение процесса), Ctrl-s ( остановка выдачи еа экран) и Ctrl-q (возобновление выдачи).
Обычно символы ставятся в соответствие сигналам с помощью stty(1). Единственный способ поставить сигнал в соответствие символам через посредство stty.
Изменение значения нажатий клавиш
Действительный код, посылаемый драйверу клавиатуры, может быть изменен с помощью комбинации некоторых клавиш. Например, клавиша SHIFT меняет значение символов ASCII буквенно-цифровых клавиш. Удерживание клавиши Ctrl при нажатии других клавиш генерирует управляющие коды (Ctrl-d, Ctrl-s, Ctrl-q и др.).
Специальные клавиши
Для облегчения отыскания специальных клавиш в следующей таблице показано соответствие клавиш типичной консоли ключам системы UNIX. В этой таблице черточка (-) между названиями клавиш означает «удерживайте первую клавишу, нажимая на вторую».
Название в системе XENIX | Метки на клавиатуре | Действие | |||||||
---|---|---|---|---|---|---|---|---|---|
INTR | Del | Останавливает текущее действие и возвращает в оболочку. Эта клавиша называется также RUB OUT или INTERRUPT. | |||||||
BACKSPACE | ‘ | nop | nop | ‘,’ | ‘>’ | nop | nop | O | |
53 | ‘/’ | ‘?’ | nop | nop | ‘/’ | ‘?’ | nop | nop | O |
54 | rshift | rshift | rshift | rshift | rshift | rshift | rshift | rshift | O |
55 | ‘*’ | ‘*’ | nscr | nscr | ‘*’ | ‘*’ | nscr | nscr | O |
56 | alt | alt | alt | alt | alt | alt | alt | alt | O |
57 | ‘ ‘ | ‘ ‘ | ‘ ‘ | ‘ ‘ | ‘ ‘ | ‘ ‘ | ‘ ‘ | ‘ ‘ | O |
58 | clock | clock | clock | clock | clock | clock | clock | clock | O |
59 | fkey1 | fkey13 | fkey25 | fkey37 | scr1 | scr11 | scr1 | scr11 | O |
60 | fkey2 | fkey14 | fkey26 | fkey38 | scr2 | scr12 | scr2 | scr12 | O |
61 | fkey3 | fkey15 | fkey27 | fkey39 | scr3 | scr13 | scr3 | scr13 | O |
62 | fkey4 | fkey16 | fkey28 | fkey40 | scr4 | scr14 | scr4 | scr14 | O |
63 | fkey5 | fkey17 | fkey29 | fkey41 | scr5 | scr15 | scr5 | scr15 | O |
64 | fkey6 | fkey18 | fkey30 | fkey42 | scr6 | scr16 | scr6 | scr16 | O |
65 | fkey7 | fkey19 | fkey31 | fkey43 | scr7 | scr7 | scr7 | scr7 | O |
66 | fkey8 | fkey20 | fkey32 | fkey44 | scr8 | scr8 | scr8 | scr8 | O |
67 | fkey9 | fkey21 | fkey33 | fkey45 | scr9 | scr9 | scr9 | scr9 | O |
68 | fkey10 | fkey22 | fkey34 | fkey46 | scr10 | scr10 | scr10 | scr10 | O |
69 | nlock | nlock | dc3 | dc3 | nlock | nlock | dc3 | dc3 | O |
70 | slock | slock | del | del | slock | slock | del | del | O |
71 | fkey49 | ‘7’ | ‘7’ | ‘7’ | ‘7’ | ‘7’ | ‘7’ | ‘7’ | N |
72 | fkey50 | ‘8’ | ‘8’ | ‘8’ | ‘8’ | ‘8’ | ‘8’ | ‘8’ | N |
73 | fkey51 | ‘9’ | ‘9’ | ‘9’ | ‘9’ | ‘9’ | ‘9’ | ‘9’ | N |
74 | fkey52 | ‘-‘ | ‘-‘ | ‘-‘ | ‘-‘ | ‘-‘ | ‘-‘ | ‘-‘ | N |
75 | fkey53 | ‘4’ | ‘4’ | ‘4’ | ‘4’ | ‘4’ | ‘4’ | ‘4’ | N |
76 | fkey54 | ‘5’ | ‘5’ | ‘5’ | ‘5’ | ‘5’ | ‘5’ | ‘5’ | N |
77 | fkey55 | ‘6’ | ‘6’ | ‘6’ | ‘6’ | ‘6’ | ‘6’ | ‘6’ | N |
78 | fkey56 | ‘+’ | ‘+’ | ‘+’ | ‘+’ | ‘+’ | ‘+’ | ‘+’ | N |
79 | fkey57 | ‘1’ | ‘1’ | ‘1’ | ‘1’ | ‘1’ | ‘1’ | ‘1’ | N |
80 | fkey58 | ‘2’ | ‘2’ | ‘2’ | ‘2’ | ‘2’ | ‘2’ | ‘2’ | N |
81 | fkey59 | ‘3’ | ‘3’ | ‘3’ | ‘3’ | ‘3’ | ‘3’ | ‘3’ | N |
82 | fkey60 | ‘0’ | ‘0’ | ‘0’ | ‘0’ | ‘0’ | ‘0’ | ‘0’ | N |
83 | del | ‘.’ | del | del | del | del | del | del | N |
84 | nop | nop | nop | nop | nop | nop | nop | nop | O |
85 | fkey11 | fkey23 | fkey35 | fkey47 | scr11 | scr11 | scr11 | scr11 | O |
86 | fkey12 | fkey24 | fkey36 | fkey48 | scr12 | scr12 | scr12 | scr12 | O |
Следующие скан-коды генерируются только на клавиатурах, которые поддерживают и находятся в режиме AT.
SCAN CODE | BASE | SHIFT | CTRL | CTRL SHIFT | ALT | ALT SHIFT | ALT CTRL | ALT CTRL SHIFT | LOCK |
---|---|---|---|---|---|---|---|---|---|
87 | fkey11 | fkey23 | fkey35 | fkey47 | scr11 | scr11 | scr11 | scr11 | O |
88 | fkey12 | fkey24 | fkey36 | fkey48 | scr12 | scr12 | scr12 | scr12 | O |
89 | nop | nop | nop | nop | nop | nop | nop | nop | O |
90 | nop | nop | nop | nop | nop | nop | nop | nop | O |
91 | nop | nop | nop | nop | nop | nop | nop | nop | O |
92 | nop | nop | nop | nop | nop | nop | nop | nop | O |
93 | nop | nop | nop | nop | nop | nop | nop | nop | O |
94 | nop | nop | nop | nop | nop | nop | nop | nop | O |
95 | nop | nop | nop | nop | nop | nop | nop | nop | O |
96 | fkey50 | fkey50 | fkey50 | fkey50 | fkey50 | fkey50 | fkey50 | fkey50 | O |
97 | fkey53 | fkey53 | fkey53 | fkey53 | fkey53 | fkey53 | fkey53 | fkey53 | O |
98 | fkey58 | fkey58 | fkey58 | fkey58 | fkey58 | fkey58 | fkey58 | fkey58 | O |
99 | fkey55 | fkey55 | fkey55 | fkey55 | fkey55 | fkey55 | fkey55 | fkey55 | O |
100 | fkey49 | fkey49 | fkey49 | fkey49 | fkey49 | fkey49 | fkey49 | fkey49 | O |
101 | fkey51 | fkey51 | fkey51 | fkey51 | fkey51 | fkey51 | fkey51 | fkey51 | O |
102 | fkey57 | fkey57 | fkey57 | fkey57 | fkey57 | fkey57 | fkey57 | fkey57 | O |
103 | fkey59 | fkey59 | fkey59 | fkey59 | fkey59 | fkey59 | fkey59 | fkey59 | O |
104 | fkey60 | fkey60 | fkey60 | fkey60 | fkey60 | fkey60 | fkey60 | fkey60 | O |
105 | del | del | del | del | del | del | del | del | 0 |
106 | nop | nop | nop | nop | nop | nop | nop | nop | O |
107 | nop | nop | nop | nop | nop | nop | nop | nop | O |
108 | nop | nop | nop | nop | nop | nop | nop | nop | O |
109 | nop | nop | nop | nop | nop | nop | nop | nop | O |
110 | nop | nop | nop | nop | nop | nop | nop | nop | O |
111 | nop | nop | nop | nop | nop | nop | nop | nop | O |
112 | nop | nop | nop | nop | nop | nop | nop | nop | O |
113 | nop | nop | nop | nop | nop | nop | nop | nop | O |
114 | nop | nop | nop | nop | nop | nop | nop | nop | O |
115 | nop | nop | nop | nop | nop | nop | nop | nop | O |
116 | nop | nop | nop | nop | nop | nop | nop | nop | O |
117 | nop | nop | nop | nop | nop | nop | nop | nop | O |
118 | nop | nop | nop | nop | nop | nop | nop | nop | O |
119 | nop | nop | nop | nop | nop | nop | nop | nop | O |
120 | nop | nop | nop | nop | nop | nop | nop | nop | O |
121 | nop | nop | nop | nop | nop | nop | nop | nop | O |
122 | nop | nop | nop | nop | nop | nop | nop | nop | O |
123 | nop | nop | nop | nop | nop | nop | nop | nop | O |
124 | nop | nop | nop | nop | nop | nop | nop | nop | O |
125 | nop | nop | nop | nop | nop | nop | nop | nop | O |
126 | nop | nop | nop | nop | nop | nop | nop | nop | O |
127 | nop | nop | nop | nop | nop | nop | nop | nop | O |
128 | rctrl | rctrl | rctrl | rctrl | rctrl | rctrl | rctrl | rctrl | O |
129 | ralt | ralt | ralt | ralt | ralt | ralt | ralt | ralt | O |
130 | fkey60 | fkey60 | fkey60 | fkey60 | fkey60 | fkey60 | fkey60 | fkey60 | O |
131 | del | del | del | del | del | del | del | del | 0 |
132 | fkey49 | fkey49 | fkey49 | fkey49 | fkey49 | fkey49 | fkey49 | fkey49 | O |
133 | fkey57 | fkey57 | fkey57 | fkey57 | fkey57 | fkey57 | fkey57 | fkey57 | O |
134 | fkey51 | fkey51 | fkey51 | fkey51 | fkey51 | fkey51 | fkey51 | fkey51 | O |
135 | fkey59 | fkey59 | fkey59 | fkey59 | fkey59 | fkey59 | fkey59 | fkey59 | O |
136 | fkey53 | fkey53 | fkey53 | fkey53 | fkey53 | fkey53 | fkey53 | fkey53 | O |
137 | fkey55 | fkey55 | fkey55 | fkey55 | fkey55 | fkey55 | fkey55 | fkey55 | O |
138 | fkey50 | fkey50 | fkey50 | fkey50 | fkey50 | fkey50 | fkey50 | fkey50 | O |
139 | fkey58 | fkey58 | fkey58 | fkey58 | fkey58 | fkey58 | fkey58 | fkey58 | O |
140 | ‘/’ | nop | nop | nop | ‘/’ | nop | nop | nop | O |
141 | cr | cr | nl | nl | cr | cr | nl | nl | O |
В следующей таблице перечисляются «значения» специальных ключевых слов в файле /usr/lib/keyboard/keys (и в предыдущей таблице). mapkey(ADM) помещает «значение» ключевого слова в буфер управления вводом/выводом во время назначения клавиш. Эти ключевые слова используются только в файле скан-кодов /usr/lib/keyboard/keys для упрощения его чтения.
В следующей таблице перечисляются названия ключевых слов и их десятичные значения, которые могут взаимозаменяться в файле mapkey. Эти названия используются вместо соответствующих численных констант для облегчения чтения таблицы скан-кодов. Но в буфер управления вводом/выводом помещаются только десятичные значения. Они берутся из ascci(5).
Название | Значение | Название | Значение | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
nul | 0 | dc1 | 17 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
soh | 1 | dc2 | 18 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
stx | 2 | dc3 | 19 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
etx | 3 | dc4 | 20 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
eot | 4 | nak | 21 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
enq | 5 | syn | 22 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ack | 6 | etb | 23 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
bel | 7 | can | 24 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
bs | 8 | em | 25 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ht | 9 | sub | 26 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
nl | 10 | esc | 27 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
vt | 11 | fs | 28 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
np | 12 | gs | 29 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
cr | 13 | rs | 30 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
so | 14 | ns | 31 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
si | 15 | del | 127 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
dle | 16
Назначение клавиш клавиатуры При установке соответствий клавиш клавиатуры значение cmd=GIO_KEYMAP высвечивает текущую таблицу соответствий, а cmd=PIO_KEYMAP помещает готовый буфер на место. Назначение функциональных клавиш Не существует ограничения на длину строки, кроме предела самой таблицы, 512 байтов, включая нули. Строки обнуляются введением дополнительных нулевых символов. Далее приведен список значений функциональных клавиш, устанавливаемых по умолчанию:
Вы можете назначать функциональные клавиши с помощью ioctl(2). Синтаксис имеет вид: При установке соответствий клавиш клавиатуры значение cmd=GIO_KEYMAP высвечивает текущую таблицу соответствий, а cmd=PIO_KEYMAP устанавливает новую таблицу на место. Источник
Вам также понравится Adblock |
Переход на новую операционную систему может показаться сложным или пугающим, но радость от изучения чего-то нового стоит затраченных усилий.
Давайте рассмотрим некоторые важные сочетания клавиш, которые одинаково работают как в Linux, так и в Windows. Хотя Windows и Linux по своей сути различны, вы все равно можете использовать большинство знакомых вам сочетаний клавиш в любой из операционных систем.
Зачем использовать сочетания клавиш?
Сочетания клавиш — один из лучших способов сделать что-то быстро на компьютере. Если вы обнаружите, что выполняете какую-то задачу или действие очень часто, вам следует подумать о том, чтобы найти для нее сочетание клавиш. Это сэкономит вам кучу времени и повысит производительность.
Графический пользовательский интерфейс (GUI) большинства программных систем меняется довольно часто, но основные сочетания меняются редко. Например, доступ к установленным программам из графического интерфейса в Windows XP, Windows 10 и Windows 11 сильно различается, но сочетание клавиш остается прежним, и, вероятно, так будет еще очень долго.
Помимо того, что это круто, сочетания клавиш помогают вам обрести уверенность и освоить операционную систему или программное обеспечение, которое вы используете.
1. Экран блокировки
Вы хотите отойти от своего ПК? Не ставьте под угрозу свою безопасность, оставляя компьютер разблокированным. Быстро заблокируйте экран компьютера с помощью сочетания клавиш Super + L, чтобы посторонние не могли получить доступ к вашему компьютеру. После блокировки устройства система попросит ввести пароль для повторного доступа к ПК.
В Linux клавиша Windows на клавиатуре называется клавишей Super, поэтому для единообразия мы будем придерживаться этого правила.
Меню запуска или меню приложений дает вам доступ к установленным программам и панели поиска для быстрого поиска файлов или приложений. Просто нажмите клавишу Super или Super + S и начните вводить текст, чтобы найти нужный файл или приложение.
В Linux программа запуска также дает вам представление о запущенных в данный момент программах.
3. Показать рабочий стол
Если у вас открыто несколько приложений или файлов, но вы хотите быстро перейти на рабочий стол, просто нажмите Super + D. Команда свернет все открытые окна и перенесет вас на рабочий стол. Нажмите Super + D еще раз, чтобы вернуть открытые программы.
4. Переключение между приложениями
Чтобы быстро переключиться на другую открытую программу на вашем ПК, используйте сочетание клавиш Alt + Tab. Продолжайте нажимать на Tab, чтобы выбрать следующее открытое приложение, и отпустите, как только искомое приложение будет выбрано.
Чтобы вернуться назад, нажмите Alt + Shift + Tab. Кроме того, вы можете использовать сочетание Super + Tab для быстрого переключения между открытыми приложениями. В Windows ярлык Super + Tab также показывает ваши текущие виртуальные рабочие столы.
5. Разворачивание и свертывание окна
Используйте клавиши Super + стрелка вверх, чтобы увеличить размер окна программы, и Super + стрелка вниз, чтобы уменьшить окно. Это удобно, когда вы хотите, чтобы несколько окон программы были открыты одновременно.
6. Получение помощи
И Windows, и Linux хорошо документированы, как и большинство программ, созданных для них. Сверните все открытые программы (Super + D), затем нажмите F1, и вы получите документацию по вашей операционной системе.
Вы также можете использовать клавишу F1, чтобы получить справку по конкретному приложению. Например, нажатие F1 в окне веб-браузера откроет документацию вашего браузера или страницы справки.
7. Закрытие программы
Используйте сочетание клавиш Alt + F4, чтобы быстро закрыть открытую программу в Windows и Linux.
8. Разделить окна
Часто вам может потребоваться просмотреть приложения рядом для сравнения или легкого переключения между ними. Используйте сочетание клавиш Super + стрелка влево, чтобы быстро привязать окно программы к левой стороне, и Super + стрелку вправо, чтобы привязать окно вправо. Программы будут занимать одинаковое место в окне.
9. Изменение языка клавиатуры
Если на вашем компьютере установлено несколько языковых пакетов, вы можете легко изменить текущий язык с помощью сочетания клавиш Super + пробел.
Одной из самых распространенных задач среди пользователей ПК является редактирование. Редактируем документы, скрипты, программный код, картинки и т. д. Используйте сочетание клавиш Ctrl + X, чтобы вырезать текст или файл. Чтобы скопировать текст или файл, используйте клавиши Ctrl + C, а затем используйте Ctrl + V, чтобы вставить скопированное или вырезанное содержимое.
Кроме того, чтобы быстро переименовать файл, выделите его и нажмите F2.
Повысьте свою производительность с помощью сочетаний клавиш
Мы рассмотрели несколько важных сочетаний клавиш, которые можно использовать как в Linux, так и в Windows, но их гораздо больше. Изучение сочетаний клавиш для рутинных задач может сэкономить массу времени и повысить вашу производительность при работе с ПК.
2264920cookie-check10 сочетаний клавиш, которые работают как в Windows, так и в Linux
Автор публикации
Комментарии: 6Публикации: 1203Регистрация: 29-04-2020