MacBook Airのスリープ時にBluetoothを自動的にオフにする方法

MacBook Airのスリープ時にBluetoothを自動的にオフにする方法

Type
bluetoothMacearphonegadget
Description
Created time
May 9, 2024 12:18 AM
Last edited time
May 12, 2024 7:37 AM

私は日常的にMacBook AirとiPhoneを使用しています。作業中はMacBook Airでバーチャルオフィスに接続し、通勤中や休憩中には音楽を楽しんでいます。最近、マルチペアリング可能なHuawei Free Clipを購入しました。以前使用していたShokz OPENRUN PROの骨伝導イヤホンは音量が小さく、駅や人ごみの中で電話をする際に相手の声が聞こえにくい問題がありましたが、Huawei Free Clipは音量も十分で音質が優れており、着け心地も快適です。一日中つけていても気になりません。しかし、MacBook Airの画面を閉じた後にiPhoneで音楽を再生しようとすると、再生できない問題が発生しました。調査の結果、MacBook Airは画面を閉じてスリープ状態になってもBluetooth接続が維持されることがわかりました。そこで、MacBook Airがスリープ状態になったときにBluetoothを自動的にオフにする設定を行い、問題を解決しました。

必要なツールのインストール

この設定を行うには、SleepWatcherとblueutilの2つのツールが必要です。Homebrewがインストールされている前提で、以下のコマンドでインストールします。

brew install sleepwatcher
brew install blueutil

SleepWatcherは、Macのスリープイベントを監視するためのツールです。blueutilは、コマンドラインからBluetoothを制御するためのツールです。

スリープ時とスリープ解除時のスクリプト作成

SleepWatcherは、デフォルトで以下のパスのファイルを読み込み、ファイルに記載されているコマンドを実行します。

イベント
ファイルパス
スリープ時
~/.sleep
スリープ解除時
~/.wakeup

まず、スリープ時にBluetoothをオフにするスクリプト(~/.sleep)を作成します。

bash/opt/homebrew/bin/blueutil -p 0
~/.sleep

次に、スリープ解除時にBluetoothをオンにするスクリプト(~/.wakeup)を作成します。

bash/opt/homebrew/bin/blueutil -p 1
~/.wakeup

それぞれのスクリプトに実行権限を設定します。

chmod +x ~/.sleep
chmod +x ~/.wakeup

SleepWatcherの起動

最後に、以下のコマンドでSleepWatcherを起動します。

brew services start sleepwatcher

これで、MacBook Airがスリープ状態になったときにBluetoothが自動的にオフになり、スリープ解除時にBluetoothが自動的にオンになるようになります。

この設定は、MacBook Airがスリープ状態になったときにBluetoothをオフにするだけなので、他のデバイスとのペアリングは維持されます。

Huawei Free Clipのようなマルチペアリング対応のイヤホンを使用している場合、MacBook AirのBluetoothがオフになっても、iPhoneとのペアリングは維持されるので、シームレスに音楽を楽しむことができます。

SleepWatcherは、バッテリー消費量が非常に少ないので、常時起動しておいても問題ありません。

以上の手順で、MacBook Airのスリープ時にBluetoothを自動的にオフにすることができます。これにより、マルチペアリング対応のイヤホンを使用している場合でも、スムーズにデバイス間を切り替えて音楽を楽しむことができるようになります。

参考記事