Ключевые отображения в Linux

Вы могли попробовать кодирование URL Ваш пароль. @ должен быть заменен %40.

Занятие Специальными символами в Паролях прокси на Linux указывает, что это должно работать, но оглядывание других людей, кажется, не заставляет это работать (и у меня нет способа протестировать это).

4
01.07.2014, 02:44
2 ответа

scancodes и коды клавиши

В целом то, когда кто-то говорит это, они означают, что функция, маркированная на ключе, не соответствует тому, что "кодирует" тот ключ, отправляет к ядру Linux, когда это нажимается. Можно думать о нем, поскольку ключ маркирован Home, но ядро отправляется "код" за клавишей Ctrl.

В намного более низкой части уровня то, что действительно продолжается, - то, что каждому ключу присваивают scancode.

выборка от scancode страницы Википедии

scancode (или скэн-код) является данными, которые большинство компьютерных клавиатур отправляет на компьютер для создания отчетов, какие клавиши были нажаты. Число или последовательность чисел, присвоено каждому, включают клавиатуру.

Эти scancodes отображаются в коды клавиши ядром Linux. Именно эти коды клавиши обычно передаются к приложениям. Вот другой scancode ресурс, если Вы хотели бы более подробную информацию.

Примечание: это по упрощению, но я пытаюсь просто дать Вам общее понимание этого слоя. Основной вывод - то, что клавиши нажаты, scancodes сгенерированы, ядро Linux видит эти scancodes и испускает коды клавиши.

setkeycodes

Можно изменить scancode отображение кода клавиши с помощью инструмента setkeycodes:

setkeycodes scancode keycode ...

Команда setkeycodes читает свои аргументы два за один раз, каждая пара аргументов, состоящих из scancode (поданный шестнадцатеричный) и код клавиши (данный в десятичном числе). Для каждой такой пары это говорит драйверу клавиатуры ядра отображать указанный scancode на указанный код клавиши.

Отображение кода клавиши сохранено в файлах контурной карты. В моей системе Fedora мой американский файл контурной карты был расположен здесь, /lib/kbd/keymaps/i386/qwerty/us.map.gz. Я нашел его путем выслеживания немного с этой командой:

$ locate map.gz|grep us
/lib/kbd/keymaps/amiga/amiga-us.map.gz
/lib/kbd/keymaps/atari/atari-us.map.gz
/lib/kbd/keymaps/i386/qwerty/br-latin1-us.map.gz
/lib/kbd/keymaps/i386/qwerty/is-latin1-us.map.gz
/lib/kbd/keymaps/i386/qwerty/us-acentos.map.gz
/lib/kbd/keymaps/i386/qwerty/us.map.gz
/lib/kbd/keymaps/i386/qwertz/cz-us-qwertz.map.gz
/lib/kbd/keymaps/mac/all/mac-us.map.gz
/lib/kbd/keymaps/sun/sunt5-cz-us.map.gz
/lib/kbd/keymaps/sun/sunt5-us-cz.map.gz

Заметьте, что эти файлы сжаты (.gz), таким образом, необходимо или разархивировать их (не беспокойтесь), или использование zcat или zless просмотреть их:

$ zless /lib/kbd/keymaps/i386/qwerty/us.map.gz
# us.map
keymaps 0-2,4-6,8-9,12
alt_is_meta
include "qwerty-layout"
include "linux-with-alt-and-altgr"
include "compose.latin1"
include "euro1.map"
strings as usual

keycode   1 = Escape
keycode   2 = one              exclam
keycode   3 = two              at               at               nul              nul
keycode   4 = three            numbersign
        control keycode   4 = Escape
keycode   5 = four             dollar           dollar           Control_backslash
keycode   6 = five             percent

...
...

keycode  97 = Control

Таким образом, если бы Вы хотели изменить ключ "Управления" (код клавиши 97) и установить его на scancode для "Вышедшего Контроля" ключ, (scancode 0x1d 0x9d), то Вы использовали бы следующее:

$ setkeycodes 1d9d 97 &

showkey

Можно также видеть, какой код клавиши ключ отображается на использовании команды showkey:

$ showkey -a

Press any keys - Ctrl-D will terminate this program

1    49 0061 0x31
2    50 0062 0x32
3    51 0063 0x33
a    97 0141 0x61
b    98 0142 0x62
c    99 0143 0x63
^[OH 27 0033 0x1b
     79 0117 0x4f
     72 0110 0x48
^D    4 0004 0x04

"^ [OH" является я нажимающий мою клавишу HOME.

NOTE1: когда в ascii' dump mode (showkey-a'), showkey печатает к стандартному выводу десятичное, восьмеричное, и шестнадцатеричное значение (значения) нажатой клавиши, согласно он представляет контурную карту.

NOTE2: Вы, возможно, должны использовать sudo при выполнении showkey.

4
27.01.2020, 20:54

Я использую MacBook Pro и не имею никаких проблем с ключевыми отображениями, когда я вхожу в системы UNIX, таким образом, настройки по умолчанию прекрасны почти наверняка, и никакие отображения не необходимы. Я регулярно использую Debian, Ubuntu, Redhat и Солярис 11.

Однако, что имеют в виду люди, когда они говорят, это находится в Терминальных Предпочтениях при Настройках на вкладке Keyboard. Можно отредактировать ключевые отображения там.

Единственное изменение, которое я внес, состоит в том, чтобы включить опцию использования как meta.

Относительно Дома и Конца, я использую ctrl+A для Дома и ctrl+E для Конца вместо этого, потому что мне не нравится, где клавиши Home и клавиши End находятся на клавиатурах. Я также изменил свою клавишу Caps Lock в другую клавишу Ctrl (в Установках системы под Клавиатурой), потому что это - традиционное местоположение для клавиши Ctrl, это более удобно и серьезно, кто использует Caps Lock?

1
27.01.2020, 20:54
  • 1
    В vimrc Я vmapped CTRL-c кому: y так, чтобы я мог скопировать блоки текста и CTRL-p кому: P так, чтобы я мог вставить его. Это работает в Linux, но в моей Книге Mac он не делает. Кажется, что я не могу использовать CTRL правильно. Какая-либо идея, почему это и как я могу зафиксировать ее? –  Jim 30.06.2013, 13:15
  • 2
    @Jim xfce4-сочетаний-клавиш или редактируют Ваш исходный вопрос или задают новый вопрос для этого. –  strugee 28.10.2013, 07:38

Теги

Похожие вопросы