LINUX.ORG.RU

D-Bus multimedia keys


0

2

Есть ли возможность настроить горячие клавиши для play/pause и прочего без использования гуёвых конфигурялок вроде gnome-keybinding-properties? Если да, то где это делается?

★★★★★

Ну и конечно без использования gnome-settings-daemon и подобного добра.

pevzi ★★★★★
() автор топика

>> D-Bus multimedia keys

без использования gnome-settings-daemon

Нет пути, ибо гномофича. Настраивай другими способами. В Quodlibet есть же команды управления для CLI.

GotF ★★★★★
()
Ответ на: комментарий от GotF

> В Quodlibet есть же команды управления для CLI

Тормозит оно уж больно, пробовал.

Нет пути, ибо гномофича


Разве не D-Bus'а?

pevzi ★★★★★
() автор топика
Ответ на: комментарий от pevzi

>> Тормозит оно уж больно, пробовал.

У меня ОК.

Разве не D-Bus'а?

Ну, как сказать… Не видел, чтобы это работало без гнома, да и там (по крайней мере, раньше) было неофициальной возможностью. В принципе, можно попробовать раскопать методы d-bus для нужного плеера и слать ему команды удобным способом.

GotF ★★★★★
()
Ответ на: комментарий от GotF

> У меня ОК.

А у меня нетбук. И каждый раз как я нажимаю хоткей, quodlibet фактически запускается заново, а это занимает порой пару секунд, если нагрузка на ноут высокая. Раздражает же.

Не видел, чтобы это работало без гнома


А в кедах такого нет что ли? Если есть, то наверняка есть и DE-независимый способ.

pevzi ★★★★★
() автор топика
Ответ на: комментарий от pevzi

>> А в кедах такого нет что ли?

Там принято настраивать средствами плееров :)

наверняка есть и DE-независимый способ.

А то ж. dbus-send + xbindkeys.

GotF ★★★★★
()
Ответ на: комментарий от GotF

> dbus-send

Ага, вот как. Спасибо, буду щупать.

pevzi ★★★★★
() автор топика
Ответ на: комментарий от pevzi

а зачем лишняя сущность в таком простом действии как нажатие кнопки? о_О
и да - просьба была завести мм кнопки - там есть всё что надо
а вообще - ну в команду вбей dbus-send ...
в чём проблема?

megabaks ★★★★
()
Ответ на: комментарий от megabaks

> там есть всё что надо

Я уже объяснил — способ через ключи в плеере сильно тормозит и неприемлем.

а вообще - ну в команду вбей dbus-send ...

в чём проблема?



Проблема в том, что о команде dbus-send я не знал до того, как мне сказал о ней GotF.

pevzi ★★★★★
() автор топика
Ответ на: комментарий от pevzi

Посмотрел через dbus-monitor что отправляется при нажатии мультимедиа-клавиши, если настраивать через гном. Там все запросы завязаны на гноме и settings-daemon, а как отправить напрямую quodlibet'у — понять не могу.

pevzi ★★★★★
() автор топика
Ответ на: комментарий от pevzi
gotf ~ % qdbus 
:1.0
 org.xfce.FileManager
 org.xfce.Thunar
:1.16
 net.sacredchao.QuodLibet
:1.17
 org.freedesktop.Notifications
:1.18
:1.4
 org.gnome.evince.ApplicationService
:1.6
 org.xfce.Terminal3
org.freedesktop.DBus
gotf ~ % qdbus net.sacredchao.QuodLibet
/
/net
/net/sacredchao
/net/sacredchao/QuodLibet
gotf ~ % qdbus net.sacredchao.QuodLibet /net/sacredchao/QuodLibet
method void net.sacredchao.QuodLibet.CurrentSong()
method void net.sacredchao.QuodLibet.GetPosition()
method void net.sacredchao.QuodLibet.IsPlaying()
method void net.sacredchao.QuodLibet.Next()
method void net.sacredchao.QuodLibet.Pause()
signal void net.sacredchao.QuodLibet.Paused()
method void net.sacredchao.QuodLibet.Play()
method void net.sacredchao.QuodLibet.PlayPause()
method void net.sacredchao.QuodLibet.Previous()
signal void net.sacredchao.QuodLibet.SongEnded(QDBusVariant song, QDBusVariant skipped)
signal void net.sacredchao.QuodLibet.SongStarted(QDBusVariant song)
signal void net.sacredchao.QuodLibet.Unpaused()
method QString org.freedesktop.DBus.Introspectable.Introspect()
gotf ~ % qdbus net.sacredchao.QuodLibet /net/sacredchao/QuodLibet net.sacredchao.QuodLibet.Play

Последняя команда начала воспроизведение. Это я к тому, что плеер предоставляет прямой интерфейс без гномовеликов. А про qdbus сразу забыл написать, да и он зависит от Qt.

GotF ★★★★★
()
Ответ на: комментарий от GotF

вот это хитрозакрученная опа! о_О
я был о тебе лучшего мнения
где же KISS?
зато как какашками кидался в мои скрипты - ппц ^_^

megabaks ★★★★
()
Ответ на: комментарий от megabaks

