見出し画像

【Mac】Pauseキーでサウンド出力先を切り替えるまで【備忘録】

はじめに

大変お久しぶりです!もりさんこと藻梨胤河です!
気付いたらVtuberとして活動して一年以上経過しました!

配信や作業周りの環境を整える中で、最近はYoutubeのガジェット紹介動画で見つけたとっても可愛いキーボード、
YUNZII C75 Cake Meow Wireless Mechanical Keyboard をMacに繋いで愛用しています!

しかし、US配列の75%キーボードを使っていると、PauseキーやPrintScreenキーなど、Mac非対応のキーが結構あります。
こんなに可愛いのに使わないキーがあるなんて勿体無い…

そこで!今回はその Pauseキー を使って、

  • USB無線ヘッドセット

  • 外付けモニター経由のスピーカー

この 2つのサウンド出力先をキーボード操作で切り替える ことを目標にしました!

※一連の作業とこの記事の一部はchatGPTを使用しています


全体の仕組みについて

今回の構成は、次の3つを組み合わせています。

  • SwitchAudioSource
    → サウンド出力先を切り替えるためのコマンドラインツール

  • Macのショートカット app
    → ターミナルコマンドをまとめて実行する

  • Karabiner-Elements
    → Pauseキーを、ショートカット用のキー操作に変換する

それぞれ単体では出来ないことを、役割分担させる形です。

まずはKarabinerをダウンロード、インストールしましょう。


① Karabiner 初回起動時の注意点(最初につまずいたところ)

Karabiner を初めて起動すると、
「必要な権限を付与してください」という内容の、英語のポップアップが表示されます。

必ず確認する場所

設定 → プライバシーとセキュリティ → 入力監視

ここに、以下 2つを両方 追加します。

  • Karabiner-Core-Service.app

  • Karabiner-EventViewer.app

私は最初、
Karabiner-EventViewer.app を入れ忘れたまま作業を進めてしまい
途中からキー操作が反映されず、原因の切り分けにかなり時間がかかりました。

最初にここを確認しておくことがとても大切です。


② Karabinerで出来ること・出来ないこと

Simple Modifications

  • 「AのキーをBのキーに置き換える」といった単純な変更

  • 今回のように

    • 複数キーの組み合わせ

    • 特定のアプリ操作をトリガーにする
      といった用途には向いていません

Complex Modifications

  • より複雑なキー変換が可能

  • JavaScript形式の設定ファイルを使用します

  • 基本的な流れは

    1. ブラウザから既存ルールをインポート

    2. 必要に応じて内容を編集

JavaScriptを一から書く必要はありませんが、
「どこがキー指定なのか」程度は把握しておくと安心です。


③ Homebrew の確認とインストール

SwitchAudioSource は Homebrew 経由で導入します。

Homebrew が入っているか確認

brew --version

エラーが出る場合は、未インストールの可能性が高いです。

Homebrew のインストール

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

「入れた記憶がない」場合は、ほぼ入っていないと思って確認した方が安心です。


④ SwitchAudioSource のインストール

Homebrew が使える状態になったら、以下を実行します。

brew install switchaudio-osx

⑤ サウンドデバイス名の確認

まず、Macが認識しているサウンド出力先を一覧で確認します。

SwitchAudioSource -a

ここに表示される 名前をそのまま使う ことが重要です。

私の環境では、以下の2つを使いました。

  • USB無線ヘッドセット

  • 外付けモニター(スピーカー)


⑥ 実際に使用した切り替えコマンド

以下が、実際に使用して問題なく動作したコマンドです
(※改変せずそのまま掲載しています)。

SwitchAudioSource -s "HyperX Cloud Stinger Core (Wireless) – PS"
SwitchAudioSource -s "ASUS VZ27EHE"

この時点で、

  • ターミナルから手動実行

  • 音声出力が確実に切り替わる

ことを必ず確認しておきます。


⑦ サウンド出力を切り替える「切り替え用スクリプト」を作る(長め)

ターミナルから直接コマンドを打つだけでも切り替えは可能ですが、
キー操作で扱いやすくするため、切り替え専用のスクリプトを作成します。

