LoginSignup
8
8

More than 1 year has passed since last update.

タッチバーにワンタップでマイクのミュート/ミュート解除ができるボタンを作る

Last updated at Posted at 2020-05-08

これです

td;dr

リモートワークによりマイクを使う場面が増えた昨今ですが、
マイクのミュートって咄嗟に行いたい割には通話アプリを開いて(前面に持ってきて)ミュートボタンを押したり
となかなか面倒くさいですよね。
どうにか簡単にミュートができないかなと考えた末タッチバーにいい感じのものを実装することができたので解説したいと思います。

上記の動画のようにワンタップでシステムの入力音量を変更し、ミュート / ミュート解除を行うことができます。
欠点として入力音量をゼロにすることによりミュートを実現しているので、zoom等で自分がミュートにしていることが相手に伝わらないという点が挙げられますのでご注意ください。

google meetはシステムの入力音量監視していて、入力音量ゼロになったらミュートアイコンが表示されるのでmeetで通話するのであれば問題ないですが...!!

zoomで使用する場合もzoom側で音量の自動調節設定を外す必要があります。

必要なもの

  • タッチバー付きmacbook
  • BetterTouchTool
    タッチバーやタッチパッドなどを拡張するツール。30日間のトライアルあり。
    ここでは導入方法を解説しません。

実装

下ごしらえ

AppleScriptと、BetterTouchToolの機能である任意の条件でAppleScriptを実行する機能とAppleScriptの実行結果をタッチバーに表示する機能を使用します。
まずはBetterTouchToolを起動し、全てのアプリでタッチバーボタン/ウィジェットの追加を行います。
追加するものはAppleScript / JavaScript Widgetです。バージョンによって翻訳されていたりするかもしれません。
Widget Identifier欄にこのウィジェットの適当な名前をつけておきましょう。

スクリーンショット 2020-05-08 23.47.38.png

これは、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を表示させたりすることもできます!
Touch Barショット 2020-05-09 0.15.05.png

タッチバーをいじるのは結構楽しいので是非ともやってみてください...!!

ESCおっきくしたり、SSID表示させたりするのはこちら...
お前らのタッチバーはダサい

8
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
8