KnobMixer — небольшое Windows-приложение, которое перенаправляет клавиши громкости, Fn-комбинации, медиакнопки и USB-регуляторы на выбранное приложение, а не на общую громкость Windows.
Приложение не привязано к конкретной клавиатуре, бренду или модели. KnobMixer рассчитан на любые клавиатуры, ноутбуки, макропады, мультимедийные панели и USB-регуляторы, которые отправляют стандартные события громкости Windows или HID Consumer Control.
0.1.1
В этой версии упор сделан на стабильную кнопку Play / Pause, меньше шума от уведомлений, автообновление из приложения и новый читаемый логотип.
Обычно Volume Up, Volume Down и Mute меняют общую громкость Windows. KnobMixer перехватывает эти события и применяет их к выбранному аудиопроцессу:
Выбрано: Spotify.exe
Volume Up -> увеличить только Spotify
Volume Down -> уменьшить только Spotify
Mute / кнопка регулятора -> Play / Pause по умолчанию
Громкость отдельных приложений меняется через Windows Core Audio API, pycaw и comtypes. Если у процесса несколько аудиосессий, KnobMixer управляет всеми подходящими сессиями сразу.
KnobMixer не создавался под одну конкретную клавиатуру. Он работает не с названием устройства, а с тем, какие события устройство отправляет в Windows.
Подходят устройства, которые используют стандартные команды громкости:
Volume Up
Volume Down
Mute
Play / Pause
HID Consumer Control
Это могут быть:
- обычные клавиатуры с клавишами громкости;
- ноутбуки с
Fn-комбинациями громкости; - механические клавиатуры с ручкой громкости;
- мультимедийные клавиатуры;
- макропады;
- USB-регуляторы громкости;
- HID Consumer Control устройства.
Если устройство в Windows работает как обычные кнопки громкости, KnobMixer с большой вероятностью сможет его перехватить.
- Показывает активные аудиосессии Windows.
- Управляет Spotify, Discord, браузерами, играми и другими приложениями со звуком.
- Поддерживает
VK_VOLUME_UP,VK_VOLUME_DOWNиVK_VOLUME_MUTE. - Поддерживает стандартные события громкости Windows.
- Поддерживает Raw Input / HID Consumer Control для совместимых мультимедийных клавиатур, макропадов и USB-регуляторов.
- Работает с разными клавиатурами и контроллерами без привязки к конкретной модели.
- Держит перехват громкости включённым всё время, пока приложение запущено.
- Позволяет выбрать действие кнопки регулятора:
Play / Pause, mute выбранного приложения или игнор. - Поддерживает режим выбранного приложения, активного приложения со звуком и приоритета приложений.
- Показывает текущий процент громкости в иконке трея и tooltip.
- При закрытии окна уходит в трей; полностью закрывается только через пункт
Выход. - Использует внутренние уведомления внутри окна, а не Windows-уведомления.
- По умолчанию уведомления выключены, чтобы не было спама и лагов.
- Проверяет обновления через GitHub Releases и умеет скачать/установить новую сборку из приложения.
- Имеет тёмный адаптивный интерфейс на PyQt6.
- Поддерживает русский и английский язык; язык автоматически выбирается по языку Windows, если не задан вручную.
- Windows 10 или Windows 11.
- Python 3.11 или 3.12 для запуска из исходников.
- Клавиатура, ноутбук, макропад или USB-регулятор, который отправляет стандартные события громкости Windows или HID Consumer Control.
- Запуск от администратора может понадобиться, если целевое приложение запущено с повышенными правами или Windows блокирует ввод устройства.
git clone https://github.com/vtaeely/KnobMixer.git
cd KnobMixer
py -3.12 -m venv venv
venv\Scripts\activate
python -m pip install --upgrade pip
pip install -r requirements.txt
python main.pyPython 3.11 тоже подходит:
py -3.11 -m venv venvbuild.batГотовый файл появится здесь:
dist\KnobMixer.exe
PyInstaller собирает приложение в оконном режиме, поэтому при обычном запуске не должно открываться окно консоли. Обновлятор тоже использует тихий helper для перезапуска без видимого cmd.
KnobMixer проверяет последний релиз здесь:
https://github.com/vtaeely/KnobMixer/releases
Чтобы обновление в один клик работало, прикрепи к GitHub Release Windows-сборку. Рекомендуемые имена ассетов:
KnobMixer-windows-x64.zip
KnobMixer.exe
Если используется .zip, внутри должен лежать KnobMixer.exe.
Auto: запускает keyboard hook и Raw Input listener, где это возможно.Keyboard Hook: ловит обычные события клавиш громкости Windows и чаще всего может подавить изменение master volume.Raw Input / HID: слушает HID Consumer Control устройства, которые могут не приходить как обычные клавиши.
KnobMixer не зависит от конкретной модели клавиатуры. Главное, чтобы устройство отправляло в Windows стандартные события громкости или HID Consumer Control команды.
Windows иногда успевает обработать HID-событие громкости раньше пользовательского приложения. Тогда KnobMixer всё равно может менять громкость выбранного приложения, но master volume Windows тоже может сдвинуться.
Настройки хранятся в JSON.
Запуск из исходников:
settings.json
logs\app.log
Собранный .exe:
%APPDATA%\KnobMixer\settings.json
%APPDATA%\KnobMixer\logs\app.log
Автозапуск записывается в реестр текущего пользователя:
HKCU\Software\Microsoft\Windows\CurrentVersion\Run
Если громкость выбранного приложения меняется, но общая громкость Windows тоже двигается:
- Попробуй режим
Keyboard Hook. - Перезапусти KnobMixer от имени администратора.
- Попробуй режим
Raw Input / HID. - Если у устройства есть фирменная программа, переназначь ручку или медиакнопки на обычные клавиши громкости Windows.
Если приложение не реагирует на клавиатуру или регулятор:
- Проверь, меняет ли это устройство обычную громкость Windows без KnobMixer.
- Проверь, отправляет ли устройство стандартные события
Volume Up,Volume DownилиMute. - Попробуй другой режим перехвата.
- Если устройство работает только через фирменный софт и не отправляет стандартные события Windows, KnobMixer может его не увидеть напрямую.
Если приложения нет в списке, включи в нём звук и обнови список. Windows показывает только процессы, у которых есть активная аудиосессия.
Некоторые антивирусы могут ругаться на .exe, собранный через PyInstaller, потому что приложение использует keyboard hook и Raw Input. Исходный код открыт, поэтому сборку можно проверить или пересобрать вручную.
KnobMixer не является драйвером устройства и не прошивает клавиатуру. Он работает поверх стандартных событий Windows, поэтому совместимость зависит не от бренда клавиатуры, а от того, какие команды устройство отправляет в систему.
MIT License. Смотри LICENSE.
