У меня есть ноутбук со шведской раскладкой клавиатуры, все хорошо работает с клавиатурой. Из-за травм я использую внешнюю эргономичную 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"
# => То же, что и выше
Есть ли способ решения этих проблем?
Настройка:
Переключитесь на виртуальную консоль ( CTRL kbd> + ALT kbd> + F1 kbd>) и запустите
showkey -s
. распечатайте коды сканирования клавиш, поэтому просто нажмите эти левую и правую клавиши CTRL kbd> и посмотрите, имеют ли они одинаковые коды сканирования. После того, как вы проверили это, подождите 10 секунд и не нажимайте никакую клавишу , чтобы программа showkey
могла вернуться. Затем переключитесь обратно на X ( ALT kbd> + F7 kbd>).
Если бы коды сканирования были другими, то есть надежда, что эти ключи могут быть перераспределены по-разному (потому что ядро видит их по-разному), если коды сканирования одинаковы, тогда нет другого способа перераспределения.
Если у вас есть две клавиши с одинаковым кодом сканирования, переназначение этих клавиш для другого действия переназначит обе клавиши с этим кодом сканирования. Насколько я знаю, нет никакого способа различать два разных ключа, если они имеют одинаковый код сканирования.
Как предполагает @falconer, вы можете увидеть, являются ли ваши два ключа на самом деле разными или одинаковыми, проверив с помощью showkey -s
в виртуальной консоли. Помните, как переключиться обратно на X ( ALT kbd> + F7 kbd>), чтобы не застревать в виртуальной консоли.
Если вы нажмете две клавиши, которые хотите отобразить по-разному, и эти две клавиши приведут вас к одному и тому же выводу, вам нужно искать другое решение.
Внешняя клавиатура, о которой вы говорите, на самом деле имеет клавиши со скан-кодами, отображающими действия, которые, по вашему мнению, отсутствуют, (Control_L
и Control_R
) - я бы порекомендовал вам сбросить клавиатуру к настройкам по умолчанию и проверить вывод ваших ключей снова с помощью xev.
Убедитесь, что вы начинаете с правильных настроек Оперативной системы, на вашей клавиатуре они:
= + kbd> + w kbd> для windows.
= + kbd> + p kbd> для ПК (не Windows).
= + kbd> + m kbd> для Mac.
Установка этого параметра перед началом переназначения обеспечит хорошее начало работы со всеми необходимыми вам кодами сканирования.
Что касается проблемы Alt-GR kbd>, то ISO_Level3_Shift
должно быть правильным действием для этого ключа (насколько я знаю). Ключи с этим действием корректно вызывают поведение Alt-GR kbd>.
Кроме того, при манипуляциях с кодами сканирования и действиями может быть неплохо иметь какое-либо программное обеспечение, например KeyMon , которое сообщит вам, какую клавишу или комбинацию клавиш вы нажимаете.