Skip to content

EriksRemess/streamrs

Repository files navigation

streamrs logo
streamrs

A lightweight Rust Stream Deck toolkit for Linux.
About · Download · Documentation · Developing

streamrs GUI screenshot

About

streamrs is a lightweight Stream Deck toolkit focused on a simple Linux-first workflow for configuring keys, icons, and actions on Stream Deck hardware.

It is built for and tested on:

  • Elgato Stream Deck MK.2
  • USB ID 0fd9:0080

Feature highlights:

  • Static icons: PNG, JPEG/JPG, SVG
  • Animated icons: GIF, APNG, animated WebP
  • Built-in clock icon (clock.svg)
  • Status-driven toggle icons via polling commands
  • Automatic pagination when config has more than 15 keys

Download

Install a release .deb (recommended on Debian/Ubuntu):

Release files are published on the GitHub Releases page:

sudo apt install ./streamrs_<version>_amd64.deb

Quick start after install:

  1. Plug in the Stream Deck
  2. Open the GUI: streamrs-gui
  3. Edit buttons and save

Service behavior:

  • On install, streamrs.service is enabled and started for active logged-in regular users
  • On package upgrade, the service is restarted for active logged-in regular users
  • To enable it for an additional user later, log into that user and run:
systemctl --user enable --now streamrs.service
  • On each service start/restart, streamrs --init --force-images runs first:
    • creates a config if missing
    • refreshes bundled images from the package
    • keeps your existing config unless you explicitly run streamrs --init --force

Documentation

Running and Service Management

Open the GUI configurator:

streamrs-gui

Manually start the daemon (if you do not want to use the service):

streamrs

Useful service commands:

systemctl --user status streamrs.service
systemctl --user restart streamrs.service
systemctl --user stop streamrs.service

Profiles and File Locations

Default profile files live in:

  • Config: ~/.config/streamrs/default.toml
  • Images: ~/.local/share/streamrs/default/

Additional profiles use:

  • ~/.config/streamrs/<name>.toml
  • ~/.local/share/streamrs/<name>/

Notes:

  • If the config is missing, streamrs auto-initializes the profile from bundled defaults
  • streamrs --init --force refreshes config and bundled images from package defaults

CLI Basics

Common streamrs flags:

  • --profile <name>: use another profile
  • --config <path>: use a custom config file
  • --debug: inherit child process stdout/stderr
  • --init: initialize profile files and exit
  • --force: with --init, overwrite existing config/images

Preview Renderer

Generate a mock image from your current profile:

streamrs-preview --output mock.png

Notes:

  • If --output is omitted, it writes mock.png
  • It reads your profile config/images first, then falls back to packaged defaults if needed

Icon Composer

Create a Stream Deck icon from a logo (.svg or .png):

streamrs-icon-compose path/to/logo.svg

Defaults:

  • Output directory: ~/.local/share/streamrs/default/
  • Output name: <logo>-icon.png (auto-suffixed if needed)

Options:

  • --output <path>
  • --padding <ratio> (0.0..0.5)

Developing

Developer-focused setup, source builds, packaging, maintainer notes, and contribution guidance are in development.md.

Credits

About

A lightweight Rust Stream Deck toolkit for Linux.

Topics

Resources

Stars

Watchers

Forks

Contributors