Настройка мультимедийной клавиатуры в Linux (KDE)

Автор: smarica Дата: 21.07.2004 22:27 С определение кодов клавиш и присвоении им символических имен затруднений у меня никаких не возникло. Но главная задача - заставить выполнять их требуемые функции. Все перечисленные в инете варианты не работают (настройка горячих клавиш в KDE через центр управления довольно убога, новых функций не добавишь). Нужно найти файл, в котором прописываются все привязки клавиш к конкретным действиям. Буду признательна, если подскажите, что это за файлик.
Re: Настройка мультимедийной клавиатуры в Linux (KDE) 22.07.2004 06:39baddy Попробуй SVEN multimedia keyboard, там всё можно настроить даже без мультимедийной клавы.
Re: Настройка мультимедийной клавиатуры в Linux (KDE) 22.07.2004 10:40smarica Sven при установке требует Libgtk2.0-dev, который идет в дебиановской упаковке, и ASP его не понимает. Другие библиотеки не подходят, хотя в целом gtk в системе стоит. Может, Sven сделали под Debian?
Re: Настройка мультимедийной клавиатуры в Linux (KDE) 22.07.2004 13:27CyberPunk smarica писал(а):

> добавишь). Нужно найти файл, в котором прописываются все
> привязки клавиш к конкретным действиям. Буду признательна, если
> подскажите, что это за файлик.

~/.kde/share/config/khotkeysrc

Я в нем написал такое:

[Main]
Num_Sections=11
Version=1


# Media "Forward" button

[Section1]
MenuEntry=false
Name=Play next
Run=~/scripts/./MediaFwdKey
Shortcut=XF86AudioNext


# Media "Backward" button

[Section2]
MenuEntry=false
Name=Play prev
Run=~/scripts/./MediaBackKey
Shortcut=XF86AudioPrev
... (всего 11 секций)

Скрипты выглядят примерно так:

#! /bin/sh
# Нажатие кнопки MediaForward

xmms --fwd > /dev/null &
osd_cat --font=-*-utopia-medium-r-*-*-48-* --colour=green --pos=bottom --delay=2 --align=right --shadow=3 --outline=1 --outlinecolour=black --offset=100 ~/scripts/MediaFwdKey.txt &

(чтобы работал osd_cat, нужно собрать и поставить либу xosd. Но можно и не ставить, OSD на мониторе - это чистое украшательство)

Volume Up/Down и Mute можно настроить прямо из апплета KMix и не возиться со скриптами.

Остались только три проблемы:
1. на моей клавиатуре (Logitech Internet Navigator) не все мультимедийные клавиши генерят коды
2. хотелось бы научить KDE различать просто <мультимедийная кнопка> и Shift+<мультимедийная кнопка>, чтобы повесить на них разные функции
3. я не слишком хорошо разбираюсь в bash, чтобы "научить" кнопки управлять разными приложениями в зависимости от того, какие из них запущены в данный момент
Re: Настройка мультимедийной клавиатуры в Linux (KDE) 23.07.2004 00:28smarica Файл ~/.kde/share/config/khotkeysrc у меня отсутствует. Если его создать, то система его поймет? И потом, куда-то же KDE складывает комбинации клавиш, настраиваемые в центре управления...
А Lineakd сделал свое дело. Спасибо Light. Клава работает. Только нужно разобраться, какие команды перемещают вперед и назад страницы в mozilla.
Re: Настройка мультимедийной клавиатуры в Linux (KDE) 23.07.2004 10:45CyberPunk >Файл ~/.kde/share/config/khotkeysrc у меня отсутствует. Если его создать, то система его поймет?

У меня тоже отсутствовал. И .Xmodmap с привязками кодов клавиш к именам в домашней директории - тоже (для того метода, который я использовал, нужно чтобы xmodmap отработал раньше, чем запустится KDE). Я их вручную создал, под ASP9 это никаких проблем не породило.

>И потом, куда-то же KDE складывает комбинации клавиш, настраиваемые в центре управления...

Видимо, куда-то в ~/.kde/... Можно попробовать чего-нибудь поменять в этом Центре и поискать по дате последнего изменения файла.

>А Lineakd сделал свое дело.

