manipuladores de protocolo de URL no Ubuntu Desktop

14

Havia uma maneira de registrar os manipuladores de protocolo de URL com o Gconf, que agora está obsoleto e parece não haver nenhuma maneira de fazer o mesmo com o DConf (ou Gsettings, seu wrapper recomendado).

Como se registra corretamente um manipulador de protocolo de URL desde o DConf?

Além disso, algo parece estranho para mim (como eu não entendo isso), no meu Ubuntu 12.04

O protocolo apt:// deve ser tratado pelo comando apturl . É assim com o meu navegador Opera, mas apenas porque eu adicionei esta associação específica usando o recurso de configuração do navegador. Caso contrário, no restante do ambiente:

  • Executando xdg-open apt://foo.bar opens elinks (minha www-browser alternativa).
  • A execução de gnome-open apt://foo.bar abre o SoftwareCenter.
  • Abrindo gconf-editor , vejo uma chave /desktop/gnome/url-handlers/apt cujo valor é apturl "%s" e está ativado. Esta configuração parece ser ignorada, o que é razoavelmente esperado, já que o GConf é considerado obsoleto.
  • Abrindo dconf-editor , não consigo ver nada relacionado a manipuladores ou protocolos de URL em /desktop/gnome

Parece um pouco confuso para os meus olhos (apenas brincando com este texto, nada de ruim)

O que há por baixo?

Nota: Estou procurando por algo que funcione de preferência mesmo quando o ambiente de área de trabalho completo não estiver carregado, como quando estiver executando uma sessão do i3wm com apenas gsettings-daemon (e outras coisas não relacionadas a esse caso) carregadas.

Atualizar

Outra maneira de "registrar" um manipulador de protocolo é com *.desktop arquivos e seu tipo MIME; por exemplo. MimeType=application/<the-protocol>; .

Eu encontrei um /usr/share/applications/ubuntu-software-center.desktop com este conteúdo:

[Desktop Entry]
Name=Ubuntu Software Center
GenericName=Software Center
Comment=Lets you choose from thousands of applications available for Ubuntu
Exec=/usr/bin/software-center %u
Icon=softwarecenter
Terminal=false
Type=Application
Categories=PackageManager;GTK;System;Settings;
MimeType=application/x-deb;application/x-debian-package;x-scheme-handler/apt;
StartupNotify=true
X-Ubuntu-Gettext-Domain=software-center
Keywords=Sources;PPA;Install;Uninstall;Remove;Purchase;Catalogue;Store;

Este explica por que gnome-open apt://foo.bar abre o SoftwareCenter em vez de apturl .

Então eu instalei este apturl.desktop em ~/.local/share/applications :

[Desktop Entry]
Encoding=UTF-8
Version=1.0
Type=Application
Terminal=false
Exec=/usr/bin/apturl %u
Name=APT‑URL
Comment=APT‑URL handler
Icon=
Categories=Application;Network;
MimeType=x-scheme-handler/apt;

Depois de update-desktop-database e mesmo após a reinicialização, xdg-open e gnome-open ainda fazem o mesmo e ignoram esse arquivo da área de trabalho do usuário, que como sempre acontece com os arquivos da área de trabalho do usuário, deve substituir o em /usr/share/applications/ . / p>

Talvez exista algo especial com arquivos da área de trabalho especificando o tipo x-scheme-handler MIME e eles não são tratados da maneira usual.

O caminho do arquivo da área de trabalho não responde à pergunta.

    
por Hibou57 21.08.2014 / 09:04

2 respostas

8

Abra ~/.local/share/applications/mimeapps.list e adicione uma linha como:

x-scheme-handler/apt=apturl.desktop
    
por angel 26.02.2016 / 02:16
2

xdg-mime

Talvez seja mais elegante (altere "apt" para qualquer outro novo esquema):

  1. Verifique os tipos de mime registrados em /usr/share/applications/defaults.list .
  2. Adicione o arquivo apt.desktop a ~/.local/share/applications/ ou /usr/share/applications/ ( aqui exemplos ).
  3. update-desktop-database - Construa banco de dados de cache de tipos MIME manipulados por arquivos da área de trabalho
  4. Registre um protocolo com

    xdg-mime default apt.desktop x-scheme-handler/apt'
    

    Isso adicionará o novo tipo MIME do esquema a ~/.local/share/applications/mimeapps.list . Você pode registrar o novo tipo MIME para todos os usuários no sistema sudo xdg-mime install --mode system <xml file> .

Teste com xdg-open "apt://foo.bar"

    
por Pablo Bianchi 08.04.2018 / 21:04

Tags