Construiți un script de comutare a ieșirii PipeWire care mută sunetul activ

Pentru o mică comutare audio Debian, utilizați pactlprin serverul compatibil cu PulseAudio de la PipeWire. Scriptul de mai jos comută între două ieșiri denumite, setează noua valoare implicită și mută fluxurile de redare care sunt deja deschise. Înlocuiți numele sink-urilor de exemplu cu numele exacte afișate pe mașina dvs.

1. Confirmați serverul PipeWire Pulse și găsiți ieșirile

Componenta PipeWire pipewire-pulseoferă un server compatibil cu PulseAudio, astfel încât instrumente standard precum pactlpot controla receptorii (ieșirile audio) acestuia. Verificați la ce server ajunge clientul dvs. și enumerați receptorii disponibili:

pactl info | grep -E 'Server Name|Server Version'
pactl list short sinks

Pentru această procedură, numele serverului ar trebui să menționeze PipeWire. Lista de receptori conține nume simbolice, cum ar fi alsa_output.pci-0000_00_1f.3.analog-stereo. Copiați exact două nume: câte unul pentru fiecare ieșire între care doriți să comutați. Aceste nume sunt specifice hardware-ului conectat și profilului audio; nu copiați nume din exemplu și nu utilizați un index numeric al receptorului, care se poate schimba în timpul unei sesiuni.

Dacă pactllipsește, Debian îl oferă în pulseaudio-utils. Instalați pachetul client respectiv doar dacă este necesar. Dacă pactl infonu vă puteți conecta sau raportează un server de sunet diferit, confirmați mai întâi că înlocuitorul PulseAudio de la PipeWire rulează în sesiunea de utilizator; nu instalați și nu schimbați serverele audio orbește.

Terminal Debian care afișează informații despre pactl și identifică PipeWire, iar pactl listează scurte receptori cu nume de difuzoare și căști
Copiați numele exacte ale sink-urilor simbolice din lista de ieșiri live înainte de a completa scriptul de comutare.

2. Creați scriptul de comutare

Creați un director de scripturi per utilizator și deschideți un fișier nou:

mkdir -p ~/.local/bin
nano ~/.local/bin/toggle-audio-output

Lipiți acest script, înlocuind ambele valori din SINK_Ași SINK_Bcu numele pe care le-ați copiat:

#!/usr/bin/env bash
set -euo pipefail

SINK_A='alsa_output.pci-0000_00_1f.3.analog-stereo'
SINK_B='alsa_output.usb-Generic_Headset-00.analog-stereo'

command -v pactl >/dev/null || { echo "pactl is missing" >&2; exit 1; }
server_name=$(pactl info | sed -n 's/^Server Name: //p')
case "$server_name" in
  *PipeWire*) ;;
  *) echo "pactl is not connected to PipeWire's Pulse server" >&2; exit 1 ;;
esac

sinks=$(pactl list short sinks | awk '{print $2}')
for sink in "$SINK_A" "$SINK_B"; do
  if ! grep -Fqx -- "$sink" <<< "$sinks"; then
    printf 'Sink not found: %s\n' "$sink" >&2
    exit 1
  fi
done

current=$(pactl get-default-sink)
if [[ "$current" == "$SINK_A" ]]; then
  target=$SINK_B
else
  target=$SINK_A
fi

pactl set-default-sink "$target"
while IFS= read -r input_id; do
  [[ -n "$input_id" ]] || continue
  pactl move-sink-input "$input_id" "$target"
done < <(pactl list short sink-inputs | awk '{print $1}')
printf 'Default output: %s\n' "$target"

Scriptul verifică dacă ambele ieșiri sunt prezente înainte de a modifica orice. Alege cealaltă ieșire configurată atunci când valoarea implicită curentă este SINK_A; dacă valoarea implicită curentă este un alt receptor, începe cu SINK_A. set-default-sinkComanda afectează fluxurile noi, în timp ce bucla folosește move-sink-inputpentru a direcționa și fluxurile de redare existente. Dacă doriți ca aplicațiile viitoare să utilizeze noua valoare implicită doar, eliminați whilebucla; fluxurile deja redate vor rămâne acolo unde sunt. Rulați acest script ca același utilizator desktop conectat care deține sesiunea PipeWire. Nu utilizați , care se poate conecta printr-un alt runtime de utilizator și nu reușește să controleze sunetul desktopului. Aceste operațiuni sunt documentate în manualul pactlsudo al Debian .

Editorul Nano care arată cele două variabile sink în scriptul toggle-audio-output
Setați fiecare variabilă la unul dintre numele sink-urilor raportate de pactl în această sesiune Debian.

3. Salvați, rulați și verificați comutatorul

Salvați în Nano cu Ctrl+O, apăsați Enter, apoi ieșiți cu Ctrl+X. Marcați executabilul scriptului și rulați-l:

chmod +x ~/.local/bin/toggle-audio-output
~/.local/bin/toggle-audio-output

Ar trebui să afișeze noul sink implicit. Verificați implicitul curent al serverului și orice fluxuri de redare active:

pactl get-default-sink
pactl list short sink-inputs

Rulați scriptul a doua oară pentru a reveni la modul inițial. Pentru o verificare practică a ascultării, redați un scurt eșantion audio în timp ce comutați și confirmați că provine de la dispozitivul selectat. Numele exacte ale dispozitivelor și comportamentul de afișare variază în funcție de hardware, starea conexiunii Bluetooth și profilurile audio active.

