Мультимедийная клавиатура в Fedora

Материал из FedoraMD.org Wiki
Перейти к навигации Перейти к поиску

ВНИМАНИЕ: команды предваряемые символом '#' должны выполняться с правами 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 &