Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 21/08/2014, à 10:17

Gaara

[résolu] Désactiver le son des notifications en Bash (KMix / XBMC)

Salut à tous !

J'utilise XBMC pour lire mes vidéos. Jusque là pas de soucis, j'ai créé un script pour le lancer (ça éteint mon deuxième écran). Bref.

Le petit soucis que je rencontre est le suivant:
Lorsque je regarde un film et que je reçois un mail, la notification sonore se met en route... c'est un peu gênant.
Donc j'aimerais savoir s'il est possible de désactiver le son des notifications (et seulement les notifications bien sûr) de KMix en bash, que j'ajouterais à mon script.
Comme quand je le fais en gui:
mini_588229Kmix.jpg

Je peux le faire manuellement, mais j'oublie une fois sur 2 et c'est là qu'un "Ding !" se met en route, en plein film...

J'ai regardé kmix --help-all mais rien de bien utile pour mon cas précis... a moins que ce ne soit pas KMix...
Si quelqu'un à une idée,
merci smile

Dernière modification par Gaara (Le 28/08/2014, à 09:49)


Kubuntu 18.04 x64
Un terminal tactile Raspberry Pi et Odroid

                                        <code>zenity  --question --title "Alert"  --text "Microsoft Windows has been found! Would you like to remove it?"</code>

Hors ligne

#2 Le 21/08/2014, à 10:34

metalux

Re : [résolu] Désactiver le son des notifications en Bash (KMix / XBMC)

Salut Gaara,
Les notifications font appel à dbus qui permet à plusieurs processus de communiquer entre eux. Donc il faut à mon avis regarder de ce côté pour contrôler KMix dans ton script. Je n'utilise pas Kde mais le principe ne doit pas changer.
Voici une documentation que j'ai trouvé qui devrait t'aider (page 12)
http://docs.kde.org/stable/fr/kdemultim … x/kmix.pdf

Hors ligne

#3 Le 21/08/2014, à 10:44

Gaara

Re : [résolu] Désactiver le son des notifications en Bash (KMix / XBMC)

Merci metalux, je viens de regarder.
J'ai déjà toutes les entrées, reste à trouver quelle ligne correspond aux notifications.

~$ qdbus org.kde.kmix
/
/KDebug
/MainApplication
/Mixers
/Mixers/PulseAudio__Capture_Devices_2
/Mixers/PulseAudio__Capture_Streams_4
/Mixers/PulseAudio__Playback_Devices_1
/Mixers/PulseAudio__Playback_Devices_1/alsa_output_pci_0000_01_00_1_hdmi_stereo_extra1
/Mixers/PulseAudio__Playback_Streams_3
/Mixers/PulseAudio__Playback_Streams_3/restore_sink_input_by_media_role_event
/Mixers/PulseAudio__Playback_Streams_3/stream_126
/kmix
/kmix/KMixWindow
/kmix/KMixWindow/actions
/kmix/KMixWindow/actions/file_quit
/kmix/KMixWindow/actions/options_show_menubar
/kmix/KMixWindow/actions/options_configure
/kmix/KMixWindow/actions/options_configure_keybinding
/kmix/KMixWindow/actions/launch_kdesoundsetup
/kmix/KMixWindow/actions/hwinfo                                                                                                        
/kmix/KMixWindow/actions/hide_kmixwindow                                                                                               
/kmix/KMixWindow/actions/toggle_channels_currentview                                                                                   
/kmix/KMixWindow/actions/select_master                                                                                                 
/kmix/KMixWindow/actions/save_1                                                                                                        
/kmix/KMixWindow/actions/save_2                                                                                                        
/kmix/KMixWindow/actions/save_3
/kmix/KMixWindow/actions/save_4
/kmix/KMixWindow/actions/load_1
/kmix/KMixWindow/actions/load_2
/kmix/KMixWindow/actions/load_3
/kmix/KMixWindow/actions/load_4
/kmix/KMixWindow/actions/increase_volume
/kmix/KMixWindow/actions/decrease_volume
/kmix/KMixWindow/actions/mute

