Skip to main content

A service, Web Interface, and UI for interacting with your computer using a Stream Deck

Project description

streamdeck_ui - Linux compatible UI for the Elgato Stream Deck


PyPI version Test Status codecov Join the chat at https://gitter.im/timothycrosley/streamdeck-ui License Downloads Code style: black Imports: isort


Read Latest Documentation - Browse GitHub Code Repository


streamdeck_ui A Linux compatible UI for the Elgato Stream Deck.

Streamdeck UI Usage Example

Key Features

  • Linux Compatible: Enables usage of all Stream Deck devices on Linux without needing to code.
  • Multi-device: Enables connecting and configuring multiple Stream Deck devices on one computer.
  • Brightness Control: Supports controlling the brightness from both the configuration UI and buttons on the device itself.
  • Configurable Button Display: Icons + Text, Icon Only, and Text Only configurable per button on the Stream Deck.
  • Multi-Action Support: Run commands, write text and press hotkey combinations at the press of a single button on your Stream Deck.
  • Button Pages: streamdeck_ui supports multiple pages of buttons and dynamically setting up buttons to switch between those pages.
  • Auto Reconnect: Automatically and gracefully reconnects, in the case the device is unplugged and replugged in.
  • Import/Export: Supports saving and restoring Stream Deck configuration.

Communication with the Streamdeck is powered by the Python Elgato Stream Deck Library.

Linux Quick Start

Python 3.8 is required. You can check which version you have installed with python3 --version.

Precooked Scripts

There are scripts for setting up streamdeck_ui on Debian/Ubuntu and Fedora.

Manual installation

To use streamdeck_ui on Linux, you will need first to install some prerequisite system libraries. The name of those libraries will differ depending on your Operating System.
Debian / Ubuntu:

sudo apt install python3-pip libhidapi-libusb0 libxcb-xinerama0

Fedora:

sudo dnf install python3-pip python3-devel hidapi

If you're using GNOME shell, you might need to manually install an extension that adds KStatusNotifierItem/AppIndicator Support to make the tray icon show up.

To use streamdeck_ui without root permissions, you have to give your user full access to the device.

Add the udev rules using your text editor:

sudoedit /etc/udev/rules.d/70-streamdeck.rules
# If that doesn't work, try:
sudo nano /etc/udev/rules.d/70-streamdeck.rules

Paste the following lines:

SUBSYSTEM=="usb", ATTRS{idVendor}=="0fd9", ATTRS{idProduct}=="0060", TAG+="uaccess"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0fd9", ATTRS{idProduct}=="0063", TAG+="uaccess"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0fd9", ATTRS{idProduct}=="006c", TAG+="uaccess"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0fd9", ATTRS{idProduct}=="006d", TAG+="uaccess"

Reload the rules:

sudo udevadm control --reload-rules

Make sure you unplug and replug your device before continuing. Once complete, you should be able to install streamdeck_ui. Installing the application itself is done via pip:

pip3 install streamdeck-ui --user

Make sure to include $HOME/.local/bin to your PATH.
If you haven't already, add

PATH=$PATH:$HOME/.local/bin

to the bottom your shell config file (most likely .bashrc in your home directory)

You can then launch streamdeck to start configuring your device.

streamdeck

It's recommended that you include streamdeck in your windowing environment's list of applications to auto-start.

Generic Quick Start

On other Operating Systems, you'll need to install the required dependencies of the library. After that, use pip to install the app:

pip3 install streamdeck-ui --user
streamdeck

See the guide for

Help

Command

Enter a value in the command field to execute a command. For example, gnome-terminal will launch a new terminal on Ubuntu/Fedora or obs will launch OBS.

Some examples (Ubuntu)

You can use a tool like xdotool to interact with other applications.

Find the window with a title starting with Meet - and bring it to focus. This helps if you have a Google Meet session on a tab somewhere but you lost it behind another window.

xdotool search --name '^Meet - .+$' windowactivate 

The meeting tab must be active one if you have multiple tabs open, since the window title is set by the currently active tab.

