diff options
| author | Ahmed Abdelhalim <[email protected]> | 2026-01-08 22:02:58 +0100 |
|---|---|---|
| committer | Ahmed Abdelhalim <[email protected]> | 2026-01-08 22:02:58 +0100 |
| commit | 6da68a8d57dfe895dde13bc748f6e0d0cabef678 (patch) | |
| tree | 7d9b9cd94118083082dd93c0df5a139864ee759b | |
| parent | d9fb46a80f00e531dbb77d2403bde9aea13bfe75 (diff) | |
Add pipewire role
| -rw-r--r-- | molecule/archlinux-gnome/converge.yml | 1 | ||||
| -rw-r--r-- | molecule/archlinux/converge.yml | 1 | ||||
| -rw-r--r-- | molecule/debian/converge.yml | 1 | ||||
| -rw-r--r-- | molecule/raspberrypi/converge.yml | 1 | ||||
| -rw-r--r-- | molecule/ubuntu/converge.yml | 1 | ||||
| -rw-r--r-- | roles/pipewire/meta/argument_specs.yml | 6 | ||||
| -rw-r--r-- | roles/pipewire/meta/main.yml | 18 | ||||
| -rw-r--r-- | roles/pipewire/tasks/install-archlinux.yml | 17 | ||||
| -rw-r--r-- | roles/pipewire/tasks/install-debian.yml | 18 | ||||
| -rw-r--r-- | roles/pipewire/tasks/main.yml | 18 |
10 files changed, 82 insertions, 0 deletions
diff --git a/molecule/archlinux-gnome/converge.yml b/molecule/archlinux-gnome/converge.yml index b46634cc..aa18537c 100644 --- a/molecule/archlinux-gnome/converge.yml +++ b/molecule/archlinux-gnome/converge.yml @@ -78,3 +78,4 @@ - role: "btop" - role: "bluetui" - role: "wlctl" + - role: "pipewire" diff --git a/molecule/archlinux/converge.yml b/molecule/archlinux/converge.yml index 030dbba8..65326615 100644 --- a/molecule/archlinux/converge.yml +++ b/molecule/archlinux/converge.yml @@ -77,4 +77,5 @@ - role: "btop" - role: "bluetui" - role: "wlctl" + - role: "pipewire" - role: "hyprland" diff --git a/molecule/debian/converge.yml b/molecule/debian/converge.yml index 0b4d2762..a7afd120 100644 --- a/molecule/debian/converge.yml +++ b/molecule/debian/converge.yml @@ -87,3 +87,4 @@ - role: "alacritty" - role: "btop" - role: "wlctl" + - role: "pipewire" diff --git a/molecule/raspberrypi/converge.yml b/molecule/raspberrypi/converge.yml index 081843c8..3e18766c 100644 --- a/molecule/raspberrypi/converge.yml +++ b/molecule/raspberrypi/converge.yml @@ -84,3 +84,4 @@ - role: "alacritty" - role: "btop" - role: "wlctl" + - role: "pipewire" diff --git a/molecule/ubuntu/converge.yml b/molecule/ubuntu/converge.yml index 621a94b2..266e087d 100644 --- a/molecule/ubuntu/converge.yml +++ b/molecule/ubuntu/converge.yml @@ -76,3 +76,4 @@ - role: "alacritty" - role: "btop" - role: "wlctl" + - role: "pipewire" diff --git a/roles/pipewire/meta/argument_specs.yml b/roles/pipewire/meta/argument_specs.yml new file mode 100644 index 00000000..d136c254 --- /dev/null +++ b/roles/pipewire/meta/argument_specs.yml @@ -0,0 +1,6 @@ +--- +argument_specs: + main: + short_description: "Install pipewire on Linux distribution" + description: "Install pipewire on Linux distribution" + options: {} diff --git a/roles/pipewire/meta/main.yml b/roles/pipewire/meta/main.yml new file mode 100644 index 00000000..26d3d93c --- /dev/null +++ b/roles/pipewire/meta/main.yml @@ -0,0 +1,18 @@ +--- +dependencies: + - role: "systemd" +galaxy_info: + author: "a14m" + description: "Install pipewire" + license: "MIT" + min_ansible_version: "2.18" + platforms: + - name: "ArchLinux" + versions: + - "all" + - name: "Ubuntu" + versions: + - "noble" + - name: "Debian" + versions: + - "bookworm" diff --git a/roles/pipewire/tasks/install-archlinux.yml b/roles/pipewire/tasks/install-archlinux.yml new file mode 100644 index 00000000..9f6adcae --- /dev/null +++ b/roles/pipewire/tasks/install-archlinux.yml @@ -0,0 +1,17 @@ +--- +- name: "Ensure pulseaudio is removed" + become: true + community.general.pacman: + name: "pulseaudio" + state: "absent" + extra_args: "--nosave --recursive" + +- name: "Ensure pipewire packages are installed" + become: true + community.general.pacman: + name: + - "pipewire" + - "wireplumber" + - "pipewire-pulse" + - "pipewire-alsa" + state: "present" diff --git a/roles/pipewire/tasks/install-debian.yml b/roles/pipewire/tasks/install-debian.yml new file mode 100644 index 00000000..e9c9b71b --- /dev/null +++ b/roles/pipewire/tasks/install-debian.yml @@ -0,0 +1,18 @@ +--- +- name: "Ensure pulseaudio is removed" + become: true + ansible.builtin.apt: + pkg: "pulseaudio" + state: "absent" + autoremove: true + purge: true + +- name: "Ensure pipewire packages are installed" + become: true + ansible.builtin.apt: + pkg: + - "pipewire" + - "wireplumber" + - "pipewire-pulse" + - "pipewire-alsa" + state: "present" diff --git a/roles/pipewire/tasks/main.yml b/roles/pipewire/tasks/main.yml new file mode 100644 index 00000000..870ec6f3 --- /dev/null +++ b/roles/pipewire/tasks/main.yml @@ -0,0 +1,18 @@ +--- +- name: "Include OS-specific tasks" + ansible.builtin.include_tasks: "install-{{ ansible_os_family | lower }}.yml" + +- name: "Ensure pipewire services are restarted" + ansible.builtin.systemd_service: + name: "{{ item }}" + enabled: "true" + state: "restarted" + scope: "user" + loop: + - "pipewire" + - "pipewire-pulse" + - "wireplumber" + tags: + # Since this is the recommended way for ensuring the services are started + # must be ignored from idempotence testing because it always reports changed + - molecule-idempotence-notest |
