Manipuladores de protocolo de URL no Ubuntu Desktop básico

16

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

Como registrar corretamente os manipuladores de protocolo de URL desde o DConf?

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

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

  • A corrida é xdg-open apt://foo.baraberta elinks(minha www-browseralternativa).
  • A execução gnome-open apt://foo.barabre o Centro de Software.
  • Abrindo gconf-editor, vejo uma chave /desktop/gnome/url-handlers/aptcujo valor é apturl "%s"e está ativado. Essa configuração parece ser ignorada, o que é razoavelmente esperado, pois o GConf é considerado obsoleto.
  • Na abertura dconf-editor, não consigo ver nada relacionado a manipuladores ou protocolos de URL em/desktop/gnome

Parece um pouco bagunçado aos meus olhos (apenas brincando com esse texto, nada de ruim)

O que há por baixo?

Nota lateral: Estou procurando algo que de preferência funcione mesmo quando o ambiente de área de trabalho completo não estiver carregado, como ao executar 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 *.desktoparquivos e seu tipo MIME; por exemplo MimeType=application/<the-protocol>;.

Encontrei um /usr/share/applications/ubuntu-software-center.desktopcom 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.barabre o Centro de Software em vez de apturl.

Então eu instalei isso apturl.desktopem ~/.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 update-desktop-databasee até mesmo após a reinicialização, tanto xdg-opene gnome-openainda fazer o mesmo e ignorar este arquivo desktop do usuário, que como de costume com desktop-arquivos do usuário, deve substituir o de /usr/share/applications/.

Talvez haja algo especial nos arquivos da área de trabalho que especifiquem o x-scheme-handlertipo MIME e eles não sejam tratados da maneira usual.

O caminho dos arquivos da área de trabalho não responde à pergunta.

Hibou57
fonte
11
Isso pode ajudar: unix.stackexchange.com/a/100736
Todd Owen

Respostas:

9

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

x-scheme-handler/apt=apturl.desktop
anjo
fonte
Sim, eu poderia descobrir isso por HTTP, MAILTO e alguns outros.
Hibou57
Não existe essa pasta. Eu fiz uma pesquisa a partir da raiz e não a encontrei.
Vlas Bashynskyi
@VlasBashynskyi, a localização de mimeapps.listpode variar. Eu sugeriria executar uma pesquisa para o nome do arquivo.
precisa saber é o seguinte
4

xdg-mime

Talvez mais elegante (neste exemplo eu uso "apt" , altere-o para qualquer outro esquema):

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

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

    Isso acrescentará o novo tipo MIME ao esquema ~/.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".

Consulte também Adicionando um tipo MIME .

Pablo Bianchi
fonte