Je repasse te dire si ça fonctionne, mais ça à l'air d'être une bonne piste !


Kubuntu 18.04 x64
Un terminal tactile Raspberry Pi et Odroid

                                        <code>zenity  --question --title "Alert"  --text "Microsoft Windows has been found! Would you like to remove it?"</code>

Hors ligne

#4 Le 21/08/2014, à 11:17

Gaara

Re : [résolu] Désactiver le son des notifications en Bash (KMix / XBMC)

J'ai déjà trouvé comment couper le master:

qdbus org.kde.kmix /Mixers/PulseAudio__Playback_Devices_1/alsa_output_pci_0000_01_00_1_hdmi_stereo_extra1 volume 0

et pour le remettre à 100%

qdbus org.kde.kmix /Mixers/PulseAudio__Playback_Devices_1/alsa_output_pci_0000_01_00_1_hdmi_stereo_extra1 volume 100

Kubuntu 18.04 x64
Un terminal tactile Raspberry Pi et Odroid

                                        <code>zenity  --question --title "Alert"  --text "Microsoft Windows has been found! Would you like to remove it?"</code>

Hors ligne

#5 Le 21/08/2014, à 11:21

Gaara

Re : [résolu] Désactiver le son des notifications en Bash (KMix / XBMC)

Ah bah c'est bon j'ai trouvé smile

qdbus org.kde.kmix /Mixers/PulseAudio__Playback_Streams_3/restore_sink_input_by_media_role_event volume 0

coupe le son des notifications
Encore merci !


Kubuntu 18.04 x64
Un terminal tactile Raspberry Pi et Odroid

                                        <code>zenity  --question --title "Alert"  --text "Microsoft Windows has been found! Would you like to remove it?"</code>

Hors ligne

#6 Le 21/08/2014, à 11:22

tiramiseb

Re : [résolu] Désactiver le son des notifications en Bash (KMix / XBMC)

Salut,

Tu peux aussi utiliser la commande pactl pour commander directement PulseAudio plutôt que de demander à DBus de dire à KDE de dire à KMix de contrôler PulseAudio... smile

Hors ligne

#7 Le 21/08/2014, à 11:27

Gaara

Re : [résolu] Désactiver le son des notifications en Bash (KMix / XBMC)

Merci tiramiseb, je ne connaissais pas pactl ...
Tous les chemins mènent à Rome tongue


Kubuntu 18.04 x64
Un terminal tactile Raspberry Pi et Odroid

                                        <code>zenity  --question --title "Alert"  --text "Microsoft Windows has been found! Would you like to remove it?"</code>

Hors ligne

#8 Le 21/08/2014, à 12:33

metalux

Re : [résolu] Désactiver le son des notifications en Bash (KMix / XBMC)

Salut tiramiseb,
J'avais pensé à pactl en 1er car je l'utilise déjà pour filtrer des pubs sons indésirables mais je ne voyais pas comment filtrer simplement le son des notifications et dbus m'a semblé plus simple sur le coup. Pour ma culture perso, comment fallait t-il s'y prendre? Ça ne me paraît pas évident.

Hors ligne

#9 Le 21/08/2014, à 12:59

tiramiseb

Re : [résolu] Désactiver le son des notifications en Bash (KMix / XBMC)

Je ne sais pas comment il faut s'y prendre précisément.
Dans la mesure où on a identifié comment faire avec DBus, on peut éventuellement reprendre les infos pour trouver comment faire avec pactl.

Hors ligne

#10 Le 21/08/2014, à 13:47

Gaara

Re : [résolu] Désactiver le son des notifications en Bash (KMix / XBMC)

J'ai regardé un peu, et il semble que pactl ne puisse gérer que le master, ou alsa en général:

