KeyPress en KeyRelease
De X11-events voor een toets die omlaag gaat en weer omhoog komt, en die een toetsnummer afleveren en het aan de client overlaten om uit te zoeken wat het betekende.
Een KeyPress bevat een keycode, een modifierstatus (Shift, Control, Mod1 enzovoort), een tijdstempel, de pointercoördinaten en het betrokken venster. Het gaat naar het venster met de toetsenbordfocus, of naar het subvenster onder de pointer als dat binnen het focusvenster ligt, en alleen als dat venster KeyPressMask heeft geselecteerd. De server vertaalt niets. De client zet keycode en status zelf om in een keysym en tekst, meestal met XLookupString of, voor invoermethoden, XmbLookupString.
Autorepeat stuurt normaal paren van KeyRelease en KeyPress met identieke tijdstempels, dus een programma dat een ingehouden toets van snel tikken wilde onderscheiden moest tijden vergelijken — totdat XKB detecteerbare autorepeat toevoegde. Dat alle interpretatie aan de clientkant gebeurt, is ook de reden dat één programma in de oude indeling kan blijven typen terwijl alle andere al zijn overgestapt.