Skip to content

davromaniak/streamdeck-ui

 
 

Repository files navigation

streamdeck_ui - Linux compatible UI for the Elgato Stream Deck


PyPI version Build Status codecov Join the chat at https://gitter.im/timothycrosley/streamdeck-ui License Downloads


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

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 pre-requisite system libraries. The name of those libraries will differ depending on your Operating System. Debian / Ubuntu:

sudo apt install libhidapi-libusb0 libudev-dev libusb-1.0-0-dev python3-pip
sudo apt install python3-evdev python3-hid python3-pil python3-six python3-xlib

Fedora:

sudo dnf install python3-devel libusb-devel python3-pip libusbx-devel libudev-devel

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 your user to the 'plugdev' group if not already present

if [[ -z "$(id | tr ',' '\n'| grep -F '(plugdev)')" ]]; then
	sudo usermod -a -G plugdev `whoami`
	echo "You must restart your session for the changes to be effective"
fi

Add the udev rules using your text editor:

sudo tee /etc/udev/rules.d/99-streamdeck.rules << EOF
SUBSYSTEM=="usb", ATTRS{idVendor}=="0fd9", ATTRS{idProduct}=="0060", MODE:="660", GROUP="plugdev"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0fd9", ATTRS{idProduct}=="0063", MODE:="660", GROUP="plugdev"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0fd9", ATTRS{idProduct}=="006c", MODE:="660", GROUP="plugdev"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0fd9", ATTRS{idProduct}=="006d", MODE:="660", GROUP="plugdev"
EOF

Reload the rules:

sudo udevadm control --reload-rules
sudo udevadm trigger

Once complete, you should be able to install streamdeck_ui. Installing the application itself is done via pip:

pip3 install --user https://github.com/flexiondotorg/streamdeck-ui/archive/master.zip

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 --user https://github.com/flexiondotorg/streamdeck-ui/archive/master.zip
streamdeck

About

A Linux compatible UI for the Elgato Stream Deck.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 77.4%
  • Jupyter Notebook 17.8%
  • Shell 4.8%