Мультимедийная клавиатура в Fedora
ВНИМАНИЕ: команды предваряемые символом '#
' должны выполняться с правами root (Суперпользователь). Открыв терминал (или находясь в консоли) с правами обычного пользователя, введите команду $ su -
для повышения уровня привелегий. Символы '$
' и '#
' в начале строки не являются частью команды и не должны вводится. Прочие команды могут выполняться с правами обыкновенного пользователя.
Существует много способов заставить работать мультимедийную клавиатуру под Linux. Мы рассмотрим один из вариантов с помощью демона Lineakd.
У Lineakd существует набор плагинов, который позволяет управлять несколькими приложениями + выводить OSD (индикатор).
Примечание: Если у Вас USB клавиатура, то возможны проблемы с данным демоном.
Установка
1. Устанавливаем пакеты с правами пользователя root:
# yum install lineakd lineak-defaultplugin lineak-xosdplugin lineak-kdeplugins
если Вы не используете KDE, то последний пакет устанавливать нет необходимости.
2. Определите название Вашей клавиатуры.
Настройка
1. Проверка всех клавиш. Запускаем в консоли:
# xev
при нажатии клавиши пишется следующая информация:
KeyPress event, serial 23, synthetic NO, window 0x5a00001,
root 0x36, subw 0x0, time 2407465070, (146,-62), root:(719,272),
state 0x0, keycode 234 (keysym 0x0, NoSymbol), same_screen YES,
XLookupString gives 0 characters: ""
нас интересует только одно **keycode 234** - это код кнопки. Проверяем только мультимедийные кнопки и желательно записываем эти данные.
2. Если при нажатии какой-то кнопки ничего не происходит, значит ядро не знает эту кнопку и необходимо обучить ядро это делать. Для этого необходимо выбрать уникальный код и присвоить клавише этот код:
# dmesg
и смотрим на строки типа:
atkbd.c: Use 'setkeycodes e013 ' to make it known.
вот мы имеем и индификатор. Теперь просто выполняем команду типа:
# setkeycodes e013 140
и затем проверяем снова в xev. Так делаем для каждой неизвестной клавиши. Теперь добавляем setkeycodes e013 140 в /etc/rc.local, чтобы при загрузке автоматически назначать клавишам код.
3. Запускаем в консоли, чтобы найти свою клавиатуру:
$ lineakd -l
находим свою клавиатуру и запоминаем код.
4. Создаём кофигуратор:
$ lineakd -c TYPE
где TYPE - ваш код клавиатуры. Конфигуратор будет создан в ~~/.linek/lineakd.conf
5. Проверяем работоспособность мультимедийных клавиш:
$ lineakd -v
6. Переходим к настройке кофигурации ~/.linek/lineakd.conf. Открываем его в любом текстовом редакторе и получаем:
# LinEAK - Linux support for Easy Access and Internet Keyboards # Copyright (c) 2001,2002, 2003 Sheldon Lee Wen <leewsb@hotmail.com> (Current Maintainer) # and Mark Smulders <Mark@PIRnet.nl> # http://lineak.sourceforge.net # # lineakd configuration file # # example key configuration: # play = "xmms --play-pause" # eject = EAK_EJECT # # Lineakd supports the following modifier keys: # control alt shift mod2 mod3 mod4 mod5 CdromDevice = /dev/cdrom Display_align = center Display_color = 0aff00 Display_font = -adobe-helvetica-bold-r-normal-*-*-240-*-*-p-*-*-* Display_hoffset = 0 Display_plugin = xosd Display_pos = bottom Display_soffset = 1 Display_timeout = 3 Display_voffset = 50 KeyboardType = ***** MixerDevice = /dev/mixer RAWCommands = Screensaver = conffilename = /home/oleg/.lineak/lineakd.conf keystate_capslock = keystate_numlock = keystate_scrolllock = Back = Calculator = Copy = Cut = Favorites = Forward = Mail = Mute = Next = Play|Pause = Previous = Search = Sleep = Stop = VolumeDown = VolumeUp = WWW =
7. Кофигуратор разделён на две части. Первая отвечает за OSD, а вторая за макросы клавиш.
8. Интуитивно всё понятно.
9. Я лишь, приведу мою кофигурацию в пример:
# LinEAK - Linux support for Easy Access and Internet Keyboards # Copyright (c) 2001,2002, 2003 Sheldon Lee Wen <leewsb@hotmail.com> (Current Maintainer) # and Mark Smulders <Mark@PIRnet.nl> # http://lineak.sourceforge.net # # lineakd configuration file # # example key configuration: # play = "xmms --play-pause" # eject = EAK_EJECT # # Lineakd supports the following modifier keys: # control alt shift mod2 mod3 mod4 mod5 CdromDevice = /dev/cdrom Display_align = center Display_color = 0aff00 Display_font = -adobe-helvetica-bold-r-normal-*-*-240-*-*-p-*-*-* Display_hoffset = 0 Display_plugin = xosd Display_pos = bottom Display_soffset = 1 Display_timeout = 3 Display_voffset = 50 KeyboardType = CY0108 MixerDevice = /dev/mixer RAWCommands = Screensaver = conffilename = /home/oleg/.lineak/lineakd.conf keystate_capslock = keystate_numlock = keystate_scrolllock = Back = KONQUEROR_BACK Calculator = kcalc Copy = Cut = Favorites = KONQUEROR_BOOKMARK Forward = KONQUEROR_FORWARD Mail = Mute = EAK_MUTE [Next] Next = AMAROK_FORWARD [Play / Pause] Play|Pause = AMAROK_PLAYPAUSE [Previous] Previous = AMAROK_BACK Search = [Lock] Sleep = KDE_LOCK_DESKTOP [Stop] Stop = AMAROK_STOP VolumeDown = EAK_VOLDOWN(1) VolumeUp = EAK_VOLUP(1) WWW = firefox
То что в квадратных скобках - это надпись, которая будет отображаться в OSD при нажатии на эту кнопку.
- LINEAK_DEFAULTPLUGIN:
- EAK_MUTE - выключить звук;
- EAK_MUTE(X,device,X2,device2,X3,device3,...) - выключить звук на определённом устройстве, если больше 1 звуковой карты в системе;
- EAK_VOLUP - увеличение громкости;
- EAK_VOLDOWN - уменьшение громкости;
- EAK_VOLUP(X) - увеличение громкости на X-единицу (от 1 до 5);
- EAK_VOLDOWN(X) - уменьшение громкости на X-единицу (от 1 до 5);
- EAK_VOLUP(X,device,X2,device2,X3,device3,...) - увеличение громкости для определённого устройства;
- EAK_VOLDOWN(X,device,X2,device2,X3,device3,...) - уменьшение громкости для определённого устройства;
- EAK_OPEN_TRAY, EAK_OPEN_TRAY_SCSI, EAK_CLOSE_TRAY - управление CD/DVD-приводом;
- EAK_SCREEN_LOCK(X) - включение окна блокировки, где X - или KDE или GNOME или XSCREENSAVER.
- LINEAK_KDEPLUGINS:
- juk_plugin:
- JUK_PLAY
- JUK_PAUSE
- JUK_STOP
- JUK_PLAYPAUSE
- JUK_BACK
- JUK_FORWARD
- JUK_SEEKBACK
- JUK_SEEKFORWARD
- JUK_VOLUMEUP
- JUK_VOLUMEDOWN
- JUK_VOLUMEMUTE
- JUK_STARTPLAYINGPLAYLIST
- JUK_OPENFILE
- kdesktop_plugin:
- KDE_LOCK_DESKTOP
- KMENU
- KDESKTOP_NEXT
- KDESKTOP_PREVIOUS
- KDE_LOGOUT
- KDESKTOP_EXECUTE
- kmail_plugin:
- KMAIL_COMPOSE(from,to,cc,subject,attachment)
- kmix_plugin:
- KMIX_MUTE - выключить звук;
- KMIX_MUTE(device,device2,device3,...) - выключить звук на определённом устройстве, если больше 1 звуковой карты в системе;
- KMIX_VOLUP - увеличение громкости;
- KMIX_VOLDOWN - уменьшение громкости;
- KMIX_VOLUP(X) - увеличение громкости на X-единицу (от 1 до 5);
- KMIX_VOLDOWN(X) - уменьшение громкости на X-единицу (от 1 до 5);
- KMIX_VOLUP(X,device,X2,device2,X3,device3,...) - увеличение громкости для определённого устройства;
- KMIX_VOLDOWN(X,device,X2,device2,X3,device3,...) - уменьшение громкости для определённого устройства;
- konqueror_plugin:
- KONQUEROR_BACK - назад;
- KONQUEROR_FORWARD - вперед;
- KONQUEROR_HOME - домашняя страница;
- KONQUEROR_STOP - стоп;
- KONQUEROR_REFRESH или KONQUEROR_RELOAD - обновить;
- KONQUEROR_NEWTAB - новая вкладка;
- KONQUEROR_NEXTTAB - следующая вкладка;
- KONQUEROR_PREVTAB - предыдущая вкладка;
- KONQUEROR_BOOKMARK - избранное.
8. Для запуска Lineakd необходимо выполнить команду:
$ lineakd &
9. Для автоматического запуска в KDE, создайте файл lineakd.sh в ~~/.kde/Autostart и не забудьте выставить флаг "выполняемый":
#!/bin/sh
lineakd &