keycodes are platform dependent