# Void Linux!
## Getting sound to work
This is a tutorial on how to make Pipewire work on Void Linux. Not sure
how to structure this but here we go
What you'll need to install:
xbps-install dbus pipewire wireplumber elogind turnstile psmisc
first things first: we'll have to configure turnstile
What is turnstile for? (click to view)
Turnstile makes user services work on non-systemd distros such as Void.
This is important for dbus and pipewire to work
in /etc/turnstile/turnstiled.conf change this option from "yes" to "no":
manage_rundir = no
then we'll have to enable dbus and turnstile system services:
ln -s /etc/sv/{dbus,turnstiled}
## First part is done. Now for the second one
Make sure these directories exist:
mkdir -p ~/.config/service/dbus
mkdir -p ~/.config/service/pipewire
mkdir -p ~/.config/pipewire/pipewire.conf.d
then link these files:
ln -s /usr/share/examples/turnstile/dbus.run ~/.config/service/dbus/run
ln -s /usr/share/examples/wireplumber/10-wireplumber.conf ~/.config/pipewire/pipewire.conf.d
ln -s /usr/share/examples/pipewire/20-pipewire-pulse.conf ~/.config/pipewire/pipewire.conf.d
What are these files for? (click to view)
Linking the first file will make the user dbus service work. Last two
are for making pipewire run correctly
## Second part ends here. One more to go
now you'll have to make 2 files for the pipewire user service to work
here's the contents of the first one: ~/.config/service/pipewire/run
#!/bin/sh
exec chpst -e "$TURNSTILE_ENV_DIR" pipewire
and the second one: ~/.config/service/pipewire/finish
#!/bin/sh
killall pipewire wireplumber
And now you should be good to go! Althought there's still one more thing left:
turnstile has a special command on Void: turnstile-update-runit-env.
This command can add variables from your environment to user services.
Here's an example:
turnstile-update-runit-env WAYLAND_DISPLAY DISPLAY NIRI_SOCKET XDG_CURRENT_DESKTOP XCURSOR_SIZE XCURSOR_THEME
you should make this command run after your environment starts. For
example, if you're using a window manager, then put this command in its
config. More variables may be needed but this should make everything
work for the most part