나는 고통스러운 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
자동 완성을 사용하여 문자열을 선택합니다.