[ @elgato @stream_deck @python @console ]
Клавиатурки с кнопками-экранамим “Stream Deck” от Elgato представлены разными моделями:
- стандартная “Stream Deck” на 15 кнопок, и этого должно хватать всем.
- продвинутая “Stream Deck XL” на 32 кнопки, бо самогордыня и воображение и вообще удобно.
- крутяцкая с крутилками под кнопками. Для мажоров.
Они идеальны для стримеров и для редактирования видео/аудио, когда что-то надо делать часто и быстро, одним движением (нажатием). На кнопки назначаются или клавиатурные шорткаты, или ссылки на многошаговые скрипты, можно добавить/редактировать иконки и названия кнопок. В целом эта штучка притягивает и затягивает.
Под виндой это всё работает давно и стабильно, а под линуксами какое-то время было сложно, да и сегодня не блеск. Но работает.
В обычном режиме это всё не нужно, потому что один из выходов USB постоянно занят, возникает тактильное привыкание к месту нажатия кнопки, и в качестве игрушки это устройство дороговато. Иногда эти штуки также выходят из строя и нуждаются в замене.
Например, в KDE есть виджет «Просмотр папки» (Common:KDE settings:Оформление:Настроить тулбар:Виджет «Просмотр папки»), который можно поставить на тулбар. Если заполнить отслеживаемый этим виджетом каталог ярлыками на приложения или скрипты, то (это первый сценарий) вызов разных приложений «из одного места» решён чуть менее, чем полностью. Но “Stream Deck” сильна вторым сценарием — использовать управляющие кнопки при работе внутри работающего приложения: при редактировании видео или аудио (не надо зажимать аккорды кнопок на обычной клавиатуре), а также при live-трансляции экрана в “OBS”. Однако я заметил, что чаще использую “Stream Deck” для первого сценария, а там без него можно обойтись влёгкую.
Установка
Нюансы приложения
В окне приложения можно разобраться быстро, если привык к софту Elgato под виндой, но есть нюансы, которые лучше проговорить.
Техническое имя подключённой клавиатуры отображается в якобы выпадающем меню. Если подключено только одно устройство, то и выпадать там нечему.
Справа от этого выпадающего списка с именем есть незаметная кнопка: там настраивается уровень свечения кнопок и таймер их погашения. Тайминги чуть странные:
- Never
- 10 секунд
- 1 минута
- 5 минут
- …
- «10 часов»…
Выглядит странно, но всё настраивается в json-конфиг-файле вручную: в самом низу параметр "display_timeout":
- 120 (секунд) = 2 минуты
- 150 (секунд) = 2,5 минут
- 180 (секунд) = 3 минуты
- 300 (секунд) = 5 минут
Настройка кнопок
Уровней вложенности экранов здесь 10, они называются «Page 1, Page 2» и тд.
Каждая кнопка на каждом экране настраивается по-отдельности. Их можно захватывать курсором и перемещать, но невозможно переместить на другие экраны.
Image: png, jpg, bmp. Добавить, удалить.
Text: надпись на кнопке. Не больше семи символов, чтобы помещалось.
Command: команды из консоли, любые, как односложные, так и составные в одну строку. От управления звуком до…
Press Keys: названия клавиш вписывать прописными с некоторыми исключениями, вроде «alt+F4».
Switch Page: переключение между страницами/экранами устройства. По-умолчанию 0, ничего не происходит.
Brightness +/-: рекомендую игнорировать.
Write text: поле для необязательного комментария.
Кнопки для сохранения изменений нет, всё применяется сразу же после перемещения фокуса из поля ввода.
Как запускать консольные скрипты
Предположим, что я закатал многошаговый скрипт для запуска [[ftp]> в исполнямый sh-файл.
А ещё у меня есть разные профили для запуска konsole.
Используется общий принцип запуска чего угодно в Linux:
konsole --profile $profileName -e ~/scripts/q_ftp_start.sh
При запуске всего, что работает в консоли надо учесть, что
- консольное окно откроется,
- скрипт выполнится,
- окно закроется.
Если выполнение происходит быстро, окно просто «мелькнёт». Если нужно посмотреть на результат, надо завершать работу скрипта по нажатию клавиши AnyKey.
Шорткаты из-под кнопок
Они применяются только на окна в фокусе, и в этом есть недостаток. Например, запущен OBS. Внутри него смена сцена происходит по нажатию Ctrl+Shift+F1. Если фокус на OBS — оно работает. Если нет — нет.
Решается через wmctrl — консольная утилита для взаимодействия с X Window Manager. Она была установлена на первых этапах, но если что:
- sudo aptitude install wmctrl
- sudo pacman -S wmctrl
Например, это взаимодействие с obs:
Press Keys: ctrl+shift+F1
«wmctrl -lx» выводит список всех открытых окон (-l) и название класса окна (-х), чтобы проще воспринимать их по названию программы-родителя.
Управление шорткатами через xdtool
В поле 'Press Keys' уже прописано несколько сочетаний клавиш, которые должны работать на системном уровне (alt+f4, ctrl+w, media_volume_up и др). Этого хватит в основе, но дальше надо выкручиваться. Например, у меня уровень звука управляется через ’Alt Shift Up/Down'. Выполнить это сочетание из кнопки Elgato напрямую невозможно, но для этого есть консольная утилита xdotool (надо сперва установить стандартным способом: sudo apt-get install xdotool ).
Пример использования:
/usr/bin/xdotool key --delay 0 alt+shift+Up
Импорт/экспорт настроек
Всё сохраняется в json-файл, название и местоположение которого каждый выбирает самостоятельно.
Рекомендуется экспортировать в этот файл настройки после каждого изменения.
С импортом ранее сохранённых файлов может быть не всё гладко. В таком случае его надо открывать и разбираться с расположением элементов. Linux же.