Hello. I want to write an Udev rule to change my laptops's EasyEffects profile whenever I connect a speaker set or headphones to the 3.5mm jack. The concept is relatively simple: when I connect something to the jack, I want it to fire a script that will set this Dconf setting:
gsettings set com.github.wwmm.easyeffects last-loaded-output-preset 'None'
And when I unplug the speakers/headphones, it'll set this:
gsettings set com.github.wwmm.easyeffects last-loaded-output-preset 'Laptop'
("None" and "Laptop" are EasyEffects profiles).
Unfortunately, I haven't been able to find useful info, since almost all of the results I found online refer to Bluetooth or USB devices. I checked within /sys/class/sound/
and /dev/
for a file where I could query the status of the jack (something like "connected"/"disconnected") but I can't find something relevant. I have a similar rule that changes GNOME's font scaling when I plug my HDMI display, and it does that by running this script:
function monitorConnected () {
statuses=$(cat /sys/class/drm/card1-HDMI-A-{1,2,3,4}/status 2>/dev/null)
for status in ${statuses[@]}
do
[[ ${status} == "connected" ]] && return 0
done
return 1
}
So I thought that I could do something similar for the 3.5mm jack. Or maybe there's another method? Any hints? My OS is Fedora 41 and I'm using Pipewire, btw.
Yes, everyone has different views about that. Personally, it's precisely because we have limited time that I want to experience a variety of things without limiting myself to a subset of all of the literature. Many people like to read, say, mainly Sci-fi and that's good: they know exactly what they like. Me? I tend to get bored of a particular genre or theme pretty easily, and that's why I like to be chaotic. One more thing: I really, really dislike other people or machines telling me what to read, so whenever someone gives me a book recommendation, that book goes to the bottom of my priority list 😅.