أنشئ برنامجًا نصيًا لتبديل إخراج PipeWire يقوم بنقل الصوت النشط

لتشغيل مفتاح تبديل صوتي بسيط في نظام دبيان، استخدم pactlخادم PulseAudio المتوافق مع PipeWire. يقوم البرنامج النصي أدناه بالتبديل بين مخرجين صوتيين مُسميين، وتعيين المخرج الافتراضي الجديد، ونقل مسارات التشغيل المفتوحة بالفعل. استبدل أسماء مخرجات العينات بالأسماء الظاهرة على جهازك.

1. تأكد من خادم PipeWire Pulse وابحث عن مخرجاتك

يُوفّر مُكوّن PipeWire pipewire-pulseخادمًا مُتوافقًا مع PulseAudio، ما يسمح للأدوات القياسية مثله pactlبالتحكّم في مُخرجات الصوت (المخرجات الصوتية). حدّد الخادم الذي يتصل به عميلك، واعرض قائمة بالمخرجات المُتاحة.

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

في هذه العملية، يجب أن يتضمن اسم الخادم كلمة PipeWire. تحتوي قائمة المخرجات على أسماء رمزية مثل alsa_output.pci-0000_00_1f.3.analog-stereo. انسخ اسمين بدقة: اسم لكل مخرج ترغب في التبديل بينه. هذه الأسماء خاصة بالأجهزة المتصلة وملف تعريف الصوت؛ لا تنسخ أسماء من المثال أو تستخدم فهرس مخرجات رقمي، فقد يتغير أثناء الجلسة.

إذا pactlكان الملف مفقودًا، توفره دبيان pulseaudio-utils. ثبّت حزمة العميل هذه فقط عند الحاجة. إذا pactl infoتعذّر الاتصال أو أبلغ عن خادم صوت مختلف، فتأكد أولًا من تشغيل بديل PulseAudio الخاص بـ PipeWire في جلسة المستخدم الخاصة بك؛ لا تقم بتثبيت خوادم الصوت أو تغييرها بشكل عشوائي.

يعرض طرفية دبيان معلومات pactl التي تحدد PipeWire، ويعرض pactl قائمة مختصرة بالمخرجات مع أسماء السماعات ومكبرات الصوت.
انسخ أسماء الوجهات الرمزية الدقيقة من قائمة الإخراج المباشر قبل ملء نص التبديل.

2. أنشئ برنامج التبديل

أنشئ مجلدًا للبرامج النصية لكل مستخدم وافتح ملفًا جديدًا:

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

ألصق هذا النص البرمجي، مع استبدال القيمتين في SINK_Aو SINK_Bبالأسماء التي نسختها:

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

يتحقق البرنامج النصي من وجود كلا المخرجين قبل إجراء أي تغييرات. يختار المخرج المُهيأ الآخر عندما يكون الافتراضي الحالي هو `<default>` SINK_A؛ أما إذا كان الافتراضي الحالي هو مخرج آخر، فيبدأ بـ `<default>` SINK_A. set-default-sinkيؤثر الأمر على التدفقات الجديدة، بينما تستخدم الحلقة ` move-sink-input<default>` لتوجيه تدفقات التشغيل الحالية أيضًا. إذا كنت ترغب فقط في أن تستخدم التطبيقات المستقبلية الافتراضي الجديد، فاحذف الحلقة while؛ وستبقى التدفقات قيد التشغيل في مكانها. شغّل هذا البرنامج النصي بنفس مستخدم سطح المكتب المُسجّل دخوله والذي يملك جلسة PipeWire. لا تستخدم `<default>` ، حيث يمكنه الاتصال من خلال وقت تشغيل مستخدم مختلف ويفشل في التحكم في صوت سطح المكتب. هذه العمليات موثقة في دليل pactlsudo الخاص بنظام Debian .

محرر نانو يعرض متغيري الإخراج الصوتي في نص toggle-audio-output
قم بتعيين كل متغير إلى أحد أسماء الوجهات التي أبلغ عنها pactl في جلسة Debian هذه.

