Ich möchte zum xdg-open
Öffnen von irc://
Links verwenden, wie kann ich den erforderlichen Parameter festlegen?
Ich möchte zum xdg-open
Öffnen von irc://
Links verwenden, wie kann ich den erforderlichen Parameter festlegen?
Antworten:
xdg-open prüft im Grunde genommen nur, welche Desktop-Umgebung Sie haben, und führt dann gnome-open, gvfs-open, xfce-open usw. aus. Siehe unten für spezifische Anweisungen zur Desktop-Umgebung ...
Gnome benutzt das gnome-open-Programm, das gconf benutzt, um alles zu speichern. Zum Beispiel auf meinem Computer mit Ubuntu 10.10, auf dem gnome-open irc: // blah ausgeführt wird, wird xchat geöffnet, da xchat einen gconf-Einstellungs-Patch zum Hinzufügen eines irc: // -Handlers enthält.
Dies zeigt, wie Gnome dies tut, mit gconf-Einstellungen in /desktop/gnome/url-handlers/
. Siehe xchat-2.8.8/src/common/dbus/apps_xchat_url_handler.schemas
als Beispiel.
Für KDE sollten Sie sich die .protocol-Dateien in / usr / share / kde4 / services / ansehen, eine neue für Ihr neues Protokoll erstellen und in ~ / .kde / share / kde4 / services / ablegen, wenn es dann sehr nützlich ist Erwägen Sie, es dem Paket als Korrektur für andere Benutzer hinzuzufügen.
KDE verwendet kde-open oder kfmclient, je nachdem, was verfügbar ist und welche Version von KDE Sie haben.
XFCE verwendet ein Programm namens exo-open. Dieses Programm kann es weder konfigurieren noch Uri-Handler hinzufügen. Das Durchsehen des Quellcodes zeigt, dass mit Desktop-Dateien nur drei Arten von Programmen angegeben werden. TerminalEmulator, WebBrowser und EmailClient.
Mit XFCE4 (und wahrscheinlich auch mit anderen) ist es möglich, xdg-open so zu konfigurieren, dass ein benutzerdefinierter Protokollhandler definiert wird. In einigen Fällen müssen Sie die folgenden Dateien erstellen / bearbeiten:
~ / .local / share / applications / protocolhandler.desktop ~ / .local / share / applications / mimeapps.list
Ein Beispiel für das Hinzufügen eines Handlers für das ed2k-Protokoll finden Sie unter stackexchange.com 2 .
Ich beschreibe dies mit magnet:
URI-Typ und Übertragung (dh bei bittorent), aber die gleiche Methode kann auf jedes Schema oder jeden Dateityp angewendet werden.
Ich habe dies auch mit Debian Jessie überprüft, und ich habe tatsächlich keinen Ubuntu-Rechner, aber ich glaube, er sollte gleich funktionieren (zumindest für xdg-open , beachten Sie, dass Dateimanager möglicherweise andere Logik verwenden).
Finden Sie den MIME-Typ-String heraus. Für Datei-MIME-Typen können Sie dies mit dem Befehl file herausfinden :
$ file -i Broken_Blossoms.webm Broken_Blossoms.webm: video/webm; charset=binary $
Für die obige Datei lautet der MIME-Typ video/webm
.
Für URI - Handler, ist die Art x-scheme-handler/<scheme>
, in
der <scheme>
der Teil der URI vor Dickdarm-, zB „http“, „mailto“ „IRC“ oder „Magneten“. Es folgen Beispiele für gültige MIME-Typen:
x-scheme-handler/http
x-scheme-handler/irc
x-scheme-handler/magnet
x-scheme-handler/mailto
Ermitteln Sie den Namen der Desktop-Anwendungsdatei.
Oft ist es nicht dasselbe wie der "offizielle" Name, sondern eher eine Kleinbuchstabenversion davon oder ein völlig anderer Name. Installierte .desktop-Dateien befinden sich unter / usr / share / applications. Da es sich um normale Textdateien handelt, die den "offiziellen" Namen enthalten, kann der folgende Befehl hilfreich sein:
$ grep "Transmission" -l -r /usr/share/applications /usr/share/applications/transmission-gtk.desktop $
Der Befehl bedeutet effektiv "Dateien in diesem Verzeichnis auflisten, die das Wort" Übertragung "enthalten". Einige Anwendungen werden möglicherweise nur für Benutzer installiert. In diesem Fall lautet der Pfad
~/.local/share/applications
.
Falls Sie eine "seltsame" Anwendung haben, die die Datei möglicherweise gar nicht enthält, können Sie immer eine erstellen (und sie möglicherweise an die App-Entwickler senden). Ein einfacher Weg wäre, ein vorhandenes Feld zu kopieren, Felder, die Sie verstehen, neu zu schreiben und diejenigen zu entfernen, die Sie nicht kennen. Einzelheiten finden Sie in der Spezifikation .
Nehmen Sie die Zuweisung mit dem Befehl xdg-mime vor :
$ xdg-mime default transmission-gtk.desktop x-scheme-handler/magnet $
Beachten Sie, dass Sie unabhängig davon, wo sich die Datei tatsächlich befindet (/ usr / share / applications, ~ / .local / share / applications ...), immer nur den Namen und nicht den vollständigen Pfad verwenden.
Normalerweise gibt der Befehl nichts aus - das ist in Ordnung. Wenn Sie überprüfen möchten, was Sie gerade getan haben, oder sehen möchten, was aktuell einem MIME-Typ zugewiesen ist, ohne ihn zu öffnen:
$ xdg-mime query default x-scheme-handler/magnet transmission-gtk.desktop $
Hinweis 1: Wenn Sie andere MIME-Typen auschecken möchten, können Sie unter /etc/mime.types nachsehen. Es enthält nicht alle Arten in der Welt; Zum Beispiel die URI-Handler, aber sie könnten für "aggressive" Formen des Umgangs mit den Assoziationen verwendet werden. Beispielsweise:
grep ^video/ | cut -d\t -f1 | xargs xdg-mime default vlc.desktop
würde alle bekannten Videoformate mit VLC verknüpfen.
Hinweis 2: Die .desktop-Dateien enthalten häufig eine Liste von MIME-Typen, die sie angeblich mithilfe von MimeType
Feldern verarbeiten können. Die Manpage von xdg-mime
besagt, dass die .desktop-Datei den MIME-Typ beanspruchen muss, bevor der oben genannte Befehl ausgeführt werden kann. Bei mir scheint dies jedoch auch dann zu funktionieren, wenn das Feld fehlt. (Ich meine, die Zuordnung wird angewendet und die Anwendung wird gestartet - wenn sie wirklich mit dem Typ fertig wird, ist das eine andere Frage.) Ich bin mir nicht sicher, was ein Nachteil ist (vielleicht wird das xdg-mime in Zukunft restriktiver sein).
xdg-mime query filetype FILE
ist die XDG-Methode zum Auffinden von MIME-Typen. 2) Sie können die Standardeinstellungen auch selbst bearbeiten, um die Organisation zu verbessern und sie später zu sichern: Ist .config/mimeapps.list
die Datei.
xdg-mime query filetype xyz.wbem
OTOH gibt weniger Informationen und ist viel mehr zu tippen.
Ich wollte postman
meiner manuell installierten Postman-App (nicht der Chrome-Erweiterung) Links zuordnen, damit ich Postman-Dokumente folgendermaßen über den Browser öffnen konnte:
Der Link, den ich verknüpfen wollte, sieht folgendermaßen aus:
postman://app/collections/import/39995-2b0394ab-b007-488d-9a0a...
Um die Assoziation zu machen, habe ich die folgenden Schritte ausgeführt:
/home/andrzej.rehmann/software/postman/
/usr/share/applications/Postman.desktop
[Desktop Entry]
Version=1.0
Type=Application
Name=Postman
Icon=/home/andrzej.rehmann/software/postman/app/resources/app/assets/icon.png
Exec="/home/andrzej.rehmann/software/postman/Postman" %u
Comment=Develop with pleasure!
Categories=Development;
Terminal=false
StartupWMClass=Postman
postman
Verknüpfen Sie den xdg-Link mit der Anwendung, indem Sie Folgendes ausführen:xdg-mime default Postman.desktop x-scheme-handler/postman
Ich habe diese Konfiguration angepasst, wenn jemand daran interessiert ist: https://github.com/hoto/ansible-home-fedora/blob/fedora/roles/postman/tasks/postman_installer.yml