Типы данных и выделения, которые понимают gui-get-selection и
gui-set-selection, не определены точно и
зависят от системы окон, в которой запущен Emacs.
В то же время gui-set-selection абстрагируется от множества
сложностей: его аргумент data передается дословно
специфичному для системы коду для преобразования в формат, подходящий для
передачи в систему окон или запроса у клиентов.
Наиболее полная реализация выделений существует в рамках X Window System. Это как артефакт истории (X была первой системой окон, поддерживаемой Emacs), так и следствие технических соображений: выделения X — это не просто удобный способ передачи текстового и мультимедийного контента между клиентами, а общая система межклиентской связи, дизайн, который привел к распространению типов выделений и данных.
Усугубляя эту путаницу, в X существует еще один механизм межклиентской связи: Inter-Client Exchange. ICE используется Emacs только для связи с менеджерами сессий и является отдельной темой.