Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Empty file.
56 changes: 0 additions & 56 deletions archinstall/default_profiles/applications/pipewire.py

This file was deleted.

1 change: 0 additions & 1 deletion archinstall/default_profiles/profile.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,6 @@ class ProfileType(Enum):
CustomType = 'CustomType'
# special things
Tailored = 'Tailored'
Application = 'Application'


class GreeterType(Enum):
Expand Down
46 changes: 46 additions & 0 deletions archinstall/lib/installer.py
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@
from .hardware import SysInfo
from .locale.utils import verify_keyboard_layout, verify_x11_keyboard_layout
from .luks import Luks2
from .models.audio_configuration import Audio, AudioConfiguration
from .models.bootloader import Bootloader
from .models.locale import LocaleConfiguration
from .models.mirrors import MirrorConfiguration
Expand Down Expand Up @@ -1724,6 +1725,51 @@ def _service_state(self, service_name: str) -> str:
environment_vars={'SYSTEMD_COLORS': '0'}
).decode()

def _enable_pipewire_for_all(self, users: list[User]) -> None:
for user in users:
# Create the full path for enabling the pipewire systemd items
service_dir = self.target / "home" / user.username / ".config" / "systemd" / "user" / "default.target.wants"
service_dir.mkdir(parents=True, exist_ok=True)

# Set ownership of the entire user catalogue
self.arch_chroot(f'chown -R {user.username}:{user.username} /home/{user.username}')

# symlink in the correct pipewire systemd items
self.arch_chroot(
f'ln -sf /usr/lib/systemd/user/pipewire-pulse.service /home/{user.username}/.config/systemd/user/default.target.wants/pipewire-pulse.service',
run_as=user.username
)
self.arch_chroot(
f'ln -sf /usr/lib/systemd/user/pipewire-pulse.socket /home/{user.username}/.config/systemd/user/default.target.wants/pipewire-pulse.socket',
run_as=user.username
)

def install_audio_config(self, audio_config: AudioConfiguration, users: list[User] | None) -> None:
info(f'Installing audio server: {audio_config.audio.name}')

match audio_config.audio:
case Audio.PIPEWIRE:
self.add_additional_packages([
'pipewire',
'pipewire-alsa',
'pipewire-jack',
'pipewire-pulse',
'gst-plugin-pipewire',
'libpulse',
'wireplumber',
])
if users is not None:
self._enable_pipewire_for_all(users)
case Audio.PULSEAUDIO:
self.add_additional_packages("pulseaudio")

if audio_config.audio != Audio.NO_AUDIO:
if SysInfo.requires_sof_fw():
self.add_additional_packages('sof-firmware')

if SysInfo.requires_alsa_fw():
self.add_additional_packages('alsa-firmware')


def accessibility_tools_in_use() -> bool:
return os.system('systemctl is-active --quiet espeakup.service') == 0
Expand Down
28 changes: 0 additions & 28 deletions archinstall/lib/models/audio_configuration.py
Original file line number Diff line number Diff line change
@@ -1,12 +1,5 @@
from dataclasses import dataclass
from enum import StrEnum, auto
from typing import TYPE_CHECKING

from ..hardware import SysInfo
from ..output import info

if TYPE_CHECKING:
from archinstall.lib.installer import Installer


class Audio(StrEnum):
Expand All @@ -29,24 +22,3 @@ def parse_arg(arg: dict[str, str]) -> 'AudioConfiguration':
return AudioConfiguration(
Audio(arg['audio'])
)

def install_audio_config(
self,
installation: 'Installer'
) -> None:
info(f'Installing audio server: {self.audio.name}')

from ...default_profiles.applications.pipewire import PipewireProfile

match self.audio:
case Audio.PIPEWIRE:
PipewireProfile().install(installation)
case Audio.PULSEAUDIO:
installation.add_additional_packages("pulseaudio")

if self.audio != Audio.NO_AUDIO:
if SysInfo.requires_sof_fw():
installation.add_additional_packages('sof-firmware')

if SysInfo.requires_alsa_fw():
installation.add_additional_packages('alsa-firmware')
2 changes: 1 addition & 1 deletion archinstall/scripts/guided.py
Original file line number Diff line number Diff line change
Expand Up @@ -109,7 +109,7 @@ def perform_installation(mountpoint: Path) -> None:

audio_config = config.audio_config
if audio_config:
audio_config.install_audio_config(installation)
installation.install_audio_config(audio_config, users)
else:
info("No audio server will be installed")

Expand Down
2 changes: 1 addition & 1 deletion examples/interactive_installation.py
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,7 @@ def perform_installation(mountpoint: Path) -> None:

audio_config = config.audio_config
if audio_config:
audio_config.install_audio_config(installation)
installation.install_audio_config(audio_config, users)
else:
info("No audio server will be installed")

Expand Down