> посмотри как в данном случае плеер понимает нажатия

Я вижу что ты перенаправляешь нажатия кнопок мыши на нажатия мультимедиа-клавиш. А как они передаются плееру — я к сожалению не увидел и подозреваю, что благодаря плагину в deadbeef. Еще раз повторяю — что ты мне этим хотел показать?

pevzi ★★★★★
() автор топика
Ответ на: комментарий от megabaks

подсказонька - плеер на хоткеи реагирует быстрей, чем на ключи
речь о мёртвой говядине - а скажем qmmp пофиг абсолютно - и так и так быстро

megabaks ★★★★
()
Ответ на: комментарий от GotF

Большое спасибо, это мне и надо было. С qdbus и Qt никаких проблем, у меня он, как оказалось, уже даже установлен (:

pevzi ★★★★★
() автор топика
Ответ на: комментарий от megabaks

>> где же KISS?

KISS в Quodlibet имеется, но тормозит.

вот это хитрозакрученная опа! о_О

Хитро — это когда через dbus-send, в котором без бутылки не разберёшься :)

GotF ★★★★★
()
Ответ на: комментарий от GotF

И не вижу ничего хитрого в команде с тремя аргументами.

GotF ★★★★★
()
Ответ на: комментарий от megabaks

> ты читать умеешь?

Встречный вопрос тебе. Я просил совсем другое, зачем ты мне суешь свои скрипты, которые лично мне нафиг не нужны и не могут быть мной применены в данном случае?

кто мешает сделать так?


Именно то и мешает, что оно здесь никак не в тему.

это ответ на «тормозит» - в чём проблема?


А я что, просил чтоб ты мне доказал, что xbindkeys не тормозит? Я это и так знаю.

pevzi ★★★★★
() автор топика
Ответ на: комментарий от megabaks

и да - независящие от всяких там кутей и дбасов
для этого с головой хватает иксов

megabaks ★★★★
()
Ответ на: комментарий от pevzi

>Есть ли возможность настроить горячие клавиши для play/pause и прочего без использования гуёвых конфигурялок вроде gnome-keybinding-properties? Если да, то где это делается?
о чём просил, то и получил
что не так?

megabaks ★★★★
()
Ответ на: комментарий от megabaks

> это сильно усложнено

Отправить плееру dbus-запрос — это «сильно усложнено»?

pevzi ★★★★★
() автор топика
Ответ на: комментарий от megabaks

> о чём просил, то и получил

что не так?


Сабж прочитай и успокойся уже. GotF почему-то меня сразу понял, например.

pevzi ★★★★★
() автор топика
Ответ на: комментарий от megabaks

Клавиши тут уже ни при чём. Речь о передаче команд плееру, а что используется для вызова команд — дело десятое. Сам по себе этот плеер не умеет реагировать на клавиши глобально.

GotF ★★★★★
()
Ответ на: комментарий от megabaks

>> D-Bus multimedia keys - нет такого в природе!

Так обычно обозначают эту конкретную фичу в контексте гнома и поддерживающих её плееров.

GotF ★★★★★
()
Ответ на: комментарий от GotF
 pevzi@pevzi-laptop:~$ qdbus net.sacredchao.QuodLibet /net/sacredchao/QuodLibet net.sacredchao.QuodLibet.CurrentSong
qdbus: I don't know how to display an argument of type 'a{ss}'

Хм, это почему так?

pevzi ★★★★★
() автор топика
Ответ на: комментарий от pevzi

А я откуда знаю?

qdbus это больше обозреватель, ИМХО. Вот так работает:

gotf ~ % dbus-send --type=method_call --dest=net.sacredchao.QuodLibet --print-reply /net/sacredchao/QuodLibet net.sacredchao.QuodLibet.CurrentSong 
method return sender=:1.24 -> dest=:1.29 reply_serial=2
   array [
      dict entry(
         string "album"
         string "Moonlight Waltz"
      )
      dict entry(
         string "~#playcount"
         string "2"
      )
      dict entry(
         string "~#bitrate"
         string "320000"
      )
      dict entry(
         string "artist"
         string "Theatres des Vampires"
      )
      dict entry(
         string "~#length"
         string "277"
      )
      dict entry(
         string "title"
         string "Medousa"
      )
      dict entry(
         string "~#rating"
         string "0.5"
      )
      dict entry(
         string "genre"
         string "Melodic Black Metal, Gothic Metal"
      )
      dict entry(
         string "~#added"
         string "1295034769"
      )
      dict entry(
         string "~#lastplayed"
         string "1295092146"
      )
      dict entry(
         string "~#mtime"
         string "1295034837.5"
      )
      dict entry(
         string "date"
         string "2011"
      )
      dict entry(
         string "tracknumber"
         string "12/12"
      )
      dict entry(
         string "~#laststarted"
         string "1295185980"
      )
      dict entry(
         string "~#skipcount"
         string "3"
      )
   ]

:D

GotF ★★★★★
()
Ответ на: А я откуда знаю? от GotF

Охтыж. Ненене, тут уж мне хватит ключа --print-playing (:

pevzi ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.