gui-get-selection
やgui-set-selection
が理解できるデータタイプと選択については正確には指定されておらず、Emacsを実行しているウィンドウシステムによって異なります。
それと同時にgui-set-selection
は多くの複雑さを抽象化しています。data引数はウィンドウシステムへの転送や要求したクライアントに適するように描画されるように、システム固有のコードにそのまま与えられます。
選択にたいするもっとも包括的な実装はXウィンドウシステムの実装です。この実装は歴史の成果であり(XはEmacsがサポートした最初のウィンドウシステム)、技術的検討による出来事でもありました。X選択はクライアントとの間でテキストやマルチメディアを転送するための単なる便宜的手法ではなく汎用的なクライアント間通信システムであり、選択とデータタイプの設計はネズミ算式に急増したのです。
この混乱に拍車をかけたのが、XにはICE(Inter-Client Exchange)と呼ばれる別のクライアント間通信メカニズムが存在したことです。EmacsがICEを使用するのはセッションマネージャーとの通信においてのみであり、これは別のトピックです。