Controladores de protocolo URL en el escritorio básico de Ubuntu

16

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.barabre elinks(mi www-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 es apturl "%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.

Hibou57
fuente
1
Esto puede ayudar: unix.stackexchange.com/a/100736
Todd Owen

Respuestas:

9

Abra ~/.local/share/applications/mimeapps.listy agregue una línea como:

x-scheme-handler/apt=apturl.desktop
ángel
fuente
Sí, podría calcularlo para HTTP, MAILTO y algunos otros.
Hibou57
No hay tal carpeta. Hice una búsqueda desde la raíz y no la encontré.
Vlas Bashynskyi
@VlasBashynskyi, la ubicación de mimeapps.listpuede variar. Sugeriría ejecutar una búsqueda del nombre del archivo.
Hibou57
4

xdg-mime

Quizás más elegante (en este ejemplo utilizo "apt" , cámbielo por cualquier otro esquema):

  1. Verifique los tipos MIME registrados en /usr/share/applications/defaults.list.
  2. Agregue el apt.desktoparchivo ( aquí algunos ejemplos ) a ~/.local/share/applications/(en todo el usuario) o /usr/share/applications/(en todo el sistema).
  3. Cree una base de datos de caché de tipos MIME manejados por archivos de escritorio: update-desktop-database
  4. Registrar un protocolo con

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

    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 sistema sudo xdg-mime install --mode system <xml file>.

Prueba con xdg-open "apt://foo.bar".

Consulte también Agregar un tipo MIME .

Pablo Bianchi
fuente