I have been pondering how I could automate all sorts of settings and input scenarios on my Mac. Almost all of my use if for power user type document review and email for professional purposes. I don't use it for gaming, but I have long noted that my interests in a computer often coincide with those of gamers and when that happens (high resolution monitors, mechanical customizable keyboards, etc) items are often available fairly inexpensively due to the mass market gamers represent.
With that in mind, I started searching for the ultimate USB input device that I could use with Keyboard Maestro to create a customized computer on steroids.. and this is what I discovered. I suspect the USB inputs would all be recognizable by Keyboard Maestro - it could be used to configure software settings, hardware settings, mouse gestures, and tons more at will. Has anyone else tried this? Or am I nuts?
I do own a Stream Deck and like it very much - especially the ability to set up multiple profiles per application which automatically change the titles on the buttons.
That said, a standard USB key device also has support in KM. I am thinking that some possible advantages of such a device over a Stream Deck are (a) Ability to program a rotary dial for scrolling in a list or to select size such as font size; (b) Ability to detect keypress up/down status and other keystroke gestures (see image from KM - note these do not apply to StreamDeck macros) - thus you could activate a feature such as mute or scroll or enlarge size via a momentary keypress rather than separate keypresses for on/off; (c ) Configuration of binary options with a physical on/off switch is more intuitive/ergonomic than toggling an on/off key.
StreamDeck has one advantage: Icons on the buttons.
It has occurred to me that what I’ll call Universal Triggers could be on a device such as this (or, in my case, on a repurposed numeric keypad).
A Universal Trigger in my parlance is one where the function is the same everywhere. For example, a “bring up a fresh Drafts draft’ trigger might be universal. So might “pop up the Alfre search bar’.
I do note, though, the joystick. That’s different from Stream Deck or numeric keypad. It could be achieved with a trackpad. (I have a spare one of those, too.)
Agreed. Don't get me wrong - I love the Stream Deck. But I think your concept of a "Universal Trigger" is quite valid and I would extend it a bit further by saying if the goal is high productivity, a dedicated physical button is more effective for muscle memory than a multi-purpose button. Steve Jobs was correct when he famously discouraged "modes" in software.
Or as Jobs quoted another designer - https://www.youtube.com/watch?v=XAfTXYa36f4 - making great software requires making your own hardware. I am not sure that I am making "great software" for the public, but I do want to make a great hardware interface for my own day to day workflow. I am pondering if customizing a USB hardware device with a variety of switch/button/dial options would be more effective than the Stream Deck. - at least for the most frequently performed tasks.
Keyboard Maestro’s USB Device Key trigger can only detect buttons, and even then only if the device behaves in a reasonable way such that the buttons go on and off uniquely.
Without actually testing the device, there is no way to know for sure which buttons are detectable and what are not. Usually basic push buttons are, but the switches might be implemented differently, and dialogs and variable input devices like joysticks (except for very basic on-off joysticks) will probably not work with Keyboard Maestro.
Thank you Peter - for your thoughts and for such an amazingly useful software tool that I rely on daily.
I agree that testing the device is the only way to know for sure. In this case, aside from the potential professional uses in my daily workflow, I am an airplane pilot and occasionally use flight simulation software - and I know from reviews that this device works well with most flight simulation software. So I will get one and worst case use it for that. But I am hoping to get it working with KM also - if not directly then maybe with the help of Karabiner and/or Better Touch Tool to convert switch inputs to something KM can understand. I will report back here either way.
With the exception of the joystick, every button is recognized by KM exactly like any other USB keyboard key. Compared to Streamdeck, of course you need to label the keys since the icons do not change; but KM can recognize key "down" or "pressed" or "released" as opposed to simply a keypress as with Stream Deck. Also the different sizes/color/locations of the buttons adds to muscle memory for very frequent workflow tasks.
The rotating dial at the bottom left sends out a keypress with each notch the dial is turned; a different key is activated for up vs down.
The four rocker buttons on the right middle appear to be on/off buttons, but they do not actually act that way; either up or down activates the same key.
There are two half-moon switches on top of the joystick button. The one on the left acts like any other key. The one on the right is not programmable; rather, it is a toggle with alternating blue/red coloring - when set to red it deactivates all of the keys on the device.
Last but not least there is a joystick with 3 axes (push up/down, push left/right, rotate left/right). The joy stick is not natively recognized at KM nor is it recognized by Karabiner Elements. However you can easily use the Joystick Mapper app to map these 6 joystick movements to any 6 keyboard keys, and in turn KM then recognizes those as it would any other key.
Thanks for this. So it sounds like the rotating dial can be used for coarse adjustments. But the joystick can’t be used for fine adjustments - unless BTT is swallowing sequences of key events.