Ontwikkel een PipeWire-uitvoerschakelscript dat de actieve audio verplaatst.

Voor een eenvoudige audioschakelaar in Debian kunt u pactlde PulseAudio-compatibele server van PipeWire gebruiken. Het onderstaande script schakelt tussen twee benoemde uitgangen, stelt de nieuwe standaard in en verplaatst de reeds geopende afspeelstreams. Vervang de voorbeeldnamen van de sinks door de exacte namen die op uw machine worden weergegeven.

1. Bevestig de PipeWire Pulse-server en zoek uw uitgangen op.

De PipeWire- pipewire-pulsecomponent biedt een PulseAudio-compatibele server, waardoor standaardtools pactlde audio-uitgangen (sinks) kunnen aansturen. Controleer welke server uw client bereikt en bekijk de beschikbare sinks:

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

Voor deze procedure moet de servernaam PipeWire bevatten. De sinklijst bevat symbolische namen zoals <sink> alsa_output.pci-0000_00_1f.3.analog-stereo. Kopieer twee namen exact: één voor elke uitvoer waartussen u wilt schakelen. Deze namen zijn specifiek voor de aangesloten hardware en het audioprofiel; kopieer geen namen uit het voorbeeld en gebruik geen numerieke sinkindex, aangezien deze tijdens een sessie kan veranderen.

Als pactlhet ontbreekt, levert Debian het in pulseaudio-utils. Installeer dat clientpakket alleen als dat nodig is. Als pactl infoer geen verbinding tot stand kan worden gebracht of als er een andere geluidsserver wordt gemeld, controleer dan eerst of de PulseAudio-vervanging van PipeWire actief is in uw gebruikerssessie; installeer of wissel niet zomaar van audioserver.

Debian-terminal toont pactl info, waarmee PipeWire wordt geïdentificeerd, en pactl list short sinks met namen van luidsprekers en headsets.
Kopieer de exacte symbolische sinknamen uit de live uitvoerlijst voordat u het toggle-script invult.

2. Maak het toggle-script aan.

Maak een map voor scripts per gebruiker aan en open een nieuw bestand:

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

Plak dit script en vervang beide waarden in SINK_Aen SINK_Bdoor de namen die je hebt gekopieerd:

#!/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"

Het script controleert of beide outputs aanwezig zijn voordat er iets wordt gewijzigd. Het kiest de andere geconfigureerde output wanneer de huidige standaard is SINK_A; als de huidige standaard een andere sink is, begint het met SINK_A. De set-default-sinkopdracht is van invloed op nieuwe streams, terwijl de loop move-sink-inputook gebruikt wordt om bestaande afspeelstreams te routeren. Als u alleen wilt dat toekomstige apps de nieuwe standaard gebruiken, verwijdert u de whileloop; reeds afspelende streams blijven op hun huidige locatie. Voer dit script uit als dezelfde ingelogde desktopgebruiker die eigenaar is van de PipeWire-sessie. Gebruik niet , omdat dit verbinding kan maken via een andere gebruikersruntime en uw desktopaudio niet kan beheren. Deze bewerkingen worden beschreven in de pactl-handleidingsudo van Debian .

Nano-editor die de twee sink-variabelen in het toggle-audio-output-script weergeeft.
Stel elke variabele in op een van de sinknamen die pactl op deze Debian-sessie heeft gerapporteerd.

3. Sla de wijzigingen op, voer ze uit en controleer de switch.

Sla het bestand op in Nano met Ctrl+O, druk op Enter, en sluit vervolgens af met Ctrl+X. Maak het script uitvoerbaar en voer het uit:

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

Het zou de nieuwe standaardbestemming moeten weergeven. Controleer de huidige standaardbestemming van de server en eventuele actieve afspeelstreams:

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

Voer het script een tweede keer uit om terug te schakelen. Om te controleren of het geluid daadwerkelijk van het geselecteerde apparaat komt, kunt u tijdens het schakelen een kort audiofragment afspelen. De exacte apparaatnamen en het weergavegedrag kunnen variëren afhankelijk van de hardware, de Bluetooth-verbindingsstatus en de actieve audioprofielen.

Debian-terminal met het toggle-script dat de USB-headset als standaarduitvoer selecteert.
Het script meldt welke benoemde uitvoer de nieuwe standaard is geworden.
Terminalcontrole toont aan dat pactl get-default-sink de headsetnaam en een afspeelstream retourneert.
Bevestig de standaardbestemming en controleer of een actieve stream naar de geselecteerde uitvoer is doorgestuurd.

Als het script de audio niet wijzigt

  • "Sink niet gevonden": probeer het pactl list short sinksopnieuw. Een losgekoppelde headset of een gewijzigd profiel kan de naam van de sink hebben veranderd; werk de bijbehorende variabele bij.
  • Kan geen verbinding maken: controleer of de PipeWire-gebruikersservices actief zijn en of de PipeWire Pulse-server wordt herkend. Het pipewire-pulse-pakketpactl info van Debian biedt deze vervangende server, terwijl pulseaudio-utils de client bevat.pactl
  • Nieuwe audio wordt verplaatst, maar de huidige app niet: voer het script opnieuw uit terwijl die stream zichtbaar is pactl list short sink-inputs. Sommige applicaties heropenen streams of behouden hun eigen apparaatselectie, dus kies 'Standaard' in die applicatie als deze aan een uitvoer is gekoppeld.

