「WirePlumber」の版間の差分
(→ルール マッチングのためのインターフェース名の取得: 情報を更新) |
(ヒントとテクニックを翻訳して追加) |
||
54行目: | 54行目: | ||
=== デバイス/ノードのプロパティを変更する === |
=== デバイス/ノードのプロパティを変更する === |
||
− | デバイスやノードのプロパティ |
+ | デバイスやノードのプロパティ(説明やニックネームなど)を変更するには、Lua スクリプトを作成し、{{ic|~/.config/wireplumber}} に適切なパスと名前で追加する必要があります。 |
例えば ALSA ノードの説明を変更するには、 {{ic|~/.config/wireplumber/main.lua.d/51-alsa-rename.lua}} のようなファイルを作成して、以下のような内容を記述してください。 |
例えば ALSA ノードの説明を変更するには、 {{ic|~/.config/wireplumber/main.lua.d/51-alsa-rename.lua}} のようなファイルを作成して、以下のような内容を記述してください。 |
||
86行目: | 86行目: | ||
Lua スクリプトのファイル名と場所は、[https://pipewire.pages.freedesktop.org/wireplumber/configuration/config_lua.html#multi-path-merging WirePlumber's マルチパスマージ] で、デフォルトの設定ファイル |
Lua スクリプトのファイル名と場所は、[https://pipewire.pages.freedesktop.org/wireplumber/configuration/config_lua.html#multi-path-merging WirePlumber's マルチパスマージ] で、デフォルトの設定ファイル |
||
− | + | (例:{{ic|/usr/share/wireplumber/main.lua.d/50-alsa-config.lua}})デバイスをロードして有効にするファイル |
|
− | + | (例:{{ic|/usr/share/wireplumber/main.lua.d/90-enable-all.lua}})の前に実行できるよう設計されています。 |
|
デバイスやノードを選択するためのマッチングルールや、変更できるプロパティは [https://pipewire.pages.freedesktop.org/wireplumber/configuration/alsa.html ALSA 設定] と [https://pipewire.pages.freedesktop.org/wireplumber/configuration/bluetooth.html Bluetooth 設定] に記載されています。 |
デバイスやノードを選択するためのマッチングルールや、変更できるプロパティは [https://pipewire.pages.freedesktop.org/wireplumber/configuration/alsa.html ALSA 設定] と [https://pipewire.pages.freedesktop.org/wireplumber/configuration/bluetooth.html Bluetooth 設定] に記載されています。 |
||
112行目: | 112行目: | ||
{{Note|一般的な使用例としては、NVIDIA の HDMI オーディオ出力を無効にする場合など。}} |
{{Note|一般的な使用例としては、NVIDIA の HDMI オーディオ出力を無効にする場合など。}} |
||
+ | |||
+ | == ヒントとテクニック == |
||
+ | |||
+ | === キーボードで音量コントロール === |
||
+ | |||
+ | 次のコマンドをボリュームキーにバインドするには、[[キーボードショートカット#Xorg]] を参照してください: {{ic|XF86AudioRaiseVolume}}、{{ic|XF86AudioLowerVolume}}、{{ic|XF86AudioMute}}、および {{ic|XF86AudioMicMute}} |
||
+ | |||
+ | 音量を 150% の制限で上げるには: |
||
+ | |||
+ | $ wpctl set-volume -l 1.5 @DEFAULT_AUDIO_SINK@ 5%+ |
||
+ | |||
+ | 音量を下げるには: |
||
+ | |||
+ | $ wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%- |
||
+ | |||
+ | ボリュームをミュート/ミュート解除するには: |
||
+ | |||
+ | $ wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle |
||
+ | |||
+ | マイクをミュート/ミュート解除するには: |
||
+ | |||
+ | $ wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle |
||
+ | |||
+ | {{Tip|デフォルト以外のシンクまたはソースを使用するには、{{ic|wpctl status}} を実行して利用可能なすべてのシンクをリストし、{{ic|@DEFAULT_AUDIO_SINK@}} または {{ic|_SOURCE@}}}} |
||
+ | |||
+ | === 音量レベルを表示 === |
||
+ | |||
+ | デフォルトのシンクの音量レベルとミュート状態を取得するには、次の手順を実行します。 |
||
+ | |||
+ | {{hc|$ wpctl get-volume @DEFAULT_AUDIO_SINK@|Volume: 0.45}} |
||
+ | |||
+ | {{Note|ミュートステータスは、シンクがミュートされている場合にのみ表示されます。}} |
||
+ | |||
+ | === ログアウト後も Bluetooth を実行し続ける/ヘッドレス Bluetooth === |
||
+ | |||
+ | デフォルトでは、{{ic|/usr/share/wireplumber/bluetooth.lua.d/50-bluez-config.lua}} により [https://gitlab.freedesktop.org/pipewire/wireplumber/-/merge_requests/222] が有効になります/diffs?commit_id=a253aa4c4948cdd87ba222670ee17db849af85ddlogind module] これにより、セッションが終了するたびに Bluetooth が無効になります。これは次のようにオーバーライドできます。 |
||
+ | |||
+ | {{hc|/etc/wireplumber/bluetooth.lua.d/50-bluez-config.lua (or ~/.config/wireplumber/bluetooth.lua.d/50-bluez-config.lua)|2= |
||
+ | bluez_monitor.properties = { |
||
+ | ["with-logind"] = false, |
||
+ | } |
||
+ | }} |
||
+ | |||
+ | {{Note|[[PipeWire]]/Wireplumber を実行しているユーザーに対して [[systemd/ユーザー#systemd のユーザーインスタンスを自動起動|残留]] を有効にする必要があります。}} |
||
== 参照 == |
== 参照 == |
2023年6月24日 (土) 05:03時点における版
関連記事
WirePlumber は、PipeWire 用の強力なセッションおよびポリシーマネージャです。モジュール設計に基づき、管理機能を実装し、 Lua プラグインによって、高度な設定と拡張が可能です。
目次
インストール
wireplumber パッケージを インストールしてください。他の PipeWire セッションマネージャーと競合しますので、必ずアンインストールするようにしてください。
WirePlumber は systemd/ユーザー を使ってサーバーを管理し、ソケットを自動で起動します。
オプションとして、ドキュメントを確認するために wireplumber-docs をインストールしてください。
設定
WirePlumber のモジュール設計は、特定の機能の実装を入れ替える際に、残りの機能を再実装する必要がなく、非常に柔軟性があります。詳細な情報は、official documentation で見ることができます。
以下に、簡単な設定例を示します。
ルール マッチングのためのインターフェース名の取得
WirePlumber の Lua スクリプトでは、設定したい対象インターフェースの PipeWire objects で matches
ルールを指定する必要があります。
システムで利用可能な全てのオブジェクトを表示するには、コマンド pw-cli list-objects
と pw-cli dump
を使用します。
オブジェクト Node
は PipeWire グラフ内のシンクまたはソースです。これらは ALSA の Device
に対応します。
表示するオブジェクトの種類を絞り込むには、 [Device|Node]
オプションを追加してください。例えば:
$ pw-cli list-objects Device
... id 37, type PipeWire:Interface:Device/3 object.serial = "264" factory.id = "14" client.id = "49" device.api = "alsa" device.description = "Starship/Matisse HD Audio Controller" device.name = "alsa_card.pci-0000_08_00.4" device.nick = "HD-Audio Generic" media.class = "Audio/Device" ...
オブジェクトタイプのフィルタリングは、pw-cli dump
コマンドにも適用されます。
もしエンドポイントの特定のクラス (例:"Audio/Sink") を探しているのであれば、 media.class
プロパティを参照してください。
ほとんどの場合、ALSA を設定するときに必要なプロパティは device.name
か node.name
のどちらかです。
デバイス/ノードのプロパティを変更する
デバイスやノードのプロパティ(説明やニックネームなど)を変更するには、Lua スクリプトを作成し、~/.config/wireplumber
に適切なパスと名前で追加する必要があります。
例えば ALSA ノードの説明を変更するには、 ~/.config/wireplumber/main.lua.d/51-alsa-rename.lua
のようなファイルを作成して、以下のような内容を記述してください。
51-alsa-rename.lua
rule = { matches = { { { "node.name", "equals", "alsa_output.pci-0000_00_1f.3.output_analog-stereo" }, }, }, apply_properties = { ["node.description"] = "Laptop", }, } table.insert(alsa_monitor.rules,rule)
もし、Bluetooth ノードやデバイスの何かを変更したい場合は、以下のような内容で ~/.config/wireplumber/bluetooth.lua.d/51-rename.lua
を作成するとよいでしょう。
51-rename.lua
rule = { matches = { { { "node.name", "equals", "bluez_output.02_11_45_A0_B3_27.a2dp-sink" }, }, }, apply_properties = { ["node.nick"] = "Headphones", }, } table.insert(bluez_monitor.rules,rule)
Lua スクリプトのファイル名と場所は、WirePlumber's マルチパスマージ で、デフォルトの設定ファイル
(例:/usr/share/wireplumber/main.lua.d/50-alsa-config.lua
)デバイスをロードして有効にするファイル
(例:/usr/share/wireplumber/main.lua.d/90-enable-all.lua
)の前に実行できるよう設計されています。
デバイスやノードを選択するためのマッチングルールや、変更できるプロパティは ALSA 設定 と Bluetooth 設定 に記載されています。
デバイス/ノードの無効化
WirePlumber v0.4.7 からは、プロパティ device.disabled
または node.disabled
で任意のデバイスやノードを無効にできるようになりました。
~/.config/wireplumber/main.lua.d/51-alsa-disable.lua
rule = { matches = { { { "device.name", "equals", "alsa_card.pci-0000_08_00.4" }, }, }, apply_properties = { ["device.disabled"] = true, }, } table.insert(alsa_monitor.rules,rule)
システム内の alsa_card.*
の名前については、WirePlumber#Obtain interface name for rules matching を参照してください。
ヒントとテクニック
キーボードで音量コントロール
次のコマンドをボリュームキーにバインドするには、キーボードショートカット#Xorg を参照してください: XF86AudioRaiseVolume
、XF86AudioLowerVolume
、XF86AudioMute
、および XF86AudioMicMute
音量を 150% の制限で上げるには:
$ wpctl set-volume -l 1.5 @DEFAULT_AUDIO_SINK@ 5%+
音量を下げるには:
$ wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-
ボリュームをミュート/ミュート解除するには:
$ wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
マイクをミュート/ミュート解除するには:
$ wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle
音量レベルを表示
デフォルトのシンクの音量レベルとミュート状態を取得するには、次の手順を実行します。
$ wpctl get-volume @DEFAULT_AUDIO_SINK@
Volume: 0.45
ログアウト後も Bluetooth を実行し続ける/ヘッドレス Bluetooth
デフォルトでは、/usr/share/wireplumber/bluetooth.lua.d/50-bluez-config.lua
により [1] が有効になります/diffs?commit_id=a253aa4c4948cdd87ba222670ee17db849af85ddlogind module] これにより、セッションが終了するたびに Bluetooth が無効になります。これは次のようにオーバーライドできます。
/etc/wireplumber/bluetooth.lua.d/50-bluez-config.lua (or ~/.config/wireplumber/bluetooth.lua.d/50-bluez-config.lua)
bluez_monitor.properties = { ["with-logind"] = false, }
参照
- Documentation — オフィシャル ドキュメント
- WirePlumber, PipeWire session manager - George Kiagiadakis (Collabora) による2020年5月のブログ記事で、WirePlumber の仕組みが詳しく説明されています。