Find the window with a title starting with Meet - and then send ctrl+d to it. This has the effect of toggling the mute button in Google Meet.

xdotool search --name '^Meet - .+$' windowactivate --sync key ctrl+d

Change the system volume up (or down) by a certain percentage. Assumes you're using PulseAudio/Alsa Mixer.

amixer -D pulse sset Master 20%+

Press Keys

Simulates key press combinations (hot keys). The basic format is a group of keys, separated by a + sign to press simultaneously. Separate key combination groups with a , if additional key combinations are needed. For example, alt+F4,f means press and hold alt, followed by F4 and then release both. Next, press and release f.

Use comma or plus if you want to actually output , or + respectively.

Use delay <n> to add a delay, where <n> is the number (float or integer) of seconds to delay. If <n> is not specified, 0.5 second default is used. If <n> fails to parse as a valid number, it will result in no delay.

Examples

  • F11 - Press F11. If you have focus on a browser, this will toggle full screen.
  • alt+F4 - Closes the current window.
  • ctrl+w - Closes the current browser tab.
  • cmd+left - View split on left. Note cmd is the super key (equivalent of the Windows key).
  • alt+plus - Presses the alt and the + key at the same time.
  • alt+delay+F4 - Press alt, then wait 0.5 seconds, then press F4. Release both.
  • 1,delay,delay,2,delay,delay,3 - Type 123 with a 1-second delay between key presses (using default delay).
  • 1,delay 1,2,delay 1,3 - Type 123 with a 1-second delay between key presses (using custom delay).

The standard list of keys can be found at the source.

Known issues

Confirm you are running the latest release with pip3 show streamdeck-ui. Compare it to: PyPI version

  • Streamdeck uses pynput for simulating Key Presses but it lacks proper support for Wayland. Generally your results will be good when using X (Ubuntu/Linux Mint). This thread may be useful.
  • Key Press or Write Text does not work on Fedora (outside of the streamdeck itself), which is not particularly useful. However, still do a lot with the Command feature.
  • On Ubuntu, the Key Press ctrl+alt+t doesn't work. However using the Command gnome-terminal achieves the same result.
  • Version 1.0.2 lacks error handling when executing Command and Key Press actions. As a result, you have to be careful - an invalid command or key press makes everything else also stop working. Please upgrade to the latest version.
  • Some users have reported that the Stream Deck device does not work on all on specific USB ports, as it draws quite a bit of power and/or has strict bandwidth requirements. Try a different port.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

streamdeck_ui-1.1.2.tar.gz (1.2 MB view details)

Uploaded Source

Built Distribution

streamdeck_ui-1.1.2-py3-none-any.whl (1.2 MB view details)

Uploaded Python 3

File details

Details for the file streamdeck_ui-1.1.2.tar.gz.

File metadata

  • Download URL: streamdeck_ui-1.1.2.tar.gz
  • Upload date:
  • Size: 1.2 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.5 CPython/3.8.6 Linux/5.8.0-48-generic

File hashes

Hashes for streamdeck_ui-1.1.2.tar.gz
Algorithm Hash digest
SHA256 4c729d9d5fb9135e5caa7294385e7fe3ef6dabd454bf1678fb79ff3a2bcff4fd
MD5 1d48c464b201b7ce1ae4d4d3607f45cb
BLAKE2b-256 d761c07086f756e55569730ed4d5018787fe7ec4436be4f249b5c54020b8c0d5

See more details on using hashes here.

File details

Details for the file streamdeck_ui-1.1.2-py3-none-any.whl.

File metadata

  • Download URL: streamdeck_ui-1.1.2-py3-none-any.whl
  • Upload date:
  • Size: 1.2 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.5 CPython/3.8.6 Linux/5.8.0-48-generic

File hashes

Hashes for streamdeck_ui-1.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 f238818b2a0533aaf417c6a6d4a33a611dad8b4d815969d425b38ea782c68a59
MD5 3e6b0e69c7ebf8d31782aa15fee87b45
BLAKE2b-256 35f4732bf1e930e6fc2b5601066e9e127312241e0b15cab86ccec57fd55c0524

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page