22 окт. 2008 г.

XBindKeys - не оставим мультимедиа клавиши без работы

Я пользуюсь мультимедиа клавиатурой Genius KB-21e Scroll, которая снабжена рядом дополнительных клавиш, таких как: управление звуком, аудио-плеером, браущером, а также ряд дополнительных клавиш наподобие вызова калькулятора, почтовой программы, запуска моего компьютера.
Поскольку расположение клавиатуры у меня на столе не позволяет всегда использовать горячие клавиши (правая часть клавиатуры не видна), однако - их функционал упрощает запуск того же калькулятора (часто я его использовал, когда курсовой по экономике писал), то я решил наделить клавиши данным функционалом
Так что не думаю, что данные клавиши никогда не пригодятся, мало ли какая ситуация может быть =)

В блоге своего знакомого наткнулся на описание xbindkeys, который позволяет привязать к каждой кнопке - запуск любой программы / выполнение скрипта
Решил создать функционал, который задумывали разработчики (не все горячие клавиши корректно работали в линуксе), поэтому если над кнопкой написано "E-mail" то к ней я привязывал почтовую программу, если "Calculator", то, соответственно, калькулятор.
Однако работу одной кнопки решил изменить и, вместо спящего режима решил запускать "Lock Screen" (Заблокировать экран), что для меня более актуально

Итак, приступим:

1. Установка xbindkeys:
sudo aptitude install xbindkeys // данный пакет есть в репозитариях *buntu
2. Создаём файл конфигурации

xbindkeys -d > ~/.xbindkeysrc
// заодно записываем настройки "по умолчанию" в файл

3. Для считывания скан-кодов клавиш используется команда
xbindkeys -mk
Появится небольшое окно, при нажатии клавиши в котором - в консоли отображается информация о клавише:
"(Scheme function)"
m:0x0 + c:160
XF86AudioMute
Из этих строк нас интересует только вторая, т.е m:0x0 + c:160

3. Теперь пришло время заполнить файл конфигурации своими данными

nano ~/.xbindkeysrc
куда вписываем (
все данные по умолчанию я удалил, за ненадобностью)
#Комментарий // не обязательно, лишь для того, чтобы не путаться в случае чего
"программа" // указывается программа, которая должна выполниться при нажатии клавиши
скан-код // сюда пищем скан-код (напр.:
m:0x0 + c:160) - без кавычек
4. Сохраняем скрипт (в nano это CTRL+O)

5. Добавляем xbindkeys в автозагрузку

ln -s /usr/bin/xbindkeys /home/cool/.kde4/Autostart/

6. Проверяем работу, нажимая нужные клавиши =)


Вот собственно содержание моего файла ~/.xbindkeysrc , для клавиатуры Genius KB-21 Scroll
Используемый софт: аудио-плеер Amarok, калькулятор SpeedCrunch, web-браузер FireFox, файловый менджер Dolphin, почтовая программа ThunderBird, средство для поиска Beagle-Search из коллекции beagle, для управления звуком (уменьшить/увеличить/заглушить) я использовал Front канал, ну, и, Kubuntu 8.04

## Start of Multimedia functions
#Amarok Start
"amarok"
m:0x0 + c:237

#Next track
"amarok -f"
m:0x0 + c:153

#Previous track
"amarok -r"
m:0x0 + c:144

#Play-Pause
"amarok -t"
m:0x0 + c:162

#Stop
"amarok -s"
m:0x0 + c:164

#Volume Up
"amixer sset Front 1+"
m:0x0 + c:176

#Volume Down
"amixer sset Front 1-"
m:0x0 + c:174

#Volume Mute
"amixer sset Front toggle"
m:0x0 + c:160

##End of Multimedia functions

#Mail - Tunderbird
"thunderbird"
m:0x0 + c:236

#Browser - Firefox
"firefox"
m:0x0 + c:178

#Calculator
"speedcrunch"
m:0x0 + c:161

#MyComputer - Dolphin
"dolphin ~/"
m:0x0 + c:235

#Search
"beagle-search"
m:0x0 + c:229

#Lock Screen (on the "Sleep" button)
"kdesktop_lock --forcelock"
m:0x0 + c:223

P.S. Спасибо Sysmouse за подачу идеи

Комментариев нет: