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


За новостями русскоязычного сообщества и Ubuntu в целом можно следить на нашей страничке в Google+

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

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

Оффлайн barton`ello

  • Автор темы
  • Новичок
  • *
  • Сообщений: 12
    • Просмотр профиля
Доброго времени суток

Уже давно не дает покоя один вопрос: каким образом реализована поддержка мультимедиа-кнопок в (к)убунте? Т.е., запуская систему на своем ноуте, я получаю, например, работающие торцевые мультимедиа-клавиши из коробки, в других же дистрах все приходится настраивать вручную=\ Может кто знает, что за это отвечает, демон может какой особенный или специальные подобранные конфиги под все случаи жизни? Хотелось бы попробовать перенести опыт убунты в другие дистры.

Оффлайн Patrik

  • Новичок
  • *
  • Сообщений: 17
    • Просмотр профиля
Также хочу активировать мультимедиа кнопки на обычной клаве, там регулировка звука, старт-пауза песен, и прочие домашние страницы и т.д.

Оффлайн barton`ello

  • Автор темы
  • Новичок
  • *
  • Сообщений: 12
    • Просмотр профиля
Нет, активировать то я активировал, благо в сети полно руководств=) Просто интересно, как, почему и за счет чего это работает в Ubuntu из коробки? Есть знающие люди?

Оффлайн dmig

  • Старожил
  • *
  • Сообщений: 1668
    • Просмотр профиля
Нет, активировать то я активировал, благо в сети полно руководств=) Просто интересно, как, почему и за счет чего это работает в Ubuntu из коробки? Есть знающие люди?
за счёт тяжеленного ядра, в котором присутствуют наверное все возможные драйверы.
на скорость работы/потребление памяти это не влияет, влияет только на время загрузки.

Оффлайн barton`ello

  • Автор темы
  • Новичок
  • *
  • Сообщений: 12
    • Просмотр профиля
за счёт тяжеленного ядра, в котором присутствуют наверное все возможные драйверы.
на скорость работы/потребление памяти это не влияет, влияет только на время загрузки.
А можно побольше технических подробностей? ИМХО вряд ли в ядре биндятся XF86AudioMedia, XF86AudioPlay, XF86AudioRaiseVolume etc...

Оффлайн virens

  • Активист
  • *
  • Сообщений: 329
    • Просмотр профиля
за счёт тяжеленного ядра, в котором присутствуют наверное все возможные драйверы.
на скорость работы/потребление памяти это не влияет, влияет только на время загрузки.
А можно побольше технических подробностей? ИМХО вряд ли в ядре биндятся XF86AudioMedia, XF86AudioPlay, XF86AudioRaiseVolume etc...
Про тяжеленное ядро это конечно перебор :-)
Кнопки нормально поддерживаются hotkey - зачем изобретать велосипед? У меня есть по этому поводу:
http://mydebianblog.blogspot.com/2006/09/blog-post_05.html

Оффлайн barton`ello

  • Автор темы
  • Новичок
  • *
  • Сообщений: 12
    • Просмотр профиля
Ну это понятно=)

Просто может неправильно выразился... Имеем ноутбук. Загружаемся с лайв-сд кубунты, получаем работающие медиа-кнопки (XF86* и все остальные). В других дистрах такой поддержки "из коробки" нет. Вот я и хотел узнать, как именно достигается поддержка этих кнопок "из коробки". Должно же что-то определять тип клавиатуры, биндить кнопки само. Просто очень любопытно. На сколько я знаю, hotkeys не включается в дистр по умолчанию.

Оффлайн mtmobile

  • Новичок
  • *
  • Сообщений: 5
    • Просмотр профиля
Re: Реализация поддержки мультимедиа кнопок
« Ответ #7 : 05 Сентябрь 2007, 01:21:45 »
Меня данный вопрос тоже сильно интересует, но не из любопытства, а в связи с некоторыми проблемами...
Поставил ubuntu 7.04 на свой ноут (Toshiba Satellite U200) и каким-то чудом у меня заработали мультимедийные и Fn клавиши - искаропки (в других дистрах приходилось ставить доп демоны типа FnFx) :D.
Но как все, что чудом работает - заработали не совсем правильно...
К примеру - Fn+F8 - должны включать/выключать bluetooth/wifi (мне достаточно только bluetooth).
Искаропки Fn+F8 почему-то только выключают BT (при повторном нажатии не включают)
Поковырялся в /etc/acpi - нашел там tosh-wireless.sh - как я понял этот скрипт как раз и отвечает за вкл/выкл bluetooth.
Из него выполняется пара внешних хитрых скриптов:
. /usr/share/acpi-support/state-funcs
toggleAllWirelessStates;

if isAnyWirelessPoweredOn; then
      toshset -bluetooth on
else
      toshset -bluetooth off
fi
IMO которые определяют, какие интерфейсы активны/неактивны. И что-то там явно определяется не так.
Т.к. меня интересовал только bt - я немного его поменял:
bt_off="bluetooth: power is off"
bt=`toshset -bluetooth`
if [[ "$bt" = "$bt_off" ]] ; then
        toshset -bluetooth on
        sleep 1
else
        toshset -bluetooth off
        sleep 1
fi
Теперь блутус заработал как надо  ;D

Теперь засада с кнопками яркости панели (Fn+F6/F7).
Скрипт /etc/acpi/toshbright.sh - работает просто отлично, если запускать его вручную,
а по Fn+F6/F7 - используется какой-то совсем другой скриптик (возможно стандартный).
Как я догадываюсь Ubuntu снова пытается определить какой у меня ноут/модель и запустить нужный скрипт (т.к. в /etc/acpi лежат подобные скрипты для многих других ноутов) и очевидно обламывается.
Когда я меняю яркость с клавиатуры - она в принципе меняется, но экран при этом жутко колбасит (гаснет/мигает) - боюсь панель сгорит...
Пробовал FnFxd - как результат Ubuntu сперва успевает попытаться изменить яркость сама, потом fnfxd еще раз ее меняет (но само-собой корректно)
Подскажите пожалуйста как Ubuntu отлавливает эти клавиши и где их можно перенастроить, или вообще пресечь ее поползновения делать все самостоятельно?

Оффлайн mtmobile

  • Новичок
  • *
  • Сообщений: 5
    • Просмотр профиля
Re: Реализация поддержки мультимедиа кнопок
« Ответ #8 : 07 Сентябрь 2007, 19:17:28 »
Неужели никто не знает каким образом реализована поддержка мультимедийных/Fn клавиш в этой убунте???   :'(
Не пойму зачем им было так все маскировать?  :idiot2:
Как же можно действия клавиш переназначить? Или теперь как в винде - никак?

Оффлайн virens

  • Активист
  • *
  • Сообщений: 329
    • Просмотр профиля
Re: Реализация поддержки мультимедиа кнопок
« Ответ #9 : 08 Сентябрь 2007, 12:35:32 »
Неужели никто не знает каким образом реализована поддержка мультимедийных/Fn клавиш в этой убунте???   :'(
Знают, но молчат :-)

Реализация через ACPI - должен быть установлен и запущен acpid. Это демон, который отвечает за перехват и обработку этих клавиш.

Базовая поддержка должна (и есть) быть в ядре. Особенно это актуально для лаптопов - например, для asus существует проект acpi4asus.

Как же можно действия клавиш переназначить? Или теперь как в винде - никак?
Здесь - не винда, поэтому можно :-) acpid создаёт конфигурационные файлы в /etc/acpi в которых содержится перечень действий, которые происходят при нажатии на Fn+что-то. Это можно легко переиграть. Когда-нибудь я про это подробнее напишу - но сейчас нужно делами заниматься.

Оффлайн mtmobile

  • Новичок
  • *
  • Сообщений: 5
    • Просмотр профиля
Re: Реализация поддержки мультимедиа кнопок
« Ответ #10 : 10 Сентябрь 2007, 23:38:52 »
virens, большое спасибо за ответ.
Но в своем предыдущем посте я _уже писал_ до чего я смог докопаться...

