URL-Protokoll-Handler in Ubuntu Desktop

16

Es gab eine Möglichkeit, URL-Protokoll-Handler bei Gconf zu registrieren, die inzwischen veraltet ist und bei DConf (oder Gsettings, dem von Gconf empfohlenen Wrapper) anscheinend nicht mehr möglich ist.

Wie kann man einen URL-Protokoll-Handler seit DConf richtig registrieren?

Außerdem erscheint mir auf meinem Ubuntu 12.04 etwas merkwürdig (so wie ich es nicht verstehe)

Das Protokoll apt://sollte vom apturlBefehl behandelt werden. Dies ist bei meinem Opera-Browser der Fall, allerdings nur, weil ich diese spezielle Zuordnung über die Konfigurationsfunktion des Browsers hinzugefügt habe. Ansonsten in der restlichen Umgebung:

  • Laufen xdg-open apt://foo.baröffnet sich elinks(meine www-browserAlternative).
  • Laufen gnome-open apt://foo.baröffnet das Software Center.
  • Beim Öffnen gconf-editorwird ein Schlüssel angezeigt , /desktop/gnome/url-handlers/aptdessen Wert apturl "%s"aktiviert ist. Diese Konfiguration scheint ignoriert zu werden, was vernünftigerweise erwartet wird, da GConf als veraltet angesehen wird.
  • Beim Öffnen dconf-editorkann ich nichts im Zusammenhang mit URL-Handlern oder Protokollen in sehen/desktop/gnome

Es sieht ein bisschen chaotisch für meine Augen aus (nur mit dieser Formulierung zu necken, nichts Schlimmes)

Was ist darunter?

Nebenbemerkung: Ich suche nach etwas, das vorzugsweise auch dann funktioniert, wenn die vollständige Desktop-Umgebung nicht geladen ist, z gsettings-daemon.

Aktualisieren

Eine andere Möglichkeit, einen Protokollhandler zu „registrieren“, besteht darin, *.desktopDateien und ihren MIME-Typ zu verwenden. zb MimeType=application/<the-protocol>;.

Ich habe einen /usr/share/applications/ubuntu-software-center.desktopmit diesem Inhalt gefunden:

[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;

Dieser erklärt, warum gnome-open apt://foo.bardas Software Center statt öffnet apturl.

Also habe ich das installiert apturl.desktopin ~/.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;

Nach update-desktop-databaseund auch nach dem Neustart beide xdg-openund gnome-openimmer noch das gleiche tun und die Benutzer - Desktop - Datei ignorieren, die wie üblich mit Benutzer - Desktop-Dateien, sollten mit dem in außer Kraft setzen /usr/share/applications/.

Vielleicht gibt es etwas Besonderes bei Desktop-Dateien, die den x-scheme-handlerMIME-Typ angeben, und sie werden nicht auf die übliche Weise behandelt.

Die Desktop-Dateiauswahl beantwortet die Frage nicht.

Hibou57
quelle
1
Dies kann helfen: unix.stackexchange.com/a/100736
Todd Owen

Antworten:

9

Öffne ~/.local/share/applications/mimeapps.listund füge eine Zeile hinzu wie:

x-scheme-handler/apt=apturl.desktop
Engel
quelle
Ja, ich könnte es für HTTP, MAILTO und einige andere herausfinden.
Hibou57
Es gibt keinen solchen Ordner. Ich habe eine Suche von root aus durchgeführt und sie nicht gefunden.
Vlas Bashynskyi
@VlasBashynskyi, der Ort mimeapps.listkann variieren. Ich würde vorschlagen, nach dem Dateinamen zu suchen.
Hibou57
4

xdg-mime

Vielleicht eleganter (in diesem Beispiel verwende ich "apt" , ändere es für jedes andere Schema):

  1. Checken Sie die registrierten MIME-Typen ein /usr/share/applications/defaults.list.
  2. Fügen Sie die apt.desktopDatei ( hier einige Beispiele ) zu ~/.local/share/applications/(benutzerweit) oder /usr/share/applications/(systemweit) hinzu.
  3. Erstellen Sie eine Cache-Datenbank mit MIME-Typen, die von Desktop-Dateien verarbeitet werden: update-desktop-database
  4. Registrieren Sie ein Protokoll mit

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

    Dadurch wird der neue MIME-Typ für das Schema an angehängt ~/.local/share/applications/mimeapps.list. Sie können den neuen MIME-Typ für alle Benutzer im System registrieren sudo xdg-mime install --mode system <xml file>.

Testen Sie mit xdg-open "apt://foo.bar".

Siehe auch Hinzufügen eines MIME-Typs .

Pablo Bianchi
quelle