Как настроить макросы клавиатуры?


20

В своей повседневной жизни я всегда печатаю <kbd>Keyboard Character</kbd>и хочу настроить макрос в Ubuntu для автоматического входа <kbd> </kbd>.

Я бы хотел присвоить ему Shift+ Control+ Kили любую комбинацию символов управления клавиатурой, которая не назначена и уже используется Ubuntu.

Еще во времена программ MS-DOS для TSR (Terminate and Stay Resident) это было возможно. Конечно, это должно быть и в Ubuntu?

Должен ли я написать демон для достижения этой цели?


Я нашел другие вопросы без ответов: Как я могу назначить макросы клавишам клавиатуры в Ubuntu, аналогично макросам клавиатуры Razer в Windows? , Что хорошая мышь / клавиатура записи макросов?

Я нашел похожий вопрос с ответом: Могу ли я использовать сочетания клавиш для реализации текстовых макросов? , Однако этот вопрос обусловил ответ не может быть AutoKey.


Очки за воспитание TSR :-)
drudru

Ответы:


17

Я немного погуглил и нашел программу под названием AutoKey ( Autokey - утилита Linux для горячих клавиш подстановки текста ) в верхней части списка.

Вместо сочетания клавиш Ctrl+ Shift+ Kя решил назначить аббревиатуру, kzкоторая автоматически расширяется <kbd></kbd>+.

Он просто устанавливается с помощью:

sudo apt install autokey-gtk

Он устанавливается в Launcher, и экран довольно прост в использовании:

Autokey


14

Что также можно сделать, это использовать xdotoolс typeфлагом, например так:

bash -c ' sleep 0.5; xdotool getactivewindow  type "<kbd></kbd>"'

Перейдите в «Настройки системы» -> «Клавиатура» -> «Горячие клавиши» -> «Пользовательский» и привяжите эту команду к любому желаемому сочетанию клавиш. Я выбрал CtrlSuperK. Здесь происходит то, что мы даем пользователю задержку в 0,5 секунды для отпускания сочетания клавиш, а затем xdotoolпечатаем теги разметки клавиш так же, как если бы вы делали это самостоятельно на клавиатуре. Очень легкий и простой подход. На самом деле я использовал это только сейчас, чтобы вставить эти 3 ключа выше.

Обратите внимание, что xdotoolпо умолчанию Ubuntu не поставляется, поэтому вам придется установить его черезsudo apt-get install xdotool


Вы также можете сделать указатель вставки назад, чтобы он был между <kbd>и </kbd>?
DK Bose

4
Я использую, bash -c 'sleep 0.5; xdotool getactivewindow type "[CODE][/CODE]" && sleep 0.5 && xdotool key Left Left Left Left Left Left Left'чтобы получить текстовый курсор между тегами кода.
DK Bose

1

Если у вас есть композитный файл, вы можете использовать его как утилиту для вставки текста для бедного человека.

Вы можете использовать несколько модификаторов в 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(«тег») и k(«клавиатура»):

<Multi_key> <t> <k> : "<kbd></kbd>^B^B^B^B^B^B"
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.