Add surface creation

This PR introduces a preliminary method of creating a surface and attaching it to each monitor present.
I don't see any benefits.