今回は、

  • 現在のサウンド出力先を取得

  • どちらが使われているか判定

  • もう一方に切り替える

という流れのシェルスクリプトを使用しました。


現在のサウンド出力先を確認(再確認)

念のため、使用するデバイス名をもう一度確認します。

SwitchAudioSource -a

この一覧に表示される 表記をそのまま 使用します。
私の環境では、以下の2つでした。

  • HyperX Cloud Stinger Core (Wireless) – PS

  • ASUS VZ27EHE


切り替え用スクリプトを作成

次に、toggle_audio.sh という名前でファイルを作成します。

nano ~/toggle_audio.sh

スクリプトの中身(そのまま使用した内容)

以下を そのまま貼り付けます
(※デバイス名も、実際に使用した表記のままです)。

#!/bin/bash

CURRENT=$(SwitchAudioSource -c)

HEADSET="HyperX Cloud Stinger Core (Wireless) – PS"
SPEAKER="ASUS VZ27EHE"

if [ "$CURRENT" = "$HEADSET" ]; then
  SwitchAudioSource -s "$SPEAKER"
else
  SwitchAudioSource -s "$HEADSET"
fi

貼り付けたら、

  • Ctrl + O → Enter(保存)

  • Ctrl + X(終了)


スクリプトに実行権限を付与

このままでは実行できないため、権限を付けます。

chmod +x ~/scripts/toggle_audio.sh

スクリプト単体で動作確認

以下を実行し、
サウンド出力が交互に切り替わるかを確認します。

~/scripts/toggle_audio.sh

ここで正常に切り替われば、
スクリプト自体は完成です!


ショートカット app から実行する設定

Macのショートカット app で、

  1. 新規ショートカットを作成

  2. 「シェルスクリプトを実行」アクションを追加

  3. 実行内容に以下を記述

~/scripts/toggle_audio.sh

この時点で、
ショートカットを手動実行すると切り替わることを確認します。


補足

  • ターミナル

  • スクリプト

  • ショートカット app

この 3段階すべてで動作確認をしておくと、
後から Karabiner 側の切り分けがとても楽になります。


⑧ Macのショートカット app(ここも結構迷いました)

ショートカット app で、

  • 「シェルスクリプトを実行」アクションを追加

  • 上記のコマンドを登録

ここまでは問題なく進みました。

ただし、キー割り当ての画面があまり直感的ではありません

実際に動作したスクリーンショット

気づいたこと

  • Macの ファンクションキー(F13〜F19など) はショートカットの起動条件として不安定

  • Karabinerでは反応していても、実際にはショートカットが実行されないことがありました


⑨ 解決策:Pauseキーを「変なキーの組み合わせ」にする

最終的にうまくいった方法は、

・Pauseに単体のキーではなく複数キーを割り当てる

というやり方です。

考え方

  • 単体キーは誤爆しやすい

  • 配信中などに勝手に切り替わると困る

そのため、
普段絶対に押さないキーの組み合わせを使うことにしました。

  • Control + Shift+ Command + P

設定の流れ

  1. Karabiner(Complex Modifications)で
    Pauseキー → Control + Shift + Command + P

  2. ショートカット app 側で
    起動条件を Control + Shift + Command + P に設定

この方法で、
Pauseキーを押した時だけサウンド出力が切り替わる 状態になりました。


⑨ まとめ

  • ターミナルのコマンド自体は最初から正しかった

  • つまずきやすいポイントは

    • Karabinerの権限設定

    • ショートカット app とファンクションキーの相性

  • キー設計を工夫することで、安定して動作するようになった


おわりに

Mac非対応キーは、少し手を加えるだけでとても便利になります!
ゲーミングキーボードなど、Macで外付けのキーボードを活用したい方も多いはず…

同様にPrintscreenキーもMac上でのスクリーンショット機能を割り当てる事が出来ました!(Karabinerだけで実行可能!こちらは参考記事が多いので割愛)
使いこなせればゲームやアプリでよく使う機能も割り当て出来そうだなと感じました。やったぜ!

特に配信や作業環境では、「誤動作しない設計」にするのも重要ですよね…!

同じところで悩んでいる方の参考になれば幸いです!サンクス!

参考記事


いいなと思ったら応援しよう!