Clicar no link no PDF gera milhares de processos xdg-open

2

Eu tenho um PDF com um link para uma página da web, que costumava trabalhar (ele abriria o link no firefox, via xdg-open). No entanto, quando eu clico nele agora, literalmente milhares de processos xdg-open são iniciados e o plasma-desktop é executado em 100% cpu.

Não sei como começar a solucionar isso. O que poderia causar esse problema?

Um exemplo de um PDF com problema é aqui .

Aqui está uma captura de tela do que acontece. Observe a barra de tarefas corrompida devido a milhares de instâncias abertas no xdg

    
por Supernormal 22.09.2015 / 14:01

3 respostas

0

Parece que o culpado foi uma configuração ruim no Dolphin, onde a ação padrão "abrir como" para arquivos html era xdg-open, o que eu acho que causou um loop infinito. Depois de alterar o programa padrão para o Firefox, ele funciona como esperado.

Eu teria pensado que ter selecionado o Firefox em "Configurações do Sistema / Programas Padrão" seria suficiente, mas aparentemente não.

    
por Supernormal 22.09.2015 / 21:26
3

Acabei de encontrar o mesmo problema, mas depois de abrir um link mailto: . A abordagem para depurar o problema é provavelmente semelhante à sua, no entanto.

Primeiro, encontre o que lida com o esquema mailto (ou no seu caso, http):

$ xdg-mime query default x-scheme-handler/mailto
kmailservice5.desktop

Agora, o que é kmailservice5.desktop ?

$ locate kmailservice5.desktop
/usr/share/applications/kmailservice5.desktop

Abrindo o arquivo acima mostra:

[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
...

Gostaria de saber o que o kmailservice5 faz?

$ 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.

Esta é exatamente a mesma saída que xdg-open --help ! Isso é estranho ... Eu pesquisei a fonte de kmailservice5 e encontrei o link . É um aplicativo simples que chama QDesktopServices::openUrl link (no KDE4, o aplicativo de e-mail foi explicitamente chamado por KToolInvocation::invokeMailer ; atualizar para o KDE5 é provavelmente a razão para essa quebra).

Em outras palavras, mailto: ... abre o manipulador de mailto :, que abre o manipulador de mailto :, etc. Isso nunca termina e a única maneira de terminar este loop foi emitir killall kde-open plasma-desktop .

Para resolver o problema, criei um robs-mailto.desktop com o seguinte conteúdo:

[Desktop Entry]
Type=Application
Exec=kdialog --msgbox "Rob's mailto handler: %u"
Icon=mail-message-new
MimeType=x-scheme-handler/mailto;

Name=RobsMailtoHandler

e registrou da seguinte forma:

$ xdg-mime default robs-mailto.desktop x-scheme-handler/mailto

e confirmou que foi registrado corretamente:

$ 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)
    
por Rob W 25.11.2015 / 00:25
1

Sim, não faça o xdg-open o aplicativo preferido. Porque o trabalho de xdg-open é para descobrir a aplicação preferida. Recursão infinita segue.

Em outras palavras, o xdg-open é um "cliente" do sistema de preferências mime / apps. É preciso especificar em algum lugar o que realmente é o aplicativo preferido, e isso não pode ser xdg-open em si.

Você definiu o xdg-open como o aplicativo preferido para text / html ou foi feito pela sua distro?

    
por David Faure 22.04.2016 / 17:07