হেডফোন সংযোগ বিচ্ছিন্ন হয়ে গেলে কোন কোডটি কার্যকর করা হয়?


9

আমি হেডফোন সংযোগ বিচ্ছিন্ন করার জন্য একটি স্ক্রিপ্ট সম্পাদন করতে চাই তবে ইতিমধ্যে যখন কিছু কোড পরিবর্তন করা হয় তখন এটি কার্যকর করা হয় এমন স্থিতির ধ্রুবক পোলিংয়ের ধারণাটিকে আমি অসন্তুষ্ট করি ।

উত্তর:


9

বেশিরভাগ সিস্টেমে সমস্ত না থাকলে এসিপিআই এই ইভেন্টটি পরিচালনা করতে পারে। এটি পরীক্ষা করার জন্য:

  1. চালান 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
@ আইট_আউ আপনাকে আপনার হোমডিরের DBUS_SESSION_BUS_ADDRESSএকটি ফাইলের সাথে এনভায়রন ভেরিয়েবল লিখতে হবে যার মাধ্যমে একটি স্ক্রিপ্ট শুরু হয়েছিল ~/.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 সংক্রান্ত যেমন সমাধান ঘটনা-চালিত পরিবর্তে পোলিং চালিত হয়।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.