【switchaudio-osx】shellコマンドでオーディオ出力を切り替える【Mac】

shell


カタカタカタ・・・

マイケル
マイケル
〜〜〜〜♪♪

ヘッドホン「〜〜〜♪♪」

エレキベア
エレキベア
今日もヘッドホン付けて作業クマか
マイケル
マイケル
・・・ん???
エレキベア
エレキベア
腹立つクマね〜〜〜
聞こえてなかったクマか
マイケル
マイケル
ごめんごめん!
スピーカーに変えるかな〜・・・。
\ポチッ/
Screenshot 2020 10 28 23 59 02
Screenshot 2020 10 28 23 59 27
\ポチッ/
Screenshot 2020 10 29 0 03 35

アレクサ「〜〜〜♪♪」

エレキベア
エレキベア
・・・。
マイケル
マイケル
これ毎回変えるのめんどくさいよね〜〜〜
エレキベア
エレキベア
自動化するクマ
マイケル
マイケル
???
エレキベア
エレキベア
自動化するクマ!!!
マイケル
マイケル
うお!びっくりした!!
自動化好きなクマだな〜〜〜〜〜
エレキベア
エレキベア
めんどくさいことは全て自動化するクマよ
マイケル
マイケル
でも確かにこのめんどくささはどうにかしたいかも・・・!
いっちょやったるか!!
エレキベア
エレキベア
やったるクマ〜〜〜!!
スポンサーリンク

shellコマンドでの切替

マイケル
マイケル
というわけで調べてみたところ、
MACでは「switchaudio-osx」を使うことで
簡単にオーディオ出力を変更できることがわかりました!
マイケル
マイケル
これを使えばわざわざシステム環境設定を開かなくても
出力を変えることができるかもしれません!
エレキベア
エレキベア
これでイライラせずにすむクマ〜〜〜〜
マイケル
マイケル
さっそく使ってみよう!!
エレキベア
エレキベア
やったるクマ!!

switchaudio-osx のインストール

マイケル
マイケル
まずはbrewコマンドで「switchaudio-osx」をインストールします!
brew install switchaudio-osx
エレキベア
エレキベア
簡単1コマンドクマ〜〜〜〜

switchaudio-osx の使い方

マイケル
マイケル
switchaudio-osx の使い方は下記になります!
・リスト取得コマンド
SwitchAudioSource -a
・接続コマンド
SwitchAudioSource -t output -s "【接続デバイス名】"
Screenshot 2020 10 29 0 13 59
マイケル
マイケル
まずは出力可能なデバイスのリストを確認して・・・
Screenshot 2020 10 29 0 14 16
マイケル
マイケル
接続したいデバイスを記述!
マイケル
マイケル
こんな感じで出力を切り替えることができます!
エレキベア
エレキベア
これは期待通りのコマンドクマね

スクリプトの作成

マイケル
マイケル
このコマンドを使って、
選択肢から数字で選んで切り替えるスクリプトを作成してみました!
#!/bin/bash

select output in "【接続デバイス名1】" "【接続デバイス名2】" "【接続デバイス名3】"
do
  if [ -z "$output" ]; then
    echo "<-- No Device -->"
    break
  fi
  echo "<--Switch $output -->"
  SwitchAudioSource -t output -s "$output"
  echo "<-- Complete -->"
  break
done

# 終了待機
sleep 3
マイケル
マイケル
「【接続デバイス名】」のところは各自の環境に合わせて書き換えてくださいね!
マイケル
マイケル
実行結果は以下になります!
Screenshot 2020 10 29 0 22 07
↑接続したいデバイスが表示される
Screenshot 2020 10 29 0 22 17
↑接続したいデバイスを選ぶと切り替わる
エレキベア
エレキベア
これで少し使いやすくなったクマね
マイケル
マイケル
いちいち環境設定開くよりはこっちのが気持ちは楽だね!

ショートカットキーでの切替

マイケル
マイケル
しかしもう一歩踏み込んで、
ショートカットキーで切り替えれるようにしてみましょう!
エレキベア
エレキベア
そんなことができるクマ?
マイケル
マイケル
Macには標準で「Automator」というアプリが入っていて、
シェルコマンドの実行などをサービスとして登録することができるんだ!
マイケル
マイケル
Automatorで作ったサービスをショートカットキーに登録することで、
いつでも呼び出すことができるというわけさ!
エレキベア
エレキベア
なるほどクマ・・・!
それはうまく使えば可能性は無限大クマね
マイケル
マイケル
さっそく作ってみよう!!

Automatorでのサービス作成

マイケル
マイケル
まずはAutomatorでサービスを作りましょう!
Screenshot 2020 10 29 0 30 02
マイケル
マイケル
Automatorは「その他」の中から起動します。
Screenshot 2020 10 29 0 30 35
マイケル
マイケル
起動したら 新規作成 -> クイックアクション でサービスを作成します!
Screenshot 2020 10 29 0 33 49
マイケル
マイケル
ワークフローが受け取る項目: 入力なし
を選択して、左側のアクションから シェルスクリプトを実行 を追加します!
マイケル
マイケル
そして下記スクリプトを記述します!
export PATH=$PATH:/usr/local/bin
SwitchAudioSource -t output -s "【接続デバイス名】"
エレキベア
エレキベア
オーディオ切り替えのスクリプトを登録しているクマね
マイケル
マイケル
その通り!
それとAutomatorのシェル実行では、インストールしたコマンドは読み込まれないため
exportコマンドの記述も忘れないようにしましょう!
エレキベア
エレキベア
承知クマ〜〜〜
マイケル
マイケル
あとはこのサービスを保存して、
切り替えたいデバイスの数だけサービスを作成しましょう!

ショートカットキー登録

マイケル
マイケル
サービスを作成したらあとはショートカットキーを登録するだけ!
システム環境設定 -> キーボード -> ショートカット
を開くと、先ほど登録したサービスが並んでいるはずです!
Screenshot 2020 10 29 0 31 49
マイケル
マイケル
上記のように登録したいショートカットキーに選択しましょう!
エレキベア
エレキベア
できたクマ〜〜〜〜!!
マイケル
マイケル
他のショートカットキーと被らないよう、
なるべく複雑なキーを設定するといいでしょう
エレキベア
エレキベア
あまり複雑なキーだと面倒だから悩みどころクマね

おわりに


ヘッドホン「〜〜♪♪」

マイケル
マイケル
ポチッ

アレクサ「〜〜〜♪♪」

エレキベア
エレキベア
だいぶ楽になったクマね
マイケル
マイケル
コマンド一つで変えれるのはいいね!
自分で仕組みを作ったとなるとなおさら使ってみたくなるしね〜〜
エレキベア
エレキベア
やはり自動化は最高クマ・・・
マイケル
マイケル
(いつから自動化にハマったんだ・・・)
マイケル
マイケル
とりあえず今日はこの辺で!
アデュー!!!
エレキベア
エレキベア
自動化クマ・・・・・。。

【shell】ショートカットキーでオーディオ出力を切り替える【MAC】 〜完〜

コメント