timothycrosley / streamdeck-ui

A Linux compatible UI for the Elgato Stream Deck.
https://timothycrosley.github.io/streamdeck-ui/
MIT License
1.11k stars 239 forks source link

pre-made scripts + automatic plug-in support #249

Open OWKenobi opened 1 year ago

OWKenobi commented 1 year ago

I LOVE this app, it makes me able to use the stream deck in Linux, which is awesome!

Problem I found myself spending hours writing lots of small scripts like reboot the pc, volume up, mute... , which is tedious, and haven't other people already done this dozens of time before?

Solution My solution would be that the app would come with some handy scripts built-in. They are stored in the subdirectory "scripts", and every subdirectory therein makes a new category like "system" or "sound". So the sidebar gets populated just by traversing the script directory. Plus, some special actions like "action button" (the current menu opens up) or my favorite "toggle button" (yet to be released) will be available as well.

As a little bonus, writing plug-ins is a breeze: simply create another subdirectory in "scripts", put your scripts in there, and voila, you have discord support (or whatever you like)

With this addition, the app would be much more user friendly for every beginner. As a bonus, the script files could have code that checks for distro and automatically starts the right command for the right distro, which makes it even friendlier to the beginner. StreamDeckConcept

Data-007 commented 1 year ago

This would be really good. Ive been waiting on #208 since it was purposed, in fact I had been wondering if this project(streamdeck-ui) was dead in the water, I had been and am trying to track down replacement Linux software. @OWKenobi let us know how you get on, keeps in loop plz.

Expected : Or hopped that this will eventually be incorporated into Streamdeck-UI

Sadly this is missing at this stage, Willing to help test this out.

OWKenobi commented 1 year ago

Hello Data,

yes, I have read this discussion as well. All this could be implemented under the "Action Button" see above. What I'd like to see is a focus on really easy scripts. Most users want a volume button, I think like 90% want this with one or two clicks and they are happy. Also, the plug-in community could thrive with this (not everybody likes Discord, but I do, so I just activate the plugin). The use cases that are in code right now (brightness, keyboard shortcut, command line) could easily be separated into separate button types with this menu.

The only "shared code" would be the label and the icon, since, obviously, also the macro ones need an icon and a label. For convenience, a default icon and label could come bundled with the scripts <3, like when the script is called "volumeup.sh", then the app would look for an icon called "volumeup.png" and a textfile called "volumeup.txt" for the label in the same folder --> nearly no coding effort required ;-)

Data-007 commented 1 year ago

The only "shared code" would be the label and the icon, since, obviously, also the macro ones need an icon and a label. For convenience, a default icon and label could come bundled with the scripts <3, like when the script is called "volumeup.sh", then the app would look for an icon called "volumeup.png" and a textfile called "volumeup.txt" for the label in the same folder --> nearly no coding effort required ;-)

Hi I just make the Key with ^ arrow and mapped it to Media_volume_up. But I like the idea off your proposal. @OWKenobi Any idea where to find some scripts? Are you proposing only or designing also? Data

OWKenobi commented 1 year ago

Hello Data,

at the moment, I write my scripts myself. The volume up was just an example. For me on Linux Mint, the volume up media key sometimes volumes up the headphones when sound comes out of the speakers (weird bug). So I wrote a script that simply volumes up all the outputs. It took me some research to do so, so a pre-made script would have saved me the day ;-)

As these scripts as part of the app would be on github as well, we could together finetune them to run on as many machines as possible. But the biggest advantage for me would be to be able to download script packs that simply unzip in the script directory, since development of big apps can naturally be slow, and this is a great way to add new functionality without having to wait for an update.

IanTrudel commented 1 year ago

It would be awesome! I was surprised to see Elgato Plugins, none of which would run on Linux though. We should have a hub for hosting such plugins on Linux.

PS: I like the idea of a toggle button. Perhaps the plugins could also be able to display real-time information.

OWKenobi commented 1 year ago

Hello Ian,

yes, the default scripts would not run. But some are easy to implement in Linux. Most of the time the script has to switch to an application window using window title or window class, and then send a shortcut to it. I believe the first plug in packs would be around soon.

for toggle buttons: there is already a working implementation (different thread in this forum) that makes scripts able to return an image path, which then changes the button image. This is much more powerful than toggle buttons, since the scripts could make the buttons only toggle on success, or make the buttons have 4 states, for example. I use it on my stream deck for toggle mute.

IanTrudel commented 1 year ago

for toggle buttons: there is already a working implementation (different thread in this forum) that makes scripts able to return an image path, which then changes the button image. This is much more powerful than toggle buttons, since the scripts could make the buttons only toggle on success, or make the buttons have 4 states, for example. I use it on my stream deck for toggle mute.

Do you mean a the current git version of Streamdeck UI or something? I installed it via a package manager...

dodgyrabbit commented 1 year ago

I have a working version of https://github.com/timothycrosley/streamdeck-ui/issues/208 but there are a couple of things I'd like to still work out. In fact, I have been using it daily for a few months. Unfortunately I just haven't had the time to get it to the standard we need for general release.

The second part to this new design is to make it so you can easily add additional plugins. Having said that, I'll probably include a lot of common things as standard.

image

Data-007 commented 1 year ago

I have a working version of #208

I know you have it in beta as it where some off us would give eye teeth to play with it even in its raw state. Here's hopping you will have mercy on us and resolve the issues. Can we help in anyway? Pretty pls

Asthonishia commented 1 year ago

We can imagine having all the XF86 keyboard symbols preconfigured. Personnaly this is the shortcuts i use for mic on/off, sound up/down etc.

Concerning the UX, personnaly i prefer the official app design with the drag/drop action on right menu and a config page below the deck representation. Don't need to reinvent the wheel, their UX is simple and very effective

Exemple

coolapso commented 1 year ago

hi, this project seems to be stale and a new fork as been made with the intention of replacing this one.

if this still an issue please reopen it at: https://github.com/streamdeck-linux-gui/streamdeck-linux-gui