Erstellen und Anheften einer Unity-Verknüpfung an einen bestimmten Befehl / ein bestimmtes Shellscript

9

Dies ist kein Duplikat, da ich viel Zeit damit verbracht habe, eine Lösung von Ask Ubuntu und Googling zu finden, ohne Erfolg. Dies ist ein spezifisches Problem, nachdem die Verknüpfung zu Unity erfolgreich angeheftet wurde.

Der Befehl, den ich zu pinnen versuche, lautet:

rdesktop -u user -d DOMAIN -g 1380x849 -r sound:local -p password -x 0x80 -P -a 32 -k fi 192.168.1.103

Okay, also die Dinge, die ich versucht habe, sind:

  1. Erstellen Sie manuell rdesk.desktop, das die Anwendung rdesktop mit einigen Befehlsparametern verwendet, um eine Verbindung zu einem Remotecomputer herzustellen und sich automatisch anzumelden. Ich kann diesen Launcher erfolgreich auf Unity ziehen.

  2. Erstellen Sie einen Launcher über das Dienstprogramm "Hauptmenü", klicken Sie auf das Ubuntu-Symbol, starten Sie die Sitzung von dort aus und fixieren Sie das eigentliche rdesktop-Symbol, das beim Start angezeigt wird.

Beide Methoden funktionieren teilweise. Ich kann mit (1) eine nette Verknüpfung mit dem Symbol meiner Wahl in die Taskleiste einfügen, aber wenn ich auf diese Verknüpfung klicke, wird ein zweites (tatsächliches rdesktop) Symbol am unteren Rand der Unity-Leiste angezeigt. Das Anheften dieses zweiten Symbols funktioniert, aber nach dem Schließen der Sitzung wird nach dem Klicken nichts mehr ausgeführt. Das angeheftete Symbol aus der (2) -Methode verhält sich genauso.

Beim Überfahren zeigt mir das zweite Symbol: rdesktop - 192.168.1.103

Wie kann ich eine Verknüpfung zum Befehl rdesktop mit Parametern erstellen und an Unity anheften, damit das Symbol, auf das ich klicke, hervorgehoben wird und auch nach dem Schließen der Sitzung auf Klicks reagiert? Alternativ könnte ich das zweite angeheftete Symbol irgendwie bearbeiten, um mit den richtigen Parametern zu arbeiten, so dass rdesktop tatsächlich geöffnet wird. Ich konnte es einfach nirgendwo im Dateisystem finden, um einen Blick darauf zu werfen.

Bearbeiten: Hier ist mein .desktop-Eintrag, den ich in Unity gezogen habe

[Desktop Entry]
Name=Remotedesktop Client
Comment=Connect to a remote Windows Terminal-Server
Exec=rdesktop -u name -d DOMAIN -g 1380x849 -r sound:local -p password -x 0x80 -P -a 32 -k fi 192.168.1.103
Icon=/usr/share/icons/hicolor/scalable/apps/nm-device-wired.svg
Terminal=false
Hidden=false
Type=Application
Version=1.0
Encoding=UTF-8

Hier ist ein Screenshot zur Verdeutlichung:

Geben Sie hier die Bildbeschreibung ein

Oberes schwarz hervorgehobenes ist mein .Desktop, und das untere ist das, was ich bekomme, wenn ich darauf klicke. Das Obermaterial funktioniert tatsächlich nur einmal, und wenn ich es abhebe und auf Unity umstelle, funktioniert es einmal wieder.

rot
quelle

Antworten:

11

Sie müssen die WMClass für rdesktop in Ihrer .desktop-Datei einrichten. Dieser funktioniert für mich:

[Desktop Entry]
Version=1.0
Type=Application
Name=Gacela
Exec=rdesktop #####:####
Icon=/usr/share/icons/gacela.png
Comment=Conexion co Gacela
Categories=Internet;
Terminal=false
StartupNotify=true
StartupWMClass=rdesktop
GenericName=

Um die WMClass eines laufenden Fensters abzurufen, müssen Sie den folgenden Befehl verwenden:

xprop

und klicken Sie auf das Fenster, das Sie identifizieren möchten. Suchen Sie in der Ausgabe nach dem Wert von WM_CLASS oder grep ihn, wenn Sie eine kleinere Ausgabe bevorzugen:

xprop | grep WM_CLASS
Javier Rivera
quelle
Es kann unmöglich so kompliziert sein, eine Verknüpfung in Unity zu erstellen?!
Dan Dascalescu
Dies sind keine Anweisungen zum Erstellen einer generischen Verknüpfung. Diese Lösung wird nur benötigt, wenn das Programm, das mit Windows- und Programmnamen übereinstimmt, dies nicht kann.
Javier Rivera