Я хочу нажать F1 kbd> и получить строку с ключом возврата для автоматического ввода в терминал, в котором я нахожусь. Я не хочу делать это с .bash_profile
, потому что я хочу, чтобы это было настроен локально в одном месте не на каждом сервере, который я ssh
в к.
Как мне это сделать?
xmacro
для записи и воспроизведения нажатий клавиш.
Установить xmacro
sudo apt-get install xmacro
Записать макрос
xmacrorec2 > test.macro
Теперь нажмите ESC kbd> (чтобы нажмите клавишу «abort» для записи), введите любой текст, который вы хотите назначить, и снова нажмите ESC kbd>, чтобы остановить запись. Записанный макрос теперь находится в файле test.macro
; Вы можете редактировать его с помощью текстового редактора.
Проверка работоспособности макроса
cat test.macro | xmacroplay -d 0 $DISPLAY
(необязательно, рекомендуется) Создайте сценарий с помощью приведенных выше команд. Сохраните его как macro.sh:
#!/bin/bash
cat test.macro | xmacroplay -d 0 $DISPLAY > /dev/null 2>/dev/null
Сделайте его исполняемым:
chmod a+x macro.sh
Осталась небольшая проблема. xmacro воспроизводит точные нажатия клавиш, но если вы определите комбинацию клавиш и запустите скрипт из комбинации клавиш, клавиши будут воспроизведены до того, как вы отпустите комбинацию клавиш, как если бы вы начали печатать без отпускания клавиши. Вам необходимо добавить следующую строку к файлу test.macro:
KeyStrRelease F1
, который будет имитировать отпускание клавиши F1.
Используя настройки клавиатуры (вы можете получить к ним доступ через настройки или набрав `gnome-control-center keyboard), создайте новый ярлык в разделе" Пользовательские ярлыки "и назначьте ему F1.
Хорошо, но есть еще одно предупреждение: ярлык F1 теперь будет работать в в каждом приложении , а не только в терминале. Я не знаю, как это решить; возможно, в macro.sh
нужно было бы сначала проверить, какое окно имеет фокус, и проверить, является ли идентификатор этого окна терминальным.