So registrieren Sie ein Shell-Skript als Hauptanwendung für eine bestimmte Dateierweiterung

7

Ich habe ein Shell-Skript "the_script", das ich als Standardanwendung für die Dateien mit der Erweiterung ".ext" registrieren möchte. Zu diesem Zweck habe ich eine XML-Datei geschrieben, um den MIME-Typ zu registrieren, und eine Desktop-Datei, um die Anwendung dem MIME-Typ zuzuordnen. Das Skript hat das ausführbare Bit für den Benutzer und ist im Pfad des Benutzers verfügbar.

Die XML-Datei mit dem Namen "the_script.xml" lautet wie folgt:

<?xml version="1.0" encoding="UTF-8"?>
<mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info">
    <mime-type type="application/x-the-script">
        <comment>A file for the script</comment>
        <glob pattern="*.ext"/>
    </mime-type>
</mime-info>

Dann rannte ich xdg-mime install --novendor the_script.xml.

Die .desktop-Datei mit dem Namen "the_script.desktop" lautet wie folgt:

[Desktop Entry]
Version=1.0

Type=Application
MimeType=application/x-the-script

Name=The script that manages .ext files

Comment=Interpreter for .ext files

TryExec=the_script
Exec=the_script %f
Terminal=false

Und ich lief xdg-desktop-menu install --novendor the_script.desktop, um die Datei zu registrieren.

Sobald beide Dateien registriert sind, werden die .ext-Dateien nicht mehr mit dem Texteditor geöffnet, aber Gnome teilt mir mit, dass für die Dateien "Eine Datei für das Skript" keine Anwendung installiert ist.

Ich habe andere Dateiformate erfolgreich bei anderen Anwendungen registriert. Die anderen Anwendungen waren kompilierte Programme, während the_script ein Shell-Skript ist. Das ist der einzige Unterschied, den ich sehen kann. Wie kann ich mein Skript mit den .ext-Dateien registrieren?

julien
quelle
Benötigen Sie das für die Anwendungsbereitstellung? In diesem Fall würde meine Antwort natürlich nicht helfen.
Htorque
@htorque Es ist noch keine Bereitstellung erforderlich. Die Beschreibung Ihrer Problemumgehung für die Benutzer ist im Moment eine akzeptable Lösung. Trotzdem würde ich eine Lösung bevorzugen, die eine Bereitstellung ermöglicht (Änderungen in der .desktop-Datei? Ändern des Interpreters im Skript? (Derzeit / bin / sh))
Juli

Antworten:

4

Wenn Sie dies tun xdg-open foo.ext, scheint dies von einem Terminal aus einwandfrei zu funktionieren. In Nautilus scheint es jedoch nicht zu funktionieren, es sei denn, Sie definieren Ihr Skript als Standard für das Öffnen der * .ext-Datei:

  • Wählen Sie eine solche Datei aus,
  • Rechtsklick,
  • Wählen Sie Eigenschaften ,
  • Wählen Sie die Registerkarte Öffnen mit ,
  • Klicken Sie auf Andere Anwendungen anzeigen ,
  • Wählen Sie Ihr Skript aus (sollte das Skript sein, das .ext-Dateien verwaltet ),
  • Klicken Sie auf Als Standard festlegen und drücken Sie schließlich
  • Schließen .

Nachdem ich das getan hatte, startete das Skript von Nautilus.

htorque
quelle