Подсчет событий вставки с помощью xclip

273
SYN-cook

xclip - это интерфейс командной строки для буфера обмена X. Когда я пытался настроить функцию безопасности с помощью этого инструмента, я заметил некоторые эффекты, которые я не понимаю.

Что я сделал, так это то, что я вставляю строки в xclip с параметром loops, установленным в 1 (xclip завершается после одного события вставки с циклом, установленным в 1), например так:

echo test | xclip -loops 1 -display :0 -selection c -verbose

Затем, когда я попытался вставить на свой рабочий стол Linux Mate, я заметил следующее: вставка в веб-форму или панель поиска Firefox работала как чудо с циклами, равными 1, но вставка в адресную строку Firefox была невозможна этот.

Чтобы вставить в адресную строку Firefox, необходимо было увеличить количество циклов до 2, т.е. два события вставки были «использованы». При вставке в адресную строку Google Chrome потребовалось 4 события вставки. Даже для вставки в простой текстовый редактор, такой как Pluma, потребовалось 2 события вставки.

Но почему это? Почему иногда необходимо предоставить содержимое буфера обмена несколько раз для успешной вставки в приложение, и почему приложения ведут себя так по-разному?

0
Во IIRC есть какая-то схема для обслуживания буферов разных размеров, поэтому приложения могут также попытаться прочитать выборку несколько раз, пока они не достигнут нужного размера буфера. Кроме того, иногда программное обеспечение написано неэффективно и может вызывать одну и ту же подпрограмму несколько раз случайно. dirkt 7 лет назад 0
@dirkt Спасибо за подсказку о размерах буфера. Я не уверен, что это важно, но я только что попытался вставить тексты разного размера (до 7,5 МБ) - это все тот же эффект. SYN-cook 7 лет назад 0
Если вам нужны подробности (которые я не помню, они слишком длинные), протокол [здесь] (https://www.x.org/releases/X11R7.6/doc/xorg-docs/specs/ICCCM/ icccm.html), и я предполагаю, что должна быть возможность как-то отследить события. dirkt 7 лет назад 0

0 ответов на вопрос

Похожие вопросы