Git Product home page Git Product logo

streamdeck-ui's Introduction

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 Release notes


streamdeck_ui A Linux compatible UI for the Elgato Stream Deck.

Streamdeck UI Usage Example

Key Features

  • Linux Compatible: Enables usage of Stream Deck devices (Original, MK2, Mini and XL) on Linux.
  • Multi-device: Enables connecting and configuring multiple Stream Decks 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.
  • Drag/Drop: Move buttons by simply drag and drop.
  • Drag/Drop Image: Configure a button image by dragging it from your file manager onto the button.
  • Auto Dim: Configure the Stream Deck to automatically dim the display after a period of time. A button press wakes it up again.
  • Animated icons: Use an animated gif to liven things up a bit.
  • Runs under systemd: Run automatically in the background as a systemd --user service.
  • Stream Deck Pedal: Supports actions when pressing pedals.

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

Installation Guides

Once you're up and running, consider installing a systemd service.

Use the troubleshooting guide or search the issues for guidance.

Precooked Scripts

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

Help

Start without showing the user interface

Note you can start streamdeck_ui without showing the configuration user interface as follows:

streamdeck -n

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.

Examples

These examples are for Ubuntu using xorg. 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%+

If you want you invoke a command that uses shell-script specific things like && or |, run it via bash. This command will shift focus to firefox using the wmctrl, and then shifts focus to the first tab:

bash -c "wmctrl -a firefox  && xdotool key alt+1"

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.

You can also specify a KeyCode in hex format, for example, 0x74 is the KeyCode for t. This is also sometimes called the keysym value.

You can use the xev tool and capture the key you are looking for. In the output, look for the keysym hex value, for example (keysym 0x74, t)

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).
  • e,c,h,o,space,",t,e,s,t,",enter - Type echo "test" and press enter.
  • ctrl+alt+0x74 - Opens a new terminal window. 0x74 is the KeyCode for t. TIP: If the character doesn't work, try using the KeyCode instead.
  • 0xffe5 - Toggle Caps Lock.
  • 0xffaf - The / key on the numeric key pad.

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

The super key (Windows key) can be problematic on some versions of Linux. Instead of using the Key Press feature, you could use the Command feature as follows. In this example, it will press Super and 4, which launches application number 4 in your favorites (Ubuntu).

xdotool key "Super_L+4"

Write Text

A quick way of typing longer pieces of text (verbatim). Note that unlike the Press Keys action, write text does not accept special (modifier) keys. However, if you type Enter (causing a new line) it will press enter during the output.

Examples

Unfortunately that's a hard no.
Kind regards,
Joe

nope

Known issues

Confirm you are running the latest release with pip 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.
  • 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.
  • If you are executing a shell script from the Command feature - remember to add the shebang at the top of your file, for the language in question. #!/bin/bash or #!/usr/bin/python3 etc. The streamdeck may appear to lock up if you don't under some distros.

streamdeck-ui's People

Contributors

aaronzper avatar abcminiuser avatar afonsofgarcia avatar andreasgdp avatar chrisprt avatar d3kryption avatar ddkfm avatar dodgyrabbit avatar dotlambda avatar exmatrikulator avatar johnbarton27 avatar kitsune-kuro avatar lhayhurst avatar marcomeyervfx avatar markmandel avatar mischkadb avatar parkervcp avatar petershinners avatar sftim avatar simoncor avatar slmb3 avatar surdaft avatar timothycrosley avatar tylerjw avatar vincentbernat avatar xorbital avatar zardus avatar zelifcam avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

streamdeck-ui's Issues

Insert OBS keypress without changing focus ?

Is there a way to tell streamdeck to change a scene in OBS whitout changing the current window focus ?

Stealing the focus makes it useless when youre playing a game and want to switch something

Error running streamdeck-ui on Fedora

Hi,

I'm getting this while running streamdeck on Fedora 31. Any ideas?


Traceback (most recent call last):
  File "/home/devrim/.local/bin/streamdeck", line 10, in <module>
    sys.exit(start())
  File "/home/devrim/.local/lib/python3.7/site-packages/streamdeck_ui/gui.py", line 269, in start
    build_device(ui)
  File "/home/devrim/.local/lib/python3.7/site-packages/streamdeck_ui/gui.py", line 199, in build_device
    build_buttons(ui, page)
  File "/home/devrim/.local/lib/python3.7/site-packages/streamdeck_ui/gui.py", line 129, in build_buttons
    deck = api.get_deck(deck_id)
  File "/home/devrim/.local/lib/python3.7/site-packages/streamdeck_ui/api.py", line 133, in get_deck
    return {"type": decks[deck_id].deck_type(), "layout": decks[deck_id].key_layout()}
KeyError: None

Thanks!

Thread hangs when calling _key_change_callback

I added some print statements before and after the keyboard.press/release code:

` if keys:

        print("Into if keys:")

        keys = keys.strip().replace(" ", "")

        for section in keys.split(","):

            for key_name in section.split("+"):

                keyboard.press(getattr(Key, key_name.lower(), key_name))

            for key_name in section.split("+"):

                keyboard.release(getattr(Key, key_name.lower(), key_name))

        print("Outof if keys:")`

