Вопрос или проблема
Чтобы запускать приложения flatpak (например, Discord или Spotify), мне сейчас приходится экспортировать переменную $PULSE_SERVER
в моем файле ~/.zshrc
или ~/.bashrc
следующим образом:
export PULSE_SERVER=unix:/tmp/pulse-PKdhtXMmr18n/native
После прочтения этой части FAQ по PulseAudio, я полагаю, что могу настроить это, используя ~/.config/pulse/client.conf
.
Я попробовал добавить одну из следующих строк в ~/.config/pulse/client.conf
:
default-server = unix:/tmp/pulse-PKdhtXMmr18n/native
И:
auto-connect-display = yes
ПРИМЕЧАНИЕ: Я попробовал второй вариант, потому что кто-то на IRC предположил, что flatpak может искать что-то, связанное с X11 для $PULSE_SERVER
.
После выполнения команды env | grep PULSE
переменная $PULSE_SERVER
не устанавливается. Более того, ни один из этих подходов, похоже, не оказывает никакого эффекта (при этом первый, кажется, мешал запуску сессии, так как polybar перестал запускаться, я понятия не имею, почему это происходит и как это отлаживать).
Основная причина, по которой я хочу определить $PULSE_SERVER
в другом месте, заключается в том, что я не хочу объявлять его в каждом терминале, и мне хотелось бы держать всю конфигурацию Pulse в одном месте.
Изначально я пробовал добавить вышеуказанный экспорт в ~/.xprofile
(я использую SDDM для запуска сессии), однако это остановило создание папки pulse в /tmp/
.
Дополнительная информация: я использую Void Linux с оконным менеджером bspwm.
Обычно вы могли бы просто экспортировать переменную в конфигурации вашего shell, чтобы она экспортировалась каждый раз при запуске, следующим образом:
export PULSE_SERVER="unix:/tmp/pulse-PKdhtXMmr18n/native"
После этого вы можете либо выполнить команду source для вашего конфигурационного файла shell, например:
source ~/.bashrc
либо открыть новый терминал для обновления переменных окружения.
Теперь, если выполнить grep для PULSE, env-переменная появится.
Ответ или решение
Экспорт переменной $PULSE_SERVER при запуске
Теория
Переменная окружения $PULSE_SERVER
используется для указания адреса сервера PulseAudio, который программы будут использовать для аудиовывода. В обычных условиях, эту переменную можно задать в конфигурационных файлах оболочки, таких как ~/.bashrc
или ~/.zshrc
, что обеспечивает её экспорт в каждом новом экземпляре оболочки.
Однако, если вы хотите централизовать конфигурацию PulseAudio и не прописывать экспорт в каждом новом сеансе оболочки, имеет смысл перенести аналогичные настройки в конфигурационные файлы PulseAudio, такие как ~/.config/pulse/client.conf
.
Пример
Вы уже пытались настроить client.conf
следующим образом:
default-server = unix:/tmp/pulse-PKdhtXMmr18n/native
и
auto-connect-display = yes
Несмотря на это, система не приняла эти изменения должным образом, и, возможно, это сказалось на других аспектах работы системы, например, на запуске polybar
.
Применение
Для достижения ваших целей, ниже представлены несколько шагов и рекомендаций:
-
Изучение структуры PulseAudio: Убедитесь, что пути и адреса указаны корректно. PulseAudio создает временные папки в
/tmp/
, которые могут различаться между сеансами. -
Использование графического диспетчера сеансов: Разместите экспорт переменной не в оболочке, а в скриптах, которые запускаются при входе в систему через SDDM или подобный менеджер. Вместо
.xprofile
, это может быть.xinitrc
или системный файл конфигурации.export PULSE_SERVER="unix:/tmp/$(find -maxdepth 1 -type d -name 'pulse-*')/native"
В этом скрипте используется динамическое нахождение правильного пути к серверу PulseAudio.
-
Журналирование и отладка: Добавьте логи в запускаемые скрипты, чтобы понять, в каком моменте возникают сбои. Это поможет установить, действительно ли переменная окружения экспортируется.
-
Перезагрузка системы или сеанса: После каждой модификации конфигурационных файлов, полностью перезапустите сеанс пользователя или систему, чтобы изменения вступили в силу.
-
Консультация с сообществом: Если сомнения остаются, обсуждение с сообществом Void Linux или PulseAudio может дать дополнительную информацию или исправления.
Применяя данные шаги, вы сможете оптимизировать процесс конфигурации PulseAudio без необходимости множества редактирований в каждый раз при запуске новой оболочки.