Нажатие на ссылку в PDF порождает тысячи процессов xdg-open.
У меня есть PDF со ссылкой на веб-страницу, которая раньше работала (она открывала бы ссылку в Firefox через xdg-open). Однако, когда я щелкаю по нему сейчас, запускаются буквально тысячи процессов xdg-open, и плазменный рабочий стол работает на 100% процессорной мощности.
Я не знаю, как начать устранять это. Что может вызвать эту проблему?
Пример проблемы PDF здесь.
Вот скриншот того, что происходит. Обратите внимание на поврежденную панель задач из-за тысяч экземпляров xdg-open
3 ответа
Похоже, виновник был плохим параметром в Dolphin, где стандартным действием "открыть как" для html-файлов было xdg-open, которое, я думаю, вызвало бесконечный цикл. После замены программы по умолчанию на Firefox она работает как положено.
Я бы подумал, что выбрав Firefox в "Системные настройки / Программы по умолчанию" было бы достаточно, но, видимо, нет.
Я только что столкнулся с той же проблемой, но затем для открытия mailto:
ссылка на сайт. Однако подход к устранению проблемы похож на ваш.
Сначала найдите, что обрабатывает схему mailto (или, в вашем случае, http):
$ xdg-mime query default x-scheme-handler/mailto
kmailservice5.desktop
Теперь, что это kmailservice5.desktop
?
$ locate kmailservice5.desktop
/usr/share/applications/kmailservice5.desktop
Открытие вышеуказанного файла показывает:
[Desktop Entry]
Type=Application
Exec=kmailservice5 %u
Icon=mail-message-new
MimeType=x-scheme-handler/mailto;
X-DocPath=kioslave5/mailto/index.html
NoDisplay=true
# KMailService is the handler for mailto URLs
Name=KMailService
...
Интересно, что kmailservice5
делает?
$ kmailservice5 --help
xdg-open -- opens a file or URL in the user's preferred
application
Synopsis
xdg-open { file | URL }
xdg-open { --help | --manual | --version }
Use 'man xdg-open' or 'xdg-open --manual' for additional info.
Это точно такой же вывод, как xdg-open --help
! Это странно... Я посмотрел источник kmailservice5
и нашел http://api.kde.org/frameworks-api/frameworks5-apidocs/kio/html/kmailservice_8cpp_source.html. Это простое приложение, которое вызывает QDesktopServices::openUrl
https://doc.qt.io/qt-5/qdesktopservices.html (В KDE4 почтовое приложение вызывалось явно черезKToolInvocation::invokeMailer
; Мое частичное обновление до KDE5, вероятно, является причиной этой поломки).
Другими словами, mailto:... открывает обработчик mailto:, который открывает обработчик mailto: и т. Д. Это никогда не заканчивается, и единственным способом завершить этот цикл было выдать killall kde-open plasma-desktop
,
Чтобы решить эту проблему, я создал robs-mailto.desktop
со следующим содержанием:
[Desktop Entry]
Type=Application
Exec=kdialog --msgbox "Rob's mailto handler: %u"
Icon=mail-message-new
MimeType=x-scheme-handler/mailto;
Name=RobsMailtoHandler
и зарегистрировал это следующим образом:
$ xdg-mime default robs-mailto.desktop x-scheme-handler/mailto
и проверил, что он правильно зарегистрирован:
$ xdg-mime query default x-scheme-handler/mailto
robs-mailto.desktop
$ xdg-open mailto:test@example.com
# (opened a KDialog window that printed the email address, as I specified)
Да, не делайте xdg-open предпочтительным приложением. Потому что задача xdg-open - найти предпочтительное приложение. Бесконечная рекурсия
Другими словами, xdg-open является "клиентом" системы предпочтений mime/apps. Нужно указать где-нибудь, что на самом деле является предпочтительным приложением, и это не может быть само xdg-open.
Вы установили xdg-open в качестве предпочтительного приложения для text / html или это сделал ваш дистрибутив?