14 ms·
A keypad to control my desk setup
- alanbernstein 4y agoNice. 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 4y agoI have a lo-fi version of this using a 4port usb-switcher and display-switch [0] [0] https://github.com/haimgel/display-switch 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 4y agoThanks! 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.
- vxNsr 4y agoYea so getting DDC to work is a huge pain. I had a it working OOTB for the three monitors I had miraculously even though they’re all super old. Then the oldest one started to have a pink hue when it woke from sleep for the first 30-45 min, and I was worried about getting stuck without it so then I went on the hunt for a monitor that supported DDC. The biggest issue is there is no product page for any monitor I could find that ever mentions if it supports DDC. You’re almost guaranteed to get some sorta DDC support for enterprise-type monitors. Consumer facing stuff is a giant gamble. Basically all LGs are out, some support it others don’t. It is entirely dependent on which controller they had on hand when they did that run, so you could have inconsistencies within the same model. Monoprice doesn’t officially support it, but the two monitors I tired from them did…kinda there were some oddities and sometimes it would just crash and I’d have to unplug and wait 30sec to reset it. Along w the fact that they were VA panels made me send them back. Dell and HP appear to be good choices, all the dells I’ve tried support it, tho I’ve only got business dell monitors. The HP gaming monitor I settled on supports it fully, tho it takes like 10 seconds to switch, that might be because of the difference in supported refresh rate between the two computers. I will also add that the HP does support it but it doesn’t always like being told to switch by the computer it’s not currently displaying. Usually it will switch no matter which computer sends the command but there are times it just ignores it if the computer isn’t currently being displayed. Finally I can’t tell if this is a monitor thing or a computer thing, but sometimes (rarely) the monitors will confuse each other and not switch and when you check the error logs it says that there’s an incorrect code on the ddc buffer, only thing to do is power cycle that monitor. All that said, I still think this is a better and cheaper solution vs a full hardware usb+video switch.
- JLCarveth 4y agoI 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!
- mikeg8 4y agoWow, 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.
- A4ET8a8uTh0 4y agoDamn, there goes my weekend. This is a fun project and looks like something I can actually make match my own needs.
- birdman3131 4y agoA 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 4y agoWow, their site requires a sign up to view their docs. wtf.
- WhyNotHugo 4y agoYou 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-macropad https://candykeys.com/product/megalodon-doio-triple-knob-mac...
- jcrawfordor 4y agoX-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).
- doogerdog 4y agoI have used dedicated key pads for video/photo editing on my desktop mac for many years. I’ve found that what matters most to make it more efficient and enjoyable is the quality of the key switches. I started with a Genovation CP24 that triggers macros in Keyboard Maestro. I was very happy with the setup, but when Stream Deck arrived I got the big one and dove into making it work for me. Stream Deck is pretty impressive but the switches on the Gennovation are just better, so I went back. With the Gennovation a finger can just reach where it needs and feel that the click has been done. I could never get that level of comfort with the Stream Deck keys. I also found that I preferred just making a paper label and popping it under the cover worked better that the cute Stream Deck key system. I can very quickly make paper labels that visually group similar keys. I can also make a key that needs to stand out from the rest. (Such as my universal delete key that works in all applications – saves me a lot of time but I had to learn to not be hitting it by accident.) Once I have labeled my keys just as I like, I don’t change them so the Stream Deck system seems like overkill. I now have two Genovation CP24’s and one CP48 hooked up to my mac. I am so dependent on them that I browsed eBay to pick up some spares incase I ever need them. Keyboard Maestro is the other indispensable element to my system. I has it’s quirks but seems to me that everyone should know it (or the PC equivalent) backward and forward. I have about 50 macros that get used every day. I have 252 macros in Keyboard Maestro right now. (I keep a lot of old ones around to serve as notes for making new ones, or for when software updates make one not work.) I can work on other peoples machines but I REALLY love using mine. There is just nothing like having a dedicated key that does a series of steps that you need done very often. It frees up my mind. Some of my macros in DaVinci Resolve do many operations without me having to think about stepping through each one. Same with Pixelmator Pro.
- IshKebab 4y agoI 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 4y agoThere'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 https://www.youtube.com/channel/UCcCYTCDxsMl84_btikjY40Q
- hidelooktropic 4y agoI 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.
- franga2000 4y ago> 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 The problem with keyboard shortcuts is that they're more complicated to press, often requiring two hands or at least a specific hand to press them. Having a macro pad makes it equally easy to activate an action no matter what I'm doing. Outside of programming and writing, my hand is almost always on the mouse, so two-handed or right-handed chords are out of the questions. On the left side, there aren't many combos that are easy to press one-handed and aren't used already. Additionally, macro pads are also great for rarely-used but annoying actions. Things that aren't common enough to waste screen space or keyboard shortcuts on, but are annoying to do by clicking through menus.
- dylan604 4y agothink 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
- bdb 4y agoI'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 4y agoI'm also using the Adafruit Macropad. What did you do for keycaps? I have these: https://xkeys.com/transparentsinglekeys.html https://xkeys.com/transparentsinglekeys.html
- bdb 4y agoI just wound up using translucent ones which came with them, with the LEDs set to solid colors to group functionality together, and a legend on the display. Zoom keys blue, lights yellow, etc. I had an XKeys strip for a previous iteration, which included similar keycaps. My hand-written labels were ugly, so I skipped them this time around.
- anyfactor 4y agoYou 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 http://www.hidmacros.eu [1] https://espanso.org/ https://espanso.org/ [2] https://github.com/hwtnb/SylphyHornPlusWin11 https://github.com/hwtnb/SylphyHornPlusWin11
- stevenhuang 4y agoNotably if your keyboard supports VIA, you can use https://usevia.app/#/ 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 4y agoNote that there is also the Vial firmware, which is inspired by Via but with a more open development model: https://get.vial.today/ https://get.vial.today/
- Tuckerism 4y agoI'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.
- zwayhowder 4y agoI 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 4y agocan you expand? I also have a moonlander and looking for inspiration
- zwayhowder 4y agoI run i3, so practically everything I do is driven by keyboard shortcuts. On Windows I use AutoHotKey to achieve a similar level of support when I have to use it. To avoid collisions I'll often bind a single key to something like "Control + Shift + Alt + Meta + F14". No application I'm aware of goes hirer than F12 and most keyboard combos require a max of 3 keys. By binding such a ridiculous number of keys to one key I don't have to contort my hand too much and I can still always find the mute key. Often the key will trigger a script, and the script will use information such as the active window to understand the exact output. (If Zoom mute is Space, if Teams it is Ctrl+Shift+M because of course it is, if Chime forget about Mute just play a recording of me telling our account rep at AWS this is why I won't work there). This is a better write up than I can do. https://hackaday.io/project/177896-remutermcs https://hackaday.io/project/177896-remutermcs
- Oxidation 4y ago> 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 4y agoSnap. 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 4y agoI 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.
- alasdair_ 4y agoI 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 4y agoThat 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.
- alasdair_ 4y agoHunter douglas. Takes 12 AA batteries and has lasted two years so far.
- bostonvaulter2 4y agoThat sounds like a perfectly reasonable replacement schedule. Thanks for the info!
- dzhar11 4y agoWow, this is a fantastic project; thank you for sharing! For a few years, I've been thinking about automating something with remote NumPad. I've also got "Velocifire" numpad and used it as MouseKeys. This project is a huge inspiration ;)
- prmoustache 4y agoI would have used one of the gazillion midi controllers to do that.
- blagie 4y agoI'd totally do this as well, if there were good software support in Ubuntu. Each time I think about another thing to maintain, I give up. I would like dedicated buttons for my different desktops (with proper labels), and there's a slew of other things I'd like. I wouldn't mind extra unicode characters either. My codemap lets my type 1+1≠3, but there are many more things I'd like to be able to type. Ain't gonna happen. The problem isn't hardware but software. Spare touchpad or trackball would also give me a lot, if I could configure it easily. Lots of places I want extra degrees of freedom.
- 3np 4y agoWhat kind of software are you missing...? https://news.ycombinator.com/item?id=34929498 https://news.ycombinator.com/item?id=34929498
- blagie 4y agoSomething that allows me to cleanly handle multiple keyboards and mice on Ubuntu, map them to interesting Unicode characters, as well as to macros. I'm not sure what your link does for me. It points to some proprietary Mac app, as well as a few keypads. The keypads are listed as "programmable" but: - Key codes don't correspond to Unicode characters or similar. - Multiple keyboards are a mess. I can't, for example, have a Greek keyboard (for math equations) and a US one (for programming) because the key codes overlap. - Most macro programming on these things is a train wreck. It's usually a proprietary app on an OS I don't use.
- 3np 4y agoProprietary Mac app...? Maybe you are looking at a different "qmk"? You can do all of this without any need for additional runtime software (apart from build environment to build and make changes obv) directly in the keyboard/pad with the mentioned qmk-firmware. You can build the pad from scratch, buy a kit, or a prebuilt (like the linked example). https://qmk.github.io/qmk_mkdocs/master/en/feature_unicode/ https://qmk.github.io/qmk_mkdocs/master/en/feature_unicode/ If I have it working in Alpine, Gentoo, NixOS, Guix, Debian, Mint, Arch and Rocky out of the box I fail to see why Ubuntu would be different ;) Another great option is zmk, which has better support for Bluetooth if that's your thing.
- sneak 4y agoThis project made me realize how sad it is that most generic/basic consumer electronics (think display input switching, or speaker input switching, or standing desk memory, etc) don't support zigbee. I think I mentioned this somewhere and someone pointed out that zigbee is patent-encumbered and has per-device license fees. :/
- hinkley 4y agoThis needs some keycaps with embossed icons so you can feel them.
- jimmySixDOF 4y agoI think a lot about what a workspace might look like in the future if you are using some form of XR device in a 360 6DOF visualization and control aware space. Almost anything tangible in your surroundings can be absorbed into the user interface experience on the fly or as built. I can see value in connections between these programmable knobs buttons sliders and the like tightly paired with the XR experience in an organized physical workspace setup to increase the bandwidth of flow in whatever particular direction you choose. Big fan of better standards and interop between these devices on the OS layer and USB/Bluetooth/MIDI/ZigBee/etc
- aschla 4y agoWasn't aware it was possible to switch LG TV sources via Home Assistant. Set up a Autokey script to call the Home Assistant API to trigger a script to switch sources between my work Mac and personal PC. Works great, don't need to move my hands from the keyboard and is much quicker than using the remote.
- leohart 4y agoWhat I am looking for is actually something much simpler. I have a laptop and a desktop. I want to click a button to switch between them for the same set of monitors and USB-connected devices. The USB-connected devices is ok since I can use a USB switcher. But I can't figure out how to switch my monitors' input sources without manually using their OSD and control buttons.
- dceddia 4y agoI’ve had good luck with this CableMatters USB KVM switch. It switches the USB devices along with a DisplayPort. So I leave the monitor’s input alone, and run its DisplayPort to this, and then DP cables out to my Mac and PC (well, DP-to-USBC for the Mac) https://a.co/d/7ks9dNp https://a.co/d/7ks9dNp
- alin23 4y agoMaybe try my Lunar app (https://lunar.fyi/ https://lunar.fyi/) if you’re on macOS. It can switch inputs using DDC if the monitor implements the VCP code for it, and it can assign a hotkey and a specific brightness/contrast for the input if needed: https://lunar.fyi/static/img/input-key/768_input-key.webp https://lunar.fyi/static/img/input-key/768_input-key.webp For Linux, there’s ddcutil that can do that, and for Windows there’s TwinkleTray.