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 apturl
Befehl 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 sichelinks
(meinewww-browser
Alternative). - Laufen
gnome-open apt://foo.bar
öffnet das Software Center. - Beim Öffnen
gconf-editor
wird ein Schlüssel angezeigt ,/desktop/gnome/url-handlers/apt
dessen Wertapturl "%s"
aktiviert ist. Diese Konfiguration scheint ignoriert zu werden, was vernünftigerweise erwartet wird, da GConf als veraltet angesehen wird. - Beim Öffnen
dconf-editor
kann 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, *.desktop
Dateien und ihren MIME-Typ zu verwenden. zb MimeType=application/<the-protocol>;
.
Ich habe einen /usr/share/applications/ubuntu-software-center.desktop
mit 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.bar
das Software Center statt öffnet apturl
.
Also habe ich das installiert apturl.desktop
in ~/.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-database
und auch nach dem Neustart beide xdg-open
und gnome-open
immer 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-handler
MIME-Typ angeben, und sie werden nicht auf die übliche Weise behandelt.
Die Desktop-Dateiauswahl beantwortet die Frage nicht.
Antworten:
Öffne
~/.local/share/applications/mimeapps.list
und füge eine Zeile hinzu wie:quelle
mimeapps.list
kann variieren. Ich würde vorschlagen, nach dem Dateinamen zu suchen.xdg-mime
Vielleicht eleganter (in diesem Beispiel verwende ich "apt" , ändere es für jedes andere Schema):
/usr/share/applications/defaults.list
.apt.desktop
Datei ( hier einige Beispiele ) zu~/.local/share/applications/
(benutzerweit) oder/usr/share/applications/
(systemweit) hinzu.update-desktop-database
Registrieren Sie ein Protokoll mit
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 registrierensudo xdg-mime install --mode system <xml file>
.Testen Sie mit
xdg-open "apt://foo.bar"
.Siehe auch Hinzufügen eines MIME-Typs .
quelle