This is alternative server implementation for Macro Deck client apps. Tested with Web and Android clients, written in Go.
2025-09-07_18-49-31.mp4
go install github.com/pbogut/hackdeck@latestConfiguration file is located at:
Linux: $HOME/.config/hackdeck/hackdeck.toml
Windows: C:\Users\<username>\AppData\Roaming\hackdeck\hackdeck.toml)
macOS: $HOME/Library/Application Support/hackdeck/hackdeck.toml
column- number of columns in the grid (default 5)rows- number of rows in the grid (default 3)port- port to listen on (default 8191)button_spacing- space between buttons (default 10)button_radius- radius of buttons (default 40)button_background- (default true)brightness- (default 0.3)support_button_release_long_press- support for long pressing buttons (default true)shell_command- shell command to run commands when button is pressed (default bash)shell_arguments- arguments to pass to shell command (default -c)[[buttons]]- list of button configurations
row- row number of the buttoncolumn- column number of the buttoncolor- hex color of the button (for example #000000)icon_path- path to icon file (for example /home/user/icon.png)icon_text- create icon from text, supports nerdfont glyphsicon_color- hex color of the generated icon (default #FFFFFF)button_press- command to run when button is pressedbutton_release- command to run when button is releasedbutton_long_press- command to run when button is long pressbutton_long_press_release- command to run when button is released after long pressexecute- execute command when button is created, output can update icon parametersinterval- how often to execute command (if not set, command is assumed to run in "daemon" mode)label- text to display on the buttonlabel_size- size of the label text (default 35)label_color- hex color of the label text (default #FFFFFF)
MIT License; The software is provided "as is", without warranty of any kind.