Pulseaudio и XDMCP

Опубликовано 25 Июля, 2008 под тегами Debian, PulseAudio, XDMCP, Cheats, Debian, Звук

Речь, конечно, пойдет не только об XDMCP, но и о любых удаленных сеансах X. Основная мысль состоит в следующем: если просто запустить удаленный сеанс через XDMCP (скажем, с тонкого клиента), оказывается, что звук не туннелируется по сети. А так как pulseaudio позволяет передавать звук по сети, то надо исправить сие упущение.

Для этого нужно, во-первых, разрешить на “клиентской” машине передачу звука по сети (предполагается, что pulseaudio уже установлен на обе машины). Об этом уже говорилось, например, здесь.

Во-вторых, сделать так, чтобы при запуске сессии Х переменная окружения $PULSE_SERVER выставлялась в соответствии с переменной $DISPLAY (которая, помимо, собственно, номера дисплея, так же может содержать и ip-адрес тонкого клиента)

Если с первым все уже обсуждалось и подробно рассматривается в официальном руководстве, то второй решается тоже весьма просто и изящно. Всего-навсего надо дописать в /etc/profile (это, по сути, bash скрипт, исполняемый при запуске любой сессии) следующие строки:

PULSE_SERVER=`echo $DISPLAY | sed -r s/:.*$//`
if [ "$PULSE_SERVER" ] ; then
    export PULSE_SERVER
fi

Это нехитрое дополнение будет устанавливать PULSE_SERVER на тот адрес, на котором запущен сервер X.

Так же можно записать этот текст в отдельный файл в /etc/profile.d/

Нехитро, но, на мой вкус, изящно и эффективно.