Come creare e bloccare il collegamento Unity a un comando / shellscript specifico


9

Questo non è un duplicato poiché ho trascorso molto tempo nel tentativo di trovare una soluzione da Ask Ubuntu e Googling, senza risultati. Si tratta di un problema specifico dopo aver bloccato correttamente il collegamento su Unity.

Il comando che sto tentando di bloccare è:

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

Bene, quindi le cose che ho provato sono:

  1. Creare manualmente rdesk.desktop che utilizzi l'applicazione rdesktop con alcuni parametri di comando per connettersi a una macchina remota e accedere automaticamente. Posso trascinare con successo questo launcher su Unity.

  2. Crea un programma di avvio tramite l'utilità del menu principale, premendo l'icona di Ubuntu e avviando la sessione da lì, quindi bloccando l'icona di rdesktop che appare all'avvio.

Entrambi i metodi funzionano in parte. Posso ottenere una bella scorciatoia con l'icona di mia scelta nella barra delle attività con (1), ma facendo clic su questa scorciatoia appare una seconda icona (rdesktop reale) nella parte inferiore della barra Unity. Appuntare questa seconda icona funziona, ma in realtà non fa nulla dopo aver fatto clic DOPO aver chiuso la sessione. L'icona appuntata del metodo (2) si comporta esattamente allo stesso modo.

Al passaggio del mouse, la seconda icona mi mostra: rdesktop - 192.168.1.103

Come posso creare un collegamento al comando rdesktop con parametri e aggiungerlo a Unity in modo che l'icona su cui faccio clic venga evidenziata e risponda ai clic anche dopo aver chiuso la sessione? In alternativa, suppongo che potrei in qualche modo modificare la seconda icona appuntata per lavorare con i parametri corretti in modo che rdesktop si aprisse effettivamente, non riuscivo a trovarlo da nessuna parte nel file system per dare un'occhiata.

Modifica: ecco la mia voce .desktop che ho trascinato in Unity

[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

Ecco uno screenshot per chiarimenti:

inserisci qui la descrizione dell'immagine

Uno in alto nero evidenziato è il mio .Desktop, e quello in basso è quello che ottengo quando lo faccio clic. In realtà la tomaia funzionerà solo una volta, e se la sblocco e la trascino su Unity, funzionerà di nuovo, una volta.

Risposte:


11

Devi configurare WMClass per rdesktop nel tuo file .desktop. Questo funziona per me:

[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=

Per ottenere la WMClass di qualsiasi finestra in esecuzione, è necessario utilizzare questo comando:

xprop

e fare clic sulla finestra che si desidera identificare. Cerca il valore di WM_CLASS nell'output o grep se preferisci un output più piccolo:

xprop | grep WM_CLASS

Non può essere così complicato creare una scorciatoia in Unity ?!
Dan Dascalescu,

Queste non sono istruzioni per creare un collegamento generico, questa soluzione è necessaria solo quando il programma che corrisponde ai nomi Windows e Programmi non è in grado di farlo.
Javier Rivera,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.