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 apturl
comando. É 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.bar
abertaelinks
(minhawww-browser
alternativa). - A execução
gnome-open apt://foo.bar
abre o Centro de Software. - Abrindo
gconf-editor
, vejo uma chave/desktop/gnome/url-handlers/apt
cujo 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 *.desktop
arquivos e seu tipo MIME; por exemplo MimeType=application/<the-protocol>;
.
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 Centro de Software em vez de apturl
.
Então eu instalei isso 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 update-desktop-database
e até mesmo após a reinicialização, tanto xdg-open
e gnome-open
ainda 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-handler
tipo MIME e eles não sejam tratados da maneira usual.
O caminho dos arquivos da área de trabalho não responde à pergunta.
Respostas:
Abra
~/.local/share/applications/mimeapps.list
e adicione uma linha como:fonte
mimeapps.list
pode variar. Eu sugeriria executar uma pesquisa para o nome do arquivo.xdg-mime
Talvez mais elegante (neste exemplo eu uso "apt" , altere-o para qualquer outro esquema):
/usr/share/applications/defaults.list
.apt.desktop
arquivo ( aqui alguns exemplos ) a~/.local/share/applications/
(em todo o usuário) ou/usr/share/applications/
(em todo o sistema).update-desktop-database
Registre um protocolo com
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 sistemasudo xdg-mime install --mode system <xml file>
.Teste com
xdg-open "apt://foo.bar"
.Consulte também Adicionando um tipo MIME .
fonte