В своей повседневной жизни я постоянно печатаю <kbd>Keyboard Character</kbd>
и хотел бы настроить макрос в Ubuntu для автоматического ввода <kbd> </kbd>
.
Я хотел бы назначить ему, скажем, ++ Shiftили любую другую комбинацию символов управления клавиатурой, которая еще не назначена и уже используется в Ubuntu.ControlK
Во времена TSR (Terminate and Stay Resident) программ MS-DOS это было возможно. Конечно, это должно быть и в Ubuntu?
Нужно ли мне писать демон, чтобы это сделать?
Я нашел другие вопросы без ответов:Как назначить макросы клавишам клавиатуры в Ubuntu, аналогичные макросам клавиатуры Razer в Windows?,какой хороший макрорекордер для мыши/клавиатуры?
Я нашел похожий вопрос с ответом:Можно ли использовать сочетания клавиш для реализации текстовых макросов?. Однако этот вопрос оговаривал, что ответ не может быть AutoKey
.
решение1
Я немного погуглил и нашел программу под названием AutoKey (Autokey - Linux-утилита для замены текста горячими клавишами) в верхней части списка.
Вместо использования горячей клавиши Ctrl+ Shift+ Kя решил назначить аббревиатуру kz
, которая автоматически раскрывается в <kbd></kbd>+
.
Он просто устанавливается с помощью:
sudo apt install autokey-gtk
Он устанавливается в Launcher, и экран довольно прост в использовании:
решение2
Также можно использовать xdotool
флаг type
, например, так:
bash -c ' sleep 0.5; xdotool getactivewindow type "<kbd></kbd>"'
Перейдите в Системные настройки-> Клавиатура-> Сочетания клавиш -> Настраиваемые и привяжите эту команду к любой желаемой комбинации клавиш. Я выбрал CtrlSuperK. Здесь происходит следующее: мы даем пользователю задержку в 0,5 секунды для отпускания комбинации клавиш, а затем xdotool
набираем теги разметки клавиш, как если бы вы делали это сами на клавиатуре. Очень простой и легкий подход. На самом деле я только что использовал его, чтобы вставить эти 3 клавиши выше.
Обратите внимание, что xdotool
он не входит в комплект Ubuntu по умолчанию, поэтому вам придется установить его черезsudo apt-get install xdotool
решение3
Если у тебя естьсочинятьфайл, вы можете использовать его как утилиту для вставки текста для бедных.
Вы можете использовать некоторые модификаторы в X. ВидимоВы можете использовать Shift
в качестве модификатора:
! Ctrl Shift <k> : "<kbd></kbd>"
Но это не работает, по крайней мере на моем компьютере.
Это тоже не работает (пропущено Shift
, написано с заглавной буквы K
):
! Ctrl <K> : "<kbd></kbd>"
Однако вы можете использовать Ctrl
и Ctrl
+ Alt
:
! Ctrl Alt <k> : "<kbd></kbd>"
! Ctrl <k> : "<kbd></kbd>"
Правильное размещение курсора
Приведенные выше сопоставления поместят курсор после строки ( |
обозначает курсор):
<kbd></kbd>|
Я считаю, что не может быть универсального решения для помещения курсора внутрь тега; для этого вам нужно будет использовать подходящий для этого инструмент. Но вы можете поместить курсор внутрь тега в определенных приложениях.
Я использую gnome-terminal
Bash, который использует сочетания клавиш readline (подобно Emacs). Ctrl-b
— это сочетание клавиш для перехода на один символ назад. В моем терминале я могу ввести Ctrl+v b
и получить управляющий символ ^B
(U+0002 (Начало текста)). Поэтому введите шесть таких символов в конце строки:
! Ctrl Alt <k> : "<kbd></kbd>^B^B^B^B^B^B"
Курсор будет помещен внутрь тегаесливы находитесь внутри приложения, которое ^B
правильно интерпретирует (например, терминалы и Emacs):
<kbd>|</kbd>
Использование клавиши «Композитор»
Конечно, вы можете использовать клавишу Compose ( <Multi_key>
), чтобы добиться того же самого. Например, используйте t
(«tag») и k
(«keyboard»):
<Multi_key> <t> <k> : "<kbd></kbd>^B^B^B^B^B^B"