Add component desktop.

Move desktop manipulation into `:class:components.Desktop`.
Also fixed black captured image when move backward.