CLI를 사용하여 파이프라인와이어를 통해 재생 장치 간을 전환하는 데 문제가 있습니다.

CLI를 사용하여 파이프라인와이어를 통해 재생 장치 간을 전환하는 데 문제가 있습니다.

나는 고통스러운 i3wm 길을 걸어왔지만 평생 동안 cli 명령을 사용하여 출력 장치를 변경하는 방법을 이해할 수 없습니다.

설정:

  • i3-gaps 사용(기본 배포판은 Garuda Linux)
  • Pipewire는 오디오 제공업체입니다.
  • pavucontrol을 사용할 때 출력 포트로 헤드폰과 스피커 간을 전환할 수 있지만 pactl, wpctl, aplay를 사용하면 뒤에서 무슨 일이 일어나고 있는지 파악할 수 없는 것 같습니다.
  • 헤드폰을 전면 Aux 패널에 연결하고 스피커를 후면 Aux 패널에 연결했습니다.

어떤 도움이라도 대단히 감사하겠습니다 :)

업데이트: 솔루션을 찾아 댓글에 게시했습니다.

답변1

pactl list short sinks수신기, 출력 장치를 나열하고 pactl info실제 구성에 대한 정보를 얻을 수 있어야 합니다. 실제 출력에는 이름이 지정되어야 합니다 Default Sink.

기본 수신기를 전환하려면 를 사용할 수 있습니다 pactl set-default-sink <sink_name>.

호출될 때마다 가능한 수신자를 전환하는 스크립트를 온라인에서 찾았습니다.https://ericlathrop.com/2021/02/changing-pulseaudio-outputs-programmatically/

펄스에서 작동한다고 나와 있지만 (적어도 나에게는) 파이프라인에서도 작동합니다.

답변2

해결책을 찾고 이에 대한 짧은 스크립트를 작성했습니다.

if [[ $(pactl list | grep "Active Port: analog-output") == *"headphones"* ]]; then
    pactl set-sink-port 0 analog-output-lineout
else
    pactl set-sink-port 0 analog-output-headphones
fi

또한 내 i3config에 다음을 추가했습니다.

bindsym F6 exec --no-startup-id sh ~/path/to/script/switch_output.sh

답변3

먼저 카드 프로필을 설정한 다음 기본 수신기를 설정해야 했습니다.

다음은 나에게 도움이 된 예입니다.

pactl set-card-profile alsa_card.usb-Focusrite_Scarlett_Solo_USB_...
pactl set-default-sink alsa_output.usb-Focusrite_Scarlett_Solo_USB_....HiFi__hw_USB__sink

자동 완성을 사용하여 문자열을 선택합니다.

관련 정보