Избранные Материалы

Linux :: AutoKey — простой, гибкий и универсальный инструмент десктоп-автоматизации

Я полагаю, практически каждый из нас, работая за компьютером, регулярно выполняет одни и те же (подчас весьма рутинные) операции, автоматизировать которые было бы весьма кстати…

Однако-же, либо сама ОС, либо конкретное приложение часто просто не обладают необходимыми встроенными функциями автоматизации. В таком случае, на помощь приходят специальные утилиты вроде AutoKey, речь о которой и пойдет в данной статье.

AutoKey — это инструмент десктоп-автоматизации для ОС Linux, предлагающий нам следующие сценарии его использования:

  • Подстановка текста — замена аббревиатур их полным текстовым аналогом
  • Утилизация горячих клавиш, назначить которые можно практически любому действию, наподобие запуска того или иного приложения, выполнения скрипта, открытия конкретной папки или файла и т.п.
  • Имитирование нажатия служебных клавиш, позволяющее посылать команды приложениям — к примеру, автоматическое нажатие Ctrl+S для сохранения документа при его редактировании и т.п.
  • Использование скриптов, написанных на языке Python, и API, позволяющих контролировать окна, мышь, буфер обмена и т.д. (есть даже возможность записи макросов на основе полученных событий от клавиатуры/мыши)

Стоит ометить, что AutoKey работает в любом приложении — это позволяет с одинаковым удобством использовать его как в консоли, так и в графических интерфейсах пользователя. (Рек.: )

В общем, инструмент действительно очень универсальный и весьма гибкий.

Заметим также, что проект открыт и бесплатен. Загрузить AutoKey можно с соответствующей страницы. Для пользователей Ubuntu создан также PPA-репозиторий, позволяющий установить приложение максимально быстро:

Сперва регистрируем репозиторий и обновляем список пакетов:

sudo add-apt-repository ppa:cdekter/ppa && sudo apt-get update

Затем устанавливаем соответствующий пакет:

Для пользователей GNOME

sudo apt-get install autokey-gtk

Для пользователей KDE

sudo apt-get install autokey-qt

После чего приложение можно запустить воспользовавшись системным меню (Applications -> Accessories -> AutoKey) либо командой «autokey-gtk» (GNOME) или «autokey-qt» (KDE) — иконка приложения появится в системном лотке, после чего можно сразу же приступать к использованию приложения.

Сперва, однако, стоит создать необходимые сценарии автоматизации, несколько идей и примеров которых приведено ниже (много больше актуальных именно для него сценариев, надо полагать, каждый пользователь отыщет для себя сам).

Подстановка текста

Самый простой сценарий использования AutoKey — это подстановка текста вместо соответствующих аббревиатур.

При создании новой «фразы» (File -> Create… -> New Phrase), ей присваивается значение (собственно, конечный текст), абревиатура и/или «горячая клавиша».

Соответсвенно, при срабатывании «горячей клавиши» назначенный конечный текст будет вставлен в текущее приложение (естественно, предполагается, что приложение ожидает от пользователя ввода данных, иначе ничего не произойдет), при вводе же аббревиатуры — она будет этим текстом заменена (либо дополнена — это, как и множество других параметров, приложение позволяет настроить).

Создание фразы

Создание фразы

К примеру, вы можете автоматизировать ввод собственных ФИО создав «фразу» с соответствующим значением и назначив ей простую аббревиатуру вроде «name» (а то и вовсе «n»).

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

Одним словом, вариантов применения «фраз» для автоматизации тех или иных сценарие ввода данных — масса! Включайте смекалку — вы наверняка найдете достаточно сценариев автоматизации, которые впоследствии сэкономят вам немало времени.

К слову, при подстановке «фраз» разрешается использовать не только обычный текст, но и имитировать нажатие служебных клавиш.

Полный перечень служебных клавиш, имитацию которых поддерживает AutoKey, можно найти на соответствующей WiKi-странице проекта.

