X Window System Core Protocol – podstawowy protokół systemu X Window.

Mapowanie klawiatury frame|Ten klawisz zawsze generuje ten sam kod klawiszowy, ale symbole /, 7, i { skojarzone są z trzema różnymi symbolami. W X Window System każdy fizyczny klawisz skojarzony jest z liczbą z zakresu 8-255, zwaną kodem klawiszowym (ang. keycode). Kod ten identyfikuje klawisz, ale nie konkretny znak czy wyrażenie (np. Page Up). Każdy z tych znaków czy wyrażeń jest natomiast identyfikowany jako symbol (ang. keysym). O ile kod klawiszowy zależy jedynie od tego, który klawisz został wciśnięty, o tyle symbol może zależeć od kombinacji kilku jednocześnie wciśniętych.

Kiedy klawisz jest wciśnięty lub zwalniany, serwer wysyła zdarzenie typu KeyPress lub KeyRelease do odpowiedniego klienta. Zdarzenie zawiera: kod wciśniętego klawisza bieżący stan modyfikatorów (Shift, Control, itp.) i przycisków myszy.

left|thumb|400px|Tłumaczenie "kodu klawiszowego" na symbol.

Serwer wysyła więc kod klawisza i stan modyfikatora, nie próbując tłumaczyć ich na konkretny znak. Odpowiedzialność za to tłumaczenie spada na klienta. Przykładowo, klient może otrzymać zdarzenie mówiące, że dany klawisz został wciśnięty, kiedy trzymany był Shift.