LINUX.ORG.RU

CTRL+C не всегда копирует текст, помогите отладить

 , , , ,


0

4

Когда я выделяю текст в графической программе и нажимаю CTRL+C, текст копируется примерно в 9 из 10 случаев, но 1 раз не копируется, и в буфере остаются старые данные. Проблема не только с комбинацией CTRL+C, а с буфером обмена в принципе. Если в Firefox нажать правой кнопкой на ссылке и выбрать «Copy link location», ссылка не всегда копируется в буфер.

Проблема появилась примерно в Fedora 28, т.е. где-то полтора года назад. Сильно раздражает.

Сейчас пользуюсь Fedora 30, KDE 5.15.5. Пробовал менять настройки и отключать Clipboard manager KDE'шный (единственная программа, которая что-либо делает с буфером обмена) — ничего не изменилось.

У кого-нибудь наблюдается подобное? Если наблюдается, то на каком дистрибутиве и DE?

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

10.09.2019: создал баг в багтрекере Fedora: https://bugzilla.redhat.com/show_bug.cgi?id=1750903

★★★★

Ответ на: комментарий от infomeh

Точно не проблема в клавиатуре, т.к. проявляется и на внешней клавиатуре, и на клавиатуре ноутбука, и началось это сразу после обновления на Fedora 28 с Fedora 27, в тот же день.

ValdikSS ★★★★ ()
Ответ на: комментарий от ValdikSS

Funtoo, на плазме 5.12 точно было. Обновился до 5.16, пока не могу сказать, вроде не было.

Тут ещё, глюк вроде не особо достающий, я обычно делаю «copy» через контекстное меню, иногда приходится пару раз, после этого всё нормально.

Ещё, наблюдение, в konsole точно ловил, в wps-office было, а вот в sublime ни разу.

vvn_black ★★★★★ ()

Забыл важное замечание: проблема не только с комбинацией CTRL+C, а в принципе с буфером обмена. Если в Firefox нажать правой кнопкой на ссылке и выбрать «Copy link location», ссылка не всегда копируется в буфер.

ValdikSS ★★★★ ()

Бывает такое, да. 28 Федора. И ктрл-ц и через меню ПКМ перестает копировать. Потом подходит. Включен стандартный виджет буфера обмена на панели. Иксы.

При этом мышиный буфер работает, им и спасаюсь.

legolegs ★★★★★ ()
Последнее исправление: legolegs (всего исправлений: 1)

Да, есть такая проблема. Это на реальном железе происходит?

Опишу свой случай. Fedora 28+GNOME в QEMU/KVM. При подключении с любого spice-клиента под KDE локально — описанные вами проблемы.

При удаленном подключении с любого spice-клиента под KDE — описанные вами проблемы.

При удаленном подключении с любого spice-клиента под RHEL7+GNOME 3.28 — все работает без сбоев.

Я думал, это как-то со спайсом связано и до вдумчивого тестирования руки не дошли и не было надобности, т.к. чаще всего пользовался этой ВМ с ноутов на RHEL7. Сейчас потестировать не могу, к сожалению. Но может быть эти сведения будут полезны.

anonymous ()

Когда я выделяю текст в графической программе

То текст уже скопирован в один из буферов обмена.

нажимаю CTRL+C

Но зачем? Забудь свои вендовозные привычки уже.

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

Для начала надо избавится от дурной привычки нажимать CTRL+C для копирования. CTRL+C - это вообще для другого и никакого отношения к копированию не имеет.

А посмотреть содержимое буферов обмена и разобраться в какой из них попадает выделенный текст можно при помощи, например, xclip -o -selection (primary|secondary|clipboard)

Выделенное обычно попадает в primary. Извлекается оттуда средней кнопкой мыши. Всякие clibboard managers обычно копируют primary (или сохранённое в истории выделений) в clipboard откуда уже всякие DE по шорткатам таки могут вставлять текст куда-то, для вспоможения крепко сидящим на CTRL+C CTRL+V вендузятникам. Однако, далеко не факт, что все приложения будут уметь это кушать.

Вот, читай - https://specifications.freedesktop.org/clipboards-spec/clipboards-latest.txt

Stanson ★★★★★ ()
Последнее исправление: Stanson (всего исправлений: 2)
Ответ на: комментарий от anonymous

