Я заинтересован в перепривязке meta
ключа дляридлайнбиблиотеку (редактирование командной строки, скажем, в bash) с клавиши alt на какую-либо другую произвольную клавишу (например, клавишу Caps Lock).
Для контекста: я уже использую оконный менеджер XMonad и привязал клавишу Alt к ряду пользовательских функций, которые имеют приоритет над сочетаниями клавиш терминала.
Я пробовал использовать xmodmap, чтобы переназначить клавишу на Escape, но это не позволяет удерживать клавишу и нажимать несколько клавиш движения подряд.
Можно ли заставить readline обрабатывать другой Mod
модификатор как мета-ключ?
Спасибо!
решение1
Readline обнаруживает метакомбинацию клавиш, проверяя, установлен ли определенный бит в символе, который он получает от терминала, или, из-за того, как это работает для метакомбинации, что символ попадает в определенный диапазон значений в верхней части значений, хранящихся в 8-битном байте. Смотритеchardefs.hдля задействованных макросов утилит.
Вы можете настроить его чувство мета-ности, изменив библиотеку для обнаружения мета-символов каким-либо другим способом, переопределив эти макросы, а затем заново связав вашу оболочку с этой измененной readline. Менее инвазивным подходом было бы настроить ваш терминал так, чтобы он понимал другую клавишу как установку мета-бита, или использовать какой-то менеджер ввода на системном уровне, который мог бы сделать то же самое.
решение2
Библиотека readline не знает абсолютно ничего о модификаторе, используемом в вашем терминале для работы в качестве его понятия мета-ключа. Так что нет: то, о чем вы просите, невозможно.