Сначала заблуждение:
любой выделенный текст немедленно отправляется в буфер обмена
На самом деле текст никогда нигде не «отправляется», пока не будет запрошено принимающим приложением. При выборе текста, приложение только утверждает , что выбор, что означает , в основном , что она поднимает флаг , чтобы сказать , что отныне он владеет.
Теперь к вашему вопросу:
В X11 может быть несколько вариантов выбора. 2 из них имеют известные имена и стандартизированы. Они называются ПЕРВИЧНЫЕ и КЛАПАНОВЫЕ. Их соответствующие обычные поведения следующие:
- ПЕРВИЧНЫЙ
- Приложения требуют ПЕРВИЧНОГО, когда текст выделен
- Приложения запрашивают ПЕРВИЧНОЕ из приложения-владельца и вставляют его содержимое по среднему щелчку.
- CLIPBOARD
- Приложения требуют CLIPBOARD, когда дается явная команда, обычно Ctrl- c.
- Приложения запрашивают CLIPBOARD из приложения-владельца и вставляют его содержимое, когда дается явная команда, обычно Ctrl- v.
- Могут быть дополнительные правила, в которых я не уверен, например, если ни одно приложение не владеет CLIPBOARD, но какое-то приложение владеет PRIMARY, вместо него вставьте основной файл Ctrl- v.
Кажется, CLIPBOARD уже делает то, что вам нужно. Вы можете игнорировать PRIMARY, если хотите (но учтите, что некоторые старые приложения, такие как, xterm
могут поддерживать только PRIMARY). Лично я поступаю наоборот: я игнорирую CLIPBOARD и использую только PRIMARY. Я думаю, что именно так я научился использовать X11, я даже не знал, что сначала была CLIPBOARD. Но для того, чтобы смягчить проблему, которую вы описываете, я часто хотел бы, чтобы имелся пригодный для восприятия и доступный стек ПЕРВИЧНЫХ выборов, чтобы я мог "всплыть" к предыдущему выбору, после того, как выбил другой.
В ответ на ваш явный вопрос о том, можно ли отключить ПЕРВИЧНОЕ поведение, я думаю, что это будет довольно сложно. Самый простой способ - это индивидуально отключить его в каждом приложении (или наборах инструментов, которые используют приложения), что, безусловно, невозможно. Я предполагаю, что может быть создан своего рода «брандмауэр X11», который блокирует запросы на утверждение PRIMARY, но я не думаю, что это действительно купит вам больше, чем вы уже можете получить, игнорируя PRIMARY и используя только CLIPBOARD.
Дополнительная информация: в чем разница между основным выбором и буфером обмена?