And there is ever decreasing need for cutting edge with containers and sandboxing. And hardware improvement is no longer so rapid so buying the hotness of 2+ years ago is cheap and effective and well supported.
Hilarious to have to look this low for it, but who want to stand up and declare themselves mainstream.
Polished, reliable, and solid, and snaps are not a big deal or an insidious evil, and neither is Canonical. They make missteps for sure. But with containers etc stability is more important than immediate updates and it's excellent about kernel updates for new hardware. It's slick Debian, and if the fuckery ever gets real switching to Debian is easy.
I'm still on i3 as it's been convenient, but this:
this has all become very specialized over the past decade
resonates. I keep incrementally adding personal tweaks and hotkeys to my setup, and I have all my dotfiles in a repo so it's persistent across installations.
One example was I made my headphone button pause/play videos with i3's config:
bindsym XF86AudioPlay exec playerctl play-pause
But then I adopted a script to toggle mic mute on work Zoom meetings, so I combined it with the above - if I'm in a meeting it toggles mute, otherwise it play-pauses any current video. The script, for now:
sh
#!/bin/bash
#
# Handler script for hitting mute on the headphone.
#
CURRENT_WINDOW=$(xdotool getwindowfocus)
# convoluted command to find the intersection of two searches
ZOOM_WINDOW=$(comm -12 \
<(xdotool search --name 'Meeting' | sort) \
<(xdotool search --class 'zoom' | sort))
if [[ -n "$ZOOM_WINDOW" ]]; then
# if zoom is active, toggle mic mute
xdotool windowactivate --sync ${ZOOM_WINDOW}
xdotool key --clearmodifiers "alt+a"
xdotool windowactivate --sync ${CURRENT_WINDOW}
else
# otherwise do play/pause
playerctl play-pause # will fail if no player found
fi
and of course I altered the i3 config to launch that script rather than playerctl directly.
[EDIT: Updated script as Zoom updated its window identities]
Yeah. Heaviest awk I've ever done is extracting a value to a variable from a line with one pattern and using it to populate output from later lines matching another pattern.
I was just thinking of the likes of what you get for searching for esp32 audio kit on AliExpress. About us$12. Has microphones, amplifiers, buttons etc.
Esp32 is very suitable but they jumped through a lot of hoops to recreate the ESP audio development boards you can buy for very little money with all of those parts already built in.
Not to mention an emissions decline means we're still making things worse, but not quite so quickly.
Obviously the path to making things better would have to pass through here, but just as people thinking electric cars are a solution rather than more of the problem, the delusion that this is winning is also part of the problem.
Avoid categories where a lot of items have fake specs (storage devices, LED bulbs, anything that claims a runtime on a Li-Ion battery)
I'd say be aware rather than avoid. E.g I bought a $10 camping lantern that claimed 2.5 times its true capacity, but it still runs for hours and is a great, well designed, if flimsy, product for the price.
It didn't mention halving a third.