I realized I had way too many browser tabs open, and the silly idea came to me; how hard would it be to make a hardware knob to switch between them?
Turns out Native Messaging is a viable way to get data from an USB/serial port into your Firefox extension, which has a nice API to access the tabs.
I created a mount for my thinkpad X220, a knob, picked a rotary encoder and an arduino, and the whole thing was done in an afternoon. Elen wrote the extension, I made the firmware, both of which are very simple.
Stop breadboarding and soldering – start making immediately! Adafruit’s Circuit Playground is jam-packed with LEDs, sensors, buttons, alligator clip pads and more. Build projects with Circuit Playground in a few minutes with the drag-and-drop MakeCode programming site, learn computer science using the CS Discoveries class on code.org, jump into CircuitPython to learn Python and hardware together, TinyGO, or even use the Arduino IDE. Circuit Playground Express is the newest and best Circuit Playground board, with support for CircuitPython, MakeCode, and Arduino. It has a powerful processor, 10 NeoPixels, mini speaker, InfraRed receive and transmit, two buttons, a switch, 14 alligator clip pads, and lots of sensors: capacitive touch, IR proximity, temperature, light, motion and sound. A whole wide world of electronics and coding is waiting for you, and it fits in the palm of your hand.