Несколько примеров несложных «фраз»

  • Автоматизировать ввод данных вроде имени пользователя и пароля на том или ином сайте можно создав простую «фразу» со значением « username<tab>password<enter>» и назначив ей «горячую клавишу» либо аббревиатуру (для нескольких сайтов, соответственно, можно создать несколько «фраз» с различными значениями и аббревиатурами)
  • Авто-сохранение редактируемого в Gedit документа после окончания ввода каждого предложения (дабы не занимать себя постоянными нажатиями «Ctrl+S»): создаем «фразу» со значением: «<ctrl>+s», назначаем ей аббревиатуру «.» и в настройках аббревиатуры убираем галочку «Remove typed abbreviation» и отмечаем галочки «Trigger when typed as part of a word» и «Trigger immediately (don’t require a trigger character)», а также выставляем для фразы фильтр окна «.*gedit»
Создание фразы

Создание фразы

Выполнение скриптов

Создание скриптов (File -> Create… -> New Script) — дело немного более сложное, чем создание «фраз», так как требует минимального знания языка программирования Python. Однако-же, множество простейших скриптов можно создать имея в данной области лишь весьма поверхностные познания. К тому же, несколько простых скриптов включены в приложение по умолчанию — они послужат неплохой отправной точкой для желающих углубиться в практику десктоп-автоматизации ;)

В остальном же, скрипты весьма схожи с «фразами» — им также можно присвоить значение (в данном случае — исполняемый код на языке Python), аббревиатуру и/или «горячую клавишу» при обнаружении/срабатывании которых данный скрипт будет выполнен.

Создание скрипта

Создание скрипта

Самыми простыми примерами использования скриптов могут служить такие сценарии как запуск приложения (или открытие какой-либо папки либо файла) по срабатыванию «горячей клавиши» (этого не всегда можно добиться штатными средствами ОС или конкретного приложения — по крайней мере в AutoKey добиться этого в основном гораздо проще), вставка текущей даты/времени в редактируемый документ и т.п. — в общем выполнения практически любых операций, требующих взаимодействия с ОС на более глубоком уровне чем «ожидание ввода данных от пользователя» (для чего вполне достаточно «фраз») — AutoKey предоставляет API для контроля окон, мыши, буфера обмена и т.д. Справочная информация по AutoKey API доступна на соответсвующей странице тех-документации (AutoKey API reference).

Несколько примеров несложных скриптов

  • Запуск приложения
import subprocess
subprocess.Popen(["команда-запуска-приложения"])
  • Открытие папки/документа
import subprocess
subprocess.call(['xdg-open', 'путь-к-директории/файлу'])

На заметку

Из некоторых других возможностей AutoKey стоит отметить следующее:

  • AutoKey позволяет организовывать «фразы» и скрипты в структуру папок, что значительно упрощает навигацию по каталогу созданных вами «фраз»/скриптов
  • Каждой «фразе», скрипту или папке с оными можно назначить специальный «Фильтр Окна» (Window Filter) который позволяет задействовать соответствующие «фразы»/скрипты только в отдельных, указанных пользователем приложениях (фильтр принимает во внимание заголовок окна приложения)
  • Пожалуй единственным выявленным мной весьма существенным недостатком AutoKey стало то, что у меня приложения оказалось неспособным обрабатывать кириллицу и различать раскладки клавиатуры… (если кто-либо из читателей знает или догадывается, как побороть сию проблему — буду весьма благодарен за соответствующие комментарии!)

Заключение

В общем и целом, AutoKey — это действительно весьма простой (если не брать во внимание разработку сложных скриптов), гибкий, универсальный и во многом даже весьма уникальный инструмент десктоп-автоматизации, который наверняка в той или иной степени окажется полезным почти любому Linux-пользователю.

P. S. Идеи «фраз» и скриптов (а особенно — их готовых реализаций) для AutoKey, которые покажутся вам наиболее интересными и полезными — горячо приветствуются в комментариях! ;)

Tweet

Об авторе:
Профессиональный разработчик программного обеспечения, блоггер, адепт Open Source, казуальный путешественник, фотограф-аматор.
Подробнее »
Google Bookmarks Digg Reddit del.icio.us Ma.gnolia Technorati Slashdot Yahoo My Web News2.ru БобрДобр.ru RUmarkz Ваау! Memori.ru rucity.com МоёМесто.ru Mister Wong Twitter