[ @manjaro @install @elgato @stream_deck @python @console @изображения ]
Ноябрь 2023 — клавиатурка Stream Deck подключилась, ПО для неё работает, можно назначать команды на клавиши и иконки. Но нажатия на кнопки ни к чему не приводят, и при попытке настроить интенсивность свечения кнопок в консоли вываливаются ошибки записи инструкций в файлы Streamdeck. Я застрял, решение не найдено.
Под Debian то же устройство работает безупречно.
Или это сложности под Arch, или есть какие-то неочевидные настройки, про которые я не могу догадаться.
(психологическая) Подготовка к установке
Основной источник информации по установке и настройке https://timothycrosley.github.io/streamdeck-ui/
Если к ноуту уже подключено устройство “Stream Deck” по USB (просто чтобы убедиться в том, что оно работает) — его надо выдернуть.
Если в наличии несколько устройств, то надо сперва решить, которое из них будет «установлено».
На каждом шаге что-то может пойти не так. Если что-то пошло не туда — остановиться и гуглить. А пойти что-то не так вполне может, known issues (мне не помешали):
- Some users have reported that the Stream Deck device does not work on all on specific USB ports, as it draws quite a bit of power and/or has strict bandwidth requirements. Try a different USB port. (Подтверждаю. Особенно эта штука не любит подключения через внешние usb-хабы, она предпочитает постоянный отдельный вход).
- Streamdeck uses pynput for simulating Key Presses but it lacks proper support for Wayland. Generally your results will be good when using X (Ubuntu/Linux Mint).
- Key Press or Write Text does not work on Fedora (outside of the streamdeck itself), which is not particularly useful. However, still do a lot with the Command feature.
- On Ubuntu the Key Press ctrl+alt+t doesn't work. However using the Command gnome-terminal achieves the same result.
- Version 1.0.2 lacks error handling when executing Command and Key Press actions. As a result, you have to be careful - an invalid command or key press makes everything else also stop working. The 1.0.3 release and above resolve this.
- If you're using GNOME shell, you might need to manually install an extension that adds [[https://extensions.gnome.org/extension/615/appindicator-support/|KStatusNotifierItem/AppIndicator]> Support to make the tray icon show up.
По сравнению с приложением под виндой, приложение под линукс примитивнее:
- Нет предустановленных кнопок.
- Невозможно перетаскивать кнопки на другие уровни.
- Невозможно настроить две иконки на одну кнопку (например, для кнопки включения/отключения звука можно подложить иконки разного цвета под оба состояния), поэтому сразу фидбэк от нажатия кнопки отсутствует — надо подождать и смотреть на экране, если что-то получилось.
- Не будет таймера на кнопке.
- Нет (да и не особо нужно, debian же, но всё же) возможности под одну кнопку подстроить выполнение нескольких команд последовательно.
Поначалу это ощущается как недостаток, но чуть позже всё становится проще. Одна кнопка, одно действие. Если нужно несколько действий последовательно — закатать всё в файл .sh и повесить его однократный вызов на отдельную кнопку.
Wayland vs X11
Под Wayland это всё не работает.
Выяснить действующую графсистему:
loginctl show-session $(awk '/tty/ {print $1}' [(loginctl)) -p Type | awk -F= '{print $2}'
Питание железки
Есть проблема: эти клавиатурки постоянно получают энергию из usb-дырок, даже если ноут отключён (батарея и сеть работают). В темноте клавиатурки Elgato очень ярко светятся, и если это дело оставить как есть, то когда-нибудь или пиксели на кнопках начнут выгорать к едреням, или нервные окончания.
Есть несколько решений:
- втыкать Elgato только в USB 3.0 (синего цвета). Иногда на этом всё решено, иногда нет.
- если есть только USB 2.0 — выдирать провод из usb после каждого выключения ноутбука. Это расстраивает, да и
дыркаконтакты usb разбалтываются. - У некоторых компьютеров в BIOS-Advanced есть опция Deep Sleep, её можно переключить в Enabled, и после выключения ноута к usb не будет поступать электрический ток. В моём ноуте такой опции нет.
- клавиатуры Elgato не любят подключение через usb-хабы, но иногда их можно успешно подключать через usb-хаб с отдельными кнопками отключения на каждом порту — есть четырехпортовые и семипортовые, дешёвые и дорогие, их надёжность и долгосрочность работы обсуждаемая, но не суть. Такие штучки не пригодны для питания подключаемых устройств (телефон на этом не зарядишь), они только передают данные. После выключения ноутбука всё полностью гаснет и включается только вместе с ноутбуком. Ну и можно отключать отдельные устройства.
Установка окружения
Проверить, что железка отключена.
В системе должен быть установлен [[Common:Software:Python]> и его PIP.
Установить hidapi
pacman -Sy hidapi python-pip qt6-base
Добавить ~/.local/bin в path:
mcedit ~/.bashrc
В последнюю строку записать:
PATH=$PATH:$HOME/.local/bin
Перечитать содержимое файла:
source ~/.bashrc
Настроить Python для запуска приложения Stream Deck
- python3 -m pip install --upgrade pip --break-system-packages
- python3 -m pip install setuptools --break-system-packages
Настроить доступ к устройству Elgato
Создать файл с настройками udev:
sudo sh -c 'echo "SUBSYSTEM==\"usb\", ATTRS{idVendor}==\"0fd9\", TAG+=\"uaccess\"" > /etc/udev/rules.d/70-streamdeck.rules'
Проверить, что всё записалось:
cat /etc/udev/rules.d/70-streamdeck.rules
Применить новые правила:
sudo udevadm trigger
Установить Stream Deck UI
python3 -m pip install streamdeck-ui --user --break-system-packages
Приложение будет установлено в ~/.local/lib/python3.11/site-packages/ — там появятся несколько каталогов, среди которых /streamdeck_ui StreamDeck.
Включить устройство
Воткнуть его в USB.
Кнопки должны подсветиться логотипом Stream Deck.
Запуск
streamdeck
Откроется это:
Выключать это приложение не следует.
Приложение может ощутимо «подвисать» при настройке отдельных кнопок.
Обновление streamdeck_ui
pip3 install --upgrade --user streamdeck_ui --break-system-packages