code and demo for wayland