Излишне доказывать удобство управления машиной с помощью жестов, так как махнуть мышью всегда проще, чем куда-то целиться. Первоначально менеджеры жестов появились в ОС Windows, но не получили распространения из-за графичности пользовательского интерфейса этой ОС. Однако в командно-интерфейсном Линуксе жесты значительно эффективнее, чем в Windows, и даже встроены в среду KDE4 рабочего стола. Пользователям Ubuntu повезло меньше, и нужно устанавливать дополнительный софт. Уже 2 года продвинутые пользователи Ubuntu пользуются жестами, но внятной русскоязычной документации по популярному менеджеру жестов Easystroke я не нашёл (может, плохо искал?). Русифицированный менеджер Easystroke есть в репозиториях, но оказалось, что в современном рабочем столе Unity репозиторная версия работает плохо. Поэтому соберём менеджер жестов сами. Правда, он будет англоязычным, но это не препятствие, если дочитаете заметку.
Скачиваем тарболл вот по этой ссылке. На дату написания настоящей заметки скачивался тарболл easystroke-0.5.5.1.tar.gz. Распаковываем тарболл с помощью файлового менеджера "Наутиус" в домашний директорий. На всякий случай доустанавливаем пакеты (которые уже есть, будут пропущены) вот такой командой терминала:
sudo apt-get install g++ libboost-serialization-dev libgtkmm-2.4-dev libxtst-dev libdbus-glib-1-dev intltool xserver-xorg-dev
Входим в папку с исходниками приложения:
cd ~/easystroke-0.5.5.1
И компилируем командой терминала:
make -2j
Компиляция займёт минут 15-20. По окончанию компиляции, в принципе, можно продукт и запускать, набрав ./easystroke, но гораздо удобнее поместить исполняемый файл в директорий, прописанный в переменной окружения PATH, иначе система самостоятельно не сможет его находить. Поэтому запускаем Наутилус с суперправами и копируем исполняемый файл easystroke, например, в папку /usr/bin. Делаем этот файл действительно исполняемым (Правый клик-Свойства-Права-Выполнять, как команду). Первый раз менеджер жестов можно запустить из терминала командой easystroke, а затем, открыв вкладку Preferences, помечаем чекбокс автозагрузки, и менеджер жестов всегда будет под рукой, и значок его будет красоваться в трее.
Жест выполняется или движением мыши при нажатой так называемой триггерной кнопке мыши, или нажатием другой кнопки мыши при нажатой триггерной кнопке. Триггерной может быть любая кнопка. Чтобы назначить триггерную кнопку, открываем вкладку Preferences, жмём Gesture Button. Откроется окно назначения триггерной кнопки. Вдвигаем курсор в серое поле выбора и кликаем кнопкой, которую хотим сделать триггерной. По умолчанию триггерной кнопкой назначена средняя кнопка (кнопка 2), что неудобно, лучше переключиться на правую кнопку (кнопку 3) или на любую дополнительную кнопку, если ваша мышь многокнопочная. Можно и левую кнопку (кнопка 1) сделать триггерной, но лучше не надо. :) Клавиатурные модификаторы триггера пока лучше не включать, они позволяют одним и тем же жестом выполнять разные действия в зависимости от нажатой клавиши-модификатора.
Если у вас мышь не многокнопочная, то не страшно -- жест выполняется только в течение заданного таймаута. Чтобы назначить таймаут, в окне назначения кнопки (открывается через Preferences->Gesture Button) включаем радиокнопку Timeout. Для многокнопочной мыши при назначении на триггер можно отказаться от таймаута, но по-любому работа с таймаутом комфортнее. Для начала на вкладке Preferences в выпадающем списке Timeout profile выбираем консервативный таймаут. Потом по мере роста навыков можно будет выбрать и более короткий таймаут. На вкладке Advanced также помечаем чекбокс Timeout gestures.
Некоторые приложения имеют встроенные или плагинные жесты. Например, браузер Opera. Если вы привыкли к этим жестам, то не стоит переучиваться, просто такое приложение надо исключить из поля зрения менеджера жестов. Для этого запустите исключаемое приложение, на вкладке Preferences менеджера жестов кликните по кнопке Add Exception и щёлкните появившимся курсором-крестиком по исключаемому приложению. Оно отобразится в список исключений. Чтобы убрать приложение из этого "чёрного" списка, выделите имя приложения и нажмите Remove Exception
Главная вкладка -- Аctions (действия). Тут кое-что необходимо пояснить. Кнопкой Applications открывается "белый" список приложений, которые обслуживаются менеджером жестов. Добавление приложения (или группы приложений) производится точно так же, как и исключение, описанное выше. Но по умолчанию в обрабатываемые приложения входят ВСЕ приложения. Это -- лучший выбор. Поэтому оставьте всё, как есть и займитесь добавлением жестов.
Сначала в менеджере вообще не прописано никаких жестов. Жмём AddAction. В предоставленную строку в поле Name вписываем имя жеста, в поле Type из выпадающего списка выбираем тип жеста. Типы жестов имеют свою иерархию. Рассмотрим её.
Самый главный тип жеста -- команда. Это уровень системы. Жест применяется для запуска приложений и управления ими. Жест интерпретируется, как команда терминала, и в поле Details вручную вписывается текст команды, например: nautilus ~/Загрузки, google-chrome kv.by/forum, gnome-terminаl и т.д. Жесты этого типа посылаются в систему.
2-ой по значимости тип жеста -- Key, это уровень приложения. Применяется для управления активным приложением, чаще всего браузером. После добавления очередного жеста и выбора типа Key кликаем по полю Details и нажимаем нужное клавиатурное сочетание, например, Ctrl+T (новая вкладка), Ctrl+W (закрыть вкладку), Ctrl+Alt+Right (переключиться на правый стол), Alt+F4 (закрыть приложение), Esc и т.д. Жест типа Key посылается в активное окно приложения или в менеджер окон.
3-ий по значимости тип жеста -- текст. Это уровень окна приложения. Текст жестом будет послан в активное окно. Применяется для ускорения управления приложением, чтобы не набирать на клавиатуре часто используемые выражения, например, sudo apt-get install или sudo apt-get update и.д. Понятно, что для командных текстов окно термиинала должно быть предварительно открыто предусмотренным для него жестом или уже должно быть активным.
4-ый по значимости тип жеста -- Scroll. Это уровень графического содержимого окна приложения. Применяется для включения скроллирования содержимого активного окна при движении мыши с нажатым триггером. Удобен тем, что, во-первых, не надо хвататься мышью за скроллер окна и опасаться срыва, перемещая мышь, а во-вторых, экранный курсор при этом остаётся на месте. При отпускании триггера действие жеста автоматически заканчивается.
5-ый по значимости тип жеста -- Ignore. Это уровень мыши. Данный жест однократно отменяет действие следующего жеста из имеющихся в перечне. Применяется для составления продвинутых жестов, когда 1-ый жест не выполняется, а лишь модифицирует реакцию активного окна на последующий клик, но лучше не увлекаться усложнениями. Тем более, что тут замечены некоторые баги, причём не только автором этой заметки.
Следующий тип жеста -- Button. Это уровень кнопки мыши. Применяется для подмены нажатия какой-либо кнопки мыши триггерным кликом. Этот тип жестов предназначен для профессиональных приложений, поскольку многокнопочные мыши есть не у всех. Но и для простых (в смысле "мышавости") приложений этот тип тоже полезен. Например, не очень-то удобно нажимать колесо мыши (да и сломать нетрудно), а приходится. Например, при вставке текста из буфера выделения. Заменяем нажатие колеса жестом. По этому жесту в правом верхем углу экрана высветится транспарантик "Button 2" и следующий клик триггерной кнопкой проинтерпретируется, как нажатие на мышиное колесо. Удобно, и не надо опасаться смещения курсора, как при реальном нажатии.
Самый низкий уровень типа жеста -- Misc (прочее). Это уровень менеджера жестов. Тут мы можем временно вообще запретить выполнение жестов (что можно разблокировать в выпадающем меню значка в трее) или одним и тем же жестом многократно вызывать-прятать окно менеджера жестов.
Итак, с типами жестов разобрались, остаётся лишь записать жест. Жмём кнопку Record Stroke и получаем приглашение жестикулировать. Нажимаем триггер мыши и либо жестикулируем, либо, не отпуская триггер, кликаем одной из свободных кнопок мыши, затем отпускаем триггер. И жест готов. Разумеется, любой жест можно удалить из перечня.
Размер жеста не имеет никакого значения. И огромный, и небольшой такой же жест интерпретируются одинаково. Но как только таймаут истёкает, триггерный клик перестаёт быть таковым и превращается в обычный клик. Собственно, вот и всё, если кратко. Подробнее тут, правда, по-английски, но зато с картинками. Приятно жестикулировать, повелители Ubuntu!
Михаил Гурчик
gor-mike@tut.by
Комментарии
Интересно! Спасибо!
попробую на своем компе...
Лежит в Ubuntu Software Center, ставится в один клик. Заслуженно 5 звёзд.