На глубоком уровне, как работает копирование чего-либо в буфер обмена? Есть ли файл, в котором хранится текст или изображение, которое я где-то копирую?
Я нашел Место в памяти буфера обмена , где на вопрос так и не ответили. Я также нашел много ссылок на xclip. У меня в настоящее время не установлен xclip, но мой буфер обмена работает нормально - например, я могу скопировать что-нибудь из Firefox и вставить в терминал без проблем. Итак, очевидно, что что-то должно происходить на другом уровне, чем xclip. Что это такое и как это работает?
X обращается с буфером обмена, и вы можете прочитать об этом здесь. https://specifications.freedesktop.org/clipboards-spec/clipboards-latest.txt
X11 буфер обмена, который известен как выборки, определен в ICCCM. https://www.x.org/releases/X11R7.6/doc/xorg-docs/specs/ICCCM/icccm.html
Цитирование приведенной выше ссылки.
Может быть произвольное количество выборок, каждая из которых названа атомом. Однако, чтобы соответствовать межклиентским соглашениям, клиенты должны иметь дело только с этими тремя вариантами выбора:
ПЕРВИЧНЫЙ
ВТОРИЧНЫЙ
ПЛИС
Все эти выборки хранятся в памяти и не записываются на диск.
Стоит прочитать X Selections, Cut Buffers и Kill Rings . https://www.jwz.org/doc/x-cut-and-paste.html
Еще одно полезное чтение - Написание библиотеки кросс-платформенных буферов обмена https://jtanx.github.io/2016/08/19/a-cross-platform-clipboard-library/
Если вам интересно, как взаимодействовать с X11 выбор грамматически, а затем, безусловно, проверить исходный код xclip на GitHub. https://github.com/astrand/xclip