1

Мне интересно связать meta ключ для библиотеки readline (редактирование командной строки, скажем, в bash) с клавиши alt на какой-то другой произвольный ключ (например, клавишу caps lock).

Для контекста, я уже использую менеджер окон XMonad, и у меня есть клавиша alt, связанная с рядом пользовательских функций, которые имеют приоритет над сочетаниями клавиш терминала.

Я пытался использовать xmodmap для переназначения ключа для Escape, но это не позволяет вам удерживать клавишу нажатой и нажимать несколько нажатий подряд.

Возможно ли, чтобы readline рассматривал другой модификатор Mod как мета-ключ?

Спасибо!

2 ответа2

0

Библиотека readline абсолютно ничего не знает о модификаторе, используемом в вашем терминале, который действует как мета-ключ. Итак, нет: то, что вы спрашиваете, невозможно.

0

Readline обнаруживает комбинацию мета-ключей, проверяя, установлен ли определенный бит в символе, который он получает от терминала, или, из-за способа, которым это работает для мета, символ попадает в определенный диапазон значений в верхней части значений. хранится в 8-битном байте. См. Chardefs.h для ознакомления с используемыми макросами.

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

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