Skip to content

OpenDeck is a cross-platform desktop application that provides functionality for stream controller devices.

License

Notifications You must be signed in to change notification settings

ninjadev64/OpenDeck

Repository files navigation

OpenDeck

Main menu More screenshots

OpenDeck is a desktop application for using stream controller devices like the Elgato Stream Deck. OpenDeck implements the OpenAction API, which is backwards-compatible with the Stream Deck SDK, allowing many plugins made for the Elgato software ecosystem to be used.

OpenDeck supports Elgato Stream Deck and some other hardware on all three major desktop platforms. Please note that only Elgato hardware is officially supported.

If you would like to support development of OpenDeck, consider sponsoring me on GitHub Sponsors! Special thanks go to the developers of Tauri, the elgato-streamdeck Rust library, Wine, and Phosphor Icons.

Why use OpenDeck?

  • Stream Deck plugins: OpenDeck supports the majority of the Stream Deck plugins that users of the Elgato ecosystem are already familiar with, unlike other third-party softwares which are much more limited (e.g. streamdeck-ui, StreamController, Boatswain etc).
  • Cross-platform: OpenDeck supports Linux alongside Windows and macOS. macOS users also benefit from switching from the first-party Elgato software to OpenDeck as OpenDeck can run plugins only built for Windows on Linux and macOS thanks to Wine. Additionally, profile files are easily transferrable between platforms with no changes to them necessary.
  • Feature-packed: From Multi Actions and Toggle Actions to switching profiles when you switch apps and brightness control, OpenDeck has all the features you'd expect from stream controller software.
  • Open source: OpenDeck is licensed under the GNU General Public License, allowing anyone to view the source code and improve it for feature, stability, privacy or security reasons.
  • Written in Rust: The Rust programming language, which OpenDeck is built with alongside TypeScript, is known for its performance, safety and resulting code quality.

Installation

Linux

Get it on Flathub
  • Download the latest release from GitHub Releases.
    • You should avoid AppImage releases of OpenDeck as they tend to have problems (you should also just avoid AppImages in general).
    • For users of Arch-based distributions, there is the opendeck AUR package for the latest release, as well as the opendeck-git AUR package for the latest commit on the main branch of this repository. Unfortunately, these are often out of date, but you can try your luck.
  • Install OpenDeck using your package manager of choice.
  • Install the appropriate udev subsystem rules from here:
    • If you're using a .deb or .rpm release artifact, this file should be installed automatically.
    • Otherwise, download and copy it to the correct location with sudo cp 40-streamdeck.rules /etc/udev/rules.d/.
    • In both cases, you will need to reload your udev subsystem rules with sudo udevadm control --reload-rules.
  • If you intend to use plugins that are only compiled for Windows or macOS (which are the majority of plugins), you will need to have Wine installed on your system. Some plugins may also depend on Wine Mono (which is sometimes, but not always included, in your distro's packaging of Wine).

Windows

  • Download the latest release (.exe or .msi) from GitHub Releases.
  • Double-click the downloaded file to run the installer.

macOS

  • Download the latest release from GitHub Releases.
  • If you downloaded a .dmg, open the downloaded disk image and drag the application inside into your Applications folder; otherwise, extract the .tar.gz to your Applications folder.
  • Open the installed application. Note: if you receive a warning about OpenDeck being distributed by an unknown developer, right-click the app in Finder and then click Open to suppress the warning.
  • If you intend to use plugins that are only compiled for Windows, you will need to have Wine installed on your system.

Support

How do I...?

To edit an action's settings, left-click on it to display its property inspector. To remove an action, right-click on it and choose "Delete" from the context menu.

To edit an action's appearance, right-click on it and select "Edit" from the context menu. You can then customise the image and text for each of its states. To choose an image from your files: left-click on the image, to reset it to the plugin-provided default: right-click on the image, and to remove the image entirely: CTRL+right-click on the image.

To select another device, or to switch profiles, use the dropdowns in the top right corner. You can organise profiles into folders by prefixing the profile name with the folder name and a forward slash. You can also configure automatically switching to a profile when a specific application's window is active.

To enable automatic launch on startup, the light theme, to change the language plugins are localised in, or to change other options, open Settings. From here, you can also view information about your version of OpenDeck or open the configuration and log directories. To add or remove plugins, visit the Plugins tab.

Troubleshooting

  • Ensure you are running the latest version of OpenDeck, as well as recent versions of related software (e.g. Spotify or OBS, or your operating system and Wine).
  • Check the pinned GitHub Issues to see if there's a fix for your problem already.
  • Check the OpenDeck log file for any important messages. This file should be included with any support request.
    • You can also run OpenDeck from the terminal to see the logs directly if it's easier than finding the log file or if the log file is empty or missing details.
    • For issues with plugins, you can also check the plugin's logs (in the same folder, sometimes as well as a file named plugin.log or similar in the plugin's own folder).
    • The log directory can be opened from the settings page of OpenDeck, or alternatively located manually at the paths below:
      • Linux: ~/.local/share/opendeck/logs/
      • Flatpak: ~/.var/app/me.amankhanna.opendeck/data/opendeck/logs/
      • Windows: %appdata%\opendeck\logs\
      • macOS: ~/Library/Logs/opendeck/
  • When trying to run plugins built for Windows (which are the majority of plugins) on Linux or macOS, please ensure you have the latest version of Wine (and Wine Mono) installed on your system.
  • If your device isn't showing up, ensure you have the correct permissions to access it, and that you have restarted OpenDeck since connecting it.

Support forums

Building from source / contributing

When cloning this repository, make sure to pull its submodules with it (git submodule update --init after cloning or git clone <url> --recurse-submodules). You'll need to ensure that all of the prerequisites for building a Tauri application are satisfied to build OpenDeck, as well as making sure that Deno is installed. On Linux, you'll also need libudev installed for your distribution. You can then use deno task tauri dev and deno task tauri build to work with OpenDeck.

Before each commit, please ensure that all of the following are completed:

  1. Rust code has been linted using cargo clippy and it discovers no violations
  2. Rust code has been formatted using cargo fmt
  3. TypeScript code has been linted using deno lint and it discovers no violations
  4. Svelte code has been linted using deno task check and it discovers no violations
  5. Frontend code has been formatted using deno fmt --unstable-component

Feel free to reach out on the support channels above for guidance when contributing!

OpenDeck is licensed under the GNU General Public License version 3.0 or later. For more details, see the LICENSE.md file.

Showcase

Main menu Multi action Plugins Profiles

About

OpenDeck is a cross-platform desktop application that provides functionality for stream controller devices.

Topics

Resources

License

Stars

Watchers

Forks

Sponsor this project