mirror of
https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git
synced 2025-11-15 06:59:58 -05:00
Add an xauthority parameter and use it in the startup script. Apparently on some systems the X authentication cookie is not stored in ~/.Xauthority but in some dynamic location pointed to by the XAUTHORITY environment variable. The environment variable therefore needs to be set in the PulseAudio daemon environment in order to have access to the X server from the PulseAudio daemon, but the variable is not necessarily set when starting PulseAudio. For example, systemd starts PulseAudio outside the X session. The start-pulseaudio-x11 script is run in the X session, so it has the environment variable available, and can pass it to the X modules, which then can set the variable in the daemon environment. RedHat bug: https://bugzilla.redhat.com/show_bug.cgi?id=1723065 Debian bug: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=593746 Based on patch by Alexander Kurtz <kurtz.alex@googlemail.com>
37 lines
1.6 KiB
Bash
Executable file
37 lines
1.6 KiB
Bash
Executable file
#!/bin/sh
|
|
|
|
# This file is part of PulseAudio.
|
|
#
|
|
# PulseAudio is free software; you can redistribute it and/or modify
|
|
# it under the terms of the GNU Lesser General Public License as published by
|
|
# the Free Software Foundation; either version 2 of the License, or
|
|
# (at your option) any later version.
|
|
#
|
|
# PulseAudio is distributed in the hope that it will be useful, but
|
|
# WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
# General Public License for more details.
|
|
#
|
|
# You should have received a copy of the GNU Lesser General Public License
|
|
# along with PulseAudio; if not, see <http://www.gnu.org/licenses/>.
|
|
|
|
set -e
|
|
|
|
if [ x"$DISPLAY" != x ] ; then
|
|
|
|
@PACTL_BINARY@ load-module module-x11-publish "display=$DISPLAY xauthority=$XAUTHORITY" > /dev/null
|
|
@PACTL_BINARY@ load-module module-x11-cork-request "display=$DISPLAY xauthority=$XAUTHORITY" > /dev/null
|
|
|
|
# KDE plasma versions older than 5.17.0 use module-device-manager's routing API.
|
|
# Check for current plasma version and load module if it's necessary.
|
|
if [ x"$KDE_FULL_SESSION" = x"true" ]; then
|
|
plasmaversion="$(plasmashell -v 2>/dev/null | sed -n 's/^plasmashell \([0-9][0-9]*\)\.\([0-9][0-9]*\)\.\([0-9][0-9]*\)/\1*1000000+\2*1000+\3/p' | head -1)"
|
|
if [ -n "$plasmaversion" ] && [ "$(($plasmaversion))" -lt "5017000" ]; then
|
|
@PACTL_BINARY@ load-module module-device-manager "do_routing=1" > /dev/null
|
|
fi
|
|
fi
|
|
|
|
if [ x"$SESSION_MANAGER" != x ] ; then
|
|
@PACTL_BINARY@ load-module module-x11-xsmp "display=$DISPLAY xauthority=$XAUTHORITY session_manager=$SESSION_MANAGER" > /dev/null
|
|
fi
|
|
fi
|