जब हेडफ़ोन काट दिया जाता है तो किस कोड को निष्पादित किया जाता है?


9

मैं हेडफ़ोन डिस्कनेक्ट पर एक स्क्रिप्ट निष्पादित करना चाहता हूं, लेकिन मैं स्थिति के निरंतर मतदान के विचार से नाराज हूं जब इसे बदलने पर पहले से ही कुछ कोड निष्पादित होता है।

जवाबों:


9

अधिकांश प्रणालियों में यदि सभी नहीं हैं, तो एसीपीआई इस घटना को संभाल सकता है। परीक्षण करने के लिए कि:

  1. Daud acpi_listen
  2. अनप्लग और रिप्ले हेडफ़ोन, उदाहरण आउटपुट: (मेरे लैपटॉप पर एक ही जैक में माइक / कान का हिस्सा)

    jack/headphone HEADPHONE unplug
    jack/microphone MICROPHONE unplug
    jack/headphone HEADPHONE plug
    jack/microphone MICROPHONE plug
    
  3. में डाल your-script.shदिया/etc/acpi/

  4. में अपनी स्क्रिप्ट के लिए एक घटना ट्रिगर फ़ाइल जोड़ें /etc/acpi/events/

    event=jack/headphone HEADPHONE unplug
    action=/etc/acpi/your-script.sh
    

    से जानने के लिए वहाँ अन्य फ़ाइलों की जाँच करें।

  5. आपको acpidबदले हुए नियमों को पुनः लोड करने के लिए सेवा को पुनरारंभ करना पड़ सकता है/etc/acpi/events/

    sudo service acpid restart
    

संदर्भ: man acpid


अब मुझे सिर्फ यह पता लगाना है कि एसीपीआई स्क्राइब से डब का काम कैसे किया जाए, लेकिन यह एक अलग सवाल है।
int_ua

2
@int_ua आपको DBUS_SESSION_BUS_ADDRESSअपने होमडायर में एक स्क्रिप्ट के साथ शुरू की गई स्क्रिप्ट के साथ environ चर लिखना होगा ~/.config/autostart/dbus.desktop। तो फिर तुम चला सकते हैं su YOURUSER -c "DBUS_SESSION_BUS_ADDRESS=$(cat ~/.dbus_address) amixer ......."से/etc/acpi/your-script.sh
Germar

अरे, मैंने एक स्क्रिप्ट लिखी थी एक अधिसूचना दिखाने के लिए। जैसा आपने कहा वैसा ही फॉलो किया। मेरी स्क्रिप्ट प्लग-ईवेंट पर सूचना-भेजें "हेडफ़ोन कनेक्टेड" निष्पादित करती है। यह काम करने के लिए प्रतीत नहीं होता है। askubuntu.com/questions/877804/…
thewebjackal

1

आपकी स्क्रिप्ट के वर्तमान संस्करण में अब एक sleep 0.25कमांड है।

sleepसोते समय किसी भी प्रसंस्करण चक्र का उपयोग नहीं करता है ... टाइमर आधारित है ...

यह टाइमर सेट करने के लिए सीपीयू का एक बहुत छोटा सा उपयोग करता है, लेकिन sleep 1(1 सेकंड नींद), sleep 60(एक मिनट के लिए नींद) और sleep 86400(एक दिन के लिए नींद) सभी एक ही नंबर सीपीयू चक्र का उपयोग करते हैं।

ACPI का उपयोग करना हालांकि सही समाधान है क्योंकि ACPI मतदान-चालित के बजाय घटना-चालित है।

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