Con Python y una aplicación Android puedes tener una especie StreamDeck gratuito y funcional. Personalizable 100%*.
* Requiere de conocimientos en programación.
Necesitaba controlar OBS Studio y poder escribir rápidamente en el chat de texto de Overwatch. Resultó en un proyecto interesante, con una utilidad perfecta y un potencial que no puedo imaginar.
Al iniciar SocketeDeck.py, se creará un servidor TCP/IP en el puerto 16100. La aplicación móvil debe ser configurada para conectarse a la IP y al puerto del servidor.
Una vez la aplicación conectada, el servidor enviará la configuración inicial, la cual incluye el preset activo por defecto declarado en config.json y también se incluyen todos los presets disponibles en la carpeta acciones/. En nuestro caso, toxic_prompts es el preset por defecto.
Dentro de la carpeta acciones/ se encuentran dos módulos de ejemplo:
toxic_prompts.py: Ayuda a escribir en el chat de texto de Overwatch mensajes de un jugador tóxico.obs.py: Permite controlar una instancia de OBS Studio mediante el uso de sockets conobs-clipara Python.
Puedes programar tu propio módulo para que haga las cosas que tú quieras. Eso sí, en cada módulo deben existir las funciones:
textos_acciones()-> list: Debe devolver los textos a renderizar en la aplicación móvil.accion(id: int)-> str: Es la función que procesa la acción según el botón presionado, debe devolver unastring.about: dict: Contiene información sobre el preset de acciones.
En la aplicación móvil puedes seleccionar qué preset activar con el botón Acciones.
Descarga o clona este repositorio en tu máquina, luego extrae el contenido comprimido en una carpeta.
Dentro de la carpeta en donde está el repositorio, inicia una instancia de bash (Linux) o cmd (Windows).
Crea un entorno virtual de Python
py -m venv .venvActiva el entorno virtual de Python
source .venv/bin/activateEn Windows
.venv/Scripts/activateFinalmente, inicia el servidor
py SocketeDeck.pyAunque el proyecto para mí está terminado, ya que cumple la función por la que fue desarrollado, me gustaría agregarle algunas otras cosas.
- Iconos: Set de iconos preestablecidos (seguramente de Bootstrap o Font Awesome) que se puedan ver en la app móvil.*
- Cantidad de botones: Actualmente la aplicación móvil controla la cantidad de botones, me gustaria que el servidor le dijiera cuantos botones debe renderizar.
Padding de botones: Comandos vacíos para saltar botones en la app móvil.Información de acciones: Darle un nombre y descripción, junto con el autor y versión de una acción.