これです
世は正に大リモートワーク時代なのでタッチバーにマイクのミュート操作できるボタン設置した。 pic.twitter.com/FKYD10rrGC
— 2357gi (@2357gi) May 7, 2020
td;dr
リモートワークによりマイクを使う場面が増えた昨今ですが、
マイクのミュートって咄嗟に行いたい割には通話アプリを開いて(前面に持ってきて)ミュートボタンを押したり
となかなか面倒くさいですよね。
どうにか簡単にミュートができないかなと考えた末タッチバーにいい感じのものを実装することができたので解説したいと思います。
上記の動画のようにワンタップでシステムの入力音量を変更し、ミュート
/ ミュート解除
を行うことができます。
欠点として入力音量をゼロにすることによりミュートを実現しているので、zoom等で自分がミュートにしていることが相手に伝わらないという点が挙げられますのでご注意ください。
google meetはシステムの入力音量監視していて、入力音量ゼロになったらミュートアイコンが表示されるのでmeetで通話するのであれば問題ないですが...!!
zoomで使用する場合もzoom側で音量の自動調節設定を外す必要があります。
必要なもの
- タッチバー付きmacbook
-
BetterTouchTool
タッチバーやタッチパッドなどを拡張するツール。30日間のトライアルあり。
ここでは導入方法を解説しません。
実装
下ごしらえ
AppleScriptと、BetterTouchToolの機能である任意の条件でAppleScriptを実行する機能とAppleScriptの実行結果をタッチバーに表示する機能を使用します。
まずはBetterTouchToolを起動し、全てのアプリでタッチバーボタン/ウィジェットの追加を行います。
追加するものはAppleScript / JavaScript Widget
です。バージョンによって翻訳されていたりするかもしれません。
Widget Identifier
欄にこのウィジェットの適当な名前をつけておきましょう。
これは、AppeScript/JavaScriptを実行し、実行結果をタッチバーに表示するというウィジェットです。
ここではAppleScriptを用いてシステムの入力音量を取得し、ミュートかどうかをウィジェットとして表示したいのですが、
まずは本質であるタップするとミュート/ミュート解除が行われるを実装したいと思います。
先ほど作成したウィジェットをタップするとミュート/ミュート解除をトグルするようにする
真ん中のカラムより、アクションの追加を行います。
タップすると発火されるものです。
追加するアクションはAppleScriptを実行する
というものです。
実行するAppleScriptはこちらです。
set inputVolume to input volume of (get volume settings)
if inputVolume = 0 then
set inputVolume to 100
else
set inputVolume to 0
end if
set volume input volume inputVolume
return
入力音量を拾ってきて、0であれば100に、100であれば0に変更するものです。
せっかくなのでトグルをmacの通知で教えてくれるようにしましょう。
set inputVolume to input volume of (get volume settings)
if inputVolume = 0 then
set inputVolume to 100
set displayNotification to "Microphone active"
else
set inputVolume to 0
set displayNotification to "Microphone muted"
end if
set volume input volume inputVolume
display notification displayNotification
いいですね。これでタッチバーボタンを押すだけでミュート/ミュート解除ができるようになりました。
ミュートしているかどうかを(かっこよく)表示する
ミュートしているかどうかは常時サッと見れるようにしておきたいですよね。
というわけで先述したAppleScript/JavaScript Widget
を用いて状態を表示してみたいと思います。
AppleScript/JavaScript Widget
の設定画面に戻り、AppleScriptを変更します。
set inputVolume to input volume of (get volume settings)
if inputVolume = 0 then
set status to "active"
else
set status to "mute"
end if
return status
これでactive/muteが表示されるようになりました。
しかしこれではわかりにくいですね。背景を変えて、さらに状態をアイコンでも表現するようにしてみましょう。
代替カラー正規表現:
に先ほどのapplescriptでミュートにした際に表示される文字列とマッチする正規表現を入力します。
ここではmute
とします。
次に、ウィジェット固有|一般
のボタンから一般の設定を開き、背景色と代替背景色、アイコンと代替アイコンを設定します。
お好みでアイコンのみ表示
のチェックも入れるとアイコンと背景色だけでスッキリしていい感じです。
まとめ
これでタッチバーにミュートのトグルボタンを設置できたはずです、おめでとうございます!
ちなみに、デフォルトのタッチバーはESCボタンが小さかったり、いまいち使いにくいですよね。
しかし、BetterTouchToolを用いることによってESCボタンをおっきくすることもできますし、
長押しで別の挙動をあてがうこともできますし、shellscript ウィジェットを使ってssidを表示させたりすることもできます!
タッチバーをいじるのは結構楽しいので是非ともやってみてください...!!
ESCおっきくしたり、SSID表示させたりするのはこちら...
お前らのタッチバーはダサい