Terminal Debian care afișează scriptul de comutare care selectează căștile USB ca ieșire implicită
Scriptul care raportează ieșirea denumită a devenit noua opțiune implicită.
Verificarea terminalului arată că pactl get-default-sink returnează numele căștii și un flux de redare listat
Confirmați sink-ul implicit și verificați dacă un flux activ este direcționat către ieșirea selectată.

Când scenariul nu schimbă sunetul

  • „Sink not found”: rulați pactl list short sinksdin nou. Este posibil ca o cască deconectată sau un profil modificat să fi modificat numele sink-ului; actualizați variabila corespunzătoare.
  • Nu se poate conecta: verificați dacă serviciile utilizator PipeWire rulează și dacă acestea pactl infoidentifică serverul PipeWire Pulse. Pachetul pipewire-pulse din Debian oferă serverul de înlocuire, în timp ce pulseaudio-utils include pactlclientul.
  • Se mișcă noua secțiune audio, dar o aplicație curentă nu: rulează din nou scriptul în timp ce fluxul respectiv este vizibil în pactl list short sink-inputs. Unele aplicații redeschid fluxurile sau își păstrează propria selecție de dispozitive, așa că alegeți „Implicit” în aplicația respectivă dacă rămâne fixat la o ieșire.

Documentația Protocol Pulse de la PipeWire explică de ce clienții din linia de comandă PulseAudio pot controla PipeWire atunci când pipewire-pulseeste serverul activ. Acest script folosește acel strat de compatibilitate; nu configurează profiluri hardware și nu garantează că un dispozitiv deconectat va fi disponibil.

Lasă un comentariu

Construiți un script de comutare a ieșirii PipeWire care mută sunetul activ

Construiți un script de comutare a ieșirii PipeWire care mută sunetul activ

Comută sunetul Debian între ieșirile PipeWire denumite cu un script pactl care actualizează sink-ul implicit și redirecționează fluxurile care sunt deja redate.

Restaurarea intrării microfonului pentru căștile Bluetooth pe Ubuntu 24.04

Restaurarea intrării microfonului pentru căștile Bluetooth pe Ubuntu 24.04

Pune-ți microfonul căștilor Bluetooth în funcțiune selectând intrarea corectă, utilizând un profil audio hands-free și verificând ruta PipeWire din Ubuntu.

Remediați problemele legate de aplicațiile Flatpak care nu respectă temele GTK în Ubuntu 24.04

Remediați problemele legate de aplicațiile Flatpak care nu respectă temele GTK în Ubuntu 24.04

Află de ce aplicațiile Flatpak pot ignora temele Ubuntu 24.04 GTK și urmează pașii siguri pentru a verifica extensiile temelor, a actualiza aplicațiile Flatpak și a diagnostica problemele portalului.

Cum se bootează dual-boot Ubuntu 24.04 și Windows 11 cu BitLocker activat

Cum se bootează dual-boot Ubuntu 24.04 și Windows 11 cu BitLocker activat

Instalați Ubuntu 24.04 împreună cu Windows 11 cu BitLocker în siguranță. Comparați căile pentru unități separate și partajate, cheile de recuperare, partiționarea și verificările de bootare.

Cum să remediați problema driverelor Nvidia care nu se încarcă după o actualizare a kernelului pe Ubuntu

Cum să remediați problema driverelor Nvidia care nu se încarcă după o actualizare a kernelului pe Ubuntu

Diagnosticați erorile driverelor NVIDIA după o actualizare a kernelului Ubuntu. Verificați DKMS și Secure Boot, reconstruiți modulul corespunzător, înscrieți un MOK și verificați remedierea.

Cum să remediați deconectarea Wi-Fi-ului în Ubuntu 24.04 după suspendare

Cum să remediați deconectarea Wi-Fi-ului în Ubuntu 24.04 după suspendare

Remediați căderile de Wi-Fi în Ubuntu 24.04 după suspendare cu verificări pentru NetworkManager, blocaje radio, actualizări, economisire energie și drivere - apoi verificați fiecare reluare.

Remediați utilizarea ridicată a procesorului de către Tracker-Miner-3 în Ubuntu GNOME

Remediați utilizarea ridicată a procesorului de către Tracker-Miner-3 în Ubuntu GNOME

Află de ce tracker-miner-fs-3 folosește un volum mare de procesor în Ubuntu GNOME și cum să verifici indexarea, să excluzi foldere, să actualizezi Ubuntu sau să reconstruiești în siguranță indexul de căutare.

Remediați eroarea „Nu s-a găsit niciun dispozitiv bootabil” după instalarea Debian pe UEFI

Remediați eroarea „Nu s-a găsit niciun dispozitiv bootabil” după instalarea Debian pe UEFI

Remediați eroarea de boot UEFI a Debian verificând modul de boot, partiția de sistem EFI, fișierele GRUB și ordinea de boot a firmware-ului - fără a reinstala mai întâi Debian.

Cum se utilizează instrumentul de monitorizare a fiabilității în Windows 11

Cum se utilizează instrumentul de monitorizare a fiabilității în Windows 11

Descoperă cum să utilizezi instrumentul de monitorizare a fiabilității Windows 11 pentru a diagnostica blocările sistemului, erorile și problemele de stabilitate. Ghid pas cu pas pentru a-ți îmbunătăți PC-ul

Rezolvarea problemei contorului FPS din bara de joc care nu se afișează în 2026

Rezolvarea problemei contorului FPS din bara de joc care nu se afișează în 2026

Te chinui cu contorul FPS din Game Bar care nu se afișează în 2026? Descoperă soluții dovedite pentru ca overlay-ul FPS să funcționeze fără probleme pe Windows. Ghid pas cu pas pentru jucători.