Почему оно то работает, то нет

Потому что не надо никаких CTRL+C жать.

ведет себя по-разному на разных системах

Потому что настроить можно как угодно.

очень неочевидно

Как раз всё очевидно. выделил мышью - ткнул средней кнопкой где надо. Если хочется большего - типа многоуровневого clipboard, всяких шорткатов и прочего - то уж сам настраивай как тебе нужно. Или пользуйся тем, что настроили меинтейнеры твоего дистрибутива. Обычно все непонятки вендузятников c иксовыми буферами обмена заканчиваются включением синхронизации primary и clipboard. Как именно всё это будет работать, и как настроить так как нужно определяется используемым clipboard manager'ом.

Stanson ★★★★★ ()
Последнее исправление: Stanson (всего исправлений: 1)
Ответ на: комментарий от anonymous

Напишите, пожалуйста, где именно и как это настраивается.

Что, для всех существующих DE, clipboard менеджеров и т.п.? Не проще ли просто документацию к своему прочитать?

Stanson ★★★★★ ()
Ответ на: комментарий от Stanson

Ну, вот мы с ТС не осилили.

ValdikSS — товарищ исключительной квалификации, наверняка разберется. Буду наблюдать. И жаль, что сейчас помочь не могу.

anonymous ()
Ответ на: комментарий от anonymous

Да, на реальном железе. Но у меня еще есть феерические проблемы с клавиатурой в любом VNC-клиенте и сервере (если быстро печатать, перестают набираться определенные буквы, причем проблема на сервере, и не лечится переподключением даже с другого компьютера), но, надеюсь, они не имеют отношения к этой теме.

ValdikSS ★★★★ ()
Ответ на: комментарий от Stanson

Я знаю о разных типах буферов, и пользуюсь ими в определенных случаях. Мне не нужно синхронизировать primary и clipboard, но я пробовал включить эту опцию в kde clipboard manager, и проблемы были те же самые. Сейчас у меня синхронизация отключена, и проблема проявляется даже тогда, когда я копирую в буфер ссылку из firefox, нажимая на ней правой кнопкой мыши и выбирая пункт «copy link location», т.е. ctrl+c не нажимается.

ValdikSS ★★★★ ()
Ответ на: комментарий от Stanson

У меня выделение и вставка средней кнопкой не работает. В иксовых приложениях работает ctrl+c и ctrl+v, в urxvt и в приложениях открытых в нём работает только ctrl+alt+c и ctrl+alt+v. Gentoo+awesome.

dm_al ()
Ответ на: комментарий от Stanson

Мне не нужно автоматическое копирование и не нужна синхронизация буферов. Я хочу, чтобы в буфер копировались данные только по моему требованию, а не по выделению. Я пользуюсь преимущественно clipboard, а не primary.

Пожалуйста, не отклоняйтесь от темы.

ValdikSS ★★★★ ()
Ответ на: комментарий от ValdikSS

Мне не нужно автоматическое копирование и не нужна синхронизация буферов.

Так выключи тогда.

Я хочу, чтобы в буфер копировались данные только по моему требованию, а не по выделению.

Блин. Ты хоть почитай как вся эта шняга в иксах устроена. По выделению как раз ничего никуда не копируется. Приложение (окно) в котором что-то выделили всего лишь заявляет что теперь оно владеет флажком (атомом) 'PRIMARY', что для всех остальных означает что теперь именно у этого приложения нужно спрашивать данные буфера выделения. Эти данные скопируются в другой процесс только при нажатии средней кнопки или при каких-то действиях clipboard менеджера, например по нажатию CTRL+C если clipboard менеджер этому обучен. При этом даже никакого реального буфера в первом приложении вообще может не быть, приложение отдающее данные может их, например, на лету создавать, например, исходя из координат выделения.

В иксах просто по-другому, не так как в венде. Тут фактически одна операция (вставить текущее выделение сюда) вместо двух (скопировать текущее выделение куда-то, вставить это скопированное сюда).

Однако, есть программки, называемые clipboard менеджерами которые могут не только сделать работу с выделениями «многослойной» и сохранять выделение при закрытии текущего владельца выделения, но и имитировать поведение венды для тех, кто неспособен забыть вендовые привычки.

Я пользуюсь преимущественно clipboard, а не primary.

