i3でArchLinuxを使用しています。近いうちにWaylandとSwayにも切り替えたいので、最近PulseAudioからPipewireに切り替えました。
これまで、Pipewireはうまく機能しています。それでも小さな問題があります。
同じ説明のオーディオデバイスを使用しているため、Pavucontrolでは区別できません。 Pulse を使用して、update-sink-proplist ステートメントをローカルの default.pa ファイルに作成しました。
Pipewireでこれを行う方法、つまりデバイスが接続されている場合にデバイスの説明を変更する方法を知っている人はいますか?
現在私はPipewireのデフォルト設定を使用しています。
私のアプローチ:
私はこれがpw-metadataで動作すると思いましたが、正しいコマンドが見つかりませんでした。
~/.config/pipewire/media-session.d/alsa-monitor.conf に以下を追加しました。
{
matches = [
{
node.name = "~^alsa_output.pci-0000_00_1f.3.output_analog-stereo$"
}
]
actions = {
update-props = {
device.description = "Laptop"
}
}
}
これにより、出力の属性リスト内の対応する項目が変更されますが、pactl list sinks
実際の説明は変更されません。実際、出力は次のようになります。
Sink #45
...
Name: alsa_output.pci-0000_00_1f.3.output_analog-stereo
Description: Built-in Audio Analog Stereo Output
...
Properties:
...
device.description = "Laptop"
...
ご協力ありがとうございます。
ベストアンサー1
現在の推奨事項に従う場合は、以下を使用してください。電気配管工変えるPipeWireメディアカンファレンス、ノードの説明(またはその他の属性)を変更する方法は、Luaスクリプトを生成して~/.config/wireplumber
正しいパスと名前の下に追加することです。
たとえば、フェリックスの必要に応じてALSAノードの説明を変更したい場合は、次のコンテンツを含む~/.config/wireplumber/main.lua.d/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
次のように作成できます。
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のマルチパスマージ/usr/share/wireplumber/main.lua.d/50-alsa-config.lua
デフォルトの設定ファイル(例)の後、デバイスファイルをロードして有効にする前に(例:)実行します/usr/share/wireplumber/main.lua.d/90-enable-all.lua
。
変更可能な属性とデバイスまたはノードを選択するための一致規則については、次の記事で説明します。ALSAの構成そしてBluetooth設定。