Cómo crear y anclar el acceso directo de Unity a un comando / shellscript específico

9

Esto no es un duplicado, ya que he pasado un buen rato tratando de encontrar una solución de Ask Ubuntu and Google, sin éxito. Es un problema específico después de fijar con éxito el acceso directo a Unity.

El comando que intento anclar es:

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

Muy bien, entonces las cosas que he probado son:

  1. Cree manualmente rdesk.desktop que usaría la aplicación rdesktop con algunos parámetros de comando para conectarse a una máquina remota e iniciar sesión automáticamente. Puedo arrastrar con éxito este lanzador a Unity.

  2. Cree un iniciador a través de la utilidad del menú principal, presionando el ícono de Ubuntu e iniciando la sesión desde allí, luego fijando el ícono real de rdesktop que aparece al iniciar.

Ambos métodos funcionan en parte. Puedo obtener un buen acceso directo con el icono de mi elección en la barra de tareas con (1), pero al hacer clic en este acceso directo aparece un segundo icono (real rdesktop) en la parte inferior de la barra de Unity. Fijar este segundo icono funciona, pero en realidad no hace nada una vez que haga clic DESPUÉS de que haya cerrado la sesión. El icono anclado del método (2) actúa exactamente igual.

Al pasar el mouse, el segundo icono me muestra: rdesktop - 192.168.1.103

¿Cómo puedo crear un acceso directo al comando rdesktop con parámetros y anclarlo a Unity para que el icono en el que hago clic se resalte y responda a los clics incluso después de cerrar la sesión? Alternativamente, supongo que de alguna manera podría editar el segundo ícono anclado para que funcione con los parámetros correctos de modo que rdesktop se abra realmente, simplemente no pude encontrarlo en ningún lugar del sistema de archivos para echar un vistazo.

Editar: aquí está mi entrada .desktop que arrastré a 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

Aquí hay una captura de pantalla para aclarar:

ingrese la descripción de la imagen aquí

El negro superior resaltado es mi .Desktop, y el inferior es lo que obtengo cuando hago clic en él. La parte superior en realidad solo funcionará una vez, y si la desabrocho y la vuelvo a unir a Unity, volverá a funcionar, una vez.

rojo
fuente

Respuestas:

11

Debe configurar WMClass en rdesktop en su archivo .desktop. Esta funciona para mí:

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

Para obtener el WMClass de cualquier ventana en ejecución, debe usar este comando:

xprop

y haga clic en la ventana que desea identificar. Busque el valor de WM_CLASS en la salida, o agréguelo si prefiere una salida más pequeña:

xprop | grep WM_CLASS
Javier Rivera
fuente
¡¿No puede ser tan complicado hacer un atajo en Unity ?!
Dan Dascalescu
Estas no son instrucciones para crear un acceso directo genérico, esta solución solo es necesaria cuando el programa que coincide con los nombres de Windows y Programas no puede hacerlo.
Javier Rivera