3. احفظ المفتاح، وشغّله، وتحقق منه

احفظ الملف في محرر Nano باستخدام الأمر ` Ctrl+Ocd`، ثم اضغط على مفتاح الإدخال Enter، ثم اخرج باستخدام الأمر `cd` Ctrl+X. حدد الملف النصي كملف تنفيذي وقم بتشغيله.

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

ينبغي أن يطبع المخرج الافتراضي الجديد. تحقق من المخرج الافتراضي الحالي للخادم وأي تدفقات تشغيل نشطة:

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

شغّل البرنامج النصي مرة ثانية للعودة إلى الوضع السابق. وللتحقق من الصوت عمليًا، شغّل مقطعًا صوتيًا قصيرًا أثناء التبديل وتأكد من أنه صادر من الجهاز المحدد. تختلف أسماء الأجهزة وسلوك العرض باختلاف نوع الجهاز وحالة اتصال البلوتوث وملفات تعريف الصوت النشطة.

يعرض طرفية دبيان نص التبديل الذي يحدد سماعة الرأس USB كإخراج افتراضي
يُبلغ البرنامج النصي عن اسم المخرجات التي أصبحت هي المخرجات الافتراضية الجديدة.
يُظهر التحقق من الطرفية أن الأمر `pactl get-default-sink` يُعيد اسم سماعة الرأس وقائمة بث التشغيل.
تأكد من وجهة الإخراج الافتراضية وتحقق من توجيه دفق نشط إلى المخرج المحدد.

عندما لا يقوم البرنامج النصي بتغيير الصوت

  • "لم يتم العثور على نقطة التجميع": أعد التشغيل pactl list short sinks. قد يكون فصل سماعة الرأس أو تغيير الملف الشخصي قد أدى إلى تغيير اسم نقطة التجميع؛ قم بتحديث المتغير المطابق.
  • تعذر الاتصال: تأكد من تشغيل خدمات مستخدم PipeWire، وأن هذه الخدمات pactl infoتحدد خادم PipeWire Pulse. توفر حزمة pipewire-pulse في دبيان هذا الخادم البديل، بينما تتضمن حزمة pulseaudio-utilspactl العميل.
  • تتحرك ملفات الصوت الجديدة ولكن التطبيق الحالي لا يتحرك: أعد تشغيل البرنامج النصي أثناء ظهور هذا التدفق pactl list short sink-inputs. بعض التطبيقات تعيد فتح التدفقات أو تحتفظ بتحديد الجهاز الخاص بها، لذا اختر "افتراضي" في ذلك التطبيق إذا ظل مثبتًا على مخرج.

توضح وثائق بروتوكول Pulse الخاصة بـ PipeWire سبب قدرة عملاء سطر الأوامر PulseAudio على التحكم في PipeWire عندما pipewire-pulseيكون الخادم نشطًا. يستخدم هذا البرنامج النصي طبقة التوافق هذه؛ فهو لا يُهيئ ملفات تعريف الأجهزة ولا يضمن توفر جهاز غير متصل.

اترك تعليقاً

أنشئ برنامجًا نصيًا لتبديل إخراج PipeWire يقوم بنقل الصوت النشط

أنشئ برنامجًا نصيًا لتبديل إخراج PipeWire يقوم بنقل الصوت النشط

قم بتبديل الصوت في نظام Debian بين مخرجات PipeWire المسماة باستخدام برنامج نصي pactl يقوم بتحديث المخرج الافتراضي وإعادة توجيه التدفقات التي يتم تشغيلها بالفعل.

استعادة إدخال ميكروفون سماعة البلوتوث على نظام أوبونتو 24.04

استعادة إدخال ميكروفون سماعة البلوتوث على نظام أوبونتو 24.04

قم بتشغيل ميكروفون سماعة البلوتوث الخاصة بك عن طريق تحديد المدخل الصحيح، واستخدام ملف تعريف صوتي بدون استخدام اليدين، والتحقق من مسار PipeWire الخاص بنظام Ubuntu.

