Setting Up The Elgato StreamDeck on Ubuntu/Kubuntu/Mint Linux 22.04

The Elgato StreamDeck is a customizable 6-key, 15-key or 32-key device that sits on your desk and gives you almost limitless programmability for each button. The six key version is in my opinion, useless. The smallest useful one is the 15-key but since the 32-key is only a little more expensive, that’s the one that I got.
Of course you can do the same thing with an extra keyboard and spend time mapping each key to do something special, but the StreamDeck’s killer functionality is that each key has a tiny 92×92 pixel LCD screen behind it that allows you to put any image you want on it. Try that with the extra keyboard you have laying around.
The biggest drag about the StreamDeck is that it only comes with software for Windows or Mac OSX. Luckily for Linux users, a guy named Dean Camera (GitHub: abcminiuser) wrote a Python-based library for interacting with the Elgato StreamDeck’s API, called the Python-Elgato-Streamdeck. Then another couple of guys named Timothy Crosley (GitHub: timothycrosley) and Pieter Venter (GitHub: dodgyrabbit) came along and used that library to create the StreamDeck-UI for linux.
I just spent some time getting the whole thing set up and running on my Kubuntu 22.04 machine (Update : Now Linux Mint) and it’s not like clicking an exe file and having it just install and be ready to go, so I thought I’d document my journey here.


Follow the instructions in the GitHub repo’s readme.md for installing it. I did the manual installation then took a look at the “Pre-Cooked” script for Ubuntu and it is the exact same steps I used for the manual install, all baked into a shell script, so I recommend just running the Ubuntu script.
If you’re a Fedora or RedHat user then the pre-cooked script for Fedora is what you’ll want.

Pip will have installed StreamDeck-UI to your ~/.local/bin directory and added it to your system path. At this point you will be able to run the app from the command line by just typing

  $ streamdeck
But you’ll want to hold off a bit before doing that. I suggest you first create a .desktop script for launching it properly. To do that…
    1. Browse to your ~/.local/share/applications directory and create a new file named
    2. Edit the file with your favorite text editor and enter the following (Be sure to change <Your uSername> to your username)…
      [Desktop Entry]
      Exec=python3 /home/<Your Username>/.local/bin/streamdeck
      Name=StreamDeck UI

      Note: I first had copied the Elgato Streamdeck icon to the /usr/share/pixmaps directory using sudo, and then set its permissions using chmod 644

      The icon I used is this one from the GitHub repo.

      You’ll also want to make sure you change the <Your Username> part to your actual username.

    3. If you’d like the Streamdeck app to launch automatically when you log in (and why wouldn’t you?) then copy the new .desktop file you created to your ~/.config/autostart/
      directory. Now when you restart your machine the Streamdeck app will
      run in the background, making your Streamdeck useful right out of the
      gate. If you don’t auto-start the streamdeck app then your Streamdeck
      will not respond to any button presses until you start it manually.

Now to start the StreamDeck UI, first ensure that your StreamDeck is plugged into a USB port, then press the Windows key on  your keyboard (we don’t call it the “Windows” key on Linux. Instead we call it the “Super” key, which is it’s real name), type “Stream Deck” in the search bar and select the “Stream Deck UI” app icon.
And your StreamDeck UI will appear.
Note: I am using Kubuntu 22.04, and Kubuntu has the KDE interface, but if you’re using Gnome-based Ubuntu, it will work the same, just look a little different.
Update. I just got a new PC and am now running Cinnamon Mint Linux and in the Cinnamon desktop it looks like this…
I am writing some custom scripts to use in each key in order to automate some of the things I want to do with each button press. I’ll update this article to add some of those scripts here, so keep an eye on this space for more information as I publish it. For now, I’ll start with the information you’ll need to Next-Page and Previous-Page buttons to the bottom right two buttons on the StreamDeck…

Programming Next and Previous page buttons across all ten pages.

By default the StreamDeck comes with 10 pages that you can program full of buttons. On the 15-key version that’s 130 actions (150 actions minus two on each page used by the “next” and “previous” buttons), and on the 32-key variety that’s 300 actions you can program on one StreamDeck.
On mine, I used these images for next and previous. You may right click on them and download them yourself if you like…
I store all of my StreamDeck images in the ~/.local/share/streamdeck
directory, which is where I also export my settings whenever I make a
change. I do this because when I built my new machine I neglected backup
my Streamdeck icons and had to go re-download them all. The next time I
have to move to a new PC, I’ll have them all in one place.
Start by opening up your StreamDeck UI, and make sure you are on Page 1.
We’re going to make the bottom-right button “Next” and the one just to the left of it “Previous”.

Click on the bottom-right button so that it’s highlighted, and in the “Configure Button” fields, make it look like this…

The only fields I changed are the Image, Label, and Switch Page. Since I am on the first page, I made the button switch to the second page. For the previous button I did the same thing, but I used the left arrow and set the the Switch Page to page 10, since I wanted the pages to wrap.

Now switch to page 2 and do the same thing. Then switch to page 3 and do the same thing. Then switch to page 4, and so on, so on, so forth…

On Page 10, I set the Next Page to page 1, and the Previous Page to Page 9. For every other page I set Next page to the next page number and Previous Page to the previous page number. For instance on page 7, I set the Next Page button to go to page 8, and the previous page button to go to page 6.
As you update the buttons in the StreamDeck UI, the buttons on the device will update in real-time. There is no need to save anything. Pretty cool huh?

Programming your first button

For work I use GMail and the Google Calendar. The first button I want to program is one to launch Chrome and load GMail. We’ll start with this icon…
And use the following command to launch it…
   google-chrome https://mail.google.com/mail/u/0/#inbox
I put this in the first button on the first page. Select that button, then in the “Configure Button” pane add your image, add a label if you want, and paste that command into the “Command” box. Now when you push that button, Chrome will launch and go to GMail.
Your StreamDeck UI should now look like this…
And so should your StreamDeck. If you press either of the Next or Previous buttons to change the page, the GMail button will disappear until you come back to page 1.

Backing UP:

Once you’ve made some changes in your StreamDeck, you should save them to a safe place in case anything happens, like you get a new PC. This place you save them to should be somewhere on your backup path. For the time being I am saving my StreamDeck icons and configuration file backups to ~/.local/share/streamdeck but I’ll probably choose a better place, like in my Google Drive folder later.

To back up your StreamDeck settings, in the StreamDeck UI’s menu click “File | Export”. The Export Config file save dialog will come up. Save the file in a place where you will be sure to back it up, and it’s best to save it alongside all of the icons that you use as well so they all get backed up together.

More to come…

2 Responses

Leave a Reply

Your email address will not be published. Required fields are marked *