Let me present you a proof of the following concept: free (as in freedom) solution analogue to commercially available “elgato stream deck” (https://www.elgato.com/en/gaming/stream-deck).
The components:
- Hardware:
i. LCD combined with a touchscreen designed for Raspberry Pi, resolution: 1024 x 600 pixels.
ii. Acrylic frame with nice brackets. - Software:
i. Autohotkey.
ii. Script called OTAGLE as anagram to “elgato” (etymology: “a cat” in Spanish). https://github.com/mslonik/Autohotkey-scripts/tree/master/Otagle.
About the hardware:
- made in China; exact link of auction: https://www.aliexpress.com/item/32639615250.html?spm=a2g0s.9042311.0.0.1ec64c4dsXKo0Z
- 7 ‘’, 1024 x 600 pixels,
- cost of hardware, including shipping to Europe: € 42,37 (November 2019),
- time of delivery (China to Central Europe): ~2-3 weeks.
- cables included; cables:
- LCD: 1x HDMI cable (the device end: full size HDMI, second end: full size HDMI),
- touchscreen: 1x USB cable (the device end: micro-B USB, second end: full size USB type A).
About the software
- Disclaimer: this is just a proof of concept. It is written by a newbie just to illustrate a power of concept. The autohotkey key is not optimized, full of naive hacks.
- One of the main of hotkey or shortcut drawback is that you need to memorize them somehow. For many people this is high / hard hurdle which discourage / daunt them.
- User input is tripled; input alternatives:
- pressing keys of “numeric pad” (numpad) of full size keyboard,
- mouse and clicking on “button areas” of OTAGLE device,
- touch of touchscreen “button areas” of OTAGLE.
- There was prepared a dedicated graphical user interface which resembles:
- “elgato stream deck” keys area,
- numeric keypad.
- The touch screen is divided into “keys area” - 17 + 1 in total, as in “classic” full keyboard numeric pad. One may divide available surface of screen into as wished. I divided it for sake of example into 18 parts.
- Area of each “key” is divided in: picture and key name.
- Pictures have been prepared as .svg files and converted into .png files. (Temporary solution!). There are some icon examples included.
- Each key can be easily linked to any autohotkey script what makes the whole solution quite flexible and scalable.
- Multilayer organization: one screen calls another; they are oriented in “chains”.
More detailed description of software
Main screen
Top left button: Numlock toggle.
If ON - acts as ordinary active numlock, what can be valuable on some laptop / notebook keyboard layouts lacking by default of numeric pad.
If OFF - acts as OTAGLE enhanced functionality.
The next 3x keys are used to call (run or switch to) example applications: KeePass, Total Commander and Microsoft Word.
The bottom of a screen acts as auxiliary / informative area. In this example is occupied by some info. Upon clicking redirects to my web page.
The few next screens are used to illustrate flexibility of Autohotkey when used to facilitate working in Microsoft Word. As some know Autohotkey is able to call COM (Component Object Model). Thanks to that VBA (Visual Basic for Applications) and Autohotkey are interchangable. Another words: one can write scripts in Autohotkey which resemble Microsoft Word macros.
Microsoft Word collects some of the most desirable functions into meta-containter called template files. The template files can be seen a a set of the following functions:
- Styles: sets of formatting features applicable for fonts / paragraphs / tables or lists.
- Building blocks: sets of reusable, user-defined content.
- VBA macros.
Access to above features of Microsoft Word by default GUI is possible, but cumbersome. Especially access to building blocks is kind of nightmare if one wishes to use only mouse. To aid in this task OTAGLE uses some dedicated buttons visible after choosing of Word icon
The buttons and color codes:
Code: Select all
+========+===========================================================+=========================================================+
| Color | Functionality | Comment |
+========+===========================================================+=========================================================+
| Beige | Inbuilt functions of Microsoft Word | Just few of them were prepared. |
| | (available without attaching a template file to document) | |
+--------+-----------------------------------------------------------+---------------------------------------------------------+
| Yellow | Styles | Just few of them were prepared to illustrate a concept. |
| | (available after attaching a template file to document) | |
+--------+-----------------------------------------------------------+---------------------------------------------------------+
| Red | Building blocks | Just few of them were prepared to illustrate a concept. |
| | (available after attaching a template file to document) | |
+--------+-----------------------------------------------------------+---------------------------------------------------------+
| Macros | VBA macros | Just few of them were prepared to illustrate a concept. |
| | (available after attaching a template file to document) | |
+--------+-----------------------------------------------------------+---------------------------------------------------------+
One may conveniently attach an example template to current document just by pressing beige button “Attach a template to his document”. Then use of buttons entitled “Styles”, “Building Blocks” and “Macros” start to make sense.
Example screen available upon pressing of “Building Blocks” button:
And so on and so on...
Comparison of “elgato stream deck” and OTAGLE.
Code: Select all
+=================================+=============================================+===============================================+===============================================+
| Feature | “elgato stream deck” | OTAGLE | Comment |
+=================================+=============================================+===============================================+===============================================+
| Principle of concept | hidden touch screen with rubberized overlay | apparent touch screen | More about hiding of touch screen: |
| | | | https://youtu.be/9apO--Qpz58 |
+---------------------------------+---------------------------------------------+-----------------------------------------------+-----------------------------------------------+
| Interface / cables | 1x USB 2.0 | 1x HDMI * | Read more excessive comment below this table. |
| | | + | |
| | | 1x USB (1.0?) * | |
+---------------------------------+---------------------------------------------+-----------------------------------------------+-----------------------------------------------+
| Amount of customizable buttons | 15 ** | Unlimited? | In case of OTAGLE one can divide |
| | | Read more excessive comment below this table. | |
| | | | a screen into any number of buttons |
| | | | of variable shape. |
+---------------------------------+---------------------------------------------+-----------------------------------------------+-----------------------------------------------+
| License of software: | Proprietary (?) | GPL v. 3 | |
+---------------------------------+---------------------------------------------+-----------------------------------------------+-----------------------------------------------+
| Availability of software | free | free | |
+---------------------------------+---------------------------------------------+-----------------------------------------------+-----------------------------------------------+
| Price | $128.99 ** | $46.14 | Read more excessive comment below this table. |
| | (source: amazon.com, Nov. 2019) | (source: aliexpress.com, Nov. 2019) | |
+---------------------------------+---------------------------------------------+-----------------------------------------------+-----------------------------------------------+
| Scaleability | No | Yes | It’s enough to buy a bigger touchscreen. |
+---------------------------------+---------------------------------------------+-----------------------------------------------+-----------------------------------------------+
- Dedicated adapter I:
input: 1x HDMI, 1x USB
output: 1x USB-C
advantage: only one port
disadvantage: one precious port (HDMI) exchanged to maybe even more precious USB-C port; additional cost of adapter (few $)
tested?: yes, it works. - Dedicated adapter II:
input: 1x HDMI
output: 1x USB 3.0
advantage: occupied 2x USB ports: 1x 3.0 for graphics, 1x 1.0 or 2.0 or 3.0 for touch
disadvantage: occupied 2x USB ports: 1x 3.0 for graphics, 1x 1.0 or 2.0 or 3.0 for touch
tested?: not yet… estimated time of test: week 46 (I’ve already ordered such an adapter)
Code: Select all
+=====================+================================+===============================+============+
| Elgato version name | Amount of customizable buttons | Approximate price | Source |
| | | (valid for 9th November 2019) | |
+=====================+================================+===============================+============+
| Stream deck mini | 6 | $79.50 | amazon.com |
+---------------------+--------------------------------+-------------------------------+------------+
| Stream deck | 15 | $128.99 | amazon.com |
+---------------------+--------------------------------+-------------------------------+------------+
| Stream deck XL | 32 | ~ $286 | ebay.com |
+---------------------+--------------------------------+-------------------------------+------------+
WHY I decided to prepare this tool
My great adventure with Autohotkey started this year (2019) after watching of youtube film by TaranVH: https://youtu.be/GZEoss4XIgc. I realized that:
- I need to change my working habits NOW.
- Live get be easier and more enjoyable.
- Autohotkey exists from so many years… unnoticed by my poor being.
- I’m 43, so this is a right moment to learn script language.
This perfect solution doesn’t exist yet, but some attempts have been existed or are planned. Among them I mention here the famous Maximus Optimus keyboard and… “elgato stream deck”, which can be used as “variable content” input device.
I’ve found “elgato stream deck” unacceptable expensive, complicated, closed and quickly realized that with help of Autohotkey and autohotkey community I can prepare something cheaper and more flexible. And here we are.
Call for help
I have so little time that even preparation of this simple / buggy script took me a while… (more than 3 months actually). I’d really appreciate if somebody joins me. If not, I’ll continue my efforts solo, with slow pace.
To do:
- Software:
- Support for .svg files; I have installed in my system Qt-based app making possible display of .svg pictures in File Explorer; I wonder if this concept can’t be used somehow with AHK, e.g. .dll calls… to be explored.
- Configuration file (e.g. turn on / off sounds)
- Menu
- ...
- Hardware:
- Voice speaker attached under / beside a touch screen.
- Small electric under a screen like in a phone to mimic tactility.
- Flexible brackets under a frame.
Acknowledgements
- Taran van Hemert (https://youtu.be/GZEoss4XIgc) for inspiring me.
- Autohotkey community, especially members of this forum for patience to my sometimes embarrassing questions.
mslonik