Pipewireでデバイスの名前を変更する

Pipewireでデバイスの名前を変更する

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設定

おすすめ記事