(running from terminal window) have to control+\ to terminate the entire app, if I press a key I know to have a bad hotkey in it: (first button is good, second button is known bad)

$ streamdeck
Into if keys:
Outof if keys:
Into if keys:
^\Quit (core dumped)

Tried to read the code/documentation and I am just don't see anything good here: https://github.com/boppreh/keyboard/blob/master/keyboard/__init__.py#L394

Be nice to put some try/catch or whatever would work here and prevent the worker thread from hanging (the gui thread is uneffected).

--Doug (dx9s)

Setup.py install for hidapi ... error under Fedora 31

Hello
I'veb got a issue when trying to install using the command pip3 install streamdeck_ui --user
I got a linking error : creating build/lib.linux-x86_64-3.7 gcc -pthread -shared -Wl,-z,relro -Wl,--as-needed -Wl,-z,now -g build/temp.linux-x86_64-3.7/hid.o build/temp.linux-x86_64-3.7/hidapi/libusb/hid.o -L/usr/lib64 -lusb-1.0 -ludev -lrt -lpython3.7m -o build/lib.linux-x86_64-3.7/hid.cpython-37m-x86_64-linux-gnu.so /usr/bin/ldย : ne peut trouver -ludev

If you know what's going on
Tks
Guillaume

Add documentation for use on Fedora

sudo yum install python3-devel libusb-devel
pip3 install streamdeck_ui --user

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

sudo udevadm control --reload-rules

echo "Unplug and replug in device for the new udev rules to take effect"
streamdeck

Works.

Start in system tray only

Thanks for a great tool.

Is there a way to start the app minimized to the system tray directly? If not, that would be a really nice feature.

Configuring controls and keypresses

I have installed streamdeck on Manjaro, and it works great, runs and displays and does just what it's supposed to! However, I cannot for the life of me find documentation on what options are, and syntax, for the "command" and "press key" fields are capable of. I've figured out I can put commands into command field, that would normally be runable in a terminal session, like opening programs by name. I might just need to play with it more, but what else is possible, like pointing it to custom scripts or things? I've tried this, and it just throws errors like "no such file or directory", and then the streamdeck itself (Though the UI is just fine) refuses to perform any of the button functions until i force kill and restart Streamdeck.

For the press keys field, I've figured out that I can do shortcuts like "control+n" by writing in exactly this. I suspect alt is "alt", but when I try "control+alt+l" for screen-locking, nothing happens. When I press those keys on my keyboard, it does exactly that, locking the screen.

Also, I've tried "super" and "meta" for the super/windows key on my keyboard, but that just causes an error forcing me to restart streamdeck. What is that key called, for streamdeck? I also was about to setup volume controls, with a shortcut involving my arrow keys, when I realized I'm not sure how the arrow keys would even be called out in this field.

Can't send plus key

I've peeked at the code and understand why it doesn't work, but I'd like to be able to send a + as a keypress.

If you don't have time to look, I can take a shot at it. I don't see a clever way to do it. Maybe adding 'plus' as a key in pynput.keyboard.Key? I thought you might have some ideas.

No Text / Image being set on Stream Deck XL, GUI not responding

First of all, thanks for your great work.

I've installed the application as described on Manjaro as well as on Pop!OS (basically Ubuntu), but haven't had any luck setting images or text.

Changing the brightness works fine, however as soon as I interact with basically any UI element (clicking a button or one of the text fields, entering text, choosing an image, ...) the application freezes for about 40 seconds.
The same is happening when starting, after entering "streamdeck", I usually have to wait 40-60s.
After that the action is being executed (Button / Field selected / Text entered).
Setting a command works, for example a zenity popup opens, entering text works as well.

However setting an image results in the Stream Deck staying black, the same is true for setting a text.

Trying the examples from the library resulted in similar behavior, setting an image doesn't work there either, the only example working is example_deckinfo.py.

Anything I might have missed?
Even after installing with the script and playing around with the udev rule the deck doesn't display anything other than different shades of black depending on the brightness.

Hardware: Two entirely different computers, Stream Deck XL
OS: Manjaro and Pop!OS (as well as Ubuntu in a VM)
Firmware version of the deck: 1.00.006

Next thing I'm gonna try is attaching it to a Windows 10 VM, however using this application would obviously be a lot better.

UPDATE: Using the Windows VM works perfectly fine, no problems. Seems like there's no firmware update available.

Cross platform?

I know this project is meant to be used on Linux as Elgato's official app is running on Mac and Windows.
Given that the UI is written in Python though I was wondering whether it would also run on these platforms. So the question is: Is this Linux-only or is it actually cross-platform?

Add support for clock/time display

A useful key could be the current time (and or even separate keys for hour/min/second in larger font), which would allow the Stream Deck to double as a clock.

Stopped working with Mini

When I first used this everything was working fine, but now when I try to run it i get

Traceback (most recent call last): File "/home/s01itude/.local/bin/streamdeck", line 10, in <module> sys.exit(start()) File "/home/s01itude/.local/lib/python3.7/site-packages/streamdeck_ui/gui.py", line 281, in start api.render() File "/home/s01itude/.local/lib/python3.7/site-packages/streamdeck_ui/api.py", line 271, in render deck.set_key_image(button_id, image) File "/home/s01itude/.local/lib/python3.7/site-packages/StreamDeck/Devices/StreamDeckMini.py", line 133, in set_key_image raise IndexError("Invalid key index {}.".format(key)) IndexError: Invalid key index 7.

