Виртуальные привязки (Motif)
Слой Motif между физическими клавишами и поведением виджетов: код слушает osfCancel и osfHelp, а не Escape и F1, а файл привязок решает, что это значит на клавиатуре перед вами.
Motif должен был работать на LK201 от DEC, Type 4 от Sun и клавиатурах HP и IBM, где клавиши помощи, удаления и навигации разные, а иногда одно и то же имя клавиши даёт разные keysym. OSF решила задачу так: style guide и таблицы трансляции всех виджетов говорят на виртуальных keysym: osfActivate, osfCancel, osfHelp, osfMenuBar, osfBackSpace, osfDelete, osfPageUp, osfPrimaryPaste и ещё около тридцати. При запуске они переводятся в настоящие keysym из свойства _MOTIF_DEFAULT_BINDINGS корневого окна, файла .motifbind в домашнем каталоге или ресурса defaultVirtualBindings, а при неудаче — из таблицы производителя, выбираемой по строке vendor X-сервера.
Утилита xmbind читает файл привязок и кладёт его на корневое окно, а Motif поставлялся с готовыми файлами для каждого производителя. Итог: один бинарник корректно ведёт себя на разном железе, а пользователь с Escape не на месте чинит это одной строкой: osfCancel : <Key>Escape. Отсюда же классическое раздражение: если Backspace в программе Motif удаляет не в ту сторону, почти всегда osfBackSpace и osfDelete указывают на не тот keysym, а xmodmap тут бессилен, потому что неисправность на уровень выше.