[HN Gopher] A Keypad to Control My Entire Desk Setup
       ___________________________________________________________________
        
       A Keypad to Control My Entire Desk Setup
        
       Author : solalf
       Score  : 131 points
       Date   : 2023-02-22 09:22 UTC (2 days ago)
        
 (HTM) web link (github.com)
 (TXT) w3m dump (github.com)
        
       | anyfactor wrote:
       | You probably don't need the Pico. You can use luamacros or
       | HIDMacros to remap the keys of the secondary keyboard.
       | 
       | I used to have an emoji + response template keyboard when I was
       | doing social media management. I used HIDMacros[0] and Espanso
       | [1].
       | 
       | My current setup is HIDMacros and Autohotkeys. With AHK's
       | :*:;<input_text>::{         Send "<expanded_text>"       }
       | 
       | you can do text expansion like Espanso. Nowadays, I am using the
       | macro setup for virtual desktop management with SylphyHorn [2].
       | For text expansion stuff, I am doing auto correction of commonly
       | mistyped words like: datbase, timstamp etc.
       | 
       | [0] http://www.hidmacros.eu
       | 
       | [1] https://espanso.org/
       | 
       | [2] https://github.com/hwtnb/SylphyHornPlusWin11
        
         | stevenhuang wrote:
         | Notably if your keyboard supports VIA, you can use
         | https://usevia.app/#/ which directly updates the keyboard
         | firmware with any custom mapping you want.
         | 
         | Web apps like above show the power of adding USB support to web
         | standards--no more having to actually install software to
         | interact with hardware, it's awesome.
        
           | nerdponx wrote:
           | Note that there is also the Vial firmware, which is inspired
           | by Via but with a more open development model:
           | https://get.vial.today/
        
       | birdman3131 wrote:
       | A similar although not the same project is Bitfocus Companion
       | along with a streamdeck. A large number of us in the A/V
       | production world use it to control a large amount of disparate
       | pieces of equipment at once.
       | 
       | And you don't need the stream deck. I use the virtual one
       | included with companion.
        
         | thesh4d0w wrote:
         | Wow, their site requires a sign up to view their docs. wtf.
        
       | JLCarveth wrote:
       | I did something similar a while ago, made a 9-key Macropad using
       | a Teensy. I've been wanting to try making a new one with BLE
       | support and an integrated battery for wireless. Using Home
       | Assistant is quite a good application for a device like this!
        
       | WhyNotHugo wrote:
       | You could probably simplify this setup a bit by using a qmk-
       | programmable macro pad[1]. You can program the keyboard to send
       | keypresses like F23, F24, etc, and then handle those directly.
       | This suppressed the need for the rpi entirely.
       | 
       | [1]: Some random examples:
       | https://candykeys.com/product/megalodon-doio-triple-knob-mac...
        
         | jcrawfordor wrote:
         | X-Keys (mentioned by the author as his source of the
         | relegendable keycaps) and Genovation are two manufacturers of
         | programmable macropads popular for commercial and industrial
         | use. Especially Genovation can be found pretty cheap on eBay (I
         | see as low as $25 right now). If you're looking used, also
         | consider PrehKeyTec for larger programmable keypads ranging up
         | to full-size keyboards with triple function rows and the gap
         | between arrow keys and navigation block filled in (magstripe
         | reader and keyswitch too, these are mostly popular for POS
         | applications).
        
       | Tuckerism wrote:
       | I've been doing something similar, leveraging a Stream Deck Mini
       | and a handful of self-written python scripts to handle my Hue
       | bulbs, Nanoleaf, and a smart plug running an air purifier. I also
       | have a very nice Max Falcon-20 macropad, but I liked the ease of
       | changing the virtual keycaps on the Stream Deck for prototyping.
       | 
       | All-in-all, it's a fun automation experiment for those of us who
       | are WFH to automate things we do everyday, such as start up and
       | shut down our spaces.
        
       | IshKebab wrote:
       | I like the idea but I definitely feel like this would benefit
       | from a less regular design. Have separate banks of keys, maybe
       | even different cap shapes.
       | 
       | Otherwise you're inevitable going to hit the "switch input"
       | button when you meant "screen brightness" half the time and have
       | to wait for 10 seconds while it switches back.
       | 
       | I've seen nuclear power stations use beer handles, and submarines
       | use randomly shaped knobs to avoid the "easily confused controls"
       | problem.
        
       | localhost wrote:
       | There's a guy on YouTube (wfh - Work From Hype) who has a channel
       | devoted to these kinds of things:
       | https://www.youtube.com/channel/UCcCYTCDxsMl84_btikjY40Q
        
       | zwayhowder wrote:
       | I built one of these after reading this. It was well worth the
       | time and making a friend do the soldering :D
       | 
       | I have hundreds of keyboard shortcuts memorised for things, and I
       | use a QMK programmable Moonlander keyboard with even more.
       | 
       | The real advantage of this is that it also is something my family
       | can easily use.
        
         | gbrindisi wrote:
         | can you expand? I also have a moonlander and looking for
         | inspiration
        
         | Oxidation wrote:
         | > The real advantage of this is that it also is something my
         | family can easily use.
         | 
         | The opposite of this is why I like i3. Want to use my computer?
         | Good luck: there's no start button and you'll have to guess the
         | chord to open rofi.
        
           | zwayhowder wrote:
           | Snap. I also use i3 and rofi. I can't imagine life without
           | them. But the desk controller I built turns off lights and
           | monitors, mutes audio when I forget to and more.
        
       | ok_dad wrote:
       | I bought a macropad with some knobs on it that's programmable
       | that I can plug into my PlayStation to use in games with keyboard
       | support. Works pretty well, but I do have to reprogram it to
       | match the game I want to play, so it's kinda a pain. I also tried
       | it on my desktop, but I found I had nothing to use it for, I
       | already know all of my IDE shortcuts and whatnot.
        
       | hidelooktropic wrote:
       | I was really pumped about this approach of having a second
       | specialized keypad a couple years back. So much so that I bought
       | Elgato's Streamdeck and their later released larger pro version.
       | 
       | I used them with fervor, taking pains to configure them to my
       | liking and I felt I was on the right path to something amazing.
       | 
       | Over time, I kept wondering to myself what I was really gaining
       | compared to just memorizing plain keyboard shortcuts mapped to
       | the handful of functions I assigned to the separate keypad.
       | 
       | Every time I saw these devices unplugged I thought about plugging
       | them back in again only to realize the moment I was removed from
       | my workstation, I would lose the ability to use those shortcuts
       | from my laptop's embedded keyboard.
       | 
       | I guess an advantage of the separate keypad is having dedicated
       | keys, each with their own iconography for their function. But the
       | whole idea is these are functions that are used often, so having
       | their access embedded in muscle memory is in my opinion the
       | better way to accomplish this.
        
         | dylan604 wrote:
         | think of the desktop "console" like the dash on your car before
         | touchscreens. eventually, muscle memory knows where the buttons
         | are and you can access them without looking. it just has to be
         | useful enough to use often enough for it to become muscle
         | memory.
         | 
         | i've sat in amazement watching a colorist navigate the large
         | panels without ever taking their eyes off the screen/scopes.
         | there are so many knobs, roller balls, buttons that it is
         | almost sci-fi. lots of other jobs are like this with dedicated
         | gear, and it's part of the mystery of how they do what they do
        
         | fencepost wrote:
         | I still have plans to iron out the details of making a Stream
         | Deck push actions to time tracking software (probably Toggl but
         | maybe not) with toggled status on the buttons.
        
         | user3939382 wrote:
         | > what I was really gaining compared to just memorizing plain
         | keyboard shortcuts
         | 
         | For me the problem is that there are many shortcuts I need but
         | not enough to memorize them. Also like in my IDE there are so
         | many functions a lot of the shortcuts have to be 3 keys which
         | is a hassle, you feel like you're playing a Chopin opus if you
         | need them back to back.
        
         | kitsunesoba wrote:
         | For me the most useful thing about stream decks is that they're
         | tied to particular machines while not taking up much space.
         | 
         | So for example I usually listen to music through my personal
         | mac since that's what's hooked up to my DAC/amp and has all of
         | my music files, even if I'm currently got my work mac hooked up
         | to my primary screen and KB+M. While I can use key shortcuts on
         | my personal mac through Universal Control (like Synergy, except
         | using P2P wifi), it's nice to not have to mouse over to my
         | personal mac's screen first -- just use the media controls on
         | the stream deck hooked up to that machine.
         | 
         | This could also be done with a small macropad like is sold at
         | numerous keyboard enthusiast shops, but it's not a given that
         | I'll have keycaps to match the mapped functions which is where
         | the deck's screen-keys are nice.
        
         | abraae wrote:
         | I've always felt the same, but there are some static scenarios
         | where your shortcut device will always be there and mobility is
         | not required.
         | 
         | Case in point a home golf simulator. Absolutely not portable
         | and also have noob users who need to operate the system -
         | easier for them to click a specific labeled button for mulligan
         | rather than needing to press ctrl-M on the actual keyboard.
        
         | wyager wrote:
         | I had the same process with BlackMagic's dedicated video-
         | editing keyboards - they seem really cool at first, but it's
         | hardly an improvement on just getting good with keyboard
         | shortcuts and the trackpad, and then you don't have to lug
         | around specialized hardware.
        
       | alasdair_ wrote:
       | I have one of these as well using a streamdeck. It also controls
       | my blinds and AC unit via HomeAssistqnt. The cool thing is that
       | each key shows current status as well as the function.
        
         | bostonvaulter2 wrote:
         | That sounds neat! What sort of automated blinds do you have?
         | I've looked into some before but I had trouble finding one that
         | I wouldn't be worried about recharging every couple of weeks.
        
       | bdb wrote:
       | I've done something pretty similar with an Adafruit Macropad,
       | Karabiner Elements (and Zoom's global hotkey support), hass-cli,
       | and a few esphome-loaded ESP32 devices. Physical audio/video
       | mute, raise hand, lights, speaker/headphone switch, and screen
       | lock buttons are wonderful.
        
         | alanbernstein wrote:
         | I'm also using the Adafruit Macropad. What did you do for
         | keycaps? I have these:
         | https://xkeys.com/transparentsinglekeys.html
        
       | A4ET8a8uTh0 wrote:
       | Damn, there goes my weekend. This is a fun project and looks like
       | something I can actually make match my own needs.
        
       | mikeg8 wrote:
       | Wow, this was very cool. I don't do anything with hardware /
       | electronics, but it is so fun watching someone talented breakdown
       | and solve each challenge like that. Similar to how I enjoy
       | watching someone do a tutorial on Ruby on Rails or JS. I'd love
       | to learn more about hacking things like that.
        
       | alanbernstein wrote:
       | Nice. I'll have to watch the video later. I'm working on
       | something similar, mainly for: USB switch, monitor input switch,
       | yubikey, and standing desk.
       | 
       | The plan is for most of this to be done via hardware signals sent
       | from the microcontroller on the macro pad. I have a ways to go...
        
         | vxNsr wrote:
         | I have a lo-fi version of this using a 4port usb-switcher and
         | display-switch [0]
         | 
         | [0] https://github.com/haimgel/display-switch
         | 
         | The only thing you'd need to figure out is the standing desk
         | part. My usb switch came with a wireless controller which is
         | the main way I interact with it.
        
           | alanbernstein wrote:
           | Thanks! Your repo is already in my list of things to try for
           | the display switching part.
           | 
           | Unfortunately, display switching via DDC is not supported on
           | my current monitor, so if I want that to work I'll have to
           | find a new one that does support it. I also need it to work
           | with Linux, Windows, and Mac M1 machines. Seems like it might
           | be easier to do send all the DDC commands from the Linux
           | machine, rather than get DDC working on all three.
        
       ___________________________________________________________________
       (page generated 2023-02-24 23:00 UTC)