Files
xpamych c6e8e79cd9 Ребрендинг: Headset Companion → LGCompanion
- Переименован Python-пакет: headset_companion → lgcompanion
- Переименованы исполняемые файлы: headset-companion → lgcompanion, headset-companion-gui → lgcompanion-gui
- Переименованы сервис, desktop-файл, иконка, каталог конфигурации
- Обновлены все импорты, docstrings и пользовательские строки
- Обновлено описание в README.md и AGENTS.md: программа теперь позиционируется как универсальный компаньон для USB-гарнитур, из коробки поддерживаются SteelSeries Arctis
- Убраны привязки к Arctis 7 в defaults/placeholders GUI и CLI
- Обновлены ссылки репозитория на git.linux-gaming.ru
2026-07-12 18:03:51 +03:00

5.2 KiB
Raw Permalink Blame History

LGCompanion

Автоматическое переключение звукового профиля для USB-гарнитур на Linux с PipeWire.

Из коробки поддерживаются популярные гарнитуры SteelSeries Arctis (7, 7+, Pro и др.), но программа легко настраивается под любое HID-совместимое USB-аудиоустройство.

  • Наушники включены и связались с донглом → виртуальный объёмный звук 7.1 через HRTF.
  • Наушники выключены → прямой стерео-выход с донгла.

Теперь это полноценная программа с CLI и отдельной Qt GUI. Устройства настраиваются через конфиг, а не захардкожены.

Что внутри

Файл/папка Назначение
src/lgcompanion/ Ядро: конфиг, HID, PipeWire, движок.
src/lgcompanion/cli.py CLI: демон, диагностика, настройки, сервис.
src/lgcompanion/gui/ Qt GUI (PySide6) с треем и редактором устройств.
src/lgcompanion/data/virtual-surround-7.1.conf.template Шаблон конфига PipeWire filter-chain.
src/lgcompanion/data/icon.svg Иконка приложения.
install/ Шаблоны .desktop и systemd user .service.
install.sh Установка пакета, PipeWire-конфига и сервиса.

Быстрая установка

cd ~/Projects/lgcompanion
./install.sh
systemctl --user restart pipewire pipewire-pulse wireplumber
systemctl --user start lgcompanion.service

CLI

# Запуск демона
lgcompanion run -v
lgcompanion run --once
lgcompanion run --force-surround
lgcompanion run --force-stereo

# Диагностика и список устройств
lgcompanion diagnose
lgcompanion list-hid

# Управление конфигом
lgcompanion config show
lgcompanion config add-device --name "Arctis 7+" --vid 0x1038 --pid 0x2206 --iface 3
lgcompanion config remove-device --name "Arctis 7+"
lgcompanion config set-sinks --surround effect_input.lgcompanion-virtual-surround --stereo alsa_output...
lgcompanion config set-general --poll-interval 2.0 --log-level debug

# Управление HRIR
lgcompanion hrir add ~/Downloads/hrir.wav --name "My HRIR"
lgcompanion hrir list
lgcompanion hrir set-default "My HRIR"

# systemd
lgcompanion service install
lgcompanion service uninstall
lgcompanion service status

Конфиг хранится в ~/.config/lgcompanion/config.toml.

Qt GUI

lgcompanion-gui
  • Иконка в системном трее.
  • Ручное переключение Surround / Stereo / Auto.
  • Автообнаружение подключённых наушников и добавление профиля в один клик.
  • Окно настроек с редактором профилей устройств.
  • Автозапуск при входе в систему.

После ./install.sh в меню приложений появится ярлык LGCompanion (~/.local/share/applications/lgcompanion.desktop).

Как это работает

Программа опрашивает USB-донгл гарнитуры через HID: если устройство отвечает на настроенный запрос (например, 0x06 0x18 для Arctis 7), значит наушники включены и связаны — звук переключается на виртуальный объёмный 7.1 sink. Если ответа нет (таймаут) — наушники выключены, и звук возвращается на прямой стерео-выход донгла.

Профили устройств позволяют задать VID/PID, HID-интерфейс, запрос батареи/статуса и подстроки имени устройства для любой совместимой гарнитуры.

HRIR

Для работы виртуального surround необходим HeSuVi-совместимый 14-канальный WAV (48 кГц). Файл не входит в репозиторий — добавьте его самостоятельно:

lgcompanion hrir add ~/Downloads/hrir.wav --name "My HRIR"

или через GUI: Настройки → HRIR профили → Управление HRIR.

После добавления HRIR перегенерируйте PipeWire-конфиг и перезапустите PipeWire:

./install.sh
systemctl --user restart pipewire pipewire-pulse wireplumber

Можно добавить несколько HRIR и выбрать активный как глобально, так и отдельно для каждого профиля устройства.

Популярные варианты HRIR:

  • atmos-.wav — Dolby Atmos for Headphones
  • dts_hpx.wav — DTS Headphone:X
  • sbx33.wav — Creative SBX Pro Studio
  • gsx+.wav — Sennheiser GSX Binaural 7.1
  • sonic.wav — Windows Sonic