# Написал себе замену Volume2 для Windows 11: переключение звука, громкость и прогресс MPC-HC по горячим клавишам
Много лет пользовался Volume2: удобно переключать колонки и наушники хоткеем и крутить громкость с красивым оверлеем. Но на Windows 11 он у меня начал лагать: оверлей подтормаживает, клавиши срабатывают через раз, иногда приходится его перезапускать. Терпел-терпел и в итоге написал свою маленькую утилиту под свои задачи. Делал для себя, но вдруг кому-то тоже пригодится.
Называется **volume_switch**. Это один exe, который живёт в трее.
## Что умеет
**Переключение устройства вывода звука — F7 / F8**
- F7/F8 листают устройства воспроизведения (колонки, наушники, монитор по HDMI и т.д.) по кругу назад/вперёд.
- Устройство становится основным во всех ролях сразу (обычное, мультимедиа и связь), так что Discord/Telegram тоже переезжают на него.
- При каждом переключении всплывает уведомление с названием нового устройства.
**Громкость — F3 / F4**
- F3 убавляет, F4 прибавляет общую громкость на 2%, как мультимедийные клавиши Windows. Как и они, снимают mute.
- При изменении громкости показывается крупный оверлей-ползунок в левом нижнем углу того монитора, где сейчас курсор: большие проценты (или `MUTE`) и шкала 0—100 с делениями через 10.
- Оверлей появляется при **любом** изменении громкости, а не только от моих клавиш: колесо мыши в микшере, кнопки на клавиатуре или наушниках, сторонние программы. Через ~1.2 секунды гаснет сам.
- Если переключить устройство, оверлей не выскакивает, даже когда у нового устройства другая громкость. Он нужен только когда меняется громкость, а не устройство.
**Прогресс MPC-HC — F5**
Смотрю кино в MPC-HC и хотел быстро глянуть, сколько осталось, не трогая плеер и не сворачивая игру или браузер.
- F5 показывает/прячет окно-оверлей поверх всех окон. Фокус оно не забирает.
- В окне: название файла, полоса прогресса, прошедшее и оставшееся время.
- Клик левой кнопкой по полосе ставит на паузу / снимает с паузы. Если MPC-HC не запущен, он запустится.
- Клик колесом мыши открывает в проводнике папку с текущим файлом, и сам файл там уже выделен.
Данные берутся из веб-интерфейса MPC-HC, поэтому в плеере его нужно включить: *Вид → Настройки → Проигрыватель → Веб-интерфейс → «Слушать порт» 7777*. Программа опрашивает `http://localhost:7777/variables.html`. Если у вас другой порт, адрес меняется в настройках (см. ниже).
**Трей**
- В меню иконки перечислены все активные устройства вывода, у текущего стоит галочка. Можно переключиться кликом мышью.
- Пункт «Запускать при входе в Windows» включает автозапуск (запись в `HKCU\...\Run`, без админских прав).
**Мелочи, которые важны мне**
- Хоткеи срабатывают только на «голые» клавиши. Alt+F4, Ctrl+F4, Ctrl+F5, Shift+F3 и прочие сочетания уходят программам как обычно, окна закрываются, страницы обновляются.
- Оверлеи не появляются на панели задач и не воруют фокус.
- Без консоли и лишних окон: только иконка в трее, логи пишутся в файл.
## Под капотом
- Написано на **Go**: один файл, один exe, без установщика и зависимостей. Скачал, запустил, работает.
- Устройства и громкость управляются через WASAPI/COM, хоткеи ловятся низкоуровневым хуком клавиатуры, оверлеи нарисованы на Fyne.
- Делал и проверял на **Windows 11**. На других ОС не соберётся: тут сплошной WinAPI.
## Настройки (по желанию)
Работает и без настройки. Если нужно, рядом с exe кладётся файл `.env`:
```
MPC_URL=http://localhost:7777/variables.html
MPC_INTERVAL=500ms
MPC_EXE=C:\Program Files (x86)\K-Lite Codec Pack\MPC-HC64\mpc-hc64.exe
```
Если MPC-HC стоит в другом месте, программа сама найдёт его путь в реестре.
## Код открыт
Исходники на GitHub, готовый exe лежит в релизах:
👉 https://github.com/des1roer/volume_switch
Скачать: https://github.com/des1roer/volume_switch/releases/latest
Если что-то не работает или хочется добавить фичу, пишите в комментах или открывайте issue. Pull request'ы тоже приветствуются.