I've always been fighting with
/etc/resolv.conf, or at least, been unsure
which piece of software was modifying it at which stage. Also, ordering the
nameservers in such a way IPv6 addresses came out on top doesn't seem to be an
option. At least not in my current systemd+networkd+resolved setup.
So I wrote a small Rust tool to do this. Though it might not be as elegant as
patching whatever is modifying
/etc/resolv.conf in the first place, it will
work with whatever is doing that. And using a systemd path unit, it's
actually quite simple to hook things up.
Check it out on GitHub.