В чем разница между первичным выбором и буфером буфера обмена?

В чем разница между первичным выбором и буфером буфера обмена?

Я настраиваю 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, чтобы использовать как основной выбор, так и выбор из буфера обмена, например:

xclip

Связанный контент