OSD визуализация в kmix через dbus

Если регулировать в kmix звук через хоткеи, то отображается OSD уведомление.
Но если регулировать через dbus, то нет.
Как-нибудь можно через тот же dbus показать это уведомление?
Через qdbusviewer всё обыскал - не нашёл ничего похожего.

D-BUS

Что-то я не совсем понимаю, о чём здесь речь ведётся ;)
Что за Hotkeys, что за OSD, какое приложение используется?
Если стоят 4-е Кеды, то у них D-BUS - есть основная шина
т.н. межпроцессного взаимодействия. Если же приложение было
написано под 3-и кеды и/или оне стоят, то - какой D-BUS?
Там используется 'Dcop', как я помню.

Речь идёт о том, что как

Речь идёт о том, что как сделать, чтобы при изменении громкости через kmix через dbus, отображался соответствующий индикатор (полоска посреди экрана).

Цитата:
какое приложение используется?

Это вообще не понял о чём

p.s. Подозреваю, что за сим индикатором надо обращаться уже не к kmix. Только вот куда не нашёл.

У меня установлен такой

У меня установлен такой пакетик смешной, okindd. Поищите по форуму, может, оно и пригодится.

Текстовый редактор vi имеет два режима работы: в первом он пищит, а во втором — всё портит.

Посмотреть-посмотрю, спасибо.

Посмотреть-посмотрю, спасибо. Но сама суть не в этом.
Обьясню подробнее.
У меня настроена регулировка звука в kmix хоткеями. При увеличении/уменьшении/выключении звука с помощью хоткеев, на экране появляется полоска с уровнем звука(собственно индикатор, встроенный в kde).
Решил сделать также управление звуком с мыши. Сделал через xbindkeys и dbus. То есть через dbus управляю kmix для уменьшения/увеличения громкости. Но при изменении громкости через dbus, индикатора нет. Вот и хочу выяснить как всё-таки его показать, используя dbus

kmix

То есть,ты хочешь, двигая мышкой ползунок громкости в активном окне kmix добиться:
1. Изменения звука.
2. Отображения ещё одного окошка, в котором будет изменяться свойства полоски статуса?
По-моему, события от мыши будет отлавливать лишь открытое окошко kmix, в котором
будет перемещаться ползунок, дальше евент вряд-ли пойдёт... Да и зачем это? Ну, впрочем,
- дело личное...

Никакие ползунки я двигать не

Никакие ползунки я двигать не собираюсь. Я хочу чтобы при регулировании громкости через dbus появляась соответствующая полоска с уровнем звука посреди экрана.

OSD

А это что? (см. выше) - "Решил сделать также управление звуком с мыши. Сделал через xbindkeys и dbus."
Я вообще чейчас ничё не понимаю %) Как ты хочеш с помощью мышки изменять громкость, если никакие
"ползунки" и ещё "чё-нить" не двигать? Должен же быть активный элемент, реагирующий на сигналы от мышки?
Просвети тупого, плизз...
зы: Если на мышке много клавиш и ты хочеш забиндить на некоторые из них увеличение/уменьшение громкости, то
http://www.gentoo.ru/node/11294,
http://www.gentoo.ru/node/15043 - может поможет :)

Просвещаю. Регулировка 100

Просвещаю. Регулировка 100 лет назад уже сделана и забиндена куда надо.
Выполняется команда
qdbus org.kde.kmix /Mixer0 increaseVolume Master:0
Вопрос: Как через dbus отобразить индикатор громкости?
Мышка тут вообще не при чём. Не читайте через слово.
Так понятнее?

xosd+kmile ?

xosd+kmile ?

Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)

правда, без dbus и

правда, без dbus и kmix
notify-send --icon=sound Volume `aumix -q | grep -oP '(?<=vol\s)\d{1,2}'`

Вообщем, я уже понял что

Вообщем, я уже понял что адекватного ответа не увижу. Я и забил уже давно на это. Но мне непонятно, почему если я прошу подсказать как отобразить _стандартное_ уведомление в kde4, мне советуют поставить туеву хучу прог, которые делают свои нотификации, которые мне абсолютно не нужны? Хотя бы никто не написал "используй гном" или что-либо в этом духе

хоть и без dbus, но

хоть и без dbus, но посмотрите на osdsh

Лично я это _стандартное_

Лично я это _стандартное_ OSD-окошко регулирования видел только в KDE3.5, но не в KDE4 (хотя сама регулировка работала изначально для мультимедийным клавишам). Поэтому для себя решил, что в KDE4 такого просто нет, и решил проблему окольным путём (okindd). Поэтому его и советую.

У меня на ноуте, когда для

У меня на ноуте, когда для регулировки громкости привключенном кде используешь "мультимедиа" клавиши появляется попап с полосочкой этой громкости. Есть подозрение что это вообще HAL+DBUS.

Ну рисовать-то на экране hal

Ну рисовать-то на экране hal не умеет. Что/кто рисует эту полосочку - вот в чём вопрос

что-нибудь типа xosd?

что-нибудь типа xosd?

