From 959fecedf920389435952f635890413b7e8a230d Mon Sep 17 00:00:00 2001 From: Jeremiah Ticket Date: Wed, 23 Mar 2022 02:16:19 +0000 Subject: [PATCH] Added configure_pipewire.sh --- tools/configure_pipewire.sh | 84 +++++++++++++++++++++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100755 tools/configure_pipewire.sh diff --git a/tools/configure_pipewire.sh b/tools/configure_pipewire.sh new file mode 100755 index 00000000..2712f474 --- /dev/null +++ b/tools/configure_pipewire.sh @@ -0,0 +1,84 @@ +#!/bin/bash + +# This script configures pipewire to work both in the graphical environment and in the console with root apps. + +if [[ $(whoami) != "root" ]]; then +# Get the current user's XDG_HOME +xdgPath="${XDG_CONFIG_HOME:-$HOME/.config}" +mkdir -p "$xdgPath/pipewire/pipewire-pulse.conf.d" + +# Warn user if we are going to overwrite an existing default.pa +if [ -f "$xdgPath/pipewire/pipewire-pulse.conf.d/10-console_audio.conf" ]; then + read -p "This will replace the current file located at $xdgPath/pipewire/pipewire-pulse.conf.d/10-console_audio.conf, press enter to continue or control+c to abort. " continue +fi +echo 'context.modules = [ +{ name = libpipewire-module-protocol-pulse + args = { +server.address = [ + "unix:/tmp/pulse.sock" +] + } +} +] +context.exec = [ + { path = "pactl" args = "load-module module-switch-on-connect" } +]' > $xdgPath/pipewire/pipewire-pulse.conf.d/10-console_audio.conf +echo "If you have not yet done so, please run this script as root to write the client.conf file." +else +# This section does the root part: +xdgPath="/root/.config" +mkdir -p "$xdgPath/pulse" + +# Warn user if we are going to overwrite an existing default.pa +if [ -f "$xdgPath/pulse/default.pa" ]; then + read -p "This will replace the current file located at $xdgPath/pulse/default.pa, press enter to continue or control+c to abort. " continue +fi + +cat << EOF > "$xdgPath/pulse/client.conf" +# 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 . + +## Configuration file for PulseAudio clients. See pulse-client.conf(5) for +## more information. Default values are commented out. Use either ; or # for +## commenting. + +; default-sink = +; default-source = +default-server = unix:/tmp/pulse.sock +; default-dbus-server = + +autospawn = no +; autospawn = yes +; daemon-binary = /usr/bin/pulseaudio +; extra-arguments = --log-target=syslog + +; cookie-file = + +; enable-shm = yes +; shm-size-bytes = 0 # setting this 0 will use the system-default, usually 64 MiB + +; auto-connect-localhost = no +; auto-connect-display = no +EOF +echo "If you have not yet done so, run this script as your normal user to write the user default.pa" +fi + +# If there were no errors tell user to restart, else warn them errors happened. +if [ $? -eq 0 ]; then +echo "Configuration created successfully, please restart Pulseaudio or your system, for changes to take affect." +else +echo "Errors were encountered whilst writing the configuration, please correct them manually." +fi +exit 0