system/roles/pipewire/tasks/main.yaml
Marty Oehme dc78da4d03
feat(pipewire): Add alsa integration
Any programs running through alsa only (such as spotify_player on
voidlinux) should now also work correctly through the pipewire stack.
2025-03-13 11:24:16 +01:00

81 lines
2.1 KiB
YAML

- name: Ensure user group for audio/video exists
ansible.builtin.group:
name: "{{ item }}"
state: "present"
loop: "{{ audio_groups }}"
- name: Put user in audio group
ansible.builtin.user:
name: "{{ user_name }}"
groups: "{{ audio_groups }}"
append: true
- name: Install pipewire
community.general.xbps:
name:
- pipewire
state: "{{ desired_package_state | default('present') }}"
tags: packages
- name: Install pipewire bluetooth
community.general.xbps:
name:
- libspa-bluetooth
state: "{{ desired_package_state | default('present') }}"
tags:
- packages
- bluetooth
- name: Set up wireplumber to auto start
ansible.builtin.file:
dest: "/etc/pipewire/pipewire.conf.d"
state: directory
# FIXME: Does not work automatically for some reason?
- name: Set up wireplumber to auto start
ansible.builtin.file:
force: "yes"
src: "/usr/share/examples/wireplumber/10-wireplumber.conf"
dest: "/etc/pipewire/pipewire.conf.d/10-wireplumber.conf"
state: link
- name: Enable pipewire-pulse interface
ansible.builtin.file:
force: "yes"
src: "/usr/share/examples/pipewire/20-pipewire-pulse.conf"
dest: "/etc/pipewire/pipewire.conf.d/20-pipewire-pulse.conf"
state: link
tags: pulseaudio
- name: Install alsa integration package
community.general.xbps:
name:
- alsa-pipewire
state: "{{ desired_package_state | default('present') }}"
tags:
- packages
- alsa
- name: Set up wireplumber to auto start
ansible.builtin.file:
dest: "/etc/alsa/conf.d"
state: directory
- name: Enable alsa-pipewire interface
become: true
ansible.builtin.file:
force: "yes"
src: "/usr/share/alsa/alsa.conf.d/50-pipewire.conf"
dest: "/etc/alsa/conf.d/50-pipewire.conf"
state: link
tags: alsa
- name: Make alsa-pipewire interface default for alsa
ansible.builtin.file:
force: "yes"
src: "/usr/share/alsa/alsa.conf.d/99-pipewire-default.conf"
dest: "/etc/alsa/conf.d/99-pipewire-default.conf"
state: link
tags: alsa
# TODO: Find way to install and enable pipewire-roc-sink module (and enable ~/.config/pipewire/pipewire.conf.d/roc-sink.conf)