А на моей клавиатуре это чудо часть кнопок не видит, а другую часть - поменяло местами. Судя по форуму, такая "фича" у владельцев Logitech Internet Navigator вылазит нередко.
Re: Настройка мультимедийной клавиатуры в Linux (KDE) 23.07.2004 21:30Bomberman У меня под asp 9.0 работает и sven и lineakd
Sven удобней.
Re: Настройка мультимедийной клавиатуры в Linux (KDE) 23.07.2004 23:27smarica CyberPunk писал(а):
> А на моей клавиатуре это чудо часть кнопок не видит, а другую
> часть - поменяло местами. Судя по форуму, такая "фича" у
> владельцев Logitech Internet Navigator вылазит нередко.

Для Lineac нужно вписать коды своих клавиш в конфигурационный файл ~/lineac/lineakd, там же можно и создать свой тип клавиатуры. Коды можно узнать с помощью xev. Далее даешь команду lineakd -c [тип клавы]. Проблема в том, что у меня некоторые клавиши эмулируют нажатие сразу нескольких, поэтому lineakd не подходит, да и сообщения на экран выводит только на английском.
Твой способ у меня теперь пошел, и, кстати, если использовать тип шрифта times-bold-i, то сообщения на экран можно давать и на русском.

Bonberman писал(а):
> У меня под asp 9.0 работает и sven и lineakd
> Sven удобней.

Где взял?
Re: Настройка мультимедийной клавиатуры в Linux (KDE) 24.07.2004 00:49Light > А Lineakd сделал свое дело. Спасибо Light. Клава работает. Только нужно разобраться,
> какие команды перемещают вперед и назад страницы в mozilla.

mozilla -remote "openURL(javascript:history.back())"
и
mozilla -remote "openURL(javascript:history.forward())"
соответственно:-)
Re: Настройка мультимедийной клавиатуры в Linux (KDE) 24.07.2004 13:17Bomberman lineakd c соурсфорже откудато
а sven есть тут [bluefish.amillo.net]
Re: Настройка мультимедийной клавиатуры в Linux (KDE) 24.07.2004 20:31smarica Все работает! Главное, что без установки дополнительных программ. Как я люблю ASP 9.2! Еще больше, чем ASP 9.0! Скоро поделюсь всеми подробностями тонкой настройки любой клавиатуры в KDE (а ларчик-то просто открывался).
Re: Настройка мультимедийной клавиатуры в Linux (KDE) 24.07.2004 21:21CyberPunk >Проблема в том, что у меня некоторые клавиши эмулируют нажатие сразу нескольких

А у меня еще веселее - три клавиши отчего-то работают как кпопки МЫШИ. Никаких кодов при этом не выдают вообще. И непонятно, какой файл править Грустный
Re: Настройка мультимедийной клавиатуры в Linux (KDE) 24.07.2004 22:23smarica Итак, настройка мультимедийной клавиатуры в Linux (KDE).

