Había una manera de registrar controladores de protocolo URL con Gconf, que ahora está obsoleto y parece que no hay forma de hacer lo mismo con DConf (o Gsettings, su contenedor recomendado).
¿Cómo se registran correctamente los controladores de un protocolo URL desde DConf?
Además, algo me parece extraño (como no lo entiendo), en mi Ubuntu 12.04
El protocolo apt://debe ser manejado por el apturlcomando. Es así con mi navegador Opera, pero solo porque agregué esta asociación específica usando la función de configuración del navegador. De lo contrario, en el resto del entorno:
- Ejecutar se
xdg-open apt://foo.barabreelinks(miwww-browseralternativa). - La ejecución
gnome-open apt://foo.barabre el Centro de software. - Al abrir
gconf-editor, veo una clave/desktop/gnome/url-handlers/aptcuyo valor esapturl "%s"y está habilitado. Esta configuración parece ignorarse, lo que es razonable esperar, ya que GConf se considera obsoleto. - Al abrir
dconf-editor, no puedo ver nada relacionado con los controladores o protocolos de URL en/desktop/gnome
Se ve un poco desordenado para mis ojos (solo bromas con esta redacción, nada malo)
¿Qué hay debajo?
Nota al margen: estoy buscando algo que preferiblemente funcione incluso cuando el entorno de escritorio completo no está cargado, como cuando se ejecuta una sesión i3wm con solo gsettings-daemon(y otras cosas no relacionadas con este caso) cargadas.
Actualizar
Otra forma de "registrar" un controlador de protocolo es con *.desktoparchivos y su tipo MIME; por ej MimeType=application/<the-protocol>;.
Encontré un /usr/share/applications/ubuntu-software-center.desktopcon este contenido:
[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 qué gnome-open apt://foo.barabre el Centro de software en lugar de apturl.
Así que instalé esto apturl.desktopen ~/.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;
Después update-desktop-databasee incluso después de reiniciar, tanto xdg-openy gnome-opentodavía hacer lo mismo e ignorar este archivo escritorio del usuario, que como de costumbre con desktop-archivos de usuario, debe pasar por encima el de /usr/share/applications/.
Tal vez hay algo especial con los archivos de escritorio que especifican el x-scheme-handlertipo MIME y no se manejan de la manera habitual.
La forma de archivo de escritorio no responde la pregunta.

Respuestas:
Abra
~/.local/share/applications/mimeapps.listy agregue una línea como:fuente
mimeapps.listpuede variar. Sugeriría ejecutar una búsqueda del nombre del archivo.xdg-mimeQuizás más elegante (en este ejemplo utilizo "apt" , cámbielo por cualquier otro esquema):
/usr/share/applications/defaults.list.apt.desktoparchivo ( aquí algunos ejemplos ) a~/.local/share/applications/(en todo el usuario) o/usr/share/applications/(en todo el sistema).update-desktop-databaseRegistrar un protocolo con
Esto agregará el nuevo tipo MIME para el esquema
~/.local/share/applications/mimeapps.list. Puede registrar el nuevo tipo MIME para todos los usuarios del sistemasudo xdg-mime install --mode system <xml file>.Prueba con
xdg-open "apt://foo.bar".Consulte también Agregar un tipo MIME .
fuente