Пятница, 20-06-2025, 06:30:28
Hell11.NET Ресурс перехал...
Приветствую Вас Гость | RSS
Главная страница | Каталог статей | Регистрация | Вход
Меню сайта

Категории каталога
Мой компьютер [2]
Материалы связаные с компьютером...
Linux/BSD [10]
Материалы о Свободных Операционных Системах
Ад[мин]ская жизнь [1]
Все о нашей бренной жизни...
Музыка [2]
Ад[мин]ские звуки...
Креатиff [12]
Наше ад[мин]ское творчество...

Наш опрос
Какие Операционные Системы используете вы?

Результаты · Архив опросов

Всего ответов: 104

Начало » Статьи » Linux/BSD

Настройка мультимедийных клавиш клавиатуры в FreeBSD/Linux
До недавнего времени на дополнительные кнопки своей клавиатуры (SVEN 4500) я не обращал внимания. Ну не пользуюсь и нафиг они мне. Но тут что-то в общем дёрнуло меня использовать их с толком.
В общем порывшись немного в интернете я нашёл хороший проект, а точнее программу SVEN (не путать с производителем клавиатур, колонок и прочего). Программка предоставляла все что только можно: графический интерфейс, ну собственно саму привязку клавиш ко всему что только можно и удобную иконку в трее. Скачав архив с программой я попытался ее скомпилировать, вот тут собственно и постиг меня облом. Программа не хотелось компилироваться. А все собственно из-за того что вендор дистрибутива не выложил девелоп пакет gtk+ (сколько обломов из за этой gtk у меня было, лучше промолчу). Немного расстроившись, я поикал prm'ку для программы. Она конечно нашлась, но поставить ее тоже не удалось. Рпмка требовала либу.
В общем откинув желание возиться с этой прогой я начал изучать альтернативные решения.
И через некоторое время оно нашлось. Довольно хорошее решение, позволяющее подключить мультимедийные клавиши на вашей клавиатуры, не запуская ни каких сторонних программ (зачем тратить память и ресурсы процессора?) Нужно всего-то немного терпения. Данное руководство подходит для настройки клавиш в Linux и в FreeBSD.

Все шаманство сводиться к нахождению скан-кодов для клавиш.

Найти их можно с помощью утилиты xev. Запускаем ее, а потом жмём любую мультимедийную клавишу. В ответ в консоле у вас должно появиться следующее:

KeyRelease event, serial 30, synthetic NO, window 0x3800001,
root 0x115, subw 0x0, time 2566129, (630,659), root:(1023,688),
state 0x10, keycode 178 (keysym 0x1008ff18, NoSymbol), same_screen YES,
XLookupString gives 0 bytes:
X connection to :0.0 broken (explicit kill or server shutdown).

Ищем слово keycode. Это и есть нужный нам код клавиши. Записываем его, не забывая пометить какой клавише он принадлежит. Дальше в скобках видим слово NoSymbol. Это означает что клавиша у нас ещё не определена.
Проделываем эту операцию для всех клавиш.

Теперь идем в /usr/X11R6/lib/X11/xkb/keycodes/ и открываем файл xfree86
В нем ищем записанные нами скен-коды и узнаем их имена.

<I66> = 230;

Для моей мультимедиа клавиатуры SVEN 4500 получились следующие сочетания:

<I32> = 178;
<I67> = 231;
<I66> = 230;
<I68> = 232;
<I10> = 144;
<I19> = 153;
<I2E> = 174;
<I20> = 160;
<I30> = 176;
<I24> = 164;
<I22> = 162;
<I21> = 161;
<I6B> = 235;
<I6C> = 236;
<I5F> = 223;

Записываем имена для всех клавиш..
Снова переходим в каталог /usr/X11R6/lib/X11/xkb/symbols/ и открываем файл inet.
В нем уже идет привязка наших клавиш к именам.
Удобно, что в этом файле уже есть описанные некоторые клавиатуры. Именно для моей модели не нашлось, но производитель имелся.
Поэтому я отредактировал только содержимое этого раздела. У меня получилось вот что:

// SVEN Ergonomic 4500
partial alphanumeric_keys
xkb_symbols "sven" {
key <I32> { [ XF86HomePage ] };
key <I67> { [ XF86Refresh ] };
key <I66> { [ XF86Favorites ] };
key <I68> { [ XF86Stop ] };
key <I10> { [ XF86AudioPrev ] };
key <I19> { [ XF86AudioNext ] };
key <I2E> { [ XF86AudioLowerVolume ] };
key <I20> { [ XF86AudioMute ] };
key <I30> { [ XF86AudioRaiseVolume ] };
key <I24> { [ XF86AudioStop ] };
key <I22> { [ XF86AudioPlay, XF86AudioPause] };
key <I21> { [ XF86Calculator ] };
key <I6B> { [ XF86MyComputer ] };
key <I6C> { [ XF86Mail ] };
key <I5F> { [ XF86Sleep ] };
};

Если для вашей клавиатуры не нашлось ни модели, ни производителя, можно создать по аналогии свою. Главное на что стоит уделить внимание это значение xkb_symbols "sven". У меня это sven, а вам надо придумать новое уникальное имя.
Имена клавиш XF86Stop, нужно оставить стандартные, а не придумывать новые, иначе клавиши не подрубятся. Имена для клавиш можно поискать по всему файлу.
Ну и на последок самое главное.
Открываем файл /etc/X11/xorg.conf
Ищем в нем раздел описывающей клавиатуру и меняем значение "XkbModel" на ту, что вы отредактировали/создали в файле inet. Должно получить вот так.

Section "InputDevice"
Driver "kbd"
Identifier "Keyboard[0]"
Option "Protocol" "Standard"
Option "XkbLayout" "us,ru"
Option "XkbModel" "sven"
Option "XkbOptions" "grp:ctrl_shift_toggle,grp_led:scroll"
Option "XkbRules" "xfree86"
Option "XkbVariant" ",winkeys"
EndSection

Сохраняем конфиг и перезапускаем Графический сервер.
После перезапуска снова запускаем программку xev и снова жмём все кнопки по очереди.
Теперь, если все было настроено правильно, вместо значения NoSymbol должны появляться имена назначенные нами в файле inet.
И на последок. После перезагрузки и проверки у меня без настройки привязки клавиш работали кнопки Mute и Refresh. Теперь идем в Центр Управления KDE и в разделе Региональные и специальные возможности привязываем мультимедийные клавиши к нужным нам действиям.
Категория: Linux/BSD | Добавил: zwey (26-08-2006) | Автор: zwey+
Просмотров: 2626 | Рейтинг: 5.0 |

Всего комментариев: 0
Имя *:
Email *:
Код *:
Форма входа

Поиск по каталогу

Друзья сайта

Статистика


PR-CY.name - сервис проверки доменов
Яндекс цитирования

Copyright MyCorp © 2006 Хостинг от uCoz