Mã nào được thực thi khi tai nghe bị ngắt kết nối?


Câu trả lời:


9

Trong hầu hết các hệ thống nếu không phải tất cả, ACPI có thể xử lý sự kiện này. Để kiểm tra rằng:

  1. Chạy acpi_listen
  2. Rút phích cắm và cắm lại tai nghe, ví dụ đầu ra: (mic / tai chia sẻ cùng một giắc cắm trên máy tính xách tay của tôi)

    jack/headphone HEADPHONE unplug
    jack/microphone MICROPHONE unplug
    jack/headphone HEADPHONE plug
    jack/microphone MICROPHONE plug
    
  3. Đưa your-script.shvào/etc/acpi/

  4. Thêm tệp kích hoạt sự kiện cho tập lệnh của bạn trong /etc/acpi/events/

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

    Kiểm tra các tập tin khác ở đó để học hỏi.

  5. Bạn có thể cần phải khởi động lại acpiddịch vụ để tải lại các quy tắc đã thay đổi trong/etc/acpi/events/

    sudo service acpid restart
    

Tài liệu tham khảo: man acpid


Bây giờ tôi chỉ cần tìm ra cách làm cho dbus hoạt động từ các tập lệnh ACPI, nhưng đó là một câu hỏi khác.
int_ua

2
@int_ua bạn cần ghi DBUS_SESSION_BUS_ADDRESSbiến môi trường vào một tệp trong homedir của bạn với một tập lệnh bắt đầu bằng ~/.config/autostart/dbus.desktop. Sau đó, bạn có thể chạy su YOURUSER -c "DBUS_SESSION_BUS_ADDRESS=$(cat ~/.dbus_address) amixer ......."từ/etc/acpi/your-script.sh
Germar

Này, tôi đã viết một kịch bản để hiển thị một thông báo. Thực hiện theo chính xác những gì bạn nói. Kịch bản của tôi thực thi thông báo gửi "Tai nghe được kết nối" trong sự kiện cắm. BUt nó dường như không hoạt động. Askubfox.com/questions/877804/ trộm
thewebjackal

1

Phiên bản hiện tại của tập lệnh của bạn hiện chứa một sleep 0.25lệnh.

sleeplà dựa trên bộ đếm thời gian nên không sử dụng bất kỳ chu trình xử lý nào khi ngủ ngủ

Nó sử dụng một chút CPU rất nhỏ để thiết lập bộ hẹn giờ, nhưng sleep 1(ngủ 1 giây), sleep 60(ngủ trong một phút) và sleep 86400(ngủ trong một ngày) đều sử dụng cùng một chu kỳ CPU.

Tuy nhiên, sử dụng ACPI là giải pháp hoàn hảo vì ACPI được điều khiển theo sự kiện thay vì theo hướng bỏ phiếu.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.