/
arch_linux
/
postinstall
Обзор
Документация
Войти
/
arch_linux
/
postinstall
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
scripts/09_audio_setup.sh
119 строк
4 KB
arch_linux
upload files
22 ноя 2025, 09:19
22 ноя 2025, 09:19
a4711e8
Код
Авторство
О чём код?
#!/bin/bash # Установка звуковой системы set -e SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" source "${SCRIPT_DIR}/common.sh" setup_common_audio() { print_info "Установка общих аудио компонентов..." local common_audio_packages=( "alsa-utils" "alsa-firmware" "playerctl" "ffmpeg" "gst-libav" "gst-plugins-good" "gst-plugins-bad" "gst-plugins-ugly" "audacity" "vlc" ) for package in "${common_audio_packages[@]}"; do install_with_check \ "$package" \ "sudo pacman -S --noconfirm $package" \ "check_package $package" done print_success "Общие аудио компоненты установлены" } setup_pipewire() { print_header "Установка PipeWire..." local pipewire_packages=( "pipewire" "pipewire-pulse" "pipewire-audio" "pipewire-alsa" "pipewire-jack" "gst-plugin-pipewire" "wireplumber" "alsa-utils" "helvum" ) for package in "${pipewire_packages[@]}"; do install_with_check \ "$package" \ "sudo pacman -S --noconfirm $package" \ "check_package $package" done install_with_check \ "easyeffects" \ "paru -S --noconfirm easyeffects" \ "check_aur_package easyeffects" print_info "Настройка служб PipeWire..." if ! systemctl --user is-enabled wireplumber.service &> /dev/null; then systemctl --user enable wireplumber.service print_success "Wireplumber служба включена" fi if ! systemctl --user is-active wireplumber.service &> /dev/null; then systemctl --user start wireplumber.service print_success "Wireplumber служба запущена" fi if ! groups $SUDO_USER | grep -q audio; then sudo gpasswd -a $SUDO_USER audio print_success "Пользователь добавлен в группу audio" fi /usr/bin/pactl info &> /dev/null || true print_success "PipeWire установлен и настроен" } setup_pulseaudio() { print_header "Установка PulseAudio..." local pulse_packages=( "pulseaudio" "pulseaudio-alsa" "pulseaudio-bluetooth" "pulseeffects" "pulseaudio-equalizer" "pavucontrol" "paprefs" "alsa-utils" "alsa-firmware" "realtime-privileges" ) for package in "${pulse_packages[@]}"; do install_with_check \ "$package" \ "sudo pacman -S --noconfirm $package" \ "check_package $package" done if ! groups $SUDO_USER | grep -q audio; then sudo gpasswd -a $SUDO_USER audio print_success "Пользователь добавлен в группу audio" fi if ! groups $SUDO_USER | grep -q realtime; then sudo gpasswd -a $SUDO_USER realtime print_success "Пользователь добавлен в группу realtime" fi print_success "PulseAudio установлен и настроен" } main() { print_header "УСТАНОВКА ЗВУКОВОЙ СИСТЕМЫ" if [ "$AUDIO_SYSTEM" = "none" ]; then print_info "Установка звуковой системы пропущена" return 0 fi setup_common_audio if [ "$AUDIO_SYSTEM" = "pipewire" ]; then setup_pipewire elif [ "$AUDIO_SYSTEM" = "pulse" ]; then setup_pulseaudio fi save_state } main "$@"