Virtual bindings (Motif)
A camada do Motif entre as teclas físicas e o comportamento dos widgets: o código escuta osfCancel e osfHelp, não Escape e F1, e um arquivo de bindings define o que isso significa no teclado que está na sua frente.
O Motif precisava rodar no LK201 da DEC, no Type 4 da Sun e nos teclados da HP e da IBM, todos com teclas diferentes para ajuda, exclusão e navegação, e às vezes com o mesmo nome de tecla mas keysyms diferentes. A OSF resolveu fazendo o guia de estilo e a tabela de traduções de cada widget falarem em keysyms virtuais: osfActivate, osfCancel, osfHelp, osfMenuBar, osfBackSpace, osfDelete, osfPageUp, osfPrimaryPaste e cerca de trinta outros. Na inicialização eles são traduzidos em keysyms reais a partir da propriedade _MOTIF_DEFAULT_BINDINGS na janela raiz, do arquivo .motifbind no diretório pessoal ou do recurso defaultVirtualBindings e, na falta de tudo isso, de uma tabela do fabricante escolhida pela string de vendor do servidor X.
A ferramenta xmbind lê um arquivo de bindings e o coloca na janela raiz, e o Motif trazia arquivos prontos por fabricante. O resultado era que o mesmo binário se comportava bem em hardwares diferentes, e que um usuário com a tecla Escape no lugar errado resolvia o problema numa linha: osfCancel : <Key>Escape. Era também a origem de um incômodo clássico: um programa Motif em que o Backspace apagava para o lado errado quase sempre significava que osfBackSpace e osfDelete apontavam para o keysym errado naquele teclado, algo que o xmodmap não conseguia consertar porque a falha estava uma camada acima.