[ Пред. ] [ Содержание ] [ След. ]

Elgato “Stream Deck”

[ @debian @install @elgato @stream_deck @python @console ]

 


*todo Elgato “Stream Deck” — пересмотреть запуск скриптов Python внутри venv


[психологическая> Подготовка к установке


Основной источник информации по установке и настройке https://timothycrosley.github.io/streamdeck-ui/


Если к ноуту уже подключено устройство “Stream Deck” по USB (просто чтобы убедиться в том, что оно работает) — его надо выдернуть.


Если в наличии несколько устройств, то надо сперва решить, которое из них будет «установлено».


Под виндой их можно перевтыкивать без особых сложностей, внутренний софт определяет их и меня конфигурацию кнопок на лету.


В Debian «перевтык» не сработает, и даже импорт настроек из сохранённого файла не поможет. Полагаю, что при установке происходит жёсткая призявка к железке.


Жизненный опыт: 32-ухкнопочная клавиатурка всегда удобнее 15-тикнопочной.


На каждом шаге что-то может пойти не так. Если что-то пошло не туда — остановиться и гуглить. А пойти что-то не так вполне может, known issues (мне не помешали):



По сравнению с приложением под виндой, приложение под линукс примитивнее:



Поначалу это ощущается как недостаток, но чуть позже всё становится проще. Одна кнопка, одно действие. Если нужно несколько действий последовательно — закатать всё в файл .sh и повесить его однократный вызов на отдельную кнопку.


Wayland vs X11


Под Wayland это всё не работает.


Выяснить действующую графсистему:


loginctl show-session "$XDG_SESSION_ID" -p Type
или
loginctl show-session $(awk '/tty/ {print $1}' [(loginctl)) -p Type | awk -F= '{print $2}'


Питание железки


Есть проблема: эти клавиатурки постоянно получают энергию из usb-дырок, даже если ноут отключён (батарея и сеть работают). В темноте клавиатурки Elgato очень ярко светятся, и если это дело оставить как есть, то когда-нибудь или пиксели на кнопках начнут выгорать к едреням, или нервные окончания в глазах.


Есть несколько решений:


  1. втыкать Elgato только в USB 3.0 (синего цвета). Иногда на этом всё решено, иногда нет.
  2. если есть только USB 2.0 — выдирать провод из usb после каждого выключения ноутбука. Это расстраивает, да и дырка контакты usb разбалтываются.
  3. У некоторых компьютеров в BIOS-Advanced есть опция Deep Sleep, её можно переключить в Enabled, и после выключения ноута к usb не будет поступать электрический ток. В моём ноуте такой опции нет.
  4. клавиатуры Elgato не любят подключение через usb-хабы, но иногда их можно успешно подключать через usb-хаб с отдельными кнопками отключения на каждом порту — есть четырехпортовые и семипортовые, дешёвые и дорогие, их надёжность и долгосрочность работы обсуждаемая, и втыкать их надо в сам ноутбук, а не в другие usb-хабы, но не суть. Такие штучки не пригодны для питания подключаемых устройств (телефон на этом не зарядишь), они только передают данные. После выключения ноутбука всё полностью гаснет и включается только вместе с ноутбуком. Ну и можно отключать отдельные устройства.

Установка окружения


Проверить, что железка отключена.


Убедиться в том, что в системе установлен [[Common:Software:Python]> и его PIP.


sudo apt install -y python3-pip python3-setuptools


sudo apt install -y libudev-dev libusb-1.0-0-dev libhidapi-libusb0 libxcb-xinerama0 libjpeg-dev zlib1g-dev libopenjp2-7 libtiff5-dev


pip3 install wheel pillow


Если здесь возникнет ошибка «error: externally-managed-environment», см. Software:Python:pip3


Создать файл с правилами


sudoedit /etc/udev/rules.d/70-streamdeck.rules


Если экзотичное «sudoedit» не сработает, можно создать файл через mcedit:
sudo mcedit /etc/udev/rules.d/70-streamdeck.rules


Вставить в файл “70-streamdeck.rules” эти строки:


SUBSYSTEM=="usb", ATTRS{idVendor}=="0fd9", ATTRS{idProduct}=="0060", GROUP="users", TAG+="uaccess"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0fd9", ATTRS{idProduct}=="0063", GROUP="users", TAG+="uaccess"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0fd9", ATTRS{idProduct}=="006c", GROUP="users", TAG+="uaccess"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0fd9", ATTRS{idProduct}=="006d", GROUP="users", TAG+="uaccess"

Проверить, что всё записалось:


cat /etc/udev/rules.d/70-streamdeck.rules


Перезагрузка udevadm


sudo udevadm control --reload-rules


Подключить Stream Deck к ноуту (USB)


Все кнопки-иконки должны засветиться и показать один большой логотип Elgato.


Установить streamdeck_ui


pip3 install --user streamdeck_ui


В ~/.local/bin должен появиться исполняемый файл ’streamdeck’ (скрипт на python).


Добавить этот каталог в PATH. Это можно сделать двумя способами:


export PATH=~/.local/bin:$PATH


PATH=$PATH:$HOME/.local/bin


Но лучше просто добавить новую строку в ~/.bashrc


PATH=$HOME/.local/bin:$PATH


Если такая строка уже есть (например, для LaTeX), то новый каталог нужно добавить после двоеточия:


PATH=/home/LaTeX/bin/x86_64-linux:$HOME/.local/bin:$PATH


Принудительно перечитать содержимое .bashrc (в ответ ожидаем тишину):


source ~/.bashrc


Команду streamdeck можно сунуть в автозапуск (~/.local/bin/streamdeck), софт маленький и даже если железка не будет подключена, на системе это не скажется.


Запустить приложение


streamdeck &
или же
~/.local/bin/streamdeck


Предполагается, что процесс при запуске отвяжется от консоли, но на самом деле нет. Автозапуск при загрузке системы происходит где-то в фоне и живёт незаметно.


Откроется это:



Позже, после полной настройки, будет открываться нечто подобное:



Выключать это приложение не следует.


Обновление streamdeck_ui


pip3 install --upgrade --user streamdeck_ui


Настройки


Software:Elgato “Stream Deck”