Xterm*selectToClipboard не работает при размещении в Xresources

У меня проблема с моим Xterm, и я не могу понять, что не так:

Мне нужно включить опцию *selectToClipboard в моем Xterm, чтобы иметь возможность копировать текст в терминале.

Для этого я сначала попытался «вручную» запустить xterm с опцией следующей команды: xterm -xrm 'xterm*selectToClipboard: true', которая работает очень хорошо.

Затем, чтобы включить эту опцию каждый раз при запуске xterm, я поместил следующую строку xterm*selectToClipboard: true в свой ~/.Xresources и использовал команду xrdb -merge ~/.Xresources для обновления настроек, но она не работает: Xterm запускается, но опция не включена, и я не могу скопируйте текст из терминала, тогда как все остальные параметры в Xresources включены и работают нормально.

Кто-нибудь знает, что может вызвать эту проблему?


person statox    schedule 10.04.2015    source источник
comment
Можете ли вы подтвердить, что слияние сработало с xrdb -query?   -  person    schedule 10.04.2015
comment
Подтверждаю: строка опций xterm*selecttoclipboard: true появляется в обоих случаях (xterm запущен вручную или xterm с опцией в Xresources)   -  person statox    schedule 10.04.2015


Ответы (2)


Ресурсы X чувствительны к регистру. В руководстве по xterm это описано как

selectToClipboard (класс SelectToClipboard)

Сообщает xterm, использовать ли PRIMARY или CLIPBOARD для токенов SELECT в механизме выбора. Действие set-select может изменить это во время выполнения, позволяя пользователю работать с программами, которые обрабатывают только один из этих механизмов. По умолчанию установлено значение «false», что указывает на использование PRIMARY.

Эта функция была добавлена ​​в xterm в патче № 209 (2006 г.). Это не дополнительная функция. Итак (при условии, что вы набрали командную строку как указано), есть несколько возможностей для проверки:

  • вы могли использовать более старую версию xterm. Чтобы проверить это, запустите

    xterm -v

Опция -v версии xterm заставит его напечатать однострочное сообщение, показывающее уровень исправления вместе с конфигурацией, для которой он был скомпилирован, например,

XTerm(261)

Инициализация вашей оболочки может иметь что-то, что отправляет эту последовательность.

xrdb -query — это один из способов проверить настройки ресурсов, но он не является безошибочным. Лучшим инструментом будет appres, например,

appres XTerm
appres UXTerm

в зависимости от того, запущен ли xterm с UXTerm значениями по умолчанию приложения или без них. В отличие от xrdb, appres показывает настройки ресурсов после учета файлов «app-defaults». (Он не видит ресурсы, примененные только к экземпляру xterm, такому как параметр -xrm).

tmux имеет функцию, которая может мешать выбору (будь то основной или буфер обмена). Это называется set-clipboard и комментируется здесь:

person Thomas Dickey    schedule 10.04.2015
comment
Плохо, я ошибся в своем вопросе, но я написал его заглавными буквами в своем Xresources (я отредактировал свой вопрос). Это все еще не работает. Я также пробовал использовать как xterm*, так и XTerm*, так как я видел оба в Интернете, но ни один из них не работает должным образом. - person statox; 10.04.2015
comment
xterm -v дает мне Xterm(278), поэтому эта функция должна быть включена. На самом деле я понимаю, что что-то может отправить нежелательную последовательность при запуске xterm, но я не знаю, как выяснить, кто мог это сделать. У меня дома нет .Xinitrc, только .Xresources, который, похоже, этого не делает. - person statox; 11.04.2015
comment
Если бы у меня было что-то необъяснимое, я бы просто скомпилировал xterm с включенной трассировкой отладки и понял, почему. - person Thomas Dickey; 11.04.2015
comment
На самом деле я понял, что это Tmux, который мешает настройке selectToClipboard. То же самое происходит с rxvt, и когда я отключаюсь от сеанса tmux, выделение в буфер обмена работает нормально. Поэтому мне нужно найти, почему он переопределяет настройки. - person statox; 11.04.2015

Короткий ответ: просто нужно добавить строку ниже в файл /etc/X11/app-defaults/XTerm

*selectToClipboard: true

Длинный ответ: Если вы посмотрите на man-страницы xterm(1):

man xterm

FILES
   The actual pathnames given may differ on your system.

...
   /etc/X11/app-defaults/XTerm
        the xterm default application resources.

   /etc/X11/app-defaults/XTerm-color
        the xterm color application resources.  If your display supports color, use this
                  *customization: -color
        in your .Xdefaults file to automatically use this resource file rather than /etc/X11/app-defaults/XTerm.  If you do not do this, xterm uses its compiled-in default resource settings for colors.
...

Я не нашел никакой ссылки на файл конфигурации пользователя для установки значений по умолчанию для приложения XTerm, за исключением XTerm-color, поэтому я не думаю, что он существует.

person ton    schedule 14.01.2016
comment
Благодарю вас! Это должен быть принятый ответ на многие вопросы о копировании и вставке Xterm. - person ; 25.08.2017