Foros del Web » Administración de Sistemas » Unix / Linux »

Lanzar aplicación (que utiliza sustray) al iniciar sesión (Ubuntu 11.10 - Unity)

Estas en el tema de Lanzar aplicación (que utiliza sustray) al iniciar sesión (Ubuntu 11.10 - Unity) en el foro de Unix / Linux en Foros del Web. Quiero lanzar una aplicación que es un JAR al iniciar mi sesión. La gracia, y creo causa del problema, es que esta se lanza en ...
  #1 (permalink)  
Antiguo 12/01/2012, 22:42
Avatar de maturano  
Fecha de Ingreso: enero-2010
Ubicación: /home/
Mensajes: 537
Antigüedad: 14 años, 3 meses
Puntos: 36
Pregunta Lanzar aplicación (que utiliza sustray) al iniciar sesión (Ubuntu 11.10 - Unity)

Quiero lanzar una aplicación que es un JAR al iniciar mi sesión. La gracia, y creo causa del problema, es que esta se lanza en el systemtray.

La aplicación se llama Tomighty, para lanzarlo ejecuto el siguiente comando desde terminal:
Código BASH:
Ver original
  1. $ /usr/lib/jvm/java-7-oracle/bin/java -jar /opt/tomighty-0.7.1.jar

... y se debería ver así una vez arrancada: (es el tomate de la izquierda).

Cuando coloco la instrucción desde la opción que me da Ubuntu para arrancar el programa (botón superior derecho > Startup Applications...), simplemente no hace nada, no arranca. Ante esto, creé un script para lanzarlo y direccionar la salida a un archivo e indico la ruta de este script en el cuadro de dialogo de Ubuntu.
Código BASH:
Ver original
  1. #!/bin/bash
  2.  
  3. /usr/lib/jvm/java-7-oracle/bin/java -jar /opt/tomighty-0.7.1.jar > /tmp/tomighty 2>&1

Es entonces que tengo lo siguiente en el archivo donde mando la salida:
Código:
Jan 12, 2012 9:58:38 PM org.tomighty.log.Log info
INFO: Loading messages for locale en_US
Jan 12, 2012 9:58:38 PM org.tomighty.log.Log info
INFO: Messages not available for locale en_US.
Exception in thread "main" java.lang.UnsupportedOperationException: The system tray is not supported on the current platform.
	at java.awt.SystemTray.getSystemTray(SystemTray.java:173)
	at org.tomighty.ui.tray.AwtTray.iconSize(AwtTray.java:28)
	at org.tomighty.resources.TrayIcons.tomato(TrayIcons.java:43)
	at org.tomighty.ui.TrayManager.initialize(TrayManager.java:63)
	at org.tomighty.ioc.Factory.create(Factory.java:45)
	at org.tomighty.ioc.Container.create(Container.java:61)
	at org.tomighty.ioc.Container.get(Container.java:50)
	at org.tomighty.ioc.Container.get(Container.java:43)
	at org.tomighty.Tomighty.main(Tomighty.java:58)
Estoy entendiendo, el problema será que cuando la lanza la aplicación aún no está listo la bandeja del sistema. Viendo el archivo que se encarga de lanzar el sonido cuando inicio sesión (que viene por default), veo que tiene parámetros que parecen condicionales. Copio su contenido como ilustración:
Código:
# ~/.config/autostart/libcanberra-login-sound.desktop

[Desktop Entry]
Type=Application
Name=GNOME Login Sound
Comment=Plays a sound whenever you log in
Exec=/usr/bin/canberra-gtk-play --id="desktop-login" --description="GNOME Login"
OnlyShowIn=GNOME;Unity;
AutostartCondition=GSettings org.gnome.desktop.sound event-sounds
X-GNOME-Autostart-Phase=Application
X-GNOME-Provides=login-sound
X-GNOME-Autostart-enabled=false
Comparándolo con el que crea para mi aplicación, no tiene nada de eso:
Código:
# ~/.config/autostart/java.desktop

[Desktop Entry]
Type=Application
Exec=/usr/local/bin/tomighty
Hidden=false
NoDisplay=false
X-GNOME-Autostart-enabled=true
Name[en_US]=Tomighty
Name=Tomighty
Comment[en_US]=
Comment=
He intentado jugar copiando dichas "condicionales" al archivo para mi aplicación pero sin éxito. Igual podría partir del creado y cambiar solo la instrucción, pero pregunto aquí ¿cuál es la "manera correcta" de hacerlo?. No creo Ubuntu no pueda resolver esto de manera automágica ...

Gracias de antemano
__________________
I ♥ The Music!

Etiquetas: autostart, pomodoro, startup, systemtray, systray, tomighty
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:45.