Nie wiem, czy jest gdzieś plik ustawień lub konfiguracji, ale można to zrobić za pomocą zmiennych środowiskowych. Swoją odpowiedź oparłem na tym wpisie w PulseAudio FAQ na temat ustawiania źródła nagrywania. Próbowałem tego z wyjściem (ujściem w PulseAudio), ale powinno działać zarówno dla wejścia jak i wyjścia.
Pierwszym krokiem jest uzyskanie wewnętrznej nazwy źródła i ujścia, którego chcesz użyć. Aby to zrobić, musisz użyć pactl list
polecenia. To polecenie zwróci stos danych, ale następujące wyświetli tylko nazwy źródeł:
LANG=C pactl list | grep -A2 'Source #' | grep 'Name: ' | cut -d" " -f2
Ta lista prawdopodobnie będzie zawierać nazwy zarówno zwykłych źródeł, jak i źródeł monitorów PulseAudio (które w moim systemie mają w nazwie „monitor”). Będziesz chciał użyć zwykłej nazwy źródła urządzenia, na które chcesz kierować reklamy.
Możesz zrobić to samo, aby uzyskać nazwy zlewu:
LANG=C pactl list | grep -A2 'Sink #' | grep 'Name: ' | cut -d" " -f2
Po uzyskaniu nazw możesz uruchomić z terminalu coś takiego:
PULSE_SINK=<sink_name> PULSE_SOURCE=<source_name> <command_to_run_skype>
Oczywiście, jeśli chcesz uruchomić to z menu, prawdopodobnie musisz utworzyć skrypt powłoki i użyć go zamiast domyślnego polecenia. Coś takiego powinno działać:
#!/bin/sh
set PULSE_SINK <sink_name>
set PULSE_SOURCE <source_name>
<command_to_run_skype>
Musisz EKSPORTOWAĆ i przypisać zmienne, takie jak to:
źródło
Napisałem moduł perla, który robi to PulseAudio.pm .
Pozwala to na użycie takiej składni,
Oczywiście możesz użyć dowolnych kryteriów w
get_sink_by
iget_source_by
. Czyta zpacmd info
. Działa to w oparciu o ten sam pomysł odpowiedzi @ moberley, z wyjątkiem tego, że używa biblioteki perla zamiast zmuszania do samodzielnego parsowania. Zapewnia również kilka innych fajnych funkcji.W moim programie podcastowym używam go również do uruchomienia Skype'a.
(
btrlistener*
nazwy Skype dotyczą blogtalkradio).źródło