First stab at upstreaming our virtual keyboard code