buckle -f is good for debugging
"bucklespring" lets you pretend you have a keyboard for grown-ups, and
"buckle -f" is the only sane way to start it (as otherwise it'd be silent
for any keys not present on the author's crippled rump "Space Saver"
variant).
A week ago, I had to urgently replace my microphone headphones. So I
strolled to a brick-an-mortar shop to pick from what they had. The only set
that appeared decent enough had an USB connector instead of a pair of jacks
like $DEITY intended. They give pretty good sound, although a bright
BLINKING light on the volume control is grounds for murder. Too bad, the
volume control, consisting of four buttons instead of a wheel, mostly didn't
work (except for the "mic mute" button).
A few days later, I finally got around to work on fixing ALSA support in
Clementine (one of my four reasons why: https://angband.pl/tmp/clem/).
While doing so, I started bucklespring as a test for handling audio devices
open by another program.
I try to adjust volume level of the headphones, and, by muscle memory, reach
for the volume control on the cable. It still doesn't work, but I _hear_
the buttons. WTF? Turns out that three of the buttons, instead of being
handled in hardware, present themselves to the computer as a keyboard, and
send XF86AudioLowerVolume, XF86AudioRaiseVolume and XF86AudioMute key codes,
assuming they're handled by the OS. They were not, at least in the config I
had, but binding them appropriately is no rocket surgery.
It still puzzles me why the manufacturer found it more cost effective to
implement one button a physically different way than the three others,
requiring a whole keyboard emulation stack, but hey, at least it works now.
So... buckle up! This way nothing else will surprise you by masquerading as
a keyboard!
--
⢀⣴⠾⠻⢶⣦⠀
⣾⠁⢠⠒⠀⣿⡁ A dumb species has no way to open a tuna can.
⢿⡄⠘⠷⠚⠋⠀ A smart species invents a can opener.
⠈⠳⣄⠀⠀⠀⠀ A master species delegates.
Reply to: