cross-posted from: https://programming.dev/post/6180665
I’ve been looking into putting together a home office setup for remote development and stumbled upon this nice home automation project by David Zhang, where they use a Raspberry Pi with a customized num pad to control almost every day-to-day arrangement of their office, from desk hight, KVM input/output switching, lighting, all the way to tiling window management. Looks like they’ve also published the combination of Auto Hotkey, Home Assistant and ESPHome scripts in order to work, including links to dependencies:
- https://github.com/davidz-yt/desk-controller
- https://github.com/jfedor2/hid-remapper
- https://github.com/phord/Jarvis
Anyway, I’m looking forward to scripting a similar setup once I’ve gathered the general equipment, and figured other programmers might similarly appreciate the ergonomics in such an automated workflow.
P.S. Any suggestions for a developer picking items for a new remote office from scratch would also be appreciated. E.g. office equipment recommendations like desk, chair, screen mounts, AV accessories.
We do loads of this kinda thing in live events. The medium gigs & up are basically just networking computers and kit, and controlling/monitoring them all through 1 system.
The most popular setup is Bitfocus Companion along with an elgato streamdeck.
But I’ve seen other systems like Universe Control, PB Widget Designer, Touchdesigner, Node-Red…I have something similar to this, but I initially used an old android tablet running Macro Deck, an open source application that basically replies a stream deck. It has a good ecosystem of plugins for stuff like home assistant, and it was easy to add command line stuff to talk to custom electronics.
The upgrade path is good too. I ultimately switched it out for custom hardware, but it just sends keyboard shortcuts to trigger macro deck.
Ah, I’ve got a old android phone that could be perfect for this. Thanks for the heads up about Macro Deck!
By the way, does Macro Deck utilize multi touch support? That could enable the use of modifier keys to expand the button functionality, without having the add so many dedicated buttons. For example, the video makes use of modifier for individually switching the keyboard and mouse without changing the video, in case using a multi screen KVM setup.
I use separate buttons for that, but it has pages, so you could do something with that.