Pressionar uma tecla em um teclado de PC gera um código de verificação de PC com base aproximadamente na posição da tecla. Por exemplo, a tecla Z em um teclado alemão gera o mesmo código que a tecla Y em um teclado inglês porque elas estão na mesma posição no teclado. A maioria das chaves tem códigos de verificação de um byte, mas algumas chaves têm códigos de verificação de dois bytes com o prefixo 0xe0.
Internamente, o Workstation Pro usa uma versão simplificada do código de verificação do PC que é um único valor numérico de nove bits, chamado de código v-scan. Um código v-scan é escrito como um número hexadecimal de três dígitos. O primeiro dígito é 0 ou 1. Por exemplo, a tecla Ctrl no lado esquerdo do teclado tem um código de verificação de um byte (0x1d) e seu código de v-scan é 0x01d. O código de verificação da tecla Ctrl no lado direito do teclado tem dois bytes (0xe0, 0x1d) e seu código de v-scan é 0x11d.
Um servidor XFree86 em um PC tem um mapeamento um-para-um dos códigos de tecla X para os códigos de varredura do PC, ou códigos v-scan, que é o que o Workstation Pro usa. Quando o Workstation Pro está hospedado em um servidor XFree86 e executa uma máquina virtual local, ele usa o mapeamento integrado dos códigos-chave do X para os códigos do v-scan. Esse mapeamento é independente do teclado e deve estar correto para a maioria dos idiomas. Em outros casos (não é um servidor XFree86 ou não é um servidor local), o Workstation Pro deve mapear keysyms para códigos v-scan usando um conjunto de tabelas específicas do teclado.
Um servidor X usa uma codificação de chaves de dois níveis, que inclui o código da chave X e o keysym. Um código de chave X é um valor de um byte. A atribuição de códigos de teclas a teclas depende da implementação do servidor X e do teclado físico. Como resultado, um aplicativo X normalmente não pode usar códigos de chave diretamente. Em vez disso, os códigos de chave são mapeados em keysyms que têm nomes como espaço, escape, x e 2. Você pode usar um aplicativo X para controlar o mapeamento usando a função XChangeKeyboardMapping()
ou pelo programa xmodmap. Para explorar os mapeamentos de teclado, você pode usar o comando xev, que mostra os códigos de tecla e os símbolos de tecla para as teclas digitadas em sua janela.
Um código de chave corresponde aproximadamente a uma chave física, enquanto um keysym corresponde ao símbolo na parte superior da chave. Por exemplo, com um servidor XFree86 em execução em um PC, a tecla Z no teclado em alemão tem o mesmo código de tecla que a tecla Y em um teclado em inglês. O símbolo de tecla Z alemão, no entanto, é o mesmo que o símbolo de tecla Z inglês e diferente do símbolo de tecla Y inglês.