J'ai un PDF avec un lien vers une page Web, qui fonctionnait auparavant (il ouvrirait le lien dans Firefox, via xdg-open). Cependant, lorsque je clique dessus maintenant, littéralement des milliers des processus xdg-open sont démarrés et le plasma-desktop fonctionne à 100% cpu.
Je ne sais pas comment commencer à résoudre ce problème. Qu'est-ce qui pourrait provoquer ce problème?
Un exemple de problème PDF est ici .
Voici une capture d'écran de ce qui se passe. Notez la barre des tâches corrompue en raison de milliers d'instances xdg-open
Il semble que le coupable était un mauvais paramètre dans Dolphin, où l'action par défaut "ouvrir en tant que" pour les fichiers html était xdg-open, ce qui, je suppose, a provoqué une boucle infinie. Après avoir changé le programme par défaut en Firefox à la place, il fonctionne comme prévu.
J'aurais pensé qu'avoir sélectionné Firefox dans "Paramètres système/Programmes par défaut" aurait suffi, mais apparemment pas.
Je viens de rencontrer le même problème, mais pour avoir ouvert un mailto:
lien. L'approche pour déboguer le problème est probablement similaire à la vôtre, cependant.
Tout d'abord, trouvez ce qui gère le schéma mailto (ou dans votre cas, http):
$ xdg-mime query default x-scheme-handler/mailto
kmailservice5.desktop
Maintenant, qu'est-ce que kmailservice5.desktop
?
$ locate kmailservice5.desktop
/usr/share/applications/kmailservice5.desktop
L'ouverture du fichier ci-dessus montre:
[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
...
Je me demande quoi kmailservice5
Est-ce que?
$ 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.
C'est exactement la même sortie que xdg-open --help
! C'est bizarre ... J'ai recherché la source de kmailservice5
et trouvé http://api.kde.org/frameworks-api/frameworks5-apidocs/kio/html/kmailservice_8cpp_source.html . Il s'agit d'une application simple qui appelle QDesktopServices::openUrl
https://doc.qt.io/qt-5/qdesktopservices.html#openUrl (Dans KDE4, l'application de messagerie a été explicitement invoquée via KToolInvocation::invokeMailer
; Ma mise à niveau partielle vers KDE5 est probablement la raison de cette rupture).
En d'autres termes, mailto: ... ouvre le gestionnaire de mailto :, qui ouvre le gestionnaire de mailto :, etc. Cela ne se termine jamais et la seule façon de terminer cette boucle était d'émettre killall kde-open plasma-desktop
.
Pour résoudre le problème, j'ai créé un robs-mailto.desktop
avec le contenu suivant:
[Desktop Entry]
Type=Application
Exec=kdialog --msgbox "Rob's mailto handler: %u"
Icon=mail-message-new
MimeType=x-scheme-handler/mailto;
Name=RobsMailtoHandler
et l’a enregistré comme suit:
$ xdg-mime default robs-mailto.desktop x-scheme-handler/mailto
et vérifié qu'il était correctement enregistré:
$ xdg-mime query default x-scheme-handler/mailto
robs-mailto.desktop
$ xdg-open mailto:[email protected]
# (opened a KDialog window that printed the email address, as I specified)
Oui, ne faites pas de xdg-open l'application préférée. Parce que le travail de xdg-open est pour trouver l'application préférée. Une récursion infinie s'ensuit.
En d'autres termes, xdg-open est un "client" du système de préférences mime/apps. Il faut spécifier quelque part ce qui est réellement est l'application préférée, et cela ne peut pas être xdg-open lui-même.
Avez-vous défini xdg-open comme application préférée pour le texte/html, ou cela a-t-il été fait par votre distribution?