Wie starte ich eine Xulrunner-App mit einer Desktop-Verknüpfung?

7

Ich habe eine einfache xulrunner-App erstellt, die beim Aufrufen über die Befehlszeile hervorragend funktioniert.

clain@desktop:~$ xulrunner /home/clain/myapp/application.ini

Das Problem ist, dass ich das Terminal offen halten muss, während die App ausgeführt wird. Gibt es eine Möglichkeit, die App mit einer Desktop-Verknüpfung / einem Desktop-Eintrag zu starten?

Ich habe versucht, eine Desktop-Eintragsdatei wie unten zu erstellen, aber beim Ausführen wurde die Fehlermeldung "Ungültige Desktop-Eintragsdatei: '/ home / clain / Desktop / myapp'" angezeigt.

[Desktop Entry]
Version=1.0
Encoding=UTF-8
Name=MyApp
GenericName=MyApp XulRunner
Exec=xulrunner /home/clain/myapp/application.ini
TryExec=xulrunner /home/clain/myapp/application.ini
Terminal=false
Type=Application
MimeType=text/xml;application/xhtml+xml;application/x-javascript;application/x-php;application/x-java;text/x-javascript;text/html;text/plain;

Name[en_IN]=MyApp
Comment[en_IN]=Standalone MyApp SSB

Ich laufe auf Lubuntu 14.04 LTS (Trusty Tahr)

Clain Dsilva
quelle
Zum einen gibt es einen Tippfehler: Terminal=flase(false). Nicht sicher, ob das auch in der eigentlichen Datei ist?
Jacob Vlijm
@JacobVlijm nein das ist ein Tippfehler von meinem Ende Ich habe es gerade korrigiert, die Reeal-Datei hat es richtig
Clain Dsilva

Antworten:

4

Sie haben mehrere Möglichkeiten.

Sie können entweder über den grafischen "Befehl ausführen" ausführen - das entspricht Windows+ R. Sie finden dies auch im Startmenü unter Windows.

Unter Ubuntu öffnen Sie dies mit Alt+ F2:

Und auf lubuntu ist es "Menü" -> "Ausführen".

Führen Sie dann den Befehl aus

xulrunner /home/clain/myapp/application.ini

grafisch, ohne dass ein Terminal benötigt wird.


Ihre zweite Option besteht darin, in einem Terminal zu laufen, aber die Verknüpfung vom Terminal mit dem &Zeichen wie folgt aufzuheben :

xulrunner /home/clain/myapp/application.ini &

Dadurch wird es als separater Prozess gestartet. Hier ist ein Beispiel mit Gedit:

Wie Sie sehen, kann ich einen anderen Befehl ausführen, ohne Gedit zu beeinflussen. Es wird weiterlaufen. Wenn ich &das Terminal nicht benutzen würde, wäre das Terminal angeschlossen. Wenn Sie das Terminal schließen, wird folgende Meldung angezeigt:

Und wenn ich es schließe, hört Gedit natürlich auf. Wenn ich das benutze &, gibt es keinen aktiven Prozess, so dass das Terminal einfach geschlossen werden kann.


Wenn Sie wirklich eine Desktop-Verknüpfung benötigen, können Sie diese .desktopDatei verwenden.

[Desktop Entry]
  Version=1.0
  Encoding=UTF-8
  Name=MyApp
  Exec=xulrunner /home/tim/xulrunner/application.ini
  Terminal=false
  Type=Application

Ich habe die unnötigen Teile herausgeschnitten, damit das funktioniert. Fügen Sie in der Zeile Icon = /path/to/iconname.svgein Symbol hinzu.

Beachten Sie auch, dass Sie einfach ein Symbol setzen können ~/.iconsoder /usr/share/icons. Wenn Ihr Symbolname "MyApp.svg" lautet, verwenden Sie einfach die Zeile Icon = MyApp.

Wenn Sie immer noch die Zeile "TryExec" möchten, die nicht benötigt wird, erklärt die Antwort von AB, warum Sie dies tun.

Tim
quelle
er fragt eindeutig nach lubuntu
j0h
Ja, er ist ein guter Punkt
Tim
1

Die Eingabe TryExecist falsch und das ist der Grund für Ihre Fehlermeldung:

Ungültige Desktop-Eintragsdatei: '/ home / clain / Desktop / myapp'

Die Definition für TryExecist

Pfad zu einer ausführbaren Datei auf der Festplatte, mit der ermittelt wird, ob das Programm tatsächlich installiert ist. Wenn der Pfad kein absoluter Pfad ist, wird die Datei in der Umgebungsvariablen $ PATH nachgeschlagen. Wenn die Datei nicht vorhanden oder nicht ausführbar ist, wird der Eintrag möglicherweise ignoriert (z. B. nicht in Menüs verwendet).

Verwenden

TryExec=xulrunner

da

xulrunner /home/clain/myapp/application.ini

ist keine ausführbare Datei. Es ist eine ausführbare Datei mit einem Parameter.

AB
quelle
0

Sie können ein Skript wie folgt schreiben:

#!/bin/bash
xulrunner /home/clain/myapp/application.ini

Speichern Sie dann das Skript an einem Ort, an dem ich zum Beispiel "myapp" rufe. Sie können myapp dann ausführbar machen, indem Sie den Befehl eingeben chmod +x myapp oder mit der rechten Maustaste auf die Datei klicken, die Registerkarte Berechtigungen aufrufen und das Kontrollkästchen ausführbar machen aktivieren.

Sie können dann ein Skript für einen Systembefehl lnerstellen , indem Sie mit dem Befehl einfach irgendwo im PATH einen symbolischen Link zu myapp einfügen. echo $PATHum zu sehen, welche Möglichkeiten Sie haben. Ich werde "/ usr / local / bin" verwenden.

dann gibst du einen Befehl wie folgt: sudo ln -s /absolute/path/to/myapp /usr/local/bin/myapp

oder um ein Desktop-Symbol zu erstellen:

ln -s /absolute/path/to/myapp /home/user/Desktop/myapp

Jetzt kann Ihre App über die Befehlszeile verwendet werden. Sie können $ myapp eingeben und sie wird ausgeführt.

Jetzt können Sie Bedienfelder erstellen oder benutzerdefinierte Starter starten, die Ihr Terminal nicht belegen, obwohl sie das Terminal anrufen.

Alternativ xulrunner /home/clain/myapp/application.ini & ist dies kein schlechter Rat, aber wenn Sie ein Skript, einen Link und / oder benutzerdefinierte Starter erstellen, müssen Sie dieses Zeug nie wieder eingeben. Sie können mit der rechten Maustaste auf das Bedienfeld klicken und "Zum Bedienfeld hinzufügen" auswählen und dann den benutzerdefinierten Anwendungsstarter auswählen. Dann können Sie den Befehl "myapp" geben oder das Skript direkt aufrufen.

j0h
quelle
Ein symbolischer Link ist keine .desktop-Datei
Tim