From 8aa0027bfae67bad29e46234a2ffe230685a8904 Mon Sep 17 00:00:00 2001 From: Salt Date: Wed, 16 Sep 2020 14:28:02 -0500 Subject: [PATCH] Add new pulseaudio role It's like system mode but not --- playbooks/home.yml | 2 ++ roles/desktop-common/tasks/main.yml | 3 -- roles/pulseaudio/tasks/main.yml | 32 +++++++++++++++++++ .../templates/pulse-client.conf | 0 .../templates/pulse-daemon.conf | 0 .../templates/pulse-default.pa | 0 roles/pulseaudio/templates/pulseaudio.service | 23 +++++++++++++ 7 files changed, 57 insertions(+), 3 deletions(-) create mode 100644 roles/pulseaudio/tasks/main.yml rename roles/{desktop-common => pulseaudio}/templates/pulse-client.conf (100%) rename roles/{desktop-common => pulseaudio}/templates/pulse-daemon.conf (100%) rename roles/{desktop-common => pulseaudio}/templates/pulse-default.pa (100%) create mode 100644 roles/pulseaudio/templates/pulseaudio.service diff --git a/playbooks/home.yml b/playbooks/home.yml index 339bc2e..7952510 100644 --- a/playbooks/home.yml +++ b/playbooks/home.yml @@ -40,6 +40,8 @@ 38306234316364306134396138376230626630633733306432626637616239373838646433343761 3436643661633766616564663937346232353666386531363438 tags: [ desktop ] + - role: pulseaudio + tags: [ pulse, pulseaudio ] - role: desktop-sddm vars: sddm_theme_name: "breeze" diff --git a/roles/desktop-common/tasks/main.yml b/roles/desktop-common/tasks/main.yml index de9808e..8171acc 100644 --- a/roles/desktop-common/tasks/main.yml +++ b/roles/desktop-common/tasks/main.yml @@ -23,9 +23,6 @@ dest: "{{ item.dest }}" mode: "{{ item.mode }}" loop: - - { src: "pulse-client.conf", dest: "/etc/pulse/client.conf", mode: "0644" } - - { src: "pulse-daemon.conf", dest: "/etc/pulse/daemon.conf", mode: "0644" } - - { src: "pulse-default.pa", dest: "/etc/pulse/default.pa", mode: "0644" } - { src: "sshd_config", dest: "/etc/ssh/sshd_config", mode: "0644" } - { src: "nomouseaccel.conf", dest: "/etc/X11/xorg.conf.d/90-mouse-acceleration.conf", mode: "0644" } - { src: "touchpad.conf", dest: "/etc/X11/xorg.conf.d/90-touchpad.conf", mode: "0644" } diff --git a/roles/pulseaudio/tasks/main.yml b/roles/pulseaudio/tasks/main.yml new file mode 100644 index 0000000..3c01464 --- /dev/null +++ b/roles/pulseaudio/tasks/main.yml @@ -0,0 +1,32 @@ +#!/usr/bin/ansible-playbook +# vim:ft=ansible: +--- +- name: Install and configure PulseAudio + block: + - name: Install packages + apt: + name: + - pulseaudio + - name: Template out configs + template: + src: "{{ item.src }}" + dest: "{{ item.dest }}" + mode: "{{ item.mode }}" + loop: + - { src: "pulse-client.conf", dest: "/etc/pulse/client.conf", mode: "0644" } + - { src: "pulse-daemon.conf", dest: "/etc/pulse/daemon.conf", mode: "0644" } + - { src: "pulse-default.pa", dest: "/etc/pulse/default.pa", mode: "0644" } + - { src: "pulseaudio.service", dest: "/etc/systemd/system/pulseaudio.service", mode: "0644" } + - name: Assure pulse user + user: + name: pulseaudio + password: "!" + system: yes + home: /var/lib/pulse + groups: audio + - name: Enable service + systemd: + name: pulseaudio + enabled: yes + daemon_reload: yes + become: yes diff --git a/roles/desktop-common/templates/pulse-client.conf b/roles/pulseaudio/templates/pulse-client.conf similarity index 100% rename from roles/desktop-common/templates/pulse-client.conf rename to roles/pulseaudio/templates/pulse-client.conf diff --git a/roles/desktop-common/templates/pulse-daemon.conf b/roles/pulseaudio/templates/pulse-daemon.conf similarity index 100% rename from roles/desktop-common/templates/pulse-daemon.conf rename to roles/pulseaudio/templates/pulse-daemon.conf diff --git a/roles/desktop-common/templates/pulse-default.pa b/roles/pulseaudio/templates/pulse-default.pa similarity index 100% rename from roles/desktop-common/templates/pulse-default.pa rename to roles/pulseaudio/templates/pulse-default.pa diff --git a/roles/pulseaudio/templates/pulseaudio.service b/roles/pulseaudio/templates/pulseaudio.service new file mode 100644 index 0000000..3d07b92 --- /dev/null +++ b/roles/pulseaudio/templates/pulseaudio.service @@ -0,0 +1,23 @@ +# vim:ft=systemd +# NOTE: This service is ONLY useful IF you have the following: +# * client.conf is set to not autospawn and listen to a socket instead +# * default.pa is configured to start such a socket +# Using this unit file and complaining to me that it doesn't work without +# the other configs in place will result in me not giving a shit + +## THIS UNIT DOES NOT START PULSE IN SYSTEM MODE +## THIS UNIT DOES NOT START PULSE IN SYSTEM MODE +## THIS UNIT DOES NOT START PULSE IN SYSTEM MODE +## THIS UNIT DOES NOT START PULSE IN SYSTEM MODE +## THIS UNIT DOES NOT START PULSE IN SYSTEM MODE +[Unit] +Description=Pulseaudio sound server + +[Service] +User=pulseaudio +Group=pulseaudio +ExecStart=/usr/bin/pulseaudio --disallow-exit +ExecReload=/bin/kill -HUP $MAINPID + +[Install] +WantedBy=multi-user.target