implement workspaces

there are 4 hardcoded surfaces for now, and they can be cycled
by using the CTRL+LEFT and CTRL+RIGHT hotkeys