Send patches - preferably formatted by git format-patch - to patches at archlinux32 dot org.
summaryrefslogtreecommitdiff
path: root/archinstall/default_profiles/applications/pipewire.py
diff options
context:
space:
mode:
Diffstat (limited to 'archinstall/default_profiles/applications/pipewire.py')
-rw-r--r--archinstall/default_profiles/applications/pipewire.py40
1 files changed, 40 insertions, 0 deletions
diff --git a/archinstall/default_profiles/applications/pipewire.py b/archinstall/default_profiles/applications/pipewire.py
new file mode 100644
index 00000000..4cb75968
--- /dev/null
+++ b/archinstall/default_profiles/applications/pipewire.py
@@ -0,0 +1,40 @@
+from typing import List, Union, Any, TYPE_CHECKING
+
+import archinstall
+
+from archinstall.default_profiles.profile import Profile, ProfileType
+from archinstall.lib.models import User
+
+if TYPE_CHECKING:
+ from archinstall.lib.installer import Installer
+ _: Any
+
+
+class PipewireProfile(Profile):
+ def __init__(self):
+ super().__init__('Pipewire', ProfileType.Application)
+
+ @property
+ def packages(self) -> List[str]:
+ return [
+ 'pipewire',
+ 'pipewire-alsa',
+ 'pipewire-jack',
+ 'pipewire-pulse',
+ 'gst-plugin-pipewire',
+ 'libpulse',
+ 'wireplumber'
+ ]
+
+ def _enable_pipewire_for_all(self, install_session: 'Installer'):
+ users: Union[User, List[User]] = archinstall.arguments.get('!users', [])
+ if not isinstance(users, list):
+ users = [users]
+
+ for user in users:
+ install_session.arch_chroot('systemctl enable --user pipewire-pulse.service', run_as=user.username)
+
+ def install(self, install_session: 'Installer'):
+ super().install(install_session)
+ install_session.add_additional_packages(self.packages)
+ self._enable_pipewire_for_all(install_session)