tec_maulwurf
Anmeldungsdatum: 20. Februar 2008
Beiträge: Zähle...
|
Hallo,
ich habe mir einen Starter im Startmenue erstellt → soweit OK. Dieser ruft ein Script auf das ein Java Programm startet.
Jetzt hab ich in dem eh schon kleinen Startmenue ein erneutes Icon für den Task. Kann mann das irgendwie abändern, dass dies sich wie bei den anderen Programmen verhält?
|
fckawe
Anmeldungsdatum: 23. April 2011
Beiträge: Zähle...
|
Hai, zeig doch bitte mal deine .desktop -Datei, die du dir da gebaut hast. Gruß, Gerald
|
diesch
Anmeldungsdatum: 18. Februar 2009
Beiträge: 5072
|
Unity benutzt BAMF, um die zu einem Fenster gehörende .desktop-Datei zu finden, die der Starter für die Icons benutzt. BAMF hat leider Probleme mit vielen Java-Programmen, sieht 757991
|
tec_maulwurf
(Themenstarter)
Anmeldungsdatum: 20. Februar 2008
Beiträge: Zähle...
|
| #!/usr/bin/env xdg-open
[Desktop Entry]
Version=1.0
Type=Application
Terminal=false
Icon[de_DE]=gnome-panel-launcher
Name[de_DE]=tws
Exec=~/TWS.sh
Name=tws
Icon=~/filemNPabN
|
In dem Script TWS.sh ist der Java Aufruf
| java -cp jts.jar:hsqldb.jar:jcommon-1.0.12.jar:jfreechart-1.0.9.jar:jhall.jar:other.jar:rss.jar -Xmx512M jclient.LoginFrame .
|
|
fckawe
Anmeldungsdatum: 23. April 2011
Beiträge: Zähle...
|
Dann probiere mal noch zwei Zeilen in die .desktop -Datei einzufügen: TargetEnvironment=Unity
StartupWMClass=MyFrame . Hier gibst du anstatt MyFrame deine Frame-Klasse an. Um sicher zu gehen, kannst du die mit xprop|grep WM_CLASS herausfinden.
Laut Wiki ist zumindest der zweite Punkt bei Java-Programmen wichtig. Ich meine aber, dass der erste Punkt auch notwendig sein müsste. Außerdem: du könntest (falls sonst nichts dagegen spricht) ja auch den Umweg über das Skript sein lassen und direkt den Java-Aufruf in die Starter-Datei schreiben. Gruß, Gerald
|
tec_maulwurf
(Themenstarter)
Anmeldungsdatum: 20. Februar 2008
Beiträge: 65
|
Danke, wie bekomme ich die Klasse des Fensters heraus?
xprop|grep WM_CLASS\pfad zum jts.jar (geht nicht) Lustig ist auch, dass der BAMF ? das Icon von dem java LoginFrame für das Programm verwendet.
Außerdem: du könntest (falls sonst nichts dagegen spricht) ja auch den Umweg über das Skript sein lassen und direkt den Java-Aufruf in die Starter-Datei schreiben.
In dem script wechsele ich noch vorher in das Verzeichniss des Programmes.
Wie kann man den genannten Aufruf aus jedem Verzeichniss machen?
|
fckawe
Anmeldungsdatum: 23. April 2011
Beiträge: Zähle...
|
tec_maulwurf schrieb: wie bekomme ich die Klasse des Fensters heraus?
xprop|grep WM_CLASS\pfad zum jts.jar (geht nicht)
Nein, einfach xprop|grep WM_CLASS . Dann wechselt der Mauszeiger auf ein Kreuz. Damit selektierst du dein Java-Fenster und bekommst dann die Information ausgegeben. Gruß, Gerald
|
tec_maulwurf
(Themenstarter)
Anmeldungsdatum: 20. Februar 2008
Beiträge: 65
|
WM_CLASS(STRING) = "sun-awt-X11-XFramePeer", "jclient-LoginFrame" Ok super,
wenn ich | StartupWMClass=jclient-LoginFrame
|
einfüge kommt kein zweites Icon mehr.
Der Starter hat aber leider keine Fokus-Funktion
|
fckawe
Anmeldungsdatum: 23. April 2011
Beiträge: 509
|
tec_maulwurf schrieb: Der Starter hat aber leider keine Fokus-Funktion
Was meinst du damit genau? Bekommt das Fenster keinen Fokus, wenn es schon offen ist und du auf den Starter klickst? Ich habe gerade mal ein kleines Beispiel zusammengeschrieben - da scheint das aber zu funktionieren. Oder geht es um was anderes? Gruß, Gerald
|
tec_maulwurf
(Themenstarter)
Anmeldungsdatum: 20. Februar 2008
Beiträge: 65
|
Was meinst du damit genau? Bekommt das Fenster keinen Fokus, wenn es schon offen ist und du auf den Starter klickst?
Ja, dass meinte ich.
Doch heute nach einem Neustart funktioniert es. 👍
Besten Dank
|
fckawe
Anmeldungsdatum: 23. April 2011
Beiträge: 509
|
Gern geschehen! Was so ein Neustart so alles bewirken kann... ☺
|
flohuels
Anmeldungsdatum: 15. November 2007
Beiträge: 209
|
Da habe ich doch gerade heute zufällig das gleiche Problem 😉 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 | mein Starter:
[Desktop Entry]
Version=1.0
Encoding=UTF-8
Name=Tantrix
GenericName=Online Board Game
Comment=tantrix.com Lobby als flohuels starten
Exec=/home/florian/bin/tantrix
Icon=/home/florian/Bilder/Icons/Tantrix.png
Terminal=false
Type=Application
StartupNotify=false
Categories=Game;BoardGame;StrategyGame;
OnlyShowIn=Unity;GNOME;KDE;Xfce;LXDE;
StartupWMClass=sun-applet-Main
/home/florian/bin/tantrix:
#!/bin/bash
UN=flohuels
PW=`zenity --entry --text="Passwort für $UN:" --hide-text`
exec appletviewer "http://tantrix.com/cgi-bin/gs_logon.cgi?pname=$UN&passwd=$PW&language=german"
|
Funktioniert soweit alles, nur kann ich nach dem Starten durch klick auf den Starter nicht das bereits geöffnete Java-Fenster fokussieren (auch nach Neustart nicht), sondern nur das vorher erscheinende Zenity-Fenster (siehe Script) - habe die WM-Klasse genau wie beschrieben ermittelt ("sun-applet-Main"). Oder liegt es an Appletviewer..? Im Unity-Dock erscheint nach dem Starten ein neues Icon mit dem Java-Männchen :-/
|
fckawe
Anmeldungsdatum: 23. April 2011
Beiträge: 509
|
@flohuels Probier doch mal noch TargetEnvironment=Unity einzufügen. Weiß aber nicht wirklich, ob's daran liegen kann. Weiß auch nicht, ob man da mehrere eintragen kann (wie bei OnlyShownIn ). Gruß, Gerald
|
flohuels
Anmeldungsdatum: 15. November 2007
Beiträge: 209
|
@fckawe Danke für den Tip, aber das hat auch nichts bewirkt :-/ ich werde heute abend mal das Script etwas anpassen, vielleicht liegt's daran 😉
|