Ubuntu WaylandでVRChatのミュートをいつでも切り替えられるようにする
問題
VRChatにフォーカスが当たっていない状態でも、Discordなどのようにホットキーやショートカットを用いてミュートを切り替えたい。
方針
Windows向けにはホットキーでミュートを切り替えられるツールが多数存在しますが、LinuxのWayland環境では他のソフトがキーを監視することは難しいです。なので、Ubuntu標準のカスタムキーボードショートカットからコマンドを実行する形で実現しようと思います。
- キーボードショートカットからコマンド実行
- OSC送信
- VRChatのミュートが切り替わる
という形を目指します。Windowsでやるよりシンプルかも?
実施環境
- Ubuntu Desktop 26.04 LTS
- GNOME Shell 50.1
- VRChat on Proton-RTSP-11.0-20260609-1
- VRChatのマイク設定はToggle (PTTは難しいと思う)
セットアップ
OSCをCLIから送れるツールを入れる
liblo-toolsというパッケージにoscsendという一行で簡単にOSCメッセージを送信できるコマンドがあるので、ありがたく使わせてもらうことにします。
sudo apt update
sudo apt install liblo-tools
カスタムショートカットを追加する
設定アプリから、キーボード、ショートカットの表示とカスタマイズと進み、カスタムショートカットを追加します。
名前とショートカットは好きなものに設定して、コマンドの部分を以下のように変更します。もし起動引数でOSCのポートを変えている場合は9000番のところを変えてください。
/bin/bash -lc 'oscsend 127.0.0.1 9000 /input/Voice T; sleep 0.1; oscsend 127.0.0.1 9000 /input/Voice F'
このコマンドは、VRChatの/input/VoiceにTrueを送ってからすぐFalseを再送するだけです。これでミュートが1回切り替わります。
VRChatでOSCを有効にする
VRChatのExpressionsメニューから、オプション、OSCと進み、有効にします。
これでセットアップは完了です。
使ってみよう
確認のために、Waylandにネイティブ対応している他のアプリにフォーカスを当てた状態で、設定したショートカットを実行してみましょう。
非フォーカス状態のVRChatでマイクの状態が切り替わったら成功です。