Radwarrior.com

Setting Up The Elgato StreamDeck on Kubuntu 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 and it’s not like clicking an exe and having it just install and be ready to go, so I thought I’d document my journey here.

Installation

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
      streamdeck.desktop.
    2. Edit the file with your favorite text editor and enter the following…
      [Desktop Entry]
      Icon=/usr/share/pixmaps/streamdeck.png
      Exec=python3 /home/<Your Username>/.local/bin/streamdeck
      Version=1.0
      Type=Application
      Categories=Utilities
      Name=StreamDeck UI
      StartupWMClass=streamdeck
      Terminal=false
      X-GNOME-Autostart-enabled=true
      StartupNotify=false
      X-GNOME-Autostart-Delay=10
      X-MATE-Autostart-Delay=10
      X-KDE-autostart-after=panel
      

      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.
  1.  

Now to start the StreamDeck UI, first ensure that your StreamDeck is plugged into a USB port, then press the Windows key (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.
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…

      

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.

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.

More to come…
Facebook
Twitter
LinkedIn

Leave a Reply

Your email address will not be published.