मैं डबस सिग्नल पर स्क्रिप्ट कैसे चला सकता हूं?


13

क्या मनमाना डबस सिग्नल पर स्क्रिप्ट चलाना संभव है? उपस्टार्ट की तरह कुछ जो एक अनपेक्षित उपयोगकर्ता के रूप में चलता है और संशोधित करने के लिए रूट परमिट की आवश्यकता नहीं होती है?

मैं पूछता हूं क्योंकि मैंने पहले से ही एक मूर्खतापूर्ण स्क्रिप्ट लिखी है जो ब्लूटूथ संगीत के लिए मेरे संगीत खिलाड़ी को शुरू करने के लिए इंतजार करती है । अब मैं ऐसा ही कुछ करना चाहता हूं जब मेरी मशीन विशिष्ट नेटवर्क से जुड़ती है, या अन्य उपकरण संलग्न होते हैं।

संपादित करें: मेरे मूल प्रश्न ने इसे निर्दिष्ट नहीं किया था, लेकिन मेरा मतलब था "घटनाओं के एक सेट के साथ कई लिपियों को संबद्ध करना" - इसलिए मेरे पास एक ही लॉन्चर-वाई चीज़ (जैसे अपस्टार्ट) होगी जो कई लिपियों का प्रबंधन करती है , जिनमें से प्रत्येक को एक अलग डब सिग्नल के बारे में परवाह है। सभी उपयोगकर्ता अंतरिक्ष में।


हो सकता है कि यह ठीक वैसा न हो, जैसा आप खोज रहे हैं, लेकिन जब आपने ऊपर की बात की तो मेरे दिमाग में यह बात कौंधी। आप सिस्टमड के साथ स्क्रिप्ट को ट्रिगर कर सकते हैं । मुझे यकीन नहीं है कि किस प्रकार की इकाई आपके ब्लूटूथ डिवाइस को बनाती है, लेकिन मुझे लगता है कि एक है।
sumid

जवाबों:


16

आपको चाहिए dbus-monitor

स्क्रिप्ट कुछ इस तरह दिखाई देगी

#!/bin/bash

interface=org.gnome.Rhythmbox.Player
member=playingUriChanged

# listen for playingUriChanged DBus events,
# each time we enter the loop, we just got an event
# so handle the event, e.g. by printing the artist and title
# see rhythmbox-client --print-playing-format for more output options

dbus-monitor --profile "interface='$interface',member='$member'" |
while read -r line; do
  printf "Now playing: "
  rhythmbox-client --print-playing
done

से लिया stackoverflow

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.