If I unplug my mini and leave my standard plugged in it works. I've tried uninstalling/reinstalling, changing hid dependencies, replugging, and rebooting to no avail.

Ubuntu 20.04 - Streamdeck UI Crash When Configured App Icon Missing

After updating Ubuntu 20.04 to kernel 5.4.0-51, the Streamdeck app would start and indicate an error that an icon for one of the configured app shortcuts was missing from the local app icon location (path is printed to console if run from there). Pressing any button on the Streamdeck itself would cause the USB device to completely reset (found by running 'dmesg' and seeing the disconnect and reconnect of the device logged).

Was fixed by simply copying any image to the filename in question, which allowed the GUI to come up and the device worked normally at that point. Probably should default to a blank image if any icon previously configured is not found rather than cause a full crash of the device and reset of the connection.

please make a release tag

once in a while, so people know a specific version "works". doesn't have to be perfect, but it really helps distros pick up packages when they have versions.

Doesn't work in user mode on Linux Mint 19.3

Working fine in root but in user (after fixing group, udev, etc.) I have this error message :

Traceback (most recent call last):
File "/home/brain0verride/.local/bin/streamdeck", line 11, in
sys.exit(start())
File "/home/brain0verride/.local/lib/python3.6/site-packages/streamdeck_ui/gui.py", line 269, in start
build_device(ui)
File "/home/brain0verride/.local/lib/python3.6/site-packages/streamdeck_ui/gui.py", line 201, in build_device
sync(ui)
File "/home/brain0verride/.local/lib/python3.6/site-packages/streamdeck_ui/gui.py", line 190, in sync
api.ensure_decks_connected()
File "/home/brain0verride/.local/lib/python3.6/site-packages/streamdeck_ui/api.py", line 115, in ensure_decks_connected
if not deck.connected():
File "/home/brain0verride/.local/lib/python3.6/site-packages/StreamDeck/Devices/StreamDeck.py", line 148, in connected
return self.device.connected()
File "/home/brain0verride/.local/lib/python3.6/site-packages/StreamDeck/Transport/LibUSBHIDAPI.py", line 321, in connected
return any([d['path'] == self.hid_info['path'] for d in self.hidapi.enumerate()])
File "/home/brain0verride/.local/lib/python3.6/site-packages/StreamDeck/Transport/LibUSBHIDAPI.py", line 147, in enumerate
'path': current_device.path,
AttributeError: 'LP_hid_device_info' object has no attribute 'path'
Erreur de segmentation (core dumped)

I've also try with sudo and with a chmod +x without success.

Interface with Twitch API

The original StreamDeck software has a number of builtin buttons that allow users to see how many viewers they have, switch to sub-only chat, run ads etc.

image

Would it make sense for streamdeck-ui to offer similar functionality? If so I would be interested in implementing these features and making the calls to the Twitch API.

Lock streamdeck when session locked

As a security-conscious user, I want the Stream Deck to lock (dim the screen and not respond to button pushes) whenever my session is locked.

Relevant to issues #4 and #7

PySide issue

I don't know if anyone else has had this, but I've just tried to install on a RPi running ubuntu and I get this error:

$ sudo pip3 install --user streamdeck_ui
Collecting streamdeck_ui
  Downloading streamdeck_ui-1.0.2-py3-none-any.whl (1.2 MB)
     |โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ| 1.2 MB 1.4 MB/s
Collecting streamdeck<0.7.0,>=0.6.3
  Downloading streamdeck-0.6.3-py3-none-any.whl (24 kB)
Collecting pillow<7.0,>=6.1
  Downloading Pillow-6.2.2.tar.gz (37.8 MB)
     |โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ| 37.8 MB 17 kB/s
Collecting hidapi<0.8.0,>=0.7.99
  Downloading hidapi-0.7.99.post21.tar.gz (51 kB)
     |โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ| 51 kB 63 kB/s
ERROR: Could not find a version that satisfies the requirement pyside2<6.0,>=5.13 (from streamdeck_ui) (from versions: none)
ERROR: No matching distribution found for pyside2<6.0,>=5.13 (from streamdeck_ui)

However when I installed in on another computer running ubuntu the install worked fine. Has PySide changed at all as that would make future installation difficult.

qt.qpa.plugin: Could not load the Qt platform plugin "xcb"

Hi everyone,

I'm running a freshly installed ubuntu 20.04 except for Anaconda and a few python packages.
I installed streamdeck-ui following the steps on the readme, add it to my path following instructions in issue #21

When i try to run streamdeck, i got the following message

qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "" even though it was found.
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.

Available platform plugins are: eglfs, minimal, minimalegl, offscreen, vnc, xcb.

Aborted (core dumped)

I tried uninstalling and re-install everything, but it didn't change anything.
I installed xcb with

sudo apt install xcb

still no changes.

I'm looking into re-installing Qt but no luck yet.

Any idea? Thank you very much!

Launch error on Ubuntu 20.04

I'm having problems installing streamdeck-ui on Ubuntu 20.04. Although I didn't encounter any errors during installation, I get the following when launching streamdeck:

