Как я могу установить определенный код клавиши для ключа и связать его с правильным действием?

У меня есть ноутбук со шведской раскладкой клавиатуры, все хорошо работает с клавиатурой. Из-за травм я использую внешнюю эргономичную USB-клавиатуру, и здесь я испытываю трудности.

На внешней клавиатуре нет клавиши для Control_R или ALT-GR (думаю, это ALT_R), что вызывает проблемы из-за ввода @, $, и {} или [] все использует ALT-GR в шведской раскладке клавиатуры.

ОБНОВЛЕНИЕ :: Это не так. Клавиатура поставляется с обеими клавишами управления, но она была испорчена из-за пользовательского переназначения, прочитайте, как управлять этим здесь . После полного сброса I выясняется, что внешняя клавиатура также имеет Alt-GR (показано как ISO_Level3_Shift от xev) (хотя backticks было трудно найти). :: END UPDATE

Клавиатура имеет встроенную функцию переназначения, а также функции макросов, но нет способа переназначить клавиши от встроенной клавиатуры на внешнюю клавиатуру (насколько это возможно). как я знаю)

Я хотел бы установить одну из моих клавиш на внешней клавиатуре, чтобы иметь новый код клавиши (например, Control_R или ALT_R, а затем переназначить его, чтобы он действовал как ALT-GR - это Это возможно? Причина, по которой я не хочу код клавиши Control_L, заключается в том, что если я переназначу его, тогда будет также переназначен другой ключ управления.

С помощью xev я проверил, какой код клавиши срабатывает, нажав клавиша ALT-GR на моей бортовой клавиатуре, и это keycode 108 (keysym 0xfe03, ISO_Level3_Shift). После некоторого исследования я заметил, что это не ожидается для клавиши ALT-GR, но эта клавиша работает, как я ожидаю.

С xev Я также проверяю вывод для клавиши на внешней клавиатуре, которую я хочу использовать как ALT-GR: keycode 105 (keysym 0xffe3, Control_L).

У меня есть еще одна клавиша на внешней клавиатуре, выводящая точно такую ​​же вещь, эта клавиша тот, который я использую для Control_L, Мак Один из них, который я хотел, был ALT_GR излишним.

Я возился с xmodmap, чтобы посмотреть, смогу ли я получить то, что мне нужно, но, увы, безуспешно. Вот несколько сценариев.

xmodmap -e "keycode 105 = Alt_R" # => Это отключает обе клавиши управления и не работает как ALT-GR, фактически ключ ничего не делает.

xmodmap -e "keycode 105 = ISO_Level3_Shift" # => То же, что и выше

Есть ли способ решения этих проблем?


Настройка:

1
задан 12 December 2013 в 20:36

2 ответа

Переключитесь на виртуальную консоль ( CTRL + ALT + F1 ) и запустите

showkey -s

. распечатайте коды сканирования клавиш, поэтому просто нажмите эти левую и правую клавиши CTRL и посмотрите, имеют ли они одинаковые коды сканирования. После того, как вы проверили это, подождите 10 секунд и не нажимайте никакую клавишу , чтобы программа showkey могла вернуться. Затем переключитесь обратно на X ( ALT + F7 ).

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

0
ответ дан 12 December 2013 в 20:36

Если у вас есть две клавиши с одинаковым кодом сканирования, переназначение этих клавиш для другого действия переназначит обе клавиши с этим кодом сканирования. Насколько я знаю, нет никакого способа различать два разных ключа, если они имеют одинаковый код сканирования.

Как предполагает @falconer, вы можете увидеть, являются ли ваши два ключа на самом деле разными или одинаковыми, проверив с помощью showkey -s в виртуальной консоли. Помните, как переключиться обратно на X ( ALT + F7 ), чтобы не застревать в виртуальной консоли.

Если вы нажмете две клавиши, которые хотите отобразить по-разному, и эти две клавиши приведут вас к одному и тому же выводу, вам нужно искать другое решение.

Внешняя клавиатура, о которой вы говорите, на самом деле имеет клавиши со скан-кодами, отображающими действия, которые, по вашему мнению, отсутствуют, (Control_L и Control_R) - я бы порекомендовал вам сбросить клавиатуру к настройкам по умолчанию и проверить вывод ваших ключей снова с помощью xev.

Убедитесь, что вы начинаете с правильных настроек Оперативной системы, на вашей клавиатуре они:

= + + w для windows.

= + + p для ПК (не Windows).

= + + m для Mac.

Установка этого параметра перед началом переназначения обеспечит хорошее начало работы со всеми необходимыми вам кодами сканирования.

Что касается проблемы Alt-GR , то ISO_Level3_Shift должно быть правильным действием для этого ключа (насколько я знаю). Ключи с этим действием корректно вызывают поведение Alt-GR .

Кроме того, при манипуляциях с кодами сканирования и действиями может быть неплохо иметь какое-либо программное обеспечение, например KeyMon , которое сообщит вам, какую клавишу или комбинацию клавиш вы нажимаете.

0
ответ дан 12 December 2013 в 20:36

Другие вопросы по тегам:

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