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 apturl
comando. 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.bar
abreelinks
(miwww-browser
alternativa). - La ejecución
gnome-open apt://foo.bar
abre el Centro de software. - Al abrir
gconf-editor
, veo una clave/desktop/gnome/url-handlers/apt
cuyo 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 *.desktop
archivos y su tipo MIME; por ej MimeType=application/<the-protocol>;
.
Encontré un /usr/share/applications/ubuntu-software-center.desktop
con 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.bar
abre el Centro de software en lugar de apturl
.
Así que instalé esto apturl.desktop
en ~/.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-database
e incluso después de reiniciar, tanto xdg-open
y gnome-open
todaví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-handler
tipo 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.list
y agregue una línea como:fuente
mimeapps.list
puede variar. Sugeriría ejecutar una búsqueda del nombre del archivo.xdg-mime
Quizás más elegante (en este ejemplo utilizo "apt" , cámbielo por cualquier otro esquema):
/usr/share/applications/defaults.list
.apt.desktop
archivo ( aquí algunos ejemplos ) a~/.local/share/applications/
(en todo el usuario) o/usr/share/applications/
(en todo el sistema).update-desktop-database
Registrar 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