ImportError: /lib/x86_64-linux-gnu/libgssapi_krb5.so.2: undefined symbol: krb5_ser_context_init, version krb5_3_MIT

Buttons do nothing

I'm running Xubuntu 20.04 and I've used the precooked Ubuntu script to get things started. Everything works flawlessly and the application detects my Stream Deck, allows me to change pages, change its brightness and set button images.

However, no matter how I configure the buttons nothing actually happens when I press them. Commands are not run, key presses are not written to a terminal and neither is the contents of "write text".

Have I missed something obvious? Is there a way to enable console logging so that I can see what goes wrong?

Animated Icons

First of all, thank you for writing this fantastic piece of software. I really enjoy using it.

It seems like the Stream Deck supports .gif files for animated icons. Having support for this in streamdeck-ui would be really nice. I'm happy to at least help test this, but might find some time to work on this, too.

JPEG compression artefacts in button images

I'll just quote the upstream issue since I'm observing the same thing:

The image quality on my StreamDeck original V2 is quite poor. This is especially noticeable when having intense colors, e.g. red text on black background.

After digging around a bit, I found that this issue has already been reported โ€” and indeed fixed โ€” in the library used to control the StreamDeck: abcminiuser/python-elgato-streamdeck#35

The fix (explicitly setting the JPEG quality to 100) is included in streamdeck versions 0.7.0 and higher.

Would it be possible to update streamdeck-ui's dependency accordingly to pull in the fix?

can not open from time to time

Traceback (most recent call last): File "/usr/local/bin/streamdeck", line 10, in <module> sys.exit(start()) File "/usr/local/lib/python3.7/dist-packages/streamdeck_ui/gui.py", line 266, in start for deck_id, deck in api.open_decks().items(): File "/usr/local/lib/python3.7/dist-packages/streamdeck_ui/api.py", line 100, in open_decks deck.open() File "/usr/local/lib/python3.7/dist-packages/StreamDeck/Devices/StreamDeck.py", line 114, in open self.device.open() File "/usr/local/lib/python3.7/dist-packages/StreamDeck/Transport/HIDAPI.py", line 51, in open self.hid.open_path(self.hid_info['path']) File "hid.pyx", line 72, in hid.device.open_path OSError: open failed

Ubuntu 20.04 - Streamdeck broken

$ cat /etc/issue
Ubuntu 20.04.1 LTS \n \l
$ sudo apt upgrade
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Calculating upgrade... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
$ sudo apt install libhidapi-hidraw0 libudev-dev libusb-1.0-0-dev
Reading package lists... Done
Building dependency tree       
Reading state information... Done
libusb-1.0-0-dev is already the newest version (2:1.0.23-2build1).
libhidapi-hidraw0 is already the newest version (0.9.0+dfsg-1).
libudev-dev is already the newest version (245.4-4ubuntu3.2).
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
$ lsusb | grep Elgato
Bus 001 Device 011: ID 0fd9:006d Elgato Systems GmbH Sierra Wireless EM7455 Qualcomm Snapdragon X7 LTE-A
$ cat /etc/udev/rules.d/99-streamdeck.rules
SUBSYSTEM=="usb", ATTRS{idVendor}=="0fd9", ATTRS{idProduct}=="0060", MODE:="666", GROUP="plugdev"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0fd9", ATTRS{idProduct}=="0063", MODE:="666", GROUP="plugdev"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0fd9", ATTRS{idProduct}=="006c", MODE:="666", GROUP="plugdev"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0fd9", ATTRS{idProduct}=="006d", MODE:="666", GROUP="plugdev"
$ pip3 install --user streamdeck_ui
Collecting streamdeck_ui
  Using cached streamdeck_ui-1.0.2-py3-none-any.whl (1.2 MB)
Requirement already satisfied: pynput<2.0,>=1.4 in ./.local/lib/python3.8/site-packages (from streamdeck_ui) (1.6.8)
Requirement already satisfied: hidapi<0.8.0,>=0.7.99 in ./.local/lib/python3.8/site-packages (from streamdeck_ui) (0.7.99.post21)
Requirement already satisfied: pillow<7.0,>=6.1 in ./.local/lib/python3.8/site-packages (from streamdeck_ui) (6.2.2)
Requirement already satisfied: pyside2<6.0,>=5.13 in ./.local/lib/python3.8/site-packages (from streamdeck_ui) (5.15.0)
Requirement already satisfied: streamdeck<0.7.0,>=0.6.3 in ./.local/lib/python3.8/site-packages (from streamdeck_ui) (0.6.3)
Requirement already satisfied: six in /usr/lib/python3/dist-packages (from pynput<2.0,>=1.4->streamdeck_ui) (1.14.0)
Requirement already satisfied: python-xlib>=0.17; "linux" in sys_platform in ./.local/lib/python3.8/site-packages (from pynput<2.0,>=1.4->streamdeck_ui) (0.27)
Requirement already satisfied: setuptools>=19.0 in /usr/lib/python3/dist-packages (from hidapi<0.8.0,>=0.7.99->streamdeck_ui) (45.2.0)
Requirement already satisfied: shiboken2==5.15.0 in ./.local/lib/python3.8/site-packages (from pyside2<6.0,>=5.13->streamdeck_ui) (5.15.0)
Installing collected packages: streamdeck-ui
Successfully installed streamdeck-ui-1.0.2
$ sudo usermod -a -G plugdev `whoami`
$ which streamdeck
/home/rber/.local/bin/streamdeck
rber@t460s-4:~$ /home/rber/.local/bin/streamdeck
Traceback (most recent call last):
  File "/home/rber/.local/bin/streamdeck", line 8, in <module>
    sys.exit(start())
  File "/home/rber/.local/lib/python3.8/site-packages/streamdeck_ui/gui.py", line 266, in start
    for deck_id, deck in api.open_decks().items():
  File "/home/rber/.local/lib/python3.8/site-packages/streamdeck_ui/api.py", line 99, in open_decks
    for deck in DeviceManager.DeviceManager().enumerate():
  File "/home/rber/.local/lib/python3.8/site-packages/StreamDeck/DeviceManager.py", line 90, in __init__
    self.transport = self._get_transport(transport)
  File "/home/rber/.local/lib/python3.8/site-packages/StreamDeck/DeviceManager.py", line 82, in _get_transport
    raise ProbeError("Probe failed to find any functional HID backend.", probe_errors)
