Загадочные явления в ключевой карте с xkbcomp

Для достижения низкоуровневой замены левой клавиши ctrl и клавиши capsLock я использовал xkbcomp следующим образом:

Сначала я получил текущую раскладку клавиатуры:

 xkbcomp $DISPLAY output.xkb

Затем я изменил 2 строки в output.xkb с

<LCTL> = 62;
...
<CAPS> = 66; 

на

<CAPS> = 62;
...
<LCTL> = 66;

, затем запустил

xkbcomp output.xkb $DISPLAY

, чтобы она вступила в силу. Он отлично работает в большинстве настольных приложений. Но проблема в vscode. На самом деле, он также хорошо работает в обычном режиме vscode, но когда я пытаюсь изменить сочетание клавиш в vscode и мне нужно нажать новые клавиши для изменения сочетания клавиш, я нажимаю клавишу capsLock на клавиатуре и vscode думает, что я нажал ctrl+capsLock одновременно. Это не то, что я ожидал, vscode не должен знать мою capsLock клавишу, он должен знать только, что я нажал ctrl клавишу, потому что XServer должен только сказать vscode, что я нажал ctrl клавишу. Я думаю, что это потому, что моя конфигурация не закончена, чтобы vscode все еще мог определить мою capsLock клавишу. Кто-нибудь может сказать мне, как сделать полный обмен ключами ctrl и capsLock? xmodmap не должен быть решением, так как он основан на xkbcomp и имеет ограниченную функцию.

0
задан 13 December 2020 в 18:02

1 ответ

К сожалению, у меня то же самое, что и у вас, в VSCode, но я использую следующий обходной путь до дальнейшего уведомления:

xkbcomp $DISPLAY output_orig.xkb
xkbcomp $DISPLAY output_mod.xkb

Редактируйте файл output_mod.xkb в соответствии с моими идеями.

Если я обычно работаю в vscode, я использую

xkbcomp output_mod.xkb $DISPLAY

Если я редактирую сочетания клавиш, я использую раньше:

xkbcomp output_orig.xkb $DISPLAY

Внесите изменения с исходными ключами, а затем верните раскладку на перестановку клавиш:

xkbcomp output_mod.xkb $DISPLAY

Хорошо, это не очень умно, но эффективно для этой конкретной проблемы.

/// РЕДАКТИРОВАТЬ ///

После некоторых исследований кажется, что есть лучшее решение, особенно для поведения vscode:

В Терминале:

nano ~/.config/Code/User/settings.json

Вставить код:

{
    "keyboard.dispatch": "keyCode"
}

Если код уже существует в этом файле:

{
    "bla": "blub",
    "keyboard.dispatch": "keyCode"
}

Перезапустите vscode.

0
ответ дан 13 December 2020 в 20:18

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

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