
Я настраиваю Webkit-браузер вЛинукси я сталкиваюсь с терминами "Первичный отбор" и "Выбор буфера обмена или буфер" очень часто.
- Я хочу понять, что это такое и в чем их разница?
- Где применяется функция перетаскивания и вставки?
- В чем конкретно заключается работа
xclip
в этом вопросе?
решение1
Они являются частьюВыбор Атомов, илиX-атомы.
TheРуководство по соглашениям о межклиентском общениидля X состояний:
Может быть произвольное количество выборов, каждый из которых назван атомом. Однако, чтобы соответствовать межклиентским соглашениям, клиентам нужно иметь дело только с этими тремя выборами:
- НАЧАЛЬНЫЙ
- ВТОРИЧНЫЙ
- БУФЕР ОБМЕНА
Суммируя:
- НАЧАЛЬНЫЙвыделение обычно используется, например, терминалами при выделении текста и его вставке нажатием средней кнопки мыши. Как вВыделенный текст находится в основном буфере обменабез всякихявныйпроисходит копирование действия. Quick-Copy — хорошее название для него. (Не ограничиваясь эмуляторами терминала, но в качестве примера.)
- БУФЕР ОБМЕНАв основном используется в связи сВ стиле MS WindowsОперации с буфером обмена. Выделить+Копировать. Данные находятся вбуфер.
Поддержка PRIMARY быладобавлен в WebKit еще в 2008 году.
xclip
, который является интерфейсом командной строки (инструментом) для выбора X (буфер обмена), традиционно добавляет данные в первичный буфер обмена. При желании можно выбрать, какой из них использовать, с помощью параметра, -clipboard
заданного аргументом любого из них.
Корр.: Drag And Drop находится в разделеXdnd.Также есть запись в Википедии оспецификация. Оно используетXdndВыбори не должно мешать ПЕРВИЧНОМУ.
Протокол как минимум реализован в Qt и GTK.
решение2
Кстати, в Debian (Kali) вот как различные варианты выбора соответствуют различным «опциям вставки»:
echo primary | xclip -sel p
echo secondary | xclip -sel s
echo clipboard | xclip -sel c
# Ctrl + Shift + v: clipboard
# Middle click: primary
# Paste selection: (Shift + Insert): primary
# with the -o option, xclip outputs the specified "selection"
# to stdout:
xclip -o -sel p
# stdout output: "primary"
xclip -o -sel s
# stdout output: "secondary"
xclip -o -sel c
# stdout output: "clipboard"
В моем случае я выполнил это в виртуальной машине VMWare. Выбор, который использует/видит/получает хостовая ОС, является первичным.
Если вы не хотите использовать множественный выбор, вы можете создать псевдоним xclip, чтобы использовать как основной выбор, так и выбор из буфера обмена, например: