Моя цель - настроить терминал, в котором программа с интерфейсом командной строки будет вести себя так, как ожидается, для ввода с клавиатуры (программа изначально написана в xharbour для Windows, но теперь я хотел бы перенести ее на Linux). Для начала я выбрал xterm, так как он проще, нет необходимости отключать комбинации клавиш терминала по умолчанию.
С замазкой большинство персонажей работают хорошо, а для тех, кто этого не делает, я использую автогорячую клавишу, скрипт ahk, и это делает свою работу. Например, для Ctrl+F1: ^F1::SendInput ^[O5P
Я пробовал и модифицировал, перекомпилировал terminfo, изменил его и изменил типы клавиатуры, но не смог получить ответ ^[O5P для нажатия Ctrl + F1 в терминале. Если вы знаете какой-либо способ сделать это изменение, пожалуйста, скажите мне... Я прочитал сотни страниц, которые якобы делают это, но все эти изменения не дали никакого эффекта или не дали ожидаемого эффекта.
Поэтому я оставил попытку изменить настройки терминала, чтобы достичь моей цели Ctrl+F1 to ^[O5P, и попробовал некоторые команды и программы, которые будут делать что-то похожее на автогорячую клавишу:
xmodmap
, но для комбинаций клавиш не работаетxdotool
windowactivate xyz type ^[O5P, это возвращает коды символов отдельных символовxmacro
, он не отправляет нажатия клавиш в другое окноironahk
, я получаю сообщение об ошибке в самом начале при попытке запустить example.ahk и не могу найти нужные мне команды в его легком руководстве.bind '\e[1;5P":"\e[O5P"'
, здесь первый код клавиши - это то, что я сейчас получаю при нажатии ctrl+f1 и после того, который я хочу получить этой комбинацией. Нет эффекта.xbindkeys
+xvkbd
тоже не помогло.
Пожалуйста, помогите мне, если вы уже знаете, удалось как-то добиться этого (изменить код клавиши, возвращаемый для комбинации клавиш).
Я использую последнюю версию CentOS и Ubuntu для тестирования.
/etc/X11/app-defaults/
для общесистемной конфигурации или$HOME/.Xresources
или$HOME/.Xdefaults
для индивидуальной пользовательской конфигурации. Если вы поместите его в правильное место (каким бы оно ни было для Centos), файл будет загружен в начале вашего X-сеанса, и вы сможете перезагрузить его в середине сеанса с помощьюxrdb -merge filename
. - person Alan Curry   schedule 07.08.2012-xrm
. Используя небольшой фрагмент файла примера для демонстрации:xterm -xrm 'XTerm.VT100.translations: #override Ctrl<Key>Left: string(0x1b) string("b") \n Ctrl<Key>Right: string(0x1b) string("f")'
- person Alan Curry   schedule 07.08.2012