Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: Реализация поддержки мультимедиа кнопок  (Прочитано 11492 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Gaz-Gaz

  • Любитель
  • *
  • Сообщений: 68
    • Просмотр профиля
Re: Реализация поддержки мультимедиа кнопок
« Ответ #45 : 27 Апреля 2008, 13:59:21 »
Я на своей клаве тупо в "реестр" записывал:
для осознанного редактирования хотелось бы услышат разъяснения: что к чему в этих строках???
...спасибо
на Ubuntu с 2007 года. LAMP

Оффлайн Gaz-Gaz

  • Любитель
  • *
  • Сообщений: 68
    • Просмотр профиля
Re: Реализация поддержки мультимедиа кнопок
« Ответ #46 : 27 Апреля 2008, 14:11:04 »
To apply them on startup (If ~/.xinitrc does not exist):
 $  cp /etc/X11/xinit/xinitrc ~/.xinitrc
In all cases
 $  gedit ~/.xinitrc
Make the first line this:
 $  xmodmap ~/.Xmodmap
это не нужно. гном при старте предложит загрузить этот файл.

... и понтов с того? xmodmap кнопки сам не оживляет ("xev" после перезагрузки их опять не видит). Уже ни ... не понимаю. Искал простые разъяснения: как происходить процесс инициализаци клавиатуры при загрузке ОС. Ответ не нашел. Сплошные советы: написать то-то там-то... А зачем? почему? Болезней много, здоровье - одно. Но как узнать о нём? Ведь решение, скорее всего, скорлупы выеденой не стоит... а разьяснений нет.
« Последнее редактирование: 28 Апреля 2008, 00:18:57 от iyiuy »
на Ubuntu с 2007 года. LAMP

Оффлайн mityukov

  • Участник
  • *
  • Сообщений: 220
  • Divina gratia homo libero
    • Просмотр профиля
Re: Реализация поддержки мультимедиа кнопок
« Ответ #47 : 28 Апреля 2008, 15:00:17 »
To apply them on startup (If ~/.xinitrc does not exist):
 $  cp /etc/X11/xinit/xinitrc ~/.xinitrc
In all cases
 $  gedit ~/.xinitrc
Make the first line this:
 $  xmodmap ~/.Xmodmap
это не нужно. гном при старте предложит загрузить этот файл.

... и понтов с того? xmodmap кнопки сам не оживляет ("xev" после перезагрузки их опять не видит). Уже ни ... не понимаю. Искал простые разъяснения: как происходить процесс инициализаци клавиатуры при загрузке ОС. Ответ не нашел. Сплошные советы: написать то-то там-то... А зачем? почему? Болезней много, здоровье - одно. Но как узнать о нём? Ведь решение, скорее всего, скорлупы выеденой не стоит... а разьяснений нет.

Попробую по полочкам, хотя сам не спец, но кое-какие идейки имею:

1. Есть два типа кнопок:.те. которые УЖЕ определяются с пом. xev, и те, которые не определяются.

Тем, которые видны с пом. xev, можно сразу назначать keysym'ы (читабельные названия) с пом. xmodmap. Например так:

xmodmap -e "keycode 130 = hpUser"

(но об этом несколько позже, ок?)


Те же, которые с пом. xev сразу не видны -- их нужно посканить сначала с пом. dmesg.

Я делал так:
1. холостой запуск "sudo dmesg -c" (чтобы "слить" буффер).
2. нажимаю нужную кнопку
3. делаю "sudo dmesg -c" еще раз -- смотрю что за код сгенерило.
4. нажимаю вторую нужную кнопку
5. делаю "sudo dmesg -c" еще раз -- смотрю что за код сгенерило.
6. и т.п.

Все найденые с пом. dmesg, коды надо теперь записать в некое подобие "автостарта" (файл: /etc/init.d/bootmisc.sh ) :
setkeycodes e02c 172    # xev keycode: 130; user
setkeycodes e014 148    # xev keycode: 159; hp
setkeycodes e026 167    # xev keycode: 177; ?
setkeycodes e01f 160    # xev keycode: 163; photo
setkeycodes e016 151    # xev keycode: 201; music
setkeycodes e039 186    # xev keycode: 93; video
...

(все что после # -- камменты. их можно не писать, это для себя, чтобы проще читать)

где, "e02c" -- это то, что выдал dmesg. Второй параметр -- че-нить уникальное (не занятое другими кнопками, проверять можно с пом. sudo dumpkeycodes, в этом триде уже были рекомендации как удобнее подбирать эти номера).

Все это шамаство с setkeycodes нужно в приципе лишь для того, чтобы кнопки определялись xev'ом.


3. Теперь, когда все нужные кнопки определяются xev'ом, мы пропишем им "Keysym'ы". Это делается с пом. xmodmap.

Мне проще всего было выполнить одну за другой команды типа таких:
xmodmap -e "keycode 130 = hpUser"
xmodmap -e "keycode 159 = hpSystem"
xmodmap -e "keycode 177 = Help"
xmodmap -e "keycode 163 = XF86Pictures"
xmodmap -e "keycode 201 = XF86Music"
xmodmap -e "keycode 93 = XF86Video"
xmodmap -e "keycode 204 = XF86Shop"
xmodmap -e "keycode 200 = XF86LaunchA"
...

С последуюцим: "xmodmap -pke > ~/.Xmodmap"

Далее, когда есть KeySym'ы -- можно вписыватьих в гномовский реестр, либо как-нить по-другому ассайнить к конкретным действиям.


А вообще -- советую вот этот топик почитать, как я свою клаву настраивал:

https://forum.ubuntu.ru/index.php?topic=10549.msg76750#msg76750
Never cared for what they they
Never cared for games they play

 

Страница сгенерирована за 0.032 секунд. Запросов: 23.