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.


Antworten:


9

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

x-scheme-handler/apt=apturl.desktop

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 .

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.