Кнопки для Зума
2021-09-18 14:06Нынче почти каждый день приходится общаться с коллегами через Zoom. Два самых востребованных действия: включить-выключить микрофон и видеокамеру. Можно мышкой или через клавиатуру, но есть удобный внешний девайс для такого управления: Macropad2.

Кнопки можно перепрограммировать, заменив прошивку. Хардвер совместим с известным открытым софтом для программируемых клавиатур: https://github.com/qmk/qmk_firmware/
Описание Macropad2: https://github.com/AnaviTechnology/anavi-docs/blob/master/anavi-macro-pad-2/anavi-macro-pad-2-datasheet.md
Изначально девайс запрограммирован выдавать буквы 'a' и 'b'. Перепрошивка для Zoom делается так:
Вот как выглядит раскладка Zoom: macropad2/keymaps/zoom/keymap.c
А вот она же, модифицированная для MacOS. Вместо Alt+A и Alt+V генерятся ⇧⌘A и ⇧⌘V: macropad2/keymaps/zoom-mac/keymap.c

Кнопки можно перепрограммировать, заменив прошивку. Хардвер совместим с известным открытым софтом для программируемых клавиатур: https://github.com/qmk/qmk_firmware/
Описание Macropad2: https://github.com/AnaviTechnology/anavi-docs/blob/master/anavi-macro-pad-2/anavi-macro-pad-2-datasheet.md
Изначально девайс запрограммирован выдавать буквы 'a' и 'b'. Перепрошивка для Zoom делается так:
python3 -m pip install qmk git clone https://github.com/micronucleus/micronucleus.git sudo make -C micronucleus/commandline/ install git clone https://github.com/qmk/qmk_firmware.git cd qmk_firmware git checkout 0.13.19 make git-submodule make anavi/macropad2:zoom:flashРезультат:
После перепрошивки девайс выдаёт Alt+A и Alt+V, что и требуется для Zoom.$ make anavi/macropad2:zoom:flash QMK Firmware 0.13.19 Making anavi/macropad2 with keymap zoom and target flash avr-gcc (Homebrew AVR GCC 9.3.0_3) 9.3.0 Copyright (C) 2019 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Compiling: keyboards/anavi/macropad2/macropad2.c [OK] Compiling: keyboards/anavi/macropad2/keymaps/zoom/keymap.c [OK] Compiling: quantum/quantum.c [OK] Compiling: quantum/send_string.c [OK] Compiling: quantum/bitwise.c [OK] Compiling: quantum/led.c [OK] Compiling: quantum/keymap_common.c [OK] Compiling: quantum/keycode_config.c [OK] Compiling: quantum/bootmagic/magic.c [OK] Compiling: quantum/matrix_common.c [OK] Compiling: quantum/matrix.c [OK] Compiling: quantum/debounce/sym_defer_g.c [OK] Compiling: quantum/backlight/backlight.c [OK] Compiling: quantum/process_keycode/process_backlight.c [OK] Compiling: quantum/backlight/backlight_driver_common.c [OK] Compiling: quantum/backlight/backlight_software.c [OK] Compiling: quantum/process_keycode/process_combo.c [OK] Compiling: tmk_core/common/host.c [OK] Compiling: tmk_core/common/keyboard.c [OK] Compiling: tmk_core/common/action.c [OK] Compiling: tmk_core/common/action_tapping.c [OK] Compiling: tmk_core/common/action_macro.c [OK] Compiling: tmk_core/common/action_layer.c [OK] Compiling: tmk_core/common/action_util.c [OK] Compiling: tmk_core/common/debug.c [OK] Compiling: tmk_core/common/sendchar_null.c [OK] Compiling: tmk_core/common/eeconfig.c [OK] Compiling: tmk_core/common/report.c [OK] Compiling: tmk_core/common/usb_util.c [OK] Compiling: tmk_core/common/avr/suspend.c [OK] Compiling: tmk_core/common/avr/timer.c [OK] Compiling: tmk_core/common/sync_timer.c [OK] Compiling: tmk_core/common/avr/bootloader.c [OK] Assembling: tmk_core/common/avr/xprintf.S [OK] Compiling: tmk_core/common/avr/printf.c [OK] Compiling: tmk_core/protocol/vusb/main.c [OK] Compiling: tmk_core/protocol/vusb/vusb.c [OK] Compiling: tmk_core/protocol/vusb/usb_util.c [OK] Compiling: lib/vusb/usbdrv/usbdrv.c [OK] Assembling: lib/vusb/usbdrv/usbdrvasm.S [OK] Compiling: lib/vusb/usbdrv/oddebug.c [OK] Linking: .build/anavi_macropad2_zoom.elf [OK] Creating load file for flashing: .build/anavi_macropad2_zoom.hex [OK] Copying anavi_macropad2_zoom.hex to qmk_firmware folder [OK] Checking file size of anavi_macropad2_zoom.hex [WARNINGS] * The firmware size is approaching the maximum - 6182/6330 (97%, 148 bytes free) > Please plug in the device ... > Device is found! connecting: 33% complete > Device has firmware version 2.5 > Device signature: 0x1e930b > Available space for user applications: 6650 bytes > Suggested sleep time between sending pages: 7ms > Whole page count: 104 page size: 64 > Erase function sleep duration: 728ms parsing: 50% complete > Erasing the memory ... erasing: 66% complete > Starting to upload ... writing: 83% complete > Starting the user app ... running: 100% complete >> Micronucleus done. Thank you!
Вот как выглядит раскладка Zoom: macropad2/keymaps/zoom/keymap.c
А вот она же, модифицированная для MacOS. Вместо Alt+A и Alt+V генерятся ⇧⌘A и ⇧⌘V: macropad2/keymaps/zoom-mac/keymap.c
