Sl-Alex домашняя лаборатория

Замена для xdotool: xmacro

Просмотров: 2360Комментарии: 2
Заметки

Перевод: EN

Кто не в курсе, xdotool - это такая консольная программка, при помощи которой можно эмулировать действие клавиатуры и мыши. Я использовал её в паре c irexec и lirc для управления компьютером, причём единственное, что делала эта программка - регулировала уровень громкости, эмулируя нажатия на мультимедийные кнопки. К сожалению, был обнаружен неприятный баг. Начиная с какой-то версии (точно номер не скажу, потому как заметил далеко не сразу) программа перестала корректно работать на отличной от английской раскладке клавиатуры. Последней каплей стало то, что по непонятной причине в моей версии Debian она начала тормозить.

Разбираться я не стал, некогда было, но однажды совершенно случайно наткнулся на прекрасную альтернативу. Встречайте - xmacro.

Как по мне - xmacro делает то же самое, что и xdotool, но совершенно одинаково на всех раскладках клавиатуры и при этом не тормозит. Вместе с xmacro в пакете идёт xmacrorec2, при помощи которого последовательность нажатий можно записать в файл. Вызывается xmacrorec2 не просто, а очень просто:

xmacrorec2 > log.txt

Программа попросит вас нажать клавишу, по нажатию на которую запись будет завершена, после чего начнёт запись.

По окончании записи вы можете почитать в файле log.txt какие действия вы совершили, а затем выполнить их при помощи xmacro:

cat log.txt | xmacroplay  ":0.0"

Ну а если последовательность нажатий не очень длинная, её можно записать в одну строку. Например:

echo "KeyStrPress XF86AudioRaiseVolume KeyStrRelease XF86AudioRaiseVolume" | xmacroplay ":0.0"

Такие строки я и прописал в своём конфигурационном файле ~/.lircrc, после чего и публикую эту заметку в надежде на то, что она поможет кому-нибудь ещё решить подобную проблему.