|
9 | 9 | <img src="app/assets/logo.png" alt="KnobMixer logo" width="620"> |
10 | 10 | </p> |
11 | 11 |
|
12 | | -**KnobMixer** — небольшое Windows-приложение, которое заставляет клавиши громкости, `Fn`-комбинации, медиакнопки и поддерживаемые USB-регуляторы менять громкость выбранного приложения, а не общую громкость Windows. |
| 12 | +**KnobMixer** — небольшое Windows-приложение, которое перенаправляет клавиши громкости, `Fn`-комбинации, медиакнопки и USB-регуляторы на выбранное приложение, а не на общую громкость Windows. |
13 | 13 |
|
14 | | -Приложение не привязано к Ajazz AK820. Оно рассчитано на любые клавиатуры и контроллеры, которые отправляют стандартные события громкости Windows или HID Consumer Control. |
| 14 | +Приложение не привязано к конкретной клавиатуре, бренду или модели. KnobMixer рассчитан на любые клавиатуры, ноутбуки, макропады, мультимедийные панели и USB-регуляторы, которые отправляют стандартные события громкости Windows или HID Consumer Control. |
15 | 15 |
|
16 | 16 | [English README](README.md) |
17 | 17 |
|
|
23 | 23 |
|
24 | 24 | ## Что делает приложение |
25 | 25 |
|
26 | | -Обычно `Volume Up`, `Volume Down` и `Mute` меняют master volume Windows. KnobMixer перехватывает эти события и применяет их к выбранному аудиопроцессу: |
| 26 | +Обычно `Volume Up`, `Volume Down` и `Mute` меняют общую громкость Windows. KnobMixer перехватывает эти события и применяет их к выбранному аудиопроцессу: |
27 | 27 |
|
28 | 28 | ```text |
29 | 29 | Выбрано: Spotify.exe |
30 | 30 |
|
31 | 31 | Volume Up -> увеличить только Spotify |
32 | 32 | Volume Down -> уменьшить только Spotify |
33 | | -Mute / нажатие ручки -> Play/Pause по умолчанию |
| 33 | +Mute / кнопка регулятора -> Play / Pause по умолчанию |
34 | 34 | ``` |
35 | 35 |
|
36 | 36 | Громкость отдельных приложений меняется через Windows Core Audio API, `pycaw` и `comtypes`. Если у процесса несколько аудиосессий, KnobMixer управляет всеми подходящими сессиями сразу. |
37 | 37 |
|
| 38 | +## Совместимость с клавиатурами и регуляторами |
| 39 | + |
| 40 | +KnobMixer не создавался под одну конкретную клавиатуру. Он работает не с названием устройства, а с тем, какие события устройство отправляет в Windows. |
| 41 | + |
| 42 | +Подходят устройства, которые используют стандартные команды громкости: |
| 43 | + |
| 44 | +```text |
| 45 | +Volume Up |
| 46 | +Volume Down |
| 47 | +Mute |
| 48 | +Play / Pause |
| 49 | +HID Consumer Control |
| 50 | +``` |
| 51 | + |
| 52 | +Это могут быть: |
| 53 | + |
| 54 | +* обычные клавиатуры с клавишами громкости; |
| 55 | +* ноутбуки с `Fn`-комбинациями громкости; |
| 56 | +* механические клавиатуры с ручкой громкости; |
| 57 | +* мультимедийные клавиатуры; |
| 58 | +* макропады; |
| 59 | +* USB-регуляторы громкости; |
| 60 | +* HID Consumer Control устройства. |
| 61 | + |
| 62 | +Если устройство в Windows работает как обычные кнопки громкости, KnobMixer с большой вероятностью сможет его перехватить. |
| 63 | + |
38 | 64 | ## Возможности |
39 | 65 |
|
40 | | -- Показывает активные аудиосессии Windows. |
41 | | -- Управляет Spotify, Discord, браузерами, играми и другими приложениями со звуком. |
42 | | -- Поддерживает `VK_VOLUME_UP`, `VK_VOLUME_DOWN` и `VK_VOLUME_MUTE`. |
43 | | -- Поддерживает Raw Input / HID для многих мультимедийных клавиатур, макропадов и USB-регуляторов. |
44 | | -- Держит перехват громкости включённым всё время, пока приложение запущено. |
45 | | -- Позволяет выбрать действие кнопки регулятора: `Play / Pause`, mute выбранного приложения или игнор. |
46 | | -- Поддерживает режим выбранного приложения, активного приложения со звуком и приоритета приложений. |
47 | | -- Показывает текущий процент громкости в иконке трея и tooltip. |
48 | | -- При закрытии окна уходит в трей; полностью закрывается только через пункт `Выход`. |
49 | | -- Использует внутренние уведомления внутри окна, а не Windows-уведомления. |
50 | | -- По умолчанию уведомления выключены, чтобы не было спама и лагов. |
51 | | -- Проверяет обновления через GitHub Releases и умеет скачать/установить новую сборку из приложения. |
52 | | -- Имеет тёмный адаптивный интерфейс на PyQt6. |
53 | | -- Поддерживает русский и английский язык; язык автоматически выбирается по языку Windows, если не задан вручную. |
| 66 | +* Показывает активные аудиосессии Windows. |
| 67 | +* Управляет Spotify, Discord, браузерами, играми и другими приложениями со звуком. |
| 68 | +* Поддерживает `VK_VOLUME_UP`, `VK_VOLUME_DOWN` и `VK_VOLUME_MUTE`. |
| 69 | +* Поддерживает стандартные события громкости Windows. |
| 70 | +* Поддерживает Raw Input / HID Consumer Control для совместимых мультимедийных клавиатур, макропадов и USB-регуляторов. |
| 71 | +* Работает с разными клавиатурами и контроллерами без привязки к конкретной модели. |
| 72 | +* Держит перехват громкости включённым всё время, пока приложение запущено. |
| 73 | +* Позволяет выбрать действие кнопки регулятора: `Play / Pause`, mute выбранного приложения или игнор. |
| 74 | +* Поддерживает режим выбранного приложения, активного приложения со звуком и приоритета приложений. |
| 75 | +* Показывает текущий процент громкости в иконке трея и tooltip. |
| 76 | +* При закрытии окна уходит в трей; полностью закрывается только через пункт `Выход`. |
| 77 | +* Использует внутренние уведомления внутри окна, а не Windows-уведомления. |
| 78 | +* По умолчанию уведомления выключены, чтобы не было спама и лагов. |
| 79 | +* Проверяет обновления через GitHub Releases и умеет скачать/установить новую сборку из приложения. |
| 80 | +* Имеет тёмный адаптивный интерфейс на PyQt6. |
| 81 | +* Поддерживает русский и английский язык; язык автоматически выбирается по языку Windows, если не задан вручную. |
54 | 82 |
|
55 | 83 | ## Требования |
56 | 84 |
|
57 | | -- Windows 10 или Windows 11. |
58 | | -- Python 3.11 или 3.12 для запуска из исходников. |
59 | | -- Запуск от администратора может понадобиться, если целевое приложение запущено с повышенными правами или Windows блокирует ввод устройства. |
| 85 | +* Windows 10 или Windows 11. |
| 86 | +* Python 3.11 или 3.12 для запуска из исходников. |
| 87 | +* Клавиатура, ноутбук, макропад или USB-регулятор, который отправляет стандартные события громкости Windows или HID Consumer Control. |
| 88 | +* Запуск от администратора может понадобиться, если целевое приложение запущено с повышенными правами или Windows блокирует ввод устройства. |
60 | 89 |
|
61 | 90 | ## Запуск из исходников |
62 | 91 |
|
@@ -109,9 +138,11 @@ KnobMixer.exe |
109 | 138 |
|
110 | 139 | ## Режимы перехвата |
111 | 140 |
|
112 | | -- `Auto`: запускает keyboard hook и Raw Input listener, где это возможно. |
113 | | -- `Keyboard Hook`: ловит обычные события клавиш громкости Windows и чаще всего может подавить изменение master volume. |
114 | | -- `Raw Input / HID`: слушает HID Consumer Control устройства, которые могут не приходить как обычные клавиши. |
| 141 | +* `Auto`: запускает keyboard hook и Raw Input listener, где это возможно. |
| 142 | +* `Keyboard Hook`: ловит обычные события клавиш громкости Windows и чаще всего может подавить изменение master volume. |
| 143 | +* `Raw Input / HID`: слушает HID Consumer Control устройства, которые могут не приходить как обычные клавиши. |
| 144 | + |
| 145 | +KnobMixer не зависит от конкретной модели клавиатуры. Главное, чтобы устройство отправляло в Windows стандартные события громкости или HID Consumer Control команды. |
115 | 146 |
|
116 | 147 | Windows иногда успевает обработать HID-событие громкости раньше пользовательского приложения. Тогда KnobMixer всё равно может менять громкость выбранного приложения, но master volume Windows тоже может сдвинуться. |
117 | 148 |
|
@@ -146,14 +177,23 @@ HKCU\Software\Microsoft\Windows\CurrentVersion\Run |
146 | 177 | 1. Попробуй режим `Keyboard Hook`. |
147 | 178 | 2. Перезапусти KnobMixer от имени администратора. |
148 | 179 | 3. Попробуй режим `Raw Input / HID`. |
149 | | -4. Если у устройства есть фирменная программа, переназначь ручку на обычные клавиши громкости. |
| 180 | +4. Если у устройства есть фирменная программа, переназначь ручку или медиакнопки на обычные клавиши громкости Windows. |
| 181 | + |
| 182 | +Если приложение не реагирует на клавиатуру или регулятор: |
| 183 | + |
| 184 | +1. Проверь, меняет ли это устройство обычную громкость Windows без KnobMixer. |
| 185 | +2. Проверь, отправляет ли устройство стандартные события `Volume Up`, `Volume Down` или `Mute`. |
| 186 | +3. Попробуй другой режим перехвата. |
| 187 | +4. Если устройство работает только через фирменный софт и не отправляет стандартные события Windows, KnobMixer может его не увидеть напрямую. |
150 | 188 |
|
151 | 189 | Если приложения нет в списке, включи в нём звук и обнови список. Windows показывает только процессы, у которых есть активная аудиосессия. |
152 | 190 |
|
153 | 191 | ## Важно |
154 | 192 |
|
155 | 193 | Некоторые антивирусы могут ругаться на `.exe`, собранный через PyInstaller, потому что приложение использует keyboard hook и Raw Input. Исходный код открыт, поэтому сборку можно проверить или пересобрать вручную. |
156 | 194 |
|
| 195 | +KnobMixer не является драйвером устройства и не прошивает клавиатуру. Он работает поверх стандартных событий Windows, поэтому совместимость зависит не от бренда клавиатуры, а от того, какие команды устройство отправляет в систему. |
| 196 | + |
157 | 197 | ## Лицензия |
158 | 198 |
|
159 | 199 | MIT License. Смотри [LICENSE](LICENSE). |
0 commit comments