5

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

Например, если я переназначу Caps Lock в ISO_Level3_Shift и установлю xkb_symbols для чтения либо

key <AC08>  { [         k,          K , Down, Down] };

или же

key <AC08>  { type="THREE_LEVEL",
              [         k,          K , Down ]  };

Нажатие Shift+CapsLock+K будет вести себя точно так же, как CapsLock+K (в то время как Shift+Down ведет себя иначе, чем только Down).

У меня был несколько больший успех с использованием высокоуровневых макро-утилит и генерацией событий клавиатуры (т.е. генерирование как клавиш Shift, так и клавиш со стрелками); Однако при таком подходе возникает целый ряд различных проблем - часто реакция пользовательского интерфейса на симулированное нажатие клавиши отличается от "реального" нажатия клавиш, а также возникают проблемы с производительностью - я могу печатать быстрее, чем то, с чем может справиться вещь.

Tl, др; как вы можете смещать-выбирать, используя переназначенные клавиши со стрелками под X?

1 ответ1

5

Вы можете использовать preserve для этого: добавьте в определение типа (например, THREE_LEVEL) строку

preserve[LevelThree+Shift] = Shift;

Это говорит xkb сохранить модификатор shift при определении соответствующего уровня из вашей комбинации модификаторов в случае LevelThree + Shift . Модификатор shift передается для использования инструментарием или приложением (см. Также здесь: использование preserve с типами).

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

key <AC08> { type="THREE_LEVEL", [ k, K, kappa ]  };

и вы нажали бы Ctrl + Shift + LevelThree + <AC08> приложение считало бы его как комбинацию Ctrl + Shift + kappa (вместо обычно Ctrl + kappa), потому что модификатор shift сохраняется и передается приложению.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .