mirror of
https://github.com/arabianq/pipewire-soundpad.git
synced 2026-07-26 21:57:05 +00:00
Not one of the three CLI examples worked: commands live under `action`, `get` and `set`, and `status` never existed. Replaced with commands that were actually run against a live daemon, plus the separate monitoring/mic volumes. Other corrections: - Build deps were missing libssl-dev and pkg-config, which CI installs and openssl-sys needs — building from source failed by following the README. - The Flatpak, which the README recommends first, has a single entry point, so none of the bare pwsp-* commands apply there. Documented `flatpak run`. - Global hotkeys are a headline feature but need read access to /dev/input, i.e. membership in the `input` group. Nothing said so, and the failure is silent. - AUR packages exist in packages/aur but were not mentioned. - "without ... complex virtual sinks" was false: PWSP creates a support.null-audio-sink node itself. Reworded to say what it actually does. - "Direct communication with the PipeWire API for the lowest possible latency" overstated it. The PipeWire API is used for the graph — the virtual mic, device discovery, links — while audio goes through rodio, which is why the node shows up as alsa_playback.pwsp-daemon. - /etc/apt/keyrings does not exist on older Debian/Ubuntu; added mkdir -p. - DeepWiki was called "our official Wiki"; it is generated from the source automatically, so it is now described as such. - Each language link pointed at the file you were already reading. - Features listed neither the separate volumes nor the localization. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
220 lines
10 KiB
Markdown
220 lines
10 KiB
Markdown
# PipeWire Soundpad (PWSP) 🎵
|
|
|
|
<table border="0">
|
|
<tr>
|
|
<td colspan="2" align="center">
|
|
<h3>Главная страница</h3>
|
|
<img src="./pwsp-gui/assets/screenshots/main.png" alt="Main UI">
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="50%" align="center">
|
|
<h3>Настройки</h3>
|
|
<img src="./pwsp-gui/assets/screenshots/settings.png" alt="Settings">
|
|
</td>
|
|
<td width="50%" align="center">
|
|
<h3>Горячие клавиши</h3>
|
|
<img src="./pwsp-gui/assets/screenshots/hotkeys.png" alt="Hotkeys">
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
|
|
🇷🇺 Русский (вы здесь) | [🇬🇧 Read in English](README.md)
|
|
|
|
[](https://github.com/arabianq/pipewire-soundpad/actions)
|
|
[](https://opensource.org/licenses/MIT)
|
|
[](https://github.com/arabianq/pipewire-soundpad/releases/latest)
|
|
[](https://pipewire.org/)
|
|
|
|
**PipeWire Soundpad (PWSP)** — приложение, которое позволяет воспроизводить аудиофайлы прямо в ваш микрофон. Разработано специально для Linux и работает с PipeWire напрямую: создаёт собственный виртуальный микрофон и само выстраивает маршрутизацию, так что настраивать её руками не придётся.
|
|
|
|
---
|
|
|
|
## ✨ Возможности
|
|
|
|
- **Нативная интеграция с PipeWire:** PWSP создаёт собственный виртуальный микрофон и управляет графом через PipeWire API — без ручного `pw-link` и без подгрузки модулей PulseAudio.
|
|
- **Раздельная громкость мониторинга и микрофона:** Два независимых потока: можно усилить то, что слышат собеседники, не оглушив себя, и выбрать устройство для мониторинга.
|
|
- **Модульная архитектура:** Состоит из фонового демона (`daemon`), интерфейса командной строки (`cli`) и графического интерфейса (`gui`).
|
|
- **Современный GUI:** Построен на `egui`, плавно работает как на Wayland, так и на X11.
|
|
- **Локализация:** 9 языков; используется системный или выбранный вручную в настройках.
|
|
- **Глобальные горячие клавиши:** Работают через `evdev`, позволяя воспроизводить звуки из любого окна.
|
|
- **Широкая поддержка форматов:** Использует `rodio` и `symphonia` и поддерживает большинство аудиоформатов, включая Opus.
|
|
|
|
---
|
|
|
|
## 🚀 Установка
|
|
|
|
Мы предоставляем несколько способов установки PWSP, включая стабильные релизы и постоянно обновляемые "nightly" сборки напрямую из ветки `main`.
|
|
|
|
### 📦 Flatpak (Рекомендуется)
|
|
|
|
Добавьте наш официальный OSTree репозиторий и установите приложение:
|
|
|
|
```bash
|
|
# Добавьте репозиторий
|
|
flatpak remote-add --if-not-exists pwsp https://arabianq.github.io/pipewire-soundpad/pwsp.flatpakrepo
|
|
|
|
# Установите стабильную (Stable) версию
|
|
flatpak install pwsp ru.arabianq.pwsp//stable
|
|
|
|
# ИЛИ установите Nightly версию (самые свежие обновления)
|
|
flatpak install pwsp ru.arabianq.pwsp//nightly
|
|
```
|
|
|
|
### 🟠 Debian / Ubuntu (APT Репозиторий)
|
|
|
|
Мы поддерживаем официальный APT-репозиторий для бесшовных обновлений через `apt`:
|
|
|
|
```bash
|
|
# 1. Скачайте публичный GPG ключ
|
|
sudo mkdir -p /etc/apt/keyrings
|
|
wget -O- https://arabianq.github.io/pipewire-soundpad/apt/pubkey.gpg | sudo gpg --dearmor -o /etc/apt/keyrings/pwsp.gpg
|
|
|
|
# 2. Добавьте репозиторий (Выберите STABLE или NIGHTLY)
|
|
# Для Stable:
|
|
echo "deb [signed-by=/etc/apt/keyrings/pwsp.gpg] https://arabianq.github.io/pipewire-soundpad/apt/ stable main" | sudo tee /etc/apt/sources.list.d/pwsp.list
|
|
|
|
# Для Nightly:
|
|
# echo "deb [signed-by=/etc/apt/keyrings/pwsp.gpg] https://arabianq.github.io/pipewire-soundpad/apt/ nightly main" | sudo tee /etc/apt/sources.list.d/pwsp.list
|
|
|
|
# 3. Обновите индексы и установите
|
|
sudo apt update
|
|
sudo apt install pwsp
|
|
```
|
|
|
|
### 🐧 Fedora / RHEL (COPR)
|
|
|
|
Доступно через репозиторий Fedora COPR:
|
|
|
|
```bash
|
|
sudo dnf copr enable arabianq/pwsp
|
|
sudo dnf install pwsp
|
|
```
|
|
|
|
### 🐦 Arch Linux (AUR)
|
|
|
|
Доступны два пакета: `pwsp` собирается из исходников, `pwsp-bin` ставит готовые бинарники.
|
|
|
|
```bash
|
|
# Через любой удобный AUR-хелпер
|
|
paru -S pwsp # или: pwsp-bin
|
|
```
|
|
|
|
### ⚙️ Ручная установка
|
|
|
|
Вы можете вручную скачать пакеты `.deb` или готовые бинарники `.zip` на [странице релизов](https://github.com/arabianq/pipewire-soundpad/releases).
|
|
|
|
### 🦀 Сборка из исходников
|
|
|
|
Убедитесь, что у вас установлены Rust и Cargo, а также зависимости для сборки. Для Debian/Ubuntu:
|
|
|
|
```bash
|
|
sudo apt install libpipewire-0.3-dev libclang-dev libasound2-dev libdbus-1-dev libssl-dev pkg-config
|
|
```
|
|
|
|
```bash
|
|
git clone https://github.com/arabianq/pipewire-soundpad.git
|
|
cd pipewire-soundpad
|
|
cargo build --release --locked
|
|
```
|
|
|
|
Собранные бинарники будут находиться в папке `target/release/`.
|
|
|
|
---
|
|
|
|
## 🎮 Использование
|
|
|
|
### 1. Запуск демона
|
|
|
|
PWSP работает через фоновый демон, который маршрутизирует аудио.
|
|
|
|
```bash
|
|
# Запуск демона
|
|
pwsp-daemon
|
|
```
|
|
|
|
_(Подсказка: Если вы установили программу через пакетный менеджер, она включает пользовательский systemd-сервис. Вы можете включить его командой: `systemctl --user enable --now pwsp-daemon.service`)_
|
|
|
|
### 2. Запуск GUI
|
|
|
|
Просто запустите графический интерфейс для управления и воспроизведения звуков:
|
|
|
|
```bash
|
|
pwsp-gui
|
|
```
|
|
|
|
### 3. Использование CLI
|
|
|
|
Вы также можете взаимодействовать с демоном напрямую через командную строку. Все команды сгруппированы в `action`, `get` и `set`:
|
|
|
|
```bash
|
|
pwsp-cli action play /path/to/sound.mp3
|
|
pwsp-cli action stop
|
|
pwsp-cli get state
|
|
|
|
# Раздельная громкость: что слышите вы и что уходит в микрофон.
|
|
# Значения выше 1.0 усиливают.
|
|
pwsp-cli set monitoring-volume 0.3
|
|
pwsp-cli set mic-volume 1.5
|
|
|
|
# Устройства
|
|
pwsp-cli get inputs
|
|
pwsp-cli set input <имя>
|
|
```
|
|
|
|
Полный список — `pwsp-cli <группа> --help`.
|
|
|
|
### 🔑 Включение глобальных горячих клавиш
|
|
|
|
Горячие клавиши читаются напрямую из ядра через `evdev`, поэтому демону нужен доступ к `/dev/input/event*`. В большинстве дистрибутивов для этого достаточно добавить себя в группу `input`:
|
|
|
|
```bash
|
|
sudo usermod -aG input $USER
|
|
```
|
|
|
|
Изменение вступит в силу после перезахода в систему. Без него всё остальное работает — молчат только глобальные горячие клавиши.
|
|
|
|
### 📦 Замечание для пользователей Flatpak
|
|
|
|
У Flatpak-версии одна точка входа, поэтому команды выше вызываются через `flatpak run`:
|
|
|
|
```bash
|
|
# Без аргументов: запускает демон и GUI вместе
|
|
flatpak run ru.arabianq.pwsp
|
|
|
|
# Отдельно демон
|
|
flatpak run ru.arabianq.pwsp daemon --start
|
|
flatpak run ru.arabianq.pwsp daemon --kill
|
|
|
|
# Всё после "cli" передаётся в pwsp-cli
|
|
flatpak run ru.arabianq.pwsp cli action play /path/to/sound.mp3
|
|
```
|
|
|
|
---
|
|
|
|
## 📚 Документация и DeepWiki
|
|
|
|
DeepWiki автоматически строит по исходникам обзор архитектуры и позволяет задавать по нему вопросы. Он генерируется, а не пишется руками, поэтому воспринимайте его как карту, а не как спецификацию:
|
|
|
|
[](https://deepwiki.com/arabianq/pipewire-soundpad)
|
|
|
|
---
|
|
|
|
## 🤝 Вклад в проект (Contributing)
|
|
|
|
Будем рады вашей помощи, баг-репортам и идеям!
|
|
|
|
1. Сделайте Fork проекта.
|
|
2. Создайте свою ветку (`git checkout -b feat/amazing-feature`).
|
|
3. Закоммитьте изменения (`git commit -m 'Add some amazing feature'`).
|
|
4. Запушьте ветку (`git push origin feat/amazing-feature`).
|
|
5. Откройте Pull Request.
|
|
|
|
---
|
|
|
|
## 📝 Лицензия
|
|
|
|
Распространяется под лицензией MIT. Подробнее см. в файле `LICENSE`.
|
|
|
|
_Сделано с ❤️ для сообщества Linux._
|