diff --git a/playbook.yml b/playbook.yml index eada34f..d1c2aff 100644 --- a/playbook.yml +++ b/playbook.yml @@ -20,7 +20,6 @@ - import_tasks: 'tasks/mpv.yml' - import_tasks: 'tasks/mpd.yml' - import_tasks: 'tasks/syncthing.yml' - - import_tasks: 'tasks/pipewire.yml' - import_tasks: 'tasks/timer.yml' handlers: - import_tasks: 'handlers.yml' diff --git a/tasks/pipewire.yml b/tasks/pipewire.yml deleted file mode 100644 index 5a5b905..0000000 --- a/tasks/pipewire.yml +++ /dev/null @@ -1,40 +0,0 @@ -# Note that pulsaudio should be removed by installing pipewire-pulse manually - -- name: remove previous configurations - file: - path: '{{ item }}' - state: absent - loop: - - '{{ xdg_config_dir }}/systemd/user/pipewire-pulse.service.d/' - - '{{ xdg_script_dir }}/pulse-script' - -- name: create pipewire configuration dir - file: - state: directory - path: '{{ xdg_config_dir }}/pipewire' - -- name: copy pipewire-pulse configuration - template: - src: 'templates/{{ platform }}/pipewire-pulse.j2' - dest: '{{ xdg_config_dir }}/pipewire/pipewire-pulse.conf' - notify: restart pipewire-pulse - -- name: gather the package facts - package_facts: - manager: pacman - -- name: replace pipewire-media-session - become: true - pacman: - name: wireplumber - state: present - extra_args: --noconfirm --ask=4 - when: "'pipewire-media-session' in ansible_facts.packages or not 'wireplumber' in ansible_facts.packages" - notify: restart pipewire-pulse - -- name: start pipewire socket - systemd: - name: pipewire.socket - state: started - enabled: true - scope: user diff --git a/templates/desktop/pipewire-pulse.j2 b/templates/desktop/pipewire-pulse.j2 deleted file mode 100644 index 56d29e3..0000000 --- a/templates/desktop/pipewire-pulse.j2 +++ /dev/null @@ -1,93 +0,0 @@ -# PulseAudio config file for PipeWire version "0.3.48" # -# -# Copy and edit this file in /etc/pipewire for system-wide changes -# or in ~/.config/pipewire for local changes. -# -# It is also possible to place a file with an updated section in -# /etc/pipewire/pipewire-pulse.conf.d/ for system-wide changes or in -# ~/.config/pipewire/pipewire-pulse.conf.d/ for local changes. -# - -context.properties = {} - -context.spa-libs = { - audio.convert.* = audioconvert/libspa-audioconvert - support.* = support/libspa-support -} - -context.modules = [ - { name = libpipewire-module-rt - args = { - nice.level = -11 - } - flags = [ ifexists nofail ] - } - { name = libpipewire-module-protocol-native } - { name = libpipewire-module-client-node } - { name = libpipewire-module-adapter } - { name = libpipewire-module-metadata } - - { name = libpipewire-module-protocol-pulse - args = { - server.address = [ - "unix:native" - { address = "tcp:{{ vpn_ip }}:{{ pulse_port }}" - max-clients = 64 - listen-backlog = 32 - client.access = "allowed" - } - ] - # These overrides are only applied when running in a vm. - vm.overrides = { - pulse.min.quantum = 1024/48000 # 22ms - } - } - } - - { name = libpipewire-module-access - args = { - access.allowed = [ - /usr/bin/pipewire-media-session - /usr/bin/mpd - ] - - access.rejected = [ - ] - } - } -] - -# Extra modules can be loaded here. Setup in default.pa can be moved here -context.exec = [ - { path = "pactl" args = "load-module module-always-sink" } -] - -stream.properties = {} - -# client/stream specific properties -pulse.rules = [ - { - # skype does not want to use devices that don't have an S16 sample format. - matches = [ - { application.process.binary = "teams" } - { application.process.binary = "skypeforlinux" } - ] - actions = { quirks = [ force-s16-info ] } - } - { - # firefox marks the capture streams as don't move and then they - # can't be moved with pavucontrol or other tools. - matches = [ { application.process.binary = "firefox" } ] - actions = { quirks = [ remove-capture-dont-move ] } - } - { - # speech dispatcher asks for too small latency and then underruns. - matches = [ { application.name = "~speech-dispatcher*" } ] - actions = { - update-props = { - pulse.min.req = 1024/48000 # 21ms - pulse.min.quantum = 1024/48000 # 21ms - } - } - } -] diff --git a/templates/laptop/pipewire-pulse.j2 b/templates/laptop/pipewire-pulse.j2 deleted file mode 100644 index 56d29e3..0000000 --- a/templates/laptop/pipewire-pulse.j2 +++ /dev/null @@ -1,93 +0,0 @@ -# PulseAudio config file for PipeWire version "0.3.48" # -# -# Copy and edit this file in /etc/pipewire for system-wide changes -# or in ~/.config/pipewire for local changes. -# -# It is also possible to place a file with an updated section in -# /etc/pipewire/pipewire-pulse.conf.d/ for system-wide changes or in -# ~/.config/pipewire/pipewire-pulse.conf.d/ for local changes. -# - -context.properties = {} - -context.spa-libs = { - audio.convert.* = audioconvert/libspa-audioconvert - support.* = support/libspa-support -} - -context.modules = [ - { name = libpipewire-module-rt - args = { - nice.level = -11 - } - flags = [ ifexists nofail ] - } - { name = libpipewire-module-protocol-native } - { name = libpipewire-module-client-node } - { name = libpipewire-module-adapter } - { name = libpipewire-module-metadata } - - { name = libpipewire-module-protocol-pulse - args = { - server.address = [ - "unix:native" - { address = "tcp:{{ vpn_ip }}:{{ pulse_port }}" - max-clients = 64 - listen-backlog = 32 - client.access = "allowed" - } - ] - # These overrides are only applied when running in a vm. - vm.overrides = { - pulse.min.quantum = 1024/48000 # 22ms - } - } - } - - { name = libpipewire-module-access - args = { - access.allowed = [ - /usr/bin/pipewire-media-session - /usr/bin/mpd - ] - - access.rejected = [ - ] - } - } -] - -# Extra modules can be loaded here. Setup in default.pa can be moved here -context.exec = [ - { path = "pactl" args = "load-module module-always-sink" } -] - -stream.properties = {} - -# client/stream specific properties -pulse.rules = [ - { - # skype does not want to use devices that don't have an S16 sample format. - matches = [ - { application.process.binary = "teams" } - { application.process.binary = "skypeforlinux" } - ] - actions = { quirks = [ force-s16-info ] } - } - { - # firefox marks the capture streams as don't move and then they - # can't be moved with pavucontrol or other tools. - matches = [ { application.process.binary = "firefox" } ] - actions = { quirks = [ remove-capture-dont-move ] } - } - { - # speech dispatcher asks for too small latency and then underruns. - matches = [ { application.name = "~speech-dispatcher*" } ] - actions = { - update-props = { - pulse.min.req = 1024/48000 # 21ms - pulse.min.quantum = 1024/48000 # 21ms - } - } - } -]