Dựa trên các câu trả lời khác và đưa ra hầu hết / tất cả các mảnh ghép nhưng không phải là toàn bộ giải pháp:
- Đảm bảo kiểm tra xem bạn có muốn thiết bị Bluetooth đánh thức máy Mac của bạn không
- Nếu bạn không muốn điều đó, hãy bỏ chọn nó trong tùy chọn hệ thống và kiểm tra xem hành vi không mong muốn có còn tồn tại không (Nó ở
Bluetooth
→ Advanced…
→ Allow Bluetooth devices to wake this computer
)
- Nếu bạn cần / muốn đánh thức máy Mac của mình bằng thiết bị Bluetooth hoặc điều này vẫn xảy ra mặc dù đã tắt tùy chọn, hãy làm theo các bước sau:
Cài đặt chương trình trợ giúp để kiểm tra chế độ ngủ của hệ thống (nếu bạn muốn phân biệt chỉ mở / đóng nắp mà không ngủ Mac, có vẻ như hiện tại không có cách nào dễ dàng - tức là tôi đã không tìm ra cách phát hiện điều đó) và chuyển đổi Bluetooth tùy thuộc vào sự kiện ngủ / thức.
Người trợ giúp phát hiện giấc ngủ / thức (kiểm tra các tùy chọn khác nhau trong bài đăng này):
Xem thêm bài đăng này về " Tự động bật hoặc tắt bluetooth tùy thuộc vào mạng hiện tại (MBP đang chạy Lion) " đề cập đến ControlPlane
Chuyển đổi bluetooth từ tập lệnh:
Đề xuất của tôi: cài đặt blueutil qua homebrew
Chạy blueutil power 0
đi ngủ
Và blueutil power 1
khi thức dậy
Bây giờ về sự đóng góp của tôi cho vấn đề này: Nếu ngủ trưa gây ra sự kiện đánh thức, hãy thử tập lệnh này để đánh thức giữa các lý do đánh thức khác và mở nắp:
#!/bin/bash
limitSec=3
currentEpoch=$(date "+%s")
wakeEpoch=$(cat /var/log/system.log | grep LidOpen | tail -n 1 | date -j -f "%b %d %T" "$(cut -c1-15)" "+%s")
wakeSeconds=$(( $currentEpoch - $wakeEpoch ))
if [[ $wakeSeconds -lt $limitSec ]]; then
logger "Enabling bluetooth again due to lid open"
blueutil power 1
fi
Nó đặt thời gian chờ là 3 giây (giới hạn), lấy thời gian hiện tại và lần thức dậy cuối cùng Wake reason: EC.lidOpen
và nếu đó là ít hơn 3 giây trước, nó sẽ kích hoạt lại Bluetooth