StreamDeck.DeviceManager.ProbeError: ('Probe failed to find any functional HID backend.', {'hid': OSError('The libhidapi-hidraw0 backend is currently blacklisted for StreamD
eck devices.'), 'hidapi': TypeError("enumerate() got an unexpected keyword argument 'vendor_id'")})

RPI: Not able to complete Installation

Followed the installation manual:

pi@raspberrypi:~ $ pip3 install streamdeck_ui
Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
Collecting streamdeck_ui
  Using cached https://files.pythonhosted.org/packages/98/4d/fe60feaa7b0d5c7afac6da68cfb8b4fd5f48a10e3f9824e3764e7301a5a4/streamdeck_ui-1.0.2-py3-none-any.whl
Collecting pynput<2.0,>=1.4 (from streamdeck_ui)
  Using cached https://files.pythonhosted.org/packages/33/0a/ea13c055a90b1aff5945e7eb330584f15e5282aead15a8f3cdb977a1534e/pynput-1.6.8-py2.py3-none-any.whl
Collecting pyside2<6.0,>=5.13 (from streamdeck_ui)
  Could not find a version that satisfies the requirement pyside2<6.0,>=5.13 (from streamdeck_ui) (from versions: )
No matching distribution found for pyside2<6.0,>=5.13 (from streamdeck_ui)

cant load after installing (used ubuntu script)

hi - i am trying to get my XL working in ubuntu19.10
i ran the ubuntu script and when completed i tried to load but got the following error

Traceback (most recent call last):
File "/home/alex/.local/bin/streamdeck", line 10, in
sys.exit(start())
File "/home/alex/.local/lib/python3.7/site-packages/streamdeck_ui/gui.py", line 266, in start
for deck_id, deck in api.open_decks().items():
File "/home/alex/.local/lib/python3.7/site-packages/streamdeck_ui/api.py", line 99, in open_decks
for deck in DeviceManager.DeviceManager().enumerate():
File "/home/alex/.local/lib/python3.7/site-packages/StreamDeck/DeviceManager.py", line 90, in init
self.transport = self._get_transport(transport)
File "/home/alex/.local/lib/python3.7/site-packages/StreamDeck/DeviceManager.py", line 82, in _get_transport
raise ProbeError("Probe failed to find any functional HID backend.", probe_errors)
StreamDeck.DeviceManager.ProbeError: ('Probe failed to find any functional HID backend.', {'hid': OSError('The libhidapi-hidraw0 backend is currently blacklisted for StreamDeck devices.'), 'hidapi': TypeError("enumerate() got an unexpected keyword argument 'vendor_id'")})

Fedora 32 - Error while trying to install Streamdeck-ui

I don't understand what exacting what I am missing to install Streamdeck-ui.
Any suggestions??

Thanks!

Logs:

$ sh fedora_install.sh
Installing libraries
Last metadata expiration check: 0:38:43 ago on Thu 11 Jun 2020 03:47:23 PM EDT.
Package python3-devel-3.8.3-1.fc32.x86_64 is already installed.
Package libusb-devel-1:0.1.5-16.fc32.x86_64 is already installed.
Dependencies resolved.
Nothing to do.
Complete!
Adding udev rules and reloading
usermod: group 'plugdev' does not exist
SUBSYSTEM=="usb", ATTRS{idVendor}=="0fd9", ATTRS{idProduct}=="0060", MODE:="666", GROUP="plugdev"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0fd9", ATTRS{idProduct}=="0063", MODE:="666", GROUP="plugdev"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0fd9", ATTRS{idProduct}=="006c", MODE:="666", GROUP="plugdev"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0fd9", ATTRS{idProduct}=="006d", MODE:="666", GROUP="plugdev"
Unplug and replug in device for the new udev rules to take effect
Installing streamdeck_ui
Collecting streamdeck_ui
  Using cached streamdeck_ui-1.0.2-py3-none-any.whl (1.2 MB)
Requirement already satisfied: pyside2<6.0,>=5.13 in /home/Jonathaan44/.local/lib/python3.8/site-packages (from streamdeck_ui) (5.14.2.1)
Collecting hidapi<0.8.0,>=0.7.99
  Using cached hidapi-0.7.99.post21.tar.gz (51 kB)
Requirement already satisfied: streamdeck<0.7.0,>=0.6.3 in /home/Jonathaan44/.local/lib/python3.8/site-packages (from streamdeck_ui) (0.6.3)
Requirement already satisfied: pillow<7.0,>=6.1 in /home/Jonathaan44/.local/lib/python3.8/site-packages (from streamdeck_ui) (6.2.2)
Requirement already satisfied: pynput<2.0,>=1.4 in /home/Jonathaan44/.local/lib/python3.8/site-packages (from streamdeck_ui) (1.6.8)
Requirement already satisfied: shiboken2==5.14.2.1 in /home/Jonathaan44/.local/lib/python3.8/site-packages (from pyside2<6.0,>=5.13->streamdeck_ui) (5.14.2.1)
Requirement already satisfied: setuptools>=19.0 in /usr/lib/python3.8/site-packages (from hidapi<0.8.0,>=0.7.99->streamdeck_ui) (41.6.0)
Requirement already satisfied: python-xlib>=0.17; "linux" in sys_platform in /home/Jonathaan44/.local/lib/python3.8/site-packages (from pynput<2.0,>=1.4->streamdeck_ui) (0.27)
Requirement already satisfied: six in /usr/lib/python3.8/site-packages (from pynput<2.0,>=1.4->streamdeck_ui) (1.14.0)
Building wheels for collected packages: hidapi
  Building wheel for hidapi (setup.py) ... error
  ERROR: Command errored out with exit status 1:
   command: /usr/bin/python -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-xook849b/hidapi/setup.py'"'"'; __file__='"'"'/tmp/pip-install-xook849b/hidapi/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' bdist_wheel -d /tmp/pip-wheel-n_5p5qdj
       cwd: /tmp/pip-install-xook849b/hidapi/
  Complete output (21 lines):
  running bdist_wheel
  running build
  running build_ext
  skipping 'hid.c' Cython extension (up-to-date)
  skipping 'hidraw.c' Cython extension (up-to-date)
  building 'hid' extension
  creating build
  creating build/temp.linux-x86_64-3.8
  creating build/temp.linux-x86_64-3.8/hidapi
  creating build/temp.linux-x86_64-3.8/hidapi/libusb
  gcc -pthread -Wno-unused-result -Wsign-compare -DDYNAMIC_ANNOTATIONS_ENABLED=1 -DNDEBUG -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -D_GNU_SOURCE -fPIC -fwrapv -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -D_GNU_SOURCE -fPIC -fwrapv -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -D_GNU_SOURCE -fPIC -fwrapv -fPIC -Ihidapi/hidapi -I/usr/include/libusb-1.0 -I/usr/include/python3.8 -c hid.c -o build/temp.linux-x86_64-3.8/hid.o
  gcc -pthread -Wno-unused-result -Wsign-compare -DDYNAMIC_ANNOTATIONS_ENABLED=1 -DNDEBUG -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -D_GNU_SOURCE -fPIC -fwrapv -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -D_GNU_SOURCE -fPIC -fwrapv -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -D_GNU_SOURCE -fPIC -fwrapv -fPIC -Ihidapi/hidapi -I/usr/include/libusb-1.0 -I/usr/include/python3.8 -c hidapi/libusb/hid.c -o build/temp.linux-x86_64-3.8/hidapi/libusb/hid.o
  hidapi/libusb/hid.c:26: warning: "_GNU_SOURCE" redefined
     26 | #define _GNU_SOURCE /* needed for wcsdup() before glibc 2.10 */
        |
  <command-line>: note: this is the location of the previous definition
  creating build/lib.linux-x86_64-3.8
  gcc -pthread -shared -Wl,-z,relro -Wl,--as-needed -Wl,-z,now -g -Wl,-z,relro -Wl,--as-needed -Wl,-z,now -g build/temp.linux-x86_64-3.8/hid.o build/temp.linux-x86_64-3.8/hidapi/libusb/hid.o -L/usr/lib64 -lusb-1.0 -ludev -lrt -o build/lib.linux-x86_64-3.8/hid.cpython-38-x86_64-linux-gnu.so
  /usr/bin/ld: cannot find -ludev
  collect2: error: ld returned 1 exit status
  error: command 'gcc' failed with exit status 1
  ----------------------------------------
  ERROR: Failed building wheel for hidapi
  Running setup.py clean for hidapi
Failed to build hidapi
Installing collected packages: hidapi, streamdeck-ui
    Running setup.py install for hidapi ... error
    ERROR: Command errored out with exit status 1:
     command: /usr/bin/python -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-xook849b/hidapi/setup.py'"'"'; __file__='"'"'/tmp/pip-install-xook849b/hidapi/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip-record-m2d2tncb/install-record.txt --single-version-externally-managed --user --prefix= --compile --install-headers /home/Jonathaan44/.local/include/python3.8/hidapi
         cwd: /tmp/pip-install-xook849b/hidapi/
    Complete output (21 lines):
    running install
    running build
    running build_ext
    skipping 'hid.c' Cython extension (up-to-date)
    skipping 'hidraw.c' Cython extension (up-to-date)
    building 'hid' extension
    creating build
    creating build/temp.linux-x86_64-3.8
    creating build/temp.linux-x86_64-3.8/hidapi
    creating build/temp.linux-x86_64-3.8/hidapi/libusb
    gcc -pthread -Wno-unused-result -Wsign-compare -DDYNAMIC_ANNOTATIONS_ENABLED=1 -DNDEBUG -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -D_GNU_SOURCE -fPIC -fwrapv -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -D_GNU_SOURCE -fPIC -fwrapv -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -D_GNU_SOURCE -fPIC -fwrapv -fPIC -Ihidapi/hidapi -I/usr/include/libusb-1.0 -I/usr/include/python3.8 -c hid.c -o build/temp.linux-x86_64-3.8/hid.o
    gcc -pthread -Wno-unused-result -Wsign-compare -DDYNAMIC_ANNOTATIONS_ENABLED=1 -DNDEBUG -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -D_GNU_SOURCE -fPIC -fwrapv -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -D_GNU_SOURCE -fPIC -fwrapv -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -D_GNU_SOURCE -fPIC -fwrapv -fPIC -Ihidapi/hidapi -I/usr/include/libusb-1.0 -I/usr/include/python3.8 -c hidapi/libusb/hid.c -o build/temp.linux-x86_64-3.8/hidapi/libusb/hid.o
    hidapi/libusb/hid.c:26: warning: "_GNU_SOURCE" redefined
       26 | #define _GNU_SOURCE /* needed for wcsdup() before glibc 2.10 */
          |
    <command-line>: note: this is the location of the previous definition
    creating build/lib.linux-x86_64-3.8
    gcc -pthread -shared -Wl,-z,relro -Wl,--as-needed -Wl,-z,now -g -Wl,-z,relro -Wl,--as-needed -Wl,-z,now -g build/temp.linux-x86_64-3.8/hid.o build/temp.linux-x86_64-3.8/hidapi/libusb/hid.o -L/usr/lib64 -lusb-1.0 -ludev -lrt -o build/lib.linux-x86_64-3.8/hid.cpython-38-x86_64-linux-gnu.so
    /usr/bin/ld: cannot find -ludev
    collect2: error: ld returned 1 exit status
    error: command 'gcc' failed with exit status 1
    ----------------------------------------
ERROR: Command errored out with exit status 1: /usr/bin/python -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-xook849b/hidapi/setup.py'"'"'; __file__='"'"'/tmp/pip-install-xook849b/hidapi/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip-record-m2d2tncb/install-record.txt --single-version-externally-managed --user --prefix= --compile --install-headers /home/Jonathaan44/.local/include/python3.8/hidapi Check the logs for full command output.

Bug: Buttons append commands

Hey,

first off thank you very much for this package! Reading your the blog post about playing around with this gadget was fun. ๐Ÿ˜€

What I did

Ubuntu 20.04
Stream Deck Mini

Set commands for 6 Buttons. From echo "Hello World" to chromium-browser https://github.com.

What I expected

When I push a button, the command for this button is executed.

What happend

When I push a button, the commands of all previous buttons are appended. Click on button 4 will execute the command for button 1,2 and 3. Clock on button 3 will execute the command for button 1 and 2.

Issue with startin streamdeck on Linux Mint 19.2

Error Message after install trying to start with streamdeck used the recommended script from the README.md. Stream deck just shows their giant logo across all the keys. Let me know if you need more information

dmehaffy:~$ streamdeck
Traceback (most recent call last):
  File "/usr/local/bin/streamdeck", line 11, in <module>
    sys.exit(start())
  File "/usr/local/lib/python3.6/dist-packages/streamdeck_ui/gui.py", line 266, in start
    for deck_id, deck in api.open_decks().items():
  File "/usr/local/lib/python3.6/dist-packages/streamdeck_ui/api.py", line 99, in open_decks
    for deck in DeviceManager.DeviceManager().enumerate():
  File "/home/dmehaffy/.local/lib/python3.6/site-packages/StreamDeck/DeviceManager.py", line 75, in enumerate
    found_devices = self.transport.enumerate(vid=vid, pid=pid)
  File "/home/dmehaffy/.local/lib/python3.6/site-packages/StreamDeck/Transport/HIDAPI.py", line 161, in enumerate
    devices = hid.enumerate(vendor_id=vid, product_id=pid)
TypeError: enumerate() got an unexpected keyword argument 'vendor_id'

image

System

Distributor ID: LinuxMint
Description: Linux Mint 19.2 Tina
Release: 19.2
Codename: tina
Kernel: 4.15.0-65-generic

Support the Elgato plugin APIs

This is mostly a JSON websocket protocol for both JS and native plugins; JS plugins run in a Qt JS interpreter which is usable on Linux - or the same hooks could likely be reimplemented.

Native plugins are the same protocol, with port numbers and other initialization stuff passed in argv.

I maintain some windows and mac C++ plugins for the official SDK; I'm likely to make them build on Linux just to make some CI problems simpler - and others are mostly using .net which may be portable with mono. If this ended up being actually useful, that'd be even better :)

StreamDeck Crashing, Board no longer responsive

After running for a bit of time, buttons will stop working and this message appears in the terminal that I've run streamdeck-ui in.

OpenJDK 64-Bit Server VM warning: Option UseConcMarkSweepGC was deprecated in version 9.0 and will likely be removed in a future release.
2020-01-30 18:51:28,270 [  71550]   WARN - brains.cidr.execution.debugger - >kill
2020-01-30 18:51:28,270 [  71550]   WARN - brains.cidr.execution.debugger - <^error,msg="The program is not being run."

Unable to start streamdeck after install

After following all instructions to install this in POP_OS ( a fork of Ubuntu) and installing all dependencies as needed, the command "streamdeck" does not start the program. All I get is "command not found" in terminal.

I did get a warning that a file needed added to "PATH" and tried to do that, but could still never get "streamdeck" to work. Also there are no instructions or link to instructions on howw to add it to auto start as suggested...

I am stuck and dont know what to try next, as I am a new (ish) user on linux.

(now for the obligatory "dis is broke, fix nao") XD

any help would be greatly appreciated!

Unable to install on Linux Mint 19.2

I am not a programmer by any means and am looking for suggestions on how to remedy the issue. When I try to install streamdeck-ui on my Mint 19.2 laptop I receive this:

rb@rb-ThinkPad-T420:~$ pip3 install streamdeck_ui --user
Collecting streamdeck_ui
Downloading https://files.pythonhosted.org/packages/f0/d0/8349e057e9c02fcf3b2a6cfe2c1e4c3b4cafb813704879eda9e5810ffecf/streamdeck_ui-1.0.1-py3-none-any.whl (1.2MB)
100% |โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ| 1.2MB 1.2MB/s
Collecting pynput<2.0,>=1.4 (from streamdeck_ui)
Downloading https://files.pythonhosted.org/packages/00/46/b1b4a915c1ca423eb8cc5640f2c1dfa2eaf6a08c450831fdce68886f4b0c/pynput-1.4.5-py2.py3-none-any.whl (83kB)
100% |โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ| 92kB 7.8MB/s
Collecting streamdeck<0.6.0,>=0.5.0 (from streamdeck_ui)
Downloading https://files.pythonhosted.org/packages/df/21/58327a722cfb1a17fd74fe7409d0beb085aebb95f79966dd926ea9fada2d/streamdeck-0.5.1-py3-none-any.whl
Collecting pillow<7.0,>=6.1 (from streamdeck_ui)
Downloading https://files.pythonhosted.org/packages/10/5c/0e94e689de2476c4c5e644a3bd223a1c1b9e2bdb7c510191750be74fa786/Pillow-6.2.1-cp36-cp36m-manylinux1_x86_64.whl (2.1MB)
100% |โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ| 2.1MB 609kB/s
Collecting pyside2<6.0,>=5.13 (from streamdeck_ui)
Downloading https://files.pythonhosted.org/packages/ea/58/e5a1aa7417f87987f03f02c0d0ce4bb1112ae9981667107ee9a1560f3607/PySide2-5.13.2-5.13.2-cp35.cp36.cp37-abi3-manylinux1_x86_64.whl (156.1MB)
100% |โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ| 156.1MB 9.4kB/s
Collecting hidapi<0.8.0,>=0.7.99 (from streamdeck_ui)
Downloading https://files.pythonhosted.org/packages/c1/86/89df0e8890f96eeb5fb68d4ccb14cb38e2c2d2cfd7601ba972206acd9015/hidapi-0.7.99.post21.tar.gz (51kB)
100% |โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ| 61kB 6.4MB/s
Complete output from command python setup.py egg_info:
Traceback (most recent call last):
File "", line 1, in
ModuleNotFoundError: No module named 'setuptools'

----------------------------------------

Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-rxlawfug/hidapi/

Folder support

Does the library provide native Folder support for the Streamdeck?

basic instructions?

It looks like this may be fairly dead, but if it's still active, I'm looking for some basic directions on how to use the application. For instance, what is the difference between "Command" and "Press Keys"? It looks like from other comments that you can't just type the key combination into Press Keys but have to use a description of the keys to press: ctrl+alt_shift+a but there isn't anything that actually says that as far as I've found.

Also, I'm having trouble getting the "switch page" function to work. It looks like you select a key and then use the Switch Page box to select a page to go to. This works from the gui, but not on the streamdeck.

My main goal is to just get hotkey bindings working for OBS and to be able to switch pages for additional room for commands.

I'm using the streamdeck XL on Linux Mint 19.3 if that matters.

Thanks for the work that has been put into this and the underlying python library.

morris

"Clear image" button

The only way one could remove an image set on a key is to open the select dialog and cancel it, maybe a small [x] icon next to the "Choose Image..."-Button when an image is set would be a little easier?

Libraries for Centos 7.7

Hi,

does anyone have the correct libraries needed for Denton 7.7?
Iโ€™ve found a couple different one, but Iโ€™m not sure which one are correct..

Any help would be greatly appreciated.

lee

Add option to capture key presses

The ability to click a "capture key presses" button and then hit a key combo would be awesome.

I am having a hard time trying to get key presses to work in general.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.