update .gitignore
implement keyboard variants