Назначаем горячие клавиши в Ubuntu и не только
Для связывания горячих клавиш с программами в разных дистрибутивах Линукса разработчики
предлагают свои собственные средства. Или ...не предлагают, как,
например, в LXDE. И правильно, Линуксов много, всем не угодишь. Но есть
простое решение, пригодное для подавляющего большинства Линуксов.
К
счастью, несмотря на разношёрстность оболочек, всё же в Линуксе есть
два основополагающих стандарта – это ядро и X-сервер (пресловутые
«иксы»). Последний – это то, что связывает ядро с графическим дисплеем
(монитор+клавиатура) и мышью пользователя. Без «иксов» Линукс тоже
работает, но в алфавитно-цифровом режиме. Любое телодвижение
пользователя перехватывается «иксами». Это и позволило стандартизовать
утилиту, связывающую горячие клавиши с запусками различных программ.
Называется утилита xbindkeys, имеется практически во всех репозиториях и
устанавливается стандартно с помощью эмулятора терминала:
sudo apt-get install xbindkeys
Далее для краткости утилиту xbindkeys я буду называть «биндилкой». Запускается биндилка командой
xbindkeys
Сразу
после установки может отсутствовать управляющий скрытый файл
.xbindkeysrc, о чём биндилка вам сообщит при первом же запуске. В таком
случае надо установить дефолтный управляющий файл командой
xbindkeys --defaults > /home/имя_пользователя/.xbindkeysrc
Или создать пустой управляющий файл командой
touch ~/.xbindkeysrc
Займёмся
составлением таблицы кодов всяческих сочетаний клавиш (пока без
привязки к командам). Биндилка имеет собственную нотацию сочетаний
клавиш. Однако биндилка достаточно умна и может сама обо всём рассказать
пользователю. Для того, чтобы посмотреть коды сочетаний, понятные
биндилке, запустим её с опцией:
xbindkeys -k
Появится
небольшое пустое окно. Его задача – перетянуть на себя фокус менеджера
окон, независимо от того, где это фокус находится. Теперь событие
нажатия любого сочетания клавиш может быть захвачено, декодировано и
выведено на экран именно в той нотации, в которой работает биндилка,
после чего фокус возвращается на место. Итак, каждый раз запуская
вышеприведённую команду, жмём клавиши или их сочетания и наблюдаем, что
выводится в окно эмулятора терминала.
Alt+F11 – выводится:
m:0x18 + c:95
Alt+Mod2 + F11
Правый Shift+Pause – выводится:
:0x11 + c:127
Shift+Mod2 + Pause
Левый Shift+Pause – выводится:
m:0x2011 + c:127
hift+Mod2 + Pause
И
т.д. Первая строчка – собственная нотация биндилки, вторая – более
привычная для пользователя нотация. Как видим, если пользоваться
«удобоваримой» нотацией, то биндилка не будет различать левую и правую
клавиши сдвига, альтернативы или управления. Следовательно, собственная
нотация биндилки предпочтительнее.
Теперь
самое главное: чтобы связать выполнение той или иной команды с горячими
клавишами, надо в скрытый текстовый файл .xbindkeysrc с помощью любого
редактора или консольной команды nano записать эту комбинацию в нотации
биндилки, предваряя её строкой, содержащей текст выполняемой команды,
заключённый в кавычки. Например, следующие строки связывают нажатие
комбинации клавиш Ctr+Pause с запуском офисного редактора теста:
«libreoffice --writer»
m:0x2014 + c:127
Всё!
Но одно важно: чтобы изменения в файле .xbindkeysrc вступили в силу,
необходимо или перелогиниться, или перезапустить X-сервер, или
перезагрузиться, или просто перезапустить биндилку.
Предвижу недовольство со стороны тех, кто привык кликать, а не печатать. Не спешите. Для биндилки разработан графический интерфейс (GUI), который устанавливается командой
sudo apt-get install xbindkeys-config
Запускается графический интерфейс командой
xbindkeys-config
При этом открывается вот такое окно:
Работа с этим графическим интерфейсом очень простая. Разберём по шагам.
Кликаем кнопку «New» и в поле «Name» вписываем пояснение к выполняемой команде.
Кликаем
кнопку «Get Key». При этом откроется окно, уже знакомое по запуску
команды xbindkeys -k. Жмём горячую комбинацию. Она запомнилась в
специальном кэше, освобождая пользователя от копипастинга биндилкиной
нотации.
В поле «Action» вписываем
выполняемую команду или имя приложения, путь к которому прописан в
переменной окружения PATH. Иначе необходимо перед именем указывать путь.
В частности, можно вписать и путь с именем скрипта, написанного на любом из понятных Линуксу языков: bash, sh, perl, piton и т.д.
Чтобы
горячее сочетание вступило в силу немедленно, кликаем «Apply». Оно
будет активным до перезагрузки или до перелогинивания. Чтобы горячее
сочетание стало постоянным, его надо сохранить кликом по
«Save&Apply».
Поскольку
файл, описывающий связку горячих клавиш с запусками программ, хранится в
домашней папке, то разные пользователи могут иметь разные наборы
горячих клавиш. Более того, один и тот же пользователь тоже может
создавать себе разные наборы горячих клавиш для разных работ. (Ну как
тут не вспомнить о концепции комнат?) Для этого всего-то нужно сделать
две вещи: 1) составив с помощью GUI набор связок, сохранить его в файле,
имя которого отличается от стандартного .xbindkeysrc, и 2) при запуске
биндилки указать, каким набором горячих клавиш надо воспользоваться:
xbindkeys -f имя_набора
Чтобы не набирать последнюю команду, можно либо создать для неё значок на рабочем столе, либо в каждом наборе горячих клавиш описать клавиши, включающие желаемый набор.
Нет необходимости прописывать биндилку в автозагрузку. Однажды установленная биндилка запускается при запуске «иксов» (не
путайте с автозагрузкой!). Если по какой-то причине вам или другому
пользователю такое поведение не нравится, создайте в домашней папке
пользователя пустой файл .xbindkeys.noauto.
Биндилка
также позволяет связать кнопки мыши и их клавиатурные модификации с
запусками программ, что позволяет превратить мышь в швейцарский
офицерский нож. Например, можно в один клик защищать файл цифровой подписью, отправлять адресату или помещать на сайт.
Сможете сделать подобное так же просто в Windows независимо от версии? Не думаю.
Успехов!
http://www.kv.by/content/320559-naznachaem-goryachie-klavishi-v-ubuntu-i-ne-tolko
|