Ну а иксовые приложения пользуются primary. Ну должны, по крайней мере. Однако, если они начинают лезть куда не надо и что-то куда-то самостоятельно копировать, или, например заявляют что именно у них есть данные для clipboard, то могут запросто поссорится с clipboard менеджером. Однако, обычно это всё можно настроить.

Так что прочти документацию на свой софт и на clipboard менеджер и сделай как тебе надо.

А ещё лучше - откажись от вендовых привычек. Жать что-то на клавиатуре для копирования уже выделенного мышью - просто лишние телодвижения.

Stanson ★★★★★ ()
Ответ на: комментарий от Stanson

Я не знаю ни одной установленной у меня программы, которая бы что-либо делала с primary при нажатии ctrl+c. Я не пользуюсь Windows очень давно, и ctrl+c в линуксе всегда работал стабильно и ожидаемо, до недавнего времени. Все неудобства использования primary расписаны в документе, на который вы предоставили ссылку. Меня не устраивает автоматическое копирование при выделении, я им пользуюсь редко, и оно работает только для текста. Не отклоняйтесь от темы.

ValdikSS ★★★★ ()
Последнее исправление: ValdikSS (всего исправлений: 1)
Ответ на: комментарий от Stanson

Где-то вы ошибаетесь. Я тоже не стремился чтобы копировалось по ctrl+c и даже пытался сделать копирование по тому способу, какой вы предлагаете, но оно стоит по-дефолту и ничего сделать не удалось.

dm_al ()
Ответ на: комментарий от ValdikSS

ctrl+c в линуксе всегда работал стабильно и ожидаемо, до недавнего времени.

Ctrl+C в линуксе всегда стабильно и ожидаемо посылал SIGINT программе в консоли. :) И до сих пор, что интересно, работает стабильно и ожидаемо.

А что там у вас там в вашем DE и софте случилось в недавнем времени - я понятия не имею. У меня в DE и в софте всё работает так как мне надо уже лет 20 и никаких проблем с копированием нету вообще, в том числе и в фаерфоксе. Правда, я не пользуюсь для копирования всякими излишними Ctrl+C/Ctrl+V. Не имея точной копии вашей системы с вашими настройками можно только гадать на кофейной гуще. Откатитесь на предыдущую версию clipboard менеджера, например, может поможет. Посмотрите что и куда попадает при помощи всяких xclip и настройте чтобы попадало туда куда надо, а не так как сейчас.

Не отклоняйтесь от темы.

Если тема «угадай что я навертел в своей системе, что у меня нечто о работе чего я понятия не имею вдруг перестало работать» - то это не та тема, которой стоит придерживаться.

Stanson ★★★★★ ()
Ответ на: комментарий от Stanson

Ну а иксовые приложения пользуются primary.

Отсыпь.

Никто не пользуется иксовыми приложениями уже лет пятнадцать. Primary буфер завязан на иксы и даже убого там захардкожен, в лучших традициях говнокодинга X.Org, из-за чего невозможно отключить вставку из-за Primary-буфера не потеряв функциональность средней кнопки мыши. Вот лично за это нужно вбить длинный гвоздь в голову иксовому быдлокодеру, который сделал подобную хрень из-за которой юзеры почти каждый месяц на ЛОРе создают такие вот темы:

У кого наблюдался глюк со средней кнопкой мыши в KDE?
Как отключить буфер обмена мыши?
[хется странного] отключить вставку средней кнопкой мыши
Отключение вставки по средней кнопке мыши
[middle click] как убрать?
Отключить мышиный буфер(вставка колесиком)

А другие пользователи вынуждены использовать ужасные костыли для обходы иксовых багов: https://askubuntu.com/a/4644

А ещё лучше - откажись от вендовых привычек.

Лучше всего отказаться от дурацких иксовых привычек. KDE взяли курс на Wayland, а иксы постепенно забросят, так что количество подобных проблем будет только возрастать из-за того, что фиксить их некому: Wayland, приложения, консистентность! Объявлены приоритеты KDE

Так что перестань засирать этот полезный тред по багу своим непопулярным виденьем того, как пользователи должны взаимодействовать с буфером обмена.

EXL ★★★★★ ()
Последнее исправление: EXL (всего исправлений: 1)
Ответ на: комментарий от Stanson