а есть что-нибудь более

а есть что-нибудь более симпатичное, но не привязанное к kdelibs?

Здесь посмотрите:

Аналог Kmilo для kde4
ebuild получился может и кривенький, но работает.
Хотя это и не "родной" способ (кстати, я родных полосок в kde4 так и не увидел, хотя громкость мультимедийными клавишами по умолчанию регулируется), но выглядит, думаю, не хуже.

P.S. А таким скриптом я регулирую громкость (округляя до 5):

#!/bin/bash

vol=`qdbus org.kde.kmix /Mixer0 masterVolume`
vol=`echo \($vol+2\)/5*5+5 | bc`
#amixer sset "PCM" $vol%
amixer cset numid=20 $vol%
amixer sset "CD Loopback" $vol%
`qdbus org.okindd /Interface display VolumeRound $vol`
#`qdbus org.okindd /Interface display Volume $vol`

Насклько я смог понять

Насклько я смог понять смысл...
вот что мне выдал dbus-monitor
signal sender=:1.2 -> dest=(null destination) serial=1260 path=/modules/kdedglobalaccel; interface=org.kde.KdedGlobalAccel; member=invokeAction
array [
string "kmix"
string "decrease_volume"
string "KMix"
string "Уменьшить громкость"
]
int64 1126858
но почему то только на глобальный уровень громкости
незнаю может чем то поможет
dest=(null destination)
это смущает, я так понял надо что-то вроде широковешательного сигнала в шину сессии отправить, dbus-send?

Это я видел. Но только не

Это я видел. Но только не понял как использовать.
Вообще dbus сигналы я отправляю через qdbus. Но он говорит, что нету такого сервиса.
Как я понимаю, это выглядеть должно приблизительно так:
qdbus org.kde.KdedGlobalAccel /modules/kdedglobalaccel invokeAction список_параметров.
Но в ответ
Service 'org.kde.KdedGlobalAccel' does not exist.

tuupic написал(а):Это я

tuupic написал(а):
Это я видел. Но только не понял как использовать.
Вообще dbus сигналы я отправляю через qdbus. Но он говорит, что нету такого сервиса.
Как я понимаю, это выглядеть должно приблизительно так:
qdbus org.kde.KdedGlobalAccel /modules/kdedglobalaccel invokeAction список_параметров.
Но в ответ
Service 'org.kde.KdedGlobalAccel' does not exist.

Это значит, что служба 'org.kde.kded' на интерфейсе '/modules/kdedglobalaccel' генерирует сигнал 'invokeAction'
А, вот кто к нему подключен и обрабатывает - не знаю...

$ qdbus org.kde.kded /modules/kdedglobalaccel | grep invokeAction
signal void org.kde.KdedGlobalAccel.invokeAction(QStringList actionId, qlonglong timestamp)

- - -

Вы не описали цель использования именно Dbus. Поэтому предложу Вам решение, эмулирующее нажатие клавиш определенных по умолчанию в kmix: XF86AudioLowerVolume, XF86AudioRaiseVolume, XF86AudioMute:

xse -window \
  "$(xwininfo -root | perl -ne 'print /^xwininfo: Window id: (0x.\w+?)\s/')"  \
  "<key>XF86AudioLowerVolume"

Может быть есть более элегантный способ получить ID корневого окна...

Полагаю это Вам подойдет для решения конечной задачи.

xse и xwininfo - есть в портежах.

Это выдаёт требуемый

Это выдаёт требуемый результат. Спасибо. Только как-то медленно работает (или мне кажется).
dbus хотелось бы использовать, так как оно уже есть (не нужно ставить ещё проги)

- - -

Понятное дело, что dbus было бы лучше - если бы оно работало... (-;

Я не долго думал над этим (-; и выдал решение как пример...
- Самый просто вариант оптимизировать - избавиться от perl заменив на cut.
- Вариант чуть посложнее: что бы избавится от xwinfo - во время первого вызова записать id'нтификатор корневого окна в /tmp/некий-условный-номер-kde-сессии и потом извлекать cat'ом.
- Вариант сложный: написать скрипт в виде некоего демона с завершением по таймауту... Ну тут уже надо пять-десять минут думать и двадцать-тридцать писать. (-;

tuupic,Для просмотра и

tuupic,
Для просмотра и тестирования qdbus сигналов есть удобное графическое приложение "qdbusviewer". Там в части
org.kde.VisualNotifications /VisualNotifications есть сигнал
method uint org.kde.VisualNotifications.Notify(QString app_name, uint replaces_id, QString event_id, QString app_icon, QString summary, QString body, QStringList actions, QVariantMap hints, int timeout)
Он выводит сообщение через стандартную систему, правда не графическое типа прогресс-бара, просто текст. Можно, конечно, и громкость в процентах туда приписать.

Вот только из консоли вызвать я его не смог - ругается на параметр QVariantMap hints, не могу понять как его в консоли задать.
Описания таких вещей не смог найти, если кто знает, отпишите пожалуйста как передавать такие параметры при вызове сигнала?

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".