AirMac のオン・オフをキーボード,もしくは自動で切り替える方法

AirMac

Mac ユーザーの方はよく知っているかもしれませんが, Mac には AirMac という無線LANシステムがあります.このオン・オフにはメニューバーをクリックして操作するのが(たぶん)一般的ですが,このわずか5秒程度の操作が煩わしいと昔から感じていました.全部キーボードで操作できないからです.これらをキーボードから操作する方法や,自動でオン・オフを切り替えられるようにする方法を日本語で解説しているサイトがなかった(と思う)ので備忘録として記しておきます.ちなみに AirMac をキーワードに使っても海外のサイトはヒットしません.実は

世界的には「AirPort」の名称で発売されているが、日本では関西電機によりすでに「AirPort」の名称が商標登録されていたことから、日本では「AirMac」の名称で発売されている。

http://ja.wikipedia.org/wiki/Airmac

という事実があって出てこないのです.海外のサイトで情報を調べたいときは AirPort をキーワードに使うことをおすすめします.

AppleScript

まず AppleScript があります.ランチャー(QuickSilver,Launchbar,Alfred,Auftakt,etc)を用いればキーボードだけで操作できます.

「AirPort AppleScript」で調べると案外すぐに見つかります.GitHub - andrewheiss/AirPort-Toggle: Script that either enables or disables the Wi-Fi connection in OS X 10.7. Best when used with a global shortcut key, like with Quicksilver.にあるやつを使えば簡単にできます.

使い方も簡単で実行すると AirMac のオン・オフの状態をトグルしてくれます.しかも Growl で表示までしてくれます.素晴らしいです.

仕組み

誰も興味ないであろうし,そもそも中身は難しくないので見りゃわかるって言われそうですが,一応解説します.まず,

set airport_status to do shell script "/usr/sbin/networksetup -getairportpower AirPort"

AirMac のオン・オフの状態を調べ,結果を変数に保存します.次にその結果がオンだった時は

do shell script "/usr/sbin/networksetup -setairportpower AirPort off"

オフだったときは

do shell script "/usr/sbin/networksetup -setairportpower AirPort on"

を実行して切り替えています.最後に結果に応じて Growl のメッセージを表示しているだけです.

自動切り替え

しかしそもそもこのオン・オフを操作する機会はあまりありません.普通に使っていればイーサーネットケーブルを挿したり抜いたりした時だけです.じゃあイーサーネットを抜いたり挿したりを監視して自動でオン・オフが変わるようにすればいいという発想に至ります.実はそれを実現する方法があります.以下でその手順を解説します.

  1. Toggle Airport.dmg からファイルをダウンロード
  2. ダウンロードしたファイルを開いて"Toggle Airport.mpkg"を実行

これはそもそもAuto-disable AirPort when ethernet is active - Mac OS X Hintsを参考にしています.このサイトではこれで完了と書いてあります.しかし僕の環境(MacOS 10.6.7)ではさらにコマンドラインから,

$ sudo launchctl load /System/Library/LaunchAgents/com.mine.toggleairport.plist

をする必要がありました.

これだけやっておけばもう完璧です.イーサーネットケーブル周りをいじると数秒遅れで AirMac の状態を適切な状態に切り替えてくれます.今のところそのような症状はでていませんが,上手く動作しなかったり,望んでいない動きをしたら前述の AppleScript を実行すればいいだけです.

さらに AirMac 周りを快適にする方法があれば是非教えてください.