I’ve been using https://github.com/waydabber/BetterDisplay for this purpose. Does something similar and more. Works great!
That seems to be the flagship feature of DeskPad.
Edit: I see looking at the branches an old version was open source some years ago.