إصلاح مشكلة عدم توافق تطبيقات Flatpak مع سمات GTK في أوبونتو 24.04

إصلاح مشكلة عدم توافق تطبيقات Flatpak مع سمات GTK في أوبونتو 24.04

تعرف على سبب تجاهل تطبيقات Flatpak لسمات GTK الخاصة بنظام Ubuntu 24.04 واتبع الخطوات الآمنة للتحقق من ملحقات السمات وتحديث تطبيقات Flatpak وتشخيص مشكلات البوابة.

كيفية تثبيت نظامي التشغيل أوبونتو 24.04 وويندوز 11 مع تمكين BitLocker

كيفية تثبيت نظامي التشغيل أوبونتو 24.04 وويندوز 11 مع تمكين BitLocker

قم بتثبيت أوبونتو 24.04 بجانب ويندوز 11 مع BitLocker بأمان. قارن مسارات الأقراص المنفصلة والمشتركة، ومفاتيح الاسترداد، وتقسيم القرص، وفحوصات الإقلاع.

كيفية إصلاح مشكلة عدم تحميل برامج تشغيل Nvidia بعد تحديث النواة على نظام Ubuntu

كيفية إصلاح مشكلة عدم تحميل برامج تشغيل Nvidia بعد تحديث النواة على نظام Ubuntu

قم بتشخيص أعطال برنامج تشغيل NVIDIA بعد تحديث نواة Ubuntu. تحقق من DKMS و Secure Boot، وأعد بناء الوحدة المطابقة، وقم بتسجيل MOK، وتحقق من الإصلاح.

كيفية إصلاح مشكلة انقطاع اتصال Wi-Fi في أوبونتو 24.04 بعد وضع السكون

كيفية إصلاح مشكلة انقطاع اتصال Wi-Fi في أوبونتو 24.04 بعد وضع السكون

إصلاح انقطاعات شبكة Wi-Fi في Ubuntu 24.04 بعد وضع السكون من خلال التحقق من NetworkManager، وحظر الراديو، والتحديثات، وتوفير الطاقة، وبرامج التشغيل - ثم التحقق من كل استئناف.

حل مشكلة ارتفاع استهلاك وحدة المعالجة المركزية بواسطة برنامج Tracker-Miner-3 في أوبونتو جنوم

حل مشكلة ارتفاع استهلاك وحدة المعالجة المركزية بواسطة برنامج Tracker-Miner-3 في أوبونتو جنوم

تعرف على سبب استخدام tracker-miner-fs-3 لوحدة المعالجة المركزية بشكل كبير في Ubuntu GNOME وكيفية التحقق من الفهرسة، واستبعاد المجلدات، وتحديث Ubuntu، أو إعادة بناء فهرس البحث بأمان.

حل مشكلة "لم يتم العثور على جهاز قابل للتشغيل" بعد تثبيت دبيان على UEFI

حل مشكلة "لم يتم العثور على جهاز قابل للتشغيل" بعد تثبيت دبيان على UEFI

قم بإصلاح خطأ التمهيد UEFI في Debian عن طريق التحقق من وضع التمهيد، وقسم نظام EFI، وملفات GRUB، وترتيب تمهيد البرامج الثابتة - دون إعادة تثبيت Debian أولاً.

Download Adobe Acrobat xi pro

Download Adobe Acrobat xi pro

تعرف على كيفية Download Adobe Acrobat xi pro بأمان من خلال دليلنا التفصيلي الذي يرشدك للحصول على النسخة الأصلية بسرعة ودون مخاطر.

تحميل ويندوز 11 برابط مباشر iso

تحميل ويندوز 11 برابط مباشر iso

تعرف على طريقة تحميل ويندوز 11 برابط مباشر iso من المصدر الرسمي لمايكروسوفت بخطوات واضحة للحصول على ملف ISO نظيف وآمن للتثبيت.