> For what xdotool does - pretty much a substitute.
No; for just the input functions, and that only if you're not using `--window`, it's a substitute. But xdotool is a lot more than that.
> For anything else you need a compositor specific tool.
Yes, exactly. For the things that were asked for, your best hope is do see if your particular compositor deigned to provide the API surface, and then if it did, write something that uses those non-portable APIs to do what you want.