~$ pactl list modules
........
Module #5
        Nom : module-alsa-card
        Paramètre : device_id="0" name="pci-0000_01_00.1" card_name="alsa_card.pci-0000_01_00.1" namereg_fail=false tsched=yes fixed_latency_range=no ignore_dB=no deferred_volume=yes use_ucm=yes card_properties="module-udev-detect.discovered=1"
        Nombre d'utilisations : 1
        Propriétés : 
                module.author = "Lennart Poettering"
                module.description = "ALSA Card"
                module.version = "4.0"
........

Le module 5 est le seul qui soit activé chez moi. Pour les autres, (il y a 27 modules en tout) ça dit:

Nombre d'utilisations : n/d

M'enfin j'en sais rien, ça parait encore plus compliqué que d'utiliser DBus

Dernière modification par Gaara (Le 21/08/2014, à 13:48)


Kubuntu 18.04 x64
Un terminal tactile Raspberry Pi et Odroid

                                        <code>zenity  --question --title "Alert"  --text "Microsoft Windows has been found! Would you like to remove it?"</code>

Hors ligne

#11 Le 21/08/2014, à 16:47

metalux

Re : [résolu] Désactiver le son des notifications en Bash (KMix / XBMC)

Gaara a écrit :

J'ai regardé un peu, et il semble que pactl ne puisse gérer que le master, ou alsa en général

Non, je peux t'affirmer que c'est possible de contrôler qu'une application avec pactl en coupant le son de celle-ci tout en laissant le son actif pour tout le reste. C'est l'avantage de pulseaudio qui a pourtant été bien décrié alors que moi je lui trouve des points forts comme ici par rapport à alsa seul.

M'enfin j'en sais rien, ça parait encore plus compliqué que d'utiliser DBus

Sur ce coup-ci, même si tiramiseb n'a pas tord sur le fait qu'on demande à dbus de dire à kmix de contrôler pulseaudio au lieu de le contrôler directement, la mise en place avec pactl me paraît beaucoup plus compliquée.
L'essentiel c'est que ça marche!

Hors ligne

#12 Le 21/08/2014, à 22:15

Gaara

Re : [résolu] Désactiver le son des notifications en Bash (KMix / XBMC)

Oui en fait je pense que j'aurais dû tester la commande avec un son d'une notification en train de jouer, j'aurais pu voir quel autre module était en marche. Mais j'ai la flemme.

L'essentiel c'est que ça marche!

C'est clair.


Kubuntu 18.04 x64
Un terminal tactile Raspberry Pi et Odroid

                                        <code>zenity  --question --title "Alert"  --text "Microsoft Windows has been found! Would you like to remove it?"</code>

Hors ligne

#13 Le 27/08/2014, à 16:59

Gaara

Re : [résolu] Désactiver le son des notifications en Bash (KMix / XBMC)

Bon... je reviens sur ce fil car la commande fonctionne bien, mais XBMC ne veut rien savoir... Les notifications jouent toujours le son.
Voilà mon script:

#! /bin/bash

xrandr --output DVI-D-0 --off  #éteint le second écran
qdbus org.kde.kmix /Mixers/PulseAudio__Playback_Streams_3/restore_sink_input_by_media_role_event volume 0
xbmc
qdbus org.kde.kmix /Mixers/PulseAudio__Playback_Streams_3/restore_sink_input_by_media_role_event volume 100
xrandr --auto --output DVI-D-0 --mode 1440x900 --right-of HDMI-0  # rallume le second écran

Si quelqu'un a une idée pourquoi les sons ne sont pas désactivés.. J'ai regardé le log d'XBMC mais j'ai pas vu grand chose.

Merci


Kubuntu 18.04 x64
Un terminal tactile Raspberry Pi et Odroid

                                        <code>zenity  --question --title "Alert"  --text "Microsoft Windows has been found! Would you like to remove it?"</code>

Hors ligne

#14 Le 27/08/2014, à 19:52

Gaara