Сначала определяемся, какие коды имеют мультимедийные клавиши. Клавиши могут быть двух видов: "простые" - с одним сканкодом и "составные" - эмулирующие нажатие нескольких других клавиш. Комбинацию "составных" можно можно узнать, например, в Центре управления при назначении клавиш. Сканкод "простых" клавиш узнаем с помощью xev. Получится примерно такое:
KeyRelease event, serial 27, synthetic NO, window 0x2200001,
root 0x6a, subw 0x0, time 16723980, (154,94), root:-(187,143),
state 0x0, keycode 234 (keysym 0x0, NoSymbol), same_screen YES,
" XLookupString gives 1 bytes: "
Значит, сканкодкод клавиши = 234.
Если xev в ответ на нажатие клавиши выдает несколько таких сообщений с разными сканкодами, то это "составная" клавиша.
Теперь в файле /usr/X11R6/lib/X11/xkb/keycodes/xfree86 нужно ознакомиться с соответствием каждому из сканкодов клавиши определеного шестнадцатеричного кода, например:
код сканкод
...
<I5E> = 222;
<I5F> = 223;
...
Теперь задача состоит в том, чтобы шестнадцатеричному коду сопоставить имя клавиши. Имена можно увидеть в /usr/X11R6/include/X11/XF86keysym.h. Выбираете более подходящие имена для каждой из мультиклавиш, только без префикса "XK_", например, XF86AudioPlay, и описываете это соответствие в /usr/X11R6/lib/xkb/symbols/inet. Тут есть нюанс: нужно выбрать раздел соответствующий вашей клаве, если такого нет (как у меня), то берем любой раздел и переписываем его, например:
xkb_symbols "btc5113rf" {
name[Group1]= "BTC 5113RF Multimedia";
...
key <I5E> { [ XF86PowerDown ] };
key <I5F> { [ XF86Sleep ] };
key <I22> { [ XF86AudioPlay ] };
key <I2E> { [ XF86AudioLowerVolume ] };
...
Теперь нужно в /etc/X11/XF86Config нужно исправить секцию:
Section "InputDevice"
Identifier "Keyboard0"
Driver "keyboard"
Option "XkbModel" "btc5113rf"
Option "XkbRules" "xfree86"
Option "XkbLayout" "us,ru(winkeys)"
Option "XkbOptions" "grp:ctrl_shift_toggle,grp_led:scroll"
EndSection
Здесь указываем ту же модель клавиатуры, которую правили в файле inet. Теперь после перезагрузки иксов ваши клавиши получили свои имена. Можно проверить через xev.
Теперь нужно назначить клавишам действия. Проще всего это сделать в редакторе меню К, где для каждого приложения можно назначить клавишу. Но если хочется навести красоту, то ставим xosd и xosd-devel (есть на www.kiarchiv.ru, и вообще, там много вкусного для ASP). Правим или создаем файл ~/.kde/share/config/khotkeysrc примерно так:
[Main]
Num_Sections=16
Version=1
...
[Section11]
MenuEntry=false
Name=Volume Down
Run=~/scripts/./VolumeDown
Shortcut=XF86AudioLowerVolume
...
Если клавиша "составная", то в последней строке секции пишем ее комбинацию, например:
Shortcut=Alt+Ctrl+P
Теперь в ~/scripts нужно создать файл VolumeDown следующего содержания:
#! /bin/sh
# Нажатие кнопки Volume Down
aumix -v -10 &
osd_cat --font=-*-times-bold-i-*-*-50-* --colour=green --pos=bottom --delay=1 --align=center --shadow=3 --outline=1 --outlinecolour=black --offset=100 ~/scripts/VolumeDown.txt&
Пользуясь этим способом, можно закставить клавишу выполнять несколько действий сразу.
Текст, выводимый на экран при нажатии кнопки, пишем в файл ~/scripts/VolumeDown.txt (можно на русском). И так для каждой кнопки.
Чтобы все заработало, нужно в редакторе K-меню назначить любому приложению какую-нибудь клавишу, а затем снять это назначение, чтобы изменения вступили в силу (хотя, может есть и другой способ).
Re: Настройка мультимедийной клавиатуры в Linux (KDE) 24.07.2004 22:31smarica CyberPunk писал(а):

> А у меня еще веселее - три клавиши отчего-то работают как
> кпопки МЫШИ. Никаких кодов при этом не выдают вообще. И
> непонятно, какой файл править Грустный
Издержки производства, если и найдешь, как изменить их действия, то изменятся действия и кнопок мыши. Мне тоже пришлось по этой причине отказаться от одной клавиши, она выдает имя "Вверх", после создания для нее действия одноименная клавиша управления курсором начинает выполнять назначенное действие - выход из KDE - весело?!
Re: Настройка мультимедийной клавиатуры в Linux (KDE) 26.07.2004 09:53CyberPunk >Мне тоже пришлось по этой причине отказаться от одной клавиши, она выдает имя "Вверх", после создания для нее действия одноименная клавиша управления курсором начинает выполнять назначенное действие - выход из KDE - весело?!

А клавиатура не USBшная? Тогда может помочь переходник на PS/2. Я вот раздобыл девайс, который включается в разъем PS/2 перед клавиатурой - соответственно, пришлось клавиатуру вытащить из USB и воткнуть в этот девайс через переходник. Так у меня недостающие клавиши сразу перестали имитировать мышь и начали нормально выдавать коды, зато коды других мультимедийных клавиш "съехали" на другие значения (но это фигня, поправил за пять минут).
RSS-материал