a hotkey board for desktop touchscreens

Noah Vogt 5f97e08ecd remove unused file + update README 1 месяц назад
config ff3949b4dd allow follow_up_state to be dynamically set by the cmd exit code 1 месяц назад
ui e96add125d affects_buttons now works when the stats have a different 'cmd' entry 1 год назад
util 6a45615d11 split VulcanBoard.py into modules + add gitignore 1 год назад
.gitignore 47b0748a9e add simple http api using fastapi to control button states 1 месяц назад
ConfigEditorApp.py e6579ecdf9 add config + widget 1 год назад
LICENSE 51b0778330 init commit 1 год назад
README.md 5f97e08ecd remove unused file + update README 1 месяц назад
Settings.py ee024cd9e4 add version with draggable buttons 1 год назад
VulcanBoard.py ff3949b4dd allow follow_up_state to be dynamically set by the cmd exit code 1 месяц назад
api.pdf 1cd2897028 add some window config options + update README + use rounded corner icons + update api proposal 11 месяцев назад
api.xopp 1cd2897028 add some window config options + update README + use rounded corner icons + update api proposal 11 месяцев назад
config.diff 4e3b83ac65 add confif acutally 1 год назад
example-config.yml 5f97e08ecd remove unused file + update README 1 месяц назад
icon-non-rounded.png 1cd2897028 add some window config options + update README + use rounded corner icons + update api proposal 11 месяцев назад
icon.ico 1cd2897028 add some window config options + update README + use rounded corner icons + update api proposal 11 месяцев назад
icon.png 1cd2897028 add some window config options + update README + use rounded corner icons + update api proposal 11 месяцев назад
requirements.txt 47b0748a9e add simple http api using fastapi to control button states 1 месяц назад
vulcanboard.kv 5c281b5122 fix hexcolors + use gui error exit 1 год назад

README.md

VulcanBoard

A hotkey board for desktop touchscreens.

There are many hotkey solutions and programs that use either

  • physical devices (Elgato StreamDeck) or
  • touchscreens (LioranBoard, MacroDeck, StreamPi)

They are often very bloated but lack basic features like

  • multitouch support for the desktop client
  • asynchronous command execution
  • a fullscreen mode

They also crash way too often, so VulcanBoard aims to be a rock-solid alternative.

Installation

To setup you need to have python3 installed. In addition, to install the dependencies using pip:

pip install -r requirements.txt

Project State & Roadmap

VulcanBoard is actively used by the author, hence is in a usable state. Here are some planned or possible future changes:

  • add documentation for the configuration and use of VulcanBoard
  • add gui window to configure keys
    • add multiple boards to config.yml
    • add edit history cache
    • add internal commands (see api proposal)
  • add button merging (meaning a button that takes of the space of otherwise multiple buttons)
  • add possibility to choose the font family used for button texts
  • add rounded corners for buttons
  • use constants / constant dict for default values
  • add folders (which is already possible with button states, but kinda hacky)
  • add showing an image instead of button text
  • http api can control buttons by id (optional or maybe even required?) instead of positition (x, y)
  • slaves (other desktop / smartphone clients) can connect via websockets to the master VulcanBoard instance
    • simple permission system: the master can live enable/disable certain buttons for a subset of slaves
  • add button trigger in addition to the current http api, probably by specific supported websockets