Вопрос специалисту. Выделить кусок текста, вставить на место другого куска текста.

Я делаю так: выделяю что, CTRL+Insert, выделяю куда, Shift+Insert.
Как это сделать через PRIMARY?

surefire ★★★ ()
Ответ на: комментарий от EXL

Primary буфер завязан на иксы и даже убого там захардкожен, в лучших традициях говнокодинга X.Org, из-за чего невозможно отключить вставку из-за Primary-буфера не потеряв функциональность средней кнопки мыши. Вот лично за это нужно вбить длинный гвоздь в голову иксовому быдлокодеру, который сделал подобную хрень

Затрудняюсь представить, что по-твоему нужно сделать с вендобылокодерами и макособыдлокодерами, где захардкожено столько, что линуксам до них ещё срать и срать. Иксы по сравнению с этим - просто верх конфигурябельности.

KDE взяли курс на Wayland, а иксы постепенно забросят,

Уже даже совсем не забавно слушать одно и то же на протяжении многих лет.

Так что перестань засирать этот полезный тред по багу своим непопулярным виденьем того, как пользователи должны взаимодействовать с буфером обмена.

Вообще-то весь ЛОР посвящён непопулярным видениям того, как пользователи должны взаимодействовать с ОС.

Скорей бы уже мелкософт релизнул свой MSLinux чтобы все неосиляторы и не желающие отказываться от вендовых привычек туда свалили и не постили тут свой тупняк.

Stanson ★★★★★ ()
Ответ на: комментарий от surefire

Вопрос специалисту. Выделить кусок текста, вставить на место другого куска текста.

Цель этой операции какая? Выделить кусок текста и вставить на место другого выделенного куска текста? Или всё-же заменить один текст другим?

Я делаю так: выделяю что, CTRL+Insert, выделяю куда, Shift+Insert. Как это сделать через PRIMARY?

Никак, если цель именно «Выделить кусок текста, вставить на место другого выделенного куска текста.»

А если надо просто заменить один текст другим, то выделяешь то, что ненужно, удаляешь, выделяешь то что нужно, вставляешь на место удалённого.

Stanson ★★★★★ ()
Ответ на: комментарий от Stanson

Никак

Спасибо. Пользы от PRIMARY ноль целых две десятых. Приходит на помощь только, когда копирование глючит как у топик стартера. Больше для себя не нахожу применения.

surefire ★★★ ()
Последнее исправление: surefire (всего исправлений: 1)
Ответ на: комментарий от surefire

Спасибо.

Спасибом сыт не будешь. Теперь рассказывай как в божественной и удобной венде навыделять разных кусков текста в одной программе, а потом повставлять их в разном порядке и в разные места в другой.

Stanson ★★★★★ ()
Ответ на: комментарий от surefire

А как это сделать в linux?

?? Навыделял всего что нужно, потом из clipboard history вставляешь, если вперёд-назад в ней на хоткеи повешены, вообще удобно очень. У меня на Ctrl+Back Ctlr+Forward висит, если чо.

Stanson ★★★★★ ()
Ответ на: комментарий от surefire

Я не фанат виндуса, но должен спросить для него не существует такого типа программ?

Существуют только жалкие подобия. В венде clipboard совершенно иначе устроен. Ну и необходимость постоянно жать Ctrl+C/Ctrl+V множит на ноль всё удобство.

Stanson ★★★★★ ()
Ответ на: комментарий от Stanson

Скорей бы уже мелкософт релизнул свой MSLinux чтобы все неосиляторы и не желающие отказываться от вендовых привычек туда свалили и не постили тут свой тупняк.

Агрессивность — признак тупости.

У каждого способа есть свои достоинства и недостатки.

Ctrl+C забирает текст в буфер и можно быть уверенным что текст в буфере останется даже при закрытии приложения, владевшее PRIMARY selection. Выделение без копирования очень хрупко — одно нажатие клавиши или щелчок мыши — и выделение исчезает.

Кроме того, некоторым людям приходится работать и в винде, и в линухе. Ctrl+C/Ctrl+V позволяет использовать одни и те же привычки независимо от текущей системы.

@TC: У меня F30+Gnome. Проблем с Ctrl+C не наблюдаю.

debugger ★★ ()