Re : [résolu] Désactiver le son des notifications en Bash (KMix / XBMC)

J'ai peut-être une piste:
mini_658546notif.jpg
avec un script du genre

if XBMC runnig then
qdbus org.kde.kmix /Mixers/PulseAudio__Playback_Streams_3/restore_sink_input_by_media_role_event volume 0

On peut tout faire avec KDE !! tongue


Kubuntu 18.04 x64
Un terminal tactile Raspberry Pi et Odroid

                                        <code>zenity  --question --title "Alert"  --text "Microsoft Windows has been found! Would you like to remove it?"</code>

Hors ligne

#15 Le 27/08/2014, à 22:22

metalux

Re : [résolu] Désactiver le son des notifications en Bash (KMix / XBMC)

Utilise pgrep pour tester le processus.
Pour que le pgrep fonctionne, il faut que xbmc soit lancé avant en tâche de fond en ajoutant un esperluette à la fin (&)

xbmc &
pgrep xbmc && qdbus org.kde.kmix /Mixers/PulseAudio__Playback_Streams_3/restore_sink_input_by_media_role_event volume 0

Ajoute éventuellement un sleep le temps que xbmc soit bien lancé avant de lancer le pgrep.
Ça ne serait pas xbmc qui utiliserait également des notifications et qui réactiverait le son à son lancement?
Pour débugger un script, lance le avec la commande bash -x (il existe une chose similaire en python pour trouver ses erreurs?)
Donne moi le retour de ton 1er script avec cette option.

Hors ligne

#16 Le 28/08/2014, à 09:48

Gaara

Re : [résolu] Désactiver le son des notifications en Bash (KMix / XBMC)

Merci pour ton aide,
Si je lance mon script avec bash -x le retour n'est pas très parlant:

~$ bash -x start-XBMC.sh
+ xrandr --output DVI-D-0 --off
+ qdbus org.kde.kmix /Mixers/PulseAudio__Playback_Streams_3/restore_sink_input_by_media_role_event volume 0

+ xbmc
+ qdbus org.kde.kmix /Mixers/PulseAudio__Playback_Streams_3/restore_sink_input_by_media_role_event volume 100

+ xrandr --auto --output DVI-D-0 --mode 1440x900 --right-of HDMI-0

Avec ta proposition, ça donne ça:

~$ bash -x start-XBMC.sh
+ pgrep xbmc
+ xbmc
9822
+ qdbus org.kde.kmix /Mixers/PulseAudio__Playback_Streams_3/restore_sink_input_by_media_role_event volume 0

Mais j'ai trouvé une solution en python en lançant un script.sh.
Le script sh: (je fais comme ça, car lancer le script python directement ne fonctionne pas, et puis c'est la méthode que j'ai trouvé pour écrire un log)

#! /bin/bash

exec >/home/gaara/ver-XBMC.log 2>&1
python /home/gaara/ver-XBMC.py

Le script python: J'utilise le module psutil (trouvé ici) pour détecter si xbmc est lancé.

#!/usr/bin/env python
# coding: utf8

import psutil
import subprocess              # pour lancer la commande shell
from pprint import pprint     # utile pour écrire la liste des applications lisiblement

app = [psutil.Process(i).name for i in psutil.get_pid_list()]
pprint(app)
if "xbmc" in app:
    print "XBMC lancé"
    cmd = "qdbus org.kde.kmix /Mixers/PulseAudio__Playback_Streams_3/restore_sink_input_by_media_role_event volume 0"
    subprocess.call(cmd, shell=True)
else:
    print "XBMC non lancé"

J'entend un tout petit artefact, mais c'est pas gênant, on l'entend à peine.

Sujet résolu à 100% !! (enfin j'espère)


Kubuntu 18.04 x64
Un terminal tactile Raspberry Pi et Odroid

                                        <code>zenity  --question --title "Alert"  --text "Microsoft Windows has been found! Would you like to remove it?"</code>

Hors ligne