A year with the Elgato Stream Deck
sixcolors.com
sixcolors.com
Allows me to not be the DJ/arbiter of music for my toddlers, yet still provides them with control over the music (Sonos) and helps them learn to negotiate & take turns between themselves. The Stream Deck has, thus far, held up to quite a lot of abuse. I've added some lighting control and they have play/pause/next control, too -- works great. The USB 'server' software is fantastic, too. =D
I also use the media controls for Spotify.
This particular board has extra buttons you can use for, say, muting Zoom.
As an aside, volume on Windows is a horrible mess. You can have an external speaker volume, a system Master volume, an app-specific volume (the last 2 through the Windows Volume Mixer) and then volume settings inside a game.
One thing I appreciate about iOS for example is there's just one volume for what you're doing. There are separate volumes (eg ringer, speaker, music) but you only ever adjust one and it's context-dependent. Listening to music? You adjust music volume. On a call? You're adjusting call volume. Not on a call? You're adjusting ringer volume.
In an ideal world, the hardware volume could be synced to the system master volume and there would be no game or app specific volumes. All of these would be deffered to the volume mixer. Or at least any in-game or in-app controls would merely adjust that volume.
I can but dream.
The only thing this particular board doesn't have is motorized sliders for volume. I didn't really find any options for this less than $300-500 and they tended to be much bigger boards. I'd really prefer a slider to a knob but that's just nit-picking.
You never have 2 applications outputting audio and you want to balance them? Sometimes I'll be playing a game and listening to a podcast at the same time, and I want the podcast to have the louder audio, so I turn the game down.
On my Mac I use for work, sometimes I'll be in a Teams meeting where I only need to be partially paying attention, and I'd like to be able to turn the Teams volume down and have something else at the forefront, but I can't do it because there's no volume mixer.
Windows already does this. There's a volume mixer where each app has its own volume. That's still the case AND the game/app has a separate volume.
So the actual volume playing is effectively:
Hardware volume x Windows master volume x Windows app volume x In-app volume
No one wants or needs that level of control. You end up adjusting these separately as you need until you find out one day the hardware volume is on max but the master volume is near zero and you've been compensating for that by maxing out the in-app volume.
Hardware × software master × in-app,
maybe condensed with "flat volume", so that raising the in-app volume also raises master if necessary, while leaving other sounds at the same effective level.
The only difference I see compared to what you call iOS is that that one throws all "video" together in one giant pile. Thus youtube, netflix, spotify etc. all get the same default volume. That is really annoying me with android and I want that off!
> Hardware volume x Windows master volume x Windows app volume x In-app volume
> No one wants or needs that level of control.
I don't have a separate hardware volume relative to the Windows master volume, but otherwise I want and need that level of control.
- Windows Master Volume: I turn the knob on my headset or keyboard and things get quieter or louder. This is the thing I adjust most frequently.
- Windows App Volume: I turn games down, usually to 10-20% or so. Then I turn everything but comms (discord, zoom, etc) down to 80%. This ensures that I hear live communication over all else, and that my games aren't drowning out whatever I'm watching in the background.
- In-App Volume: Here I adjust balance in games. Music unfortunately gets set to 0 because I'm rarely just playing a game these days. Voice lines get set higher than sound effects until I'm sure I can distinguish them clearly.
Your example of a good implementation is iOS which is hard to compare to because mobile OSes are generally single-task focused. But I certainly wouldn't want an iOS-style volume control on my PC.
Have you tried Rogue Amoeba’s Loopback?
I'm primarily using it with OBS but also use it with Zoom and a few other applications.
The only hitch is that the Launchpad doesn't send NoteOff messages, it sends NoteOn twice with the second time being volume 0.
For apps that don't support MIDI input, there's a tool called Midikey2key which lets you map MIDI messages to keyboard inputs/shortcuts.
Got it, thanks for answering this.
Navigation system pipes up; that’s a little more quiet than I’d like; by the time I can adjust it safely, it’s only time to adjust the ringer; repeat.
This already works if you're using something that can be controlled via the windows volume. Eg, a USB dac+amp usually works like this. That is, the "hardware volume" and "windows master volume" become one synchronized slider.
Very often there's a break in the digital chain that prevents this from working more broadly, though (for example if you're outputing analog to your speakers, or using separate dac & amp)
Yet about 18 months ago, I remembered I'd got these 5 custom buttons on my keyboard that in something like a decade and a half of using this keyboard model, I'd never once used.
A little bit of searching later, I figured out how to write a bash script that would (for Linux) find the zoom window for whatever meeting or webinar I was in, and bring that up. Then a second script to do the same but also unmute. That has become so insanely useful I'm really kicking myself about not having used those buttons before.
If I was still on mac, I'd probably try and use hammerspoon somehow. I used that for a few bits of automation, and I know it had ways to choose applications.
#!/bin/sh
ZOOM=$(xdotool search --limit 1 --name "Zoom Meeting")
ZOOM_WEBINAR=$(xdotool search --limit 1 --name "Zoom Webinar")
if [ -z "${ZOOM}" ]; then
xdotool windowactivate --sync "${ZOOM_WEBINAR}"
elif [ -z "${ZOOM_WEBINAR}" ]; then
xdotool windowactivate --sync "${ZOOM}"
fi
sleep 0.1
xdotool key --clearmodifiers "alt+a"I've figured out that I just don't have the hand-eye coordination to move in four directions, activate the scope, zoom the scope, lean left and right, aim the gun and fire it during the exact right milliseconds.
So I unloaded the "lean left and right" actions from my right hand to my feet, using a set of rudder pedals intended for a flight simulator. I then unloaded some of the esoteric menu options from keyboard shortcuts to a Stream Deck with user-friendly (works even for six-year olds) picture interface right in front of me. Improved my performance considerably.
an idea I had last week seeing this article is to buy a USB 10-key numpad from a pawn shop, and use something like kmonad[0] to map key presses from that device to specific actions.
Reuse some existing tech, and you can just tape over buttons. It's not exactly the same product for obvious reasons, but I feel like you can do some magic with statusbars and toasts in scripts to get something decent.
I now have a steam deck xl, and it's light years better. Obviously 20x the cost, but well worth it in my opinion.
Streamdeck goes occasionally on sale, so it's more like $100 for the small deck if you can wait.
> an idea I had last week seeing this article is to buy a USB 10-key numpad from a pawn shop, and use something like kmonad[0] to map key presses from that device to specific actions.
One can also use just any old normal keyboard. For a while I used a small 60% with self written python-script to rebind keys to my own demand. But the benefit of the streamdecks lcd-displays was in the end to tempting.
Anyway, I think any OS is capable of rebinding a complete device. So it's really just a matter of desk-estate and ergonomic which device one prefers.
useful to have as a clock/date for a few locations at a glance. opens up some apps too but the main thing I use it for is having a few reference docs that you can open up with a button. window layout buttons are nice too. the other thing I use it for is setting brighness on the screen and locking the screen. Not sure I'd buy one but they are neat to have if you get one as a gift.
The other handy one is the mac email notification button, showing how many new emails I have.
I think they are way too expensive for what they are but now I have one, I would probably spend the money again if it got stolen.
Eveyr command was basically on the tablet, and in the center was the screen area...
There was a printed menu-matrix configured for autocad...
It made drawing so fast (I finished second in the National CAD Olympics in ~1993 and finished a 3 hour test in in 30 minutes.)
For years this device made me extremely fast on CAD.
The muscle memory for the location of certain items, coupled with the custom keyboard shortcuts for all other autocad commands could be done with being mostly mapped to keys close to the left hand placement...
I miss those tablets. I should get another one.
The point is that if you can know what core functions you want on the extra input real-estate... you can make your workflow very streamlined.
You need to rely on the open source reverse-engineered version of Elgato StreamDeck in Python [1], with the StreamDeck UI on top [2][3]. It works, but it doesn't offer all the functionality, and it's even more rough on the edges.
Plus, if you have a StreamDeck connected to a KVM and it is switching between two computers (a Mac and Linux, in my case), then you'll have completely different experiences, with different icons, plugins that are not available on Linux (e.g., Spotify, Clock).
I still use it and find it worth the investment, but hoping that Elgato dedicates some love to Linux users in the future.
[1] https://python-elgato-streamdeck.readthedocs.io/en/stable/#
It works on any device including my iPads, and although I'm only using it for keypresses, there are plenty of modules for doing MIDI and other HID shenanigans that I haven't investigated yet.
Could I do these things with other tech? Sure, but this was pretty affordable, is really attractive and customizable, and has software that works really well out of the box. Hard to beat for someone lazy like me. :D
https://www.tindie.com/products/dekuNukem/duckypad-do-it-all...
People are able to identify icons quicker and better than they are the right key to press to get a certain action, in the case of the duckyPad.
Plus, the Stream Deck allows you to create folders, so you can technically get very complicated workflows on the S/D versus the duckyPad.
Just a thought.
So devices with screen displays for shortcuts like the Stream Deck, the Xencelabs Quick Keys, or the many DIY programmable solutions are pretty indispensable because they let you trial and error ideas, and give you a context hint while also keeping the keys located in the same place - they let you ramp up to a traditional macro experience as you start getting pages of stuff you want to trigger. And this goes even more so if they are able to respond to desktop generated events and present the right context automatically.
A nice cheap alternative to the dedicated hardware is the various tools that are smartphone-based: if you're going to look away from the screen to browse, and you want to trial ideas for shortcuts, then tactility isn't so important and the rest is a matter of getting a good software experience.
https://www.etsy.com/listing/825756246/digital-audio-volume-...
I use it mostly as an app switcher (button press brings up an app, another press hides it if it's in the foreground), with additional buttons for volume control and speaker mute. It's incredibly powerful with Keyboard Maestro. An example of a really useful automation I have: a "mute microphone" button that does the right thing in Google Meet, Zoom and GoToMeeting. No need to remember the fancy shortcut that each app invented, no need to hunt for the button with the mouse, no more hitting the "Leave" button instead of muting/unmuting. A single hardware button that toggles the microphone state in any conferencing app that is in the foreground. That alone was worth the price of the StreamDeck.
What I found though is that the XL is too large: I don't use that many buttons and I can't be bothered to tinker with the configuration endlessly to make use of them. I think I will replace it with the standard-sized StreamDeck (15 buttons).
This gives me 8x8 + 16 buttons that I monitor via a Java app that I wrote. It works but I'd love to have a UI app for controlling it and assigning actions, similar to https://www.midi-mixer.com but for macOS - I'm too lazy to write a UI on top of my Java hack. Any recommendations for something that can consume generic MIDI events and map them to.. stuff?
For example, in VS code, I currently have F13 for start debugging and resume. F14 for stepping over, and F15 for stepping into.
I would wish to have a physical F key with a configurable character or emoji. The problem with the Touch Bar was mostly: 1) no physical feedback 2) misplacing the Esc key.
There's also a Windows laptop out there with the equivalent of a touch bar, but much bigger and iirc it tilts up when the laptop is opened up. More usable screen real estate there.
I know I will miss it a lot when (it seems inevitable now) I have to change for a non-touch bar MacBook Pro . I would not miss the standard Touch Bar
I use a program called BetterTouchTool on mine, and it turned it from an annoyance into the best streaming deck you can imagine.
Mine consists of shortcuts to webpages, a scroll able section for all my note files, media controls, one touch setting toogles, etc.
Killer feature is using 2 fingers and sliding changes the volume. 3 for screen brightness, 4 for keyboard backlight.
It's genuinely sad how little apple cared about the software for it. It could have been exactly what everyone else in this thread are saying and better.
I got Stream Deck primarily to show status and control Teams online meetings on Windows. Unfortunately, on Windows, Teams does not have global hotkeys for mute/unmute mic, audio on/off, video on/off etc. The keys are local to the online meeting window only. It also does not have reliable way to get mic/audio/video current status for showing.
Some hacks exist using AutoHotKey to loop through all the windows and send the keypresses, but they require megabytes of scripts to work, because Teams does not have a reliable way to find that window.
Other ways exist to directly control the global operating system mute, but Teams does some hacks with the mute, so that showing the mute status does not work.
There is Microsoft Graph API for Teams API, but I could not get that work with Windows SSO for authentication, so I needed to build a login workflow, and became too complex very soon.
I am pretty sure there should be a way to accomplish this, as teleconferencing devices are able to accomplish this with Teams. I wish Elgato would work with Microsoft to provide this functionality.
If I'm understanding your need correctly, you can do this with Microsoft Powertoys: https://docs.microsoft.com/en-us/windows/powertoys/video-con...
It appears to use the Windows global mic control API, which is pretty straight-forward to even implement by yourself programmatically.
Unfortunately, as Teams does some magic with the mute, if you have an external program, but still use Teams app to mute your conference call after call has already started, the state will not propagate to the external program, i.e. you cannot reliably show on the button whether the mic is muted or not.
I also like it as a way to quickly open saved PDF datasheets on my system for the ones I use all the time.
I also have a mute the microphone button, and a simple "NVIDIA capture the last 2 minutes of my screen" button..
Works perfectly for what I wanted, a temp/fan monitor with a couple extra buttons.
Having the ability to mute/unmute in meetings via a hardware button is awesome.
If you want to load up a layout / config itself, it's a pretty simple zip file with json files and PNGs. (With some idiosyncrasies like requiring directory entries - that's 4 hours of debugging I'm never getting back)
A standard numpad comes with 17 keys (including the num lock key) to remap to whatever you want and you can combo them with shift + ctrl + alt.
It’s also not just “custom icons”, it’s a live display — e.g. in the top image of the linked post, you can see a display on one of the buttons showing (presumably) an upcoming calendar event.
You can do this with custom key mappings on all major operating systems. Basically you can open a program, open a folder, run a script or do anything you can run from the command line (including running multi-step operations).
On Windows there's AutoHotkey. It sounds like it might be complicated but it's not. For example this single line of code `#+w::Run chrome.exe -incognito` lets me press Win + shift + w to open an incognito Chrome window and `#n::Run, explorer.exe \\wsl$\Ubuntu-20.04\home\nick\src\sites\nickjanetakis` opens my personal blog's directory inside of an Explorer window (default folder viewing app) with Win + n. I wrote a blog post[0] about using the basics of AutoHotkey and there's similar tools for Linux and macOS at least in the sense of being able to assign any action to a hotkey.
[0]: https://nickjanetakis.com/blog/remap-and-set-global-hotkeys-...
If so you can do that with numpad re-mappings too. You could have 17 specific key mappings depending on which app is in focus or you can arbitrarily activate a different specific set of mappings.
It's not going to be as intuitive since there's no visual icon to display but the functionality is there. AutoHotKey could also make it easy to show which "folder" is active by showing a little tooltip when you switch folders.
It sounds like the real appeal to it is the visual icons but the trade off is needing more desk space and reaching for buttons that are not on your main keyboard (+$125 to buy it).
This has been my experience w/ fully programmable mechanical keyboards. 104 keys, 70 keys, 60%, split, columnar, macros, layers, switches, keycaps.
So much variation that it is effectively endless. At some point you settle and don't touch it because you realize you're spending more time optimizing the tool than actually performing the task it is supposed to help you complete.
Second, the profile switching is hit or miss with Electron (or adjacent) applications, which I don't fault Corsair for. Looking at you, Discord and Slack, which I would love to set a contextual app profile for.
I bought an all-in-one PC with a touchscreen in part to experiment with using it in a similar fashion, but haven't made much progress yet.
- https://www.elgato.com/en/stream-deck-mobile
There are also a number of free alternatives: - https://macrodeck.org/
- https://ecrax.github.io/streamdeck/
- https://deckboard.app/
- https://lioranboard.ca/
- https://matricapp.com/I also have the top row filled with world clocks.
https://gist.github.com/codyogden/a8d4d024cdd403e56e2c84335a...
the main one all over google search results only works on windows
Loopback is paid software but it'd seem they have this precise scenario described on their website: https://rogueamoeba.com/support/knowledgebase/?showArticle=M...
[1]: https://marketplace.visualstudio.com/items?itemName=nicollas...
With the touchbar I really missed having the fixed set of tactile keys for sound/media control, screen brightness.
I also found I was fat fingering the Touch Bar to much due to my clumsy typing and naturally resting hands on the function keys.
I ended up disabling the Touch Bar only keeping sound and brightness icons.
The biggest disadvantage to the Touch Bar was ergonomics, loosing frequently used tactile keys, the position, needing to look down to see what you are pressing and the ease of fat fingering keys by mistake.
The concept is good but the implementation didn’t work on a laptop. The stream deck looks to be a bit more ergonomic, you can position it somewhere convenient, the keys are on an angle so easier to see, I imagine the big tactile buttons also work well.
Disliking the Touch Bar I’d also highly likely by an Apple external touchbar with tactile keys if it was sized similarly to an external number pad I could tilt up on an angle.
Are you saying you want even more than that?
Though I'd like a full ~100 key keyboard also. ;-)
That feels a little disingenuous. People would have happily ignored the Touch Bar if it didn't remove the physical F row and escape key.
Apple turned it into a contest between an F row with physical keys, key travel, and feel and a touch-screen based key pad that required you to look away from the primary output device to even use. Then had it default to the positions of the dynamic buttons moving around as you switch applications (which is a UX fail).
Essentially Apple's own design trade-offs killed Touch Bar. There was nothing reflexive about it, people hated losing something they were actively using and getting something worse in exchange.
- Later editions of the Touch Bar brought back the physical escape key.
- I'm typing this on a MacBook Air right now, and while I always thought "why didn't you put the touch bar over the function row keys," the answer is clearly that there's just not enough space on a 13" or 14" laptop unless you want to shrink the trackpad, which you don't.
- My biggest complaint with the touch bar -- accidental inputs -- would probably have been solved with the return of the scissor switch keyboards they have now rather than the flat "butterfly" switches.
- Most Mac programs don't make much use of function keys; most of us are probably only using the keys for media control. Even after all this time I do tend to glance at the keyboard to use one, particularly on a laptop, so the advantage of muscle memory is (at least for folks like me) lessened. I'm sure there are people for whom this isn't true, but I'm a touch typist who can hit 100+ wpm and still don't feel I can rely on knowing just where function keys are in relation to standard keyboard keys. It's not consistent between keyboards: look at the current Mac laptop keyboard, an external Magic keyboard, and a third-party mechanical keyboard, and there's a good chance you'll see three different arrangements.
- At least in principle, with the Touch Bar more Mac programs could have taken advantage of it in similar ways to the Stream Deck.
The biggest problem with the Touch Bar might just have been that Apple themselves never seemed to fully commit to it. It never showed up on external keyboards, so almost nobody using their computer at a desk could use it even if they wanted to; the majority of keyboards it shipped with used the, let's say, controversial butterfly keyswitches, so it got bound up with that in public perception, and when Apple started backing away from that design they started backing away from the Touch Bar as well; and, they never did much with the API after it initially shipped.
It could have been okay if they went for haptic feedback, but I'm glad they're phasing it out.
I think we will see an Apple laptop with OLED keys someday, maybe just the top row, not soon but perhaps before the decade is out.