Цитировать
Знают, но молчат :-)
Что-то я в этом стал сильно сомневаться.  :(  :'(

Цитировать
Реализация через ACPI - должен быть установлен и запущен acpid.
Полагаю этот демон запускается по дефолту (как и в любом другом, уважающем себя дистрибутиве)

Цитировать
Здесь - не винда, поэтому можно :-) acpid создаёт конфигурационные файлы в /etc/acpi в которых содержится перечень действий, которые происходят при нажатии на Fn+что-то. Это можно легко переиграть. Когда-нибудь я про это подробнее напишу - но сейчас нужно делами заниматься.

Если бы разговор шел о Gentoo или Arch - то там действительно все можно переиграть... Ubuntu же с каждой версией становится все умнее и умнее и вариантов для выбора/настройки чего-либо оставляет все меньше и меньше... (сорри, не хотел никого обидеть, только с первыми двумя я знаком уже несколько лет, а с убунтой все как-то не складывается...)

Уверен, что здесь есть какая-то еще "прослойка" между нажатием Fn+F6/F7 и acpid...

Оффлайн mtmobile

  • Новичок
  • *
  • Сообщений: 5
    • Просмотр профиля
Re: Реализация поддержки мультимедиа кнопок
« Ответ #11 : 10 Сентябрь 2007, 23:53:11 »
Благодаря virens решил проверить (на всякий случай) запущен-ли у меня acpid.
Демон Acpi - оказался запущен. Я его чисто для прикола стопанул и проверил клавиши - И как ни странно они заработали как надо...
Стартанул acpid - опять экран стал дергаться.
Без acpi все нормально работает... Даже теперь и не знаю что делать то lol
Кто знает - подскажите где собака зарыта

Оффлайн Nick F0x

  • Активист
  • *
  • Сообщений: 317
  • Или ты имеешь мир, или наоборот, третьего не дано.
    • Просмотр профиля
    • f0x.ru
Re: Реализация поддержки мультимедиа кнопок
« Ответ #12 : 11 Сентябрь 2007, 08:07:41 »
Вот тут немножко расписано про подобные клавиши, может поможет:
HOWTO Мультимедийные кнопки (клавиши)
« Последнее редактирование: 11 Сентябрь 2007, 14:25:31 от Kwah »

Оффлайн Envel

  • Участник
  • *
  • Сообщений: 166
    • Просмотр профиля
Re: Реализация поддержки мультимедиа кнопок
« Ответ #13 : 13 Сентябрь 2007, 00:40:03 »
Доброго времени суток

Уже давно не дает покоя один вопрос: каким образом реализована поддержка мультимедиа-кнопок в (к)убунте? Т.е., запуская систему на своем ноуте, я получаю, например, работающие торцевые мультимедиа-клавиши из коробки, в других же дистрах все приходится настраивать вручную=\ Может кто знает, что за это отвечает, демон может какой особенный или специальные подобранные конфиги под все случаи жизни? Хотелось бы попробовать перенести опыт убунты в другие дистры.

У меня все работает без настройки. Volume, Mute, Calculator, Web/Home, Stop, Search, Prev, Next, Play, Pause и т.п. Sleep не проверял, честно.

Оффлайн mityukov

  • Участник
  • *
  • Сообщений: 220
  • Divina gratia homo libero
    • Просмотр профиля
Re: Реализация поддержки мультимедиа кнопок
« Ответ #14 : 14 Сентябрь 2007, 22:22:34 »
Неужели никто не знает каким образом реализована поддержка мультимедийных/Fn клавиш в этой убунте???   :'(
Не пойму зачем им было так все маскировать?  :idiot2:
Как же можно действия клавиш переназначить? Или теперь как в винде - никак?
Ну не так уж все замаскировано ;-)

В Гноме, например, можно задавать ассоцииации в ветке гномовского реестра, посвященного твоему Windows Manager ;-)

Например, если у тебя WM: Compiz, то можно юзать следующие команды:
gconftool-2 \
--set "/apps/compiz/general/allscreens/options/run_command0_key" \
--type string "XF86Pictures"
gconftool-2 \
--set "/apps/compiz/general/allscreens/options/command0" \
--type string 'gthumb /path/to/my/photos/'

У Metacity тоже есть своя ветка.

Можешь также посмотреть вот эту мессагу - тут дофига деталей, ибо я пытался настроить клаву _не_ поддерживающуюся из коробки, так что можно найти дофига полезного что и где "прячется":

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

 

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