bitfocus / companion

Bitfocus Companion enables the reasonably priced Elgato Stream Deck and other controllers to be a professional shotbox surface for an increasing amount of different presentation switchers, video playback software and broadcast equipment.
http://bitfocus.io/companion
Other
1.61k stars 503 forks source link

Ability to add global hotkeys #1505

Open silid opened 3 years ago

silid commented 3 years ago

Describe the feature Have companion register global shortcuts for certain actions.

Usecases Will allow use of regular programmable keyboards of the POS style or num key pads to be used with companion actions.

Proposal I propose adding a new input device that would always be present (like the emulator) and the config would allow you to register keyboard shortcuts to companion buttons.

Eg. Ctrl+F12 => 1.1

I am happy to begin looking at this if it seems a reasonable approach.

josephdadams commented 3 years ago

I think this could be problematic to support across multiple operating systems. Also, many people run Companion on one computer but access the GUI from another. So it would only work when sitting at the computer that Companion is running on.

A couple of ideas:

silid commented 3 years ago

Electron already supports global hotkeys cross-platform so I don't think It would be a problem, and as you point out, the emulator page is required to be in focus which defeats the purpose.

I did consider a separate program that goes with the keyboard - but I notice that xkeys are being integrated directly so I thought I'd follow suit.

Julusian commented 3 years ago

I am also thinking that this might be better to have as a separate program. I can see the value in having it integrated, but it will add quite a bit of complexity to add the ui to configure it. I also expect that quite a few people will want to be able to use it from another machine, and having it in the ui could be confusing as some users will expect it to work from other machines.

Also, I am hoping to split companion into the electron launcher and a node process, because electron gives unending issues with some dependencies. That would make this a bit messier to do directly in companion, but not impossible.

Maybe this should be done in https://github.com/julusian/companion-remote ? I have been thinking about looking to transfer that to the bitfocus org, and to link to it from inside companion. Keeping it to a single tool could be beneficial for usability

silid commented 3 years ago

@Julusian Good idea re: companion remote - I'll take a look.

McHauge commented 3 years ago

Maybe this should be done in https://github.com/julusian/companion-remote ? I have been thinking about looking to transfer that to the bitfocus org, and to link to it from inside companion. Keeping it to a single tool could be beneficial for usability

It would be nice to have it "easy to find" by having a link to a page for the remote. And then have it on its own that way. It's just simpler to link to and find that way. maybe even as a product on the webpage alongside companion itself for simplicity when referencing.

Johnnyreyman commented 3 years ago

Perhaps implement https://github.com/Enerccio/companion-modules-os-keyboard as a module?

BillNeeTheScienceBee commented 1 year ago

I know I'm a little late but any news on this? Or even if there's a way for me to whack it in myself like, I don't mind. I want to be able to activate a bind quickly as sometimes I can get sudden coughing fits and need to mute. Being able to hit a button on my main, gaming keyboard to mute my microphone quickly is essential.