Installing on CentOS
This has been tested on CentOS 7, 8.
Install hidapi
sudo yum install epel-release
sudo yum update
sudo yum install hidapi
Note for CentOS7
If you're having trouble installing hdapi, try installing the epel from the Fedora site as follows:
sudo rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
and try the hdapi install again.
Install python 3.8
CentOS 7/8 ships with Python 3.6. We need to build version 3.8 (or later if you prefer).
sudo yum -y groupinstall "Development Tools"
sudo yum -y install openssl-devel bzip2-devel libffi-devel
wget https://www.python.org/ftp/python/3.8.9/Python-3.8.9.tgz
tar xvf Python-3.8.9.tgz
cd Python-3.8.9/
./configure --enable-optimizations
sudo make altinstall
Upgrade pip
You need to upgrade pip, using pip. In my experience, old versions of pip may fail to properly install some of the required Python dependencies.
python3.8 -m pip install --upgrade pip
Configure access to Elgato devices (udev rules)
The following will create a file called /etc/udev/rules.d/60-streamdeck.rules
with all the necessary udev rules that provides your user with access to USB devices created by Elgato.
sudo wget https://raw.githubusercontent.com/streamdeck-linux-gui/streamdeck-linux-gui/main/udev/60-streamdeck.rules -O /etc/udev/rules.d/60-streamdeck.rules
alternatively to grabbing the file directly from the repository you can use the following command:
sh -c "echo -e 'SUBSYSTEM==\"usb\", ATTRS{idVendor}==\"0fd9\", ATTRS{idProduct}==\"0060\", TAG+=\"uaccess\"\\n'\
'SUBSYSTEM==\"usb\", ATTRS{idVendor}==\"0fd9\", ATTRS{idProduct}==\"0063\", TAG+=\"uaccess\"\\n'\
'SUBSYSTEM==\"usb\", ATTRS{idVendor}==\"0fd9\", ATTRS{idProduct}==\"006c\", TAG+=\"uaccess\"\\n'\
'SUBSYSTEM==\"usb\", ATTRS{idVendor}==\"0fd9\", ATTRS{idProduct}==\"006d\", TAG+=\"uaccess\"\\n'\
'SUBSYSTEM==\"usb\", ATTRS{idVendor}==\"0fd9\", ATTRS{idProduct}==\"0080\", TAG+=\"uaccess\"\\n'\
'SUBSYSTEM==\"usb\", ATTRS{idVendor}==\"0fd9\", ATTRS{idProduct}==\"0084\", TAG+=\"uaccess\"\\n'\
'SUBSYSTEM==\"usb\", ATTRS{idVendor}==\"0fd9\", ATTRS{idProduct}==\"008f\", TAG+=\"uaccess\"\\n'\
'KERNEL==\"uinput\", SUBSYSTEM==\"misc\", OPTIONS+=\"static_node=uinput\", TAG+=\"uaccess\", GROUP=\"input\", MODE=\"0660\"' > /etc/udev/rules.d/60-streamdeck.rules"
For the rule to take immediate effect, run the following command:
sudo udevadm trigger
If the software is having problems later to detect the Stream Deck, you can try unplugging/plugging it back in.
Install Stream Deck UI
From Pypi with pip
python3.8 -m pip install streamdeck-linux-gui --user
From Source
Please make sure you have followed the steps below untill the Install Stream Deck UI section before continuing.
The steps to install from source can be found here
Launch the Streamdeck UI
streamdeck
See troubleshooting for tips if you're stuck.