Software engineer and technology nerd.
Here are some of my recent blog posts:
Stream Deck control software for software developer's.
License: BSD 3-Clause "New" or "Revised" License
Software engineer and technology nerd.
Here are some of my recent blog posts:
Buttons occasionally render incorrectly, showing the wrong content as well as render artifacts. This seems to be related to listing the controls out of order, as the behavior can be prevented by ordering the keys in the configuration.
Configuration producing this behavior:
decks:
- name: devdeck.decks.single_page_deck_controller.SinglePageDeckController
serial_number: redacted
settings:
controls:
- key: 0
name: devdeck_slack.slack_deck.SlackDeck
settings:
api_key: 'redacted'
actions:
- action: online
key: 0
- action: away
key: 1
- action: status
key: 2
text: BRB
emoji: ':stopwatch:'
- key: 7
name: devdeck.controls.clock_control.ClockControl
- key: 1
name: devdeck.controls.timer_control.TimerControl
Heya,
The readme links to https://files.james-ridgway.co.uk/images/streamdeck-yt-thumbnail.png which gives an HTTPS cert error (security certificate expired 99 days ago).
You might want to either renew your cert; alternatively you could consider including the thumbnail in the repo itself.
Cheers!
Great project,
It would be great if there was an option within devdeck to be able to render text and and image on the same key, Such as a name of a button above or below the image.
Thanks
Hi @jamesridgway! First things first, awesome project you got here, really loving it!
I've installed devdeck on a Raspberry Pi 4 and I needed to take a couple of extra steps to get it working. Wanted to share these with you so you can perhaps add them to the wiki so others who try to get it running have fewer issues!
Basically, after running pip install devdeck
, you need to install a couple more things on the Raspberry Pi. The errors that would be displayed when attempting to run devdeck
would be
ImportError: libopenjp2.so.7: cannot open shared object file: No such file or directory
ImportError: libtiff.so.5: cannot open shared object file: No such file or directory
To fix those errors, these need to be installed:
sudo apt install -y libopenjp2-7 libtiff5
I've only tested this on the Raspberry Pi 4 and thus wouldn't be able to say if this works on earlier models or the Pi Zeros but I'd be surprised if it didn't.
Again, great job here, it's really going to pull together my Home Assistant setup! ๐
Whenever I try to start devdeck it clears the display on my Stream Deck and then core dumps:
2021-03-16 19:35:40,240 - devdeck - INFO - Connecting to deck: b'0001:0010:00' (S/N: AL49J2C06472)
2021-03-16 19:35:40,244 - devdeck - INFO - Setting active deck: SinglePageDeckController
2021-03-16 19:35:40,244 - devdeck - INFO - Rendering deck: SinglePageDeckController
realloc(): invalid next size
Aborted (core dumped)
This is running devdeck-1.0.5 on Ubuntu 20.04, using Python 3.8.5, using the default small setting.yml (with just ClockControl on key 0).
First I just want to say I came across this from your YouTube video and it's an awesome project. I was wondering though if it works/could work on Windows. My (limited) understanding of the project is that it should be able to run on Windows, but I haven't yet gotten it working.
I also haven't worked with Python in awhile, so sorry if I'm missing something basic. As it stands after I've downloaded the repo, I've tried running devdeck.py, but I get an error on some of the imports:
PS C:\Repos\devdeck\devdeck> python .\devdeck.py Traceback (most recent call last): File "C:\Repos\devdeck\devdeck\devdeck.py", line 3, in <module> from devdeck.deck_context import DeckContext File "C:\Repos\devdeck\devdeck\devdeck.py", line 3, in <module> from devdeck.deck_context import DeckContext ModuleNotFoundError: No module named 'devdeck.deck_context'; 'devdeck' is not a package
That doesn't seem to be related to running in the Windows environment, but I wanted to post this issue as a broader conversation of whether this does/can work on Windows.
Thanks
Greetings,
I can't seem to find longpress (hold) support. Does it exist? If so, it would be really useful to have the press be a control, but the long press be a deck. Think (keylight on/off on press, open a deck to adjust temperature and brightness for the light on a long press).
It would be very helpful it relative and/or "~" as shortcut for home dir could be supported
e.g.:
icon: '~/.devdeck/icons/youtrack.png'
Hi jamesridgway, nice project! I like your YouTube video introducing the software. Well done.
When trying out the tool, I came across a few glitches that I wanted to share for future improvement.
The following is based on my experience with DevDeck as of 1.0.1:
devdeck
for the first time, I got:FileNotFoundError: [Errno 2] No such file or directory: '/home/pklaus/.devdeck/settings.yml'
After creating ~/.devdeck/
, the second attempt did start the tool, creating the default config.
devdeck.decks.volume_deck.VolumeDeck
control, I ran into the issue: File "/home/pklaus/.pyvenv/py39/lib/python3.9/site-packages/devdeck/decks/volume_deck.py", line 26, in <listcomp>
selected_output = [output for output in sinks if output.description == self.settings['output']]
KeyError: 'output'
So I found out that I need to add a settings section (with the output name to be adjust by the control) like this:
[...]
- key: 1
name: devdeck.decks.volume_deck.VolumeDeck
settings:
output: "WH-1000XM3"
It would be nice if there was some documentation on the config format. At least an example yaml file.
FileNotFoundError: [Errno 2] No such file or directory: '/home/pklaus/.pyvenv/py39/lib/python3.9/site-packages/devdeck/controls/../../assets/font-awesome/volume-up-solid.png'
Seems like the icon file (or rather the entire assets folder) is missing in the PyPI distribution of DevDeck.
Final words:
I really like this software for:
I've created a command to start a gnome-terminal and run my vpn program.
Afterwards I can't use the stream deck anymore and everything freezes :D
Hi,
keep getting StreamDeck.Transport.Transport.TransportError: Could not open HID device.
Tried disconnecting and reconnecting the deck also tried rebooting.
Only other thing i noticed is that the log file keeps saying
2021-09-23 12:22:24,191 - devdeck - WARNING - No settings file detected!
2021-09-23 12:24:43,234 - devdeck - WARNING - No settings file detected!
Not sure how to continue
2021-09-23 12:25:49,510 - devdeck - WARNING - No settings file detected! Traceback (most recent call last): File "/usr/local/bin/devdeck", line 8, in <module> sys.exit(main()) File "/usr/local/lib/python3.9/site-packages/devdeck/main.py", line 48, in main deck.open() File "/usr/local/lib/python3.9/site-packages/StreamDeck/Devices/StreamDeck.py", line 148, in open self.device.open() File "/usr/local/lib/python3.9/site-packages/StreamDeck/Transport/LibUSBHIDAPI.py", line 350, in open self.device_handle = self.hidapi.open_device(self.device_info['path']) File "/usr/local/lib/python3.9/site-packages/StreamDeck/Transport/LibUSBHIDAPI.py", line 181, in open_device raise TransportError("Could not open HID device.") StreamDeck.Transport.Transport.TransportError: Could not open HID device.
Within the Linux community, leaving a lot of app specific .files for config in the $HOME is not current design pattern. The XDG system defines the config location for many os's. In linux, for example, it is .config/{appName}
It would be great if we could support that. I will have a PR to enable this up in the next few minutes.
Christopher
First: Thanks! Great tool! I will use it. I really love the easy configuration using yaml.
Could you maybe implement some kind of auto dim function.
Ideally the stream deck would dim if the screen is locked, too.
"Stream Deck UI" has this feature implemented that way and I really like it. I think it can be very useful.
Heya,
I wonder if it'd make sense to add a 'devdeck' topic tag to all devdeck repos to make them searchable via https://github.com/topics/devdeck . This way you could link existing plugins from https://github.com/jamesridgway/devdeck#plugins for instance?
As a heads-up, too, I have forked https://github.com/jamesridgway/devdeck-key-light into https://github.com/nicdumz/devdeck-hue (support for Philips Hue lights).
Cheers!
Product Id for Stream Deck MK2 is 0080
, so I believe the wiki page should be updated to also include:
SUBSYSTEM=="usb", ATTRS{idVendor}=="0fd9", ATTRS{idProduct}=="0080", MODE:="660", GROUP="plugdev"
Thanks!
That is the result of lsusb:
Bus 003 Device 010: ID 0fd9:0090 Elgato Systems GmbH Stream Deck Mini
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 0
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 64
idVendor 0x0fd9 Elgato Systems GmbH
idProduct 0x0090
bcdDevice 1.10
iManufacturer 1 Elgato Systems
iProduct 2 Stream Deck Mini
iSerial 3 BL41L2B04828
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 0x0029
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xa0
(Bus Powered)
Remote Wakeup
MaxPower 500mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 3 Human Interface Device
bInterfaceSubClass 0
bInterfaceProtocol 0
iInterface 0
HID Device Descriptor:
bLength 9
bDescriptorType 33
bcdHID 1.10
bCountryCode 0 Not supported
bNumDescriptors 1
bDescriptorType 34 Report
wDescriptorLength 217
Report Descriptors:
** UNAVAILABLE **
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 1
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x02 EP 2 OUT
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0400 1x 1024 bytes
bInterval 1
Device Qualifier (for other device speed):
bLength 10
bDescriptorType 6
bcdUSB 2.00
bDeviceClass 0
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 64
bNumConfigurations 1
Device Status: 0x0000
(Bus Powered)
Hey there, first of all: Great Work! ๐
Very intuitive and nice to use!
I've set up CommandControls to start or focus various programs and want to have the button indicate whether a program is already open or not. Either by converting it to grayscale on the fly, or by using two separate images. Thought that might be a feature that could be useful in various applications.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.