De Protocol Pulse-documentatie van PipeWire legt uit waarom PulseAudio-commandoregelclients PipeWire kunnen besturen wanneer pipewire-pulsedeze de actieve server is. Dit script maakt gebruik van die compatibiliteitslaag; het configureert geen hardwareprofielen en garandeert niet dat een losgekoppeld apparaat beschikbaar zal zijn.

Laat een reactie achter

Ontwikkel een PipeWire-uitvoerschakelscript dat de actieve audio verplaatst.

Ontwikkel een PipeWire-uitvoerschakelscript dat de actieve audio verplaatst.

Schakel tussen benoemde PipeWire-uitgangen in Debian met een pactl-script dat de standaardbestemming bijwerkt en reeds afgespeelde streams omleidt.

De Bluetooth-microfooningang van de headset herstellen in Ubuntu 24.04

De Bluetooth-microfooningang van de headset herstellen in Ubuntu 24.04

Zorg dat de microfoon van je Bluetooth-headset werkt door de juiste ingang te selecteren, een handsfree audioprofiel te gebruiken en de PipeWire-route van Ubuntu te controleren.

Los het probleem op dat Flatpak-apps GTK-thema's niet respecteren in Ubuntu 24.04.

Los het probleem op dat Flatpak-apps GTK-thema's niet respecteren in Ubuntu 24.04.

Ontdek waarom Flatpak-apps Ubuntu 24.04 GTK-thema's mogelijk negeren en volg de veilige stappen om thema-extensies te controleren, Flatpak-apps te vernieuwen en problemen met de portal te diagnosticeren.

Hoe je Ubuntu 24.04 en Windows 11 naast elkaar kunt installeren (dual-boot) met BitLocker ingeschakeld.

Hoe je Ubuntu 24.04 en Windows 11 naast elkaar kunt installeren (dual-boot) met BitLocker ingeschakeld.

Installeer Ubuntu 24.04 veilig naast Windows 11 met BitLocker. Vergelijk paden voor aparte schijven en gedeelde schijven, herstelsleutels, partitionering en opstartcontroles.

Hoe los je het probleem op dat Nvidia-stuurprogramma's niet laden na een kernelupdate in Ubuntu?

Hoe los je het probleem op dat Nvidia-stuurprogramma's niet laden na een kernelupdate in Ubuntu?

Diagnoseer NVIDIA-stuurprogrammafouten na een Ubuntu-kernelupdate. Controleer DKMS en Secure Boot, compileer de betreffende module opnieuw, registreer een MOK en verifieer de oplossing.

Hoe los je het probleem op dat de wifi-verbinding in Ubuntu 24.04 wegvalt na het onderbreken van de sessie?

Hoe los je het probleem op dat de wifi-verbinding in Ubuntu 24.04 wegvalt na het onderbreken van de sessie?

Los het probleem op dat de wifi-verbinding in Ubuntu 24.04 wegvalt na het in de slaapstand zetten van de computer. Controleer hiervoor NetworkManager, radioblokkeringen, updates, energiebesparing en stuurprogramma's en verifieer vervolgens elke hervatting.

Het hoge CPU-gebruik van Tracker-Miner-3 in Ubuntu GNOME verhelpen

Het hoge CPU-gebruik van Tracker-Miner-3 in Ubuntu GNOME verhelpen

Leer waarom tracker-miner-fs-3 veel CPU-kracht verbruikt in Ubuntu GNOME en hoe je de indexering kunt controleren, mappen kunt uitsluiten, Ubuntu kunt bijwerken of de zoekindex veilig opnieuw kunt opbouwen.

Oplossing voor "Geen opstartbaar apparaat gevonden" na installatie van Debian op UEFI

Oplossing voor "Geen opstartbaar apparaat gevonden" na installatie van Debian op UEFI

Los de UEFI-opstartfout van Debian op door de opstartmodus, de EFI-systeempartitie, GRUB-bestanden en de opstartvolgorde van de firmware te controleren, zonder Debian eerst opnieuw te installeren.

Hoe los je het probleem op dat er na een update een DLL-bestand ontbreekt in Windows 11?

Hoe los je het probleem op dat er na een update een DLL-bestand ontbreekt in Windows 11?

Krijg je na een update in Windows 11 last van DLL-fouten? Ontdek bewezen, stapsgewijze oplossingen om je systeem weer soepel te herstellen. Geen technische kennis nodig – je bent snel weer aan de slag!

Hoe los je de grijze HDR-kleuren en het gedimde scherm in Windows 11 op?

Hoe los je de grijze HDR-kleuren en het gedimde scherm in Windows 11 op?

Heb je last van grauwe kleuren en een donker scherm in Windows 11 HDR? Ontdek bewezen oplossingen om je beeld weer levendig te maken en je beeldscherminstellingen te optimaliseren voor een meeslepende ervaring. Stapsgewijze oplossingen vind je hier.