Wie kann ich einem Startprogramm mitteilen, dass es minimiert gestartet werden soll?

19

Hier ist eine Frage, die mich nervt. Sie wissen, wie Sie ein Programm einrichten können, das beim Start ausgeführt wird, oder? Nun, wie kann ich sagen, dass es minimiert gestartet werden soll, wie Sie es in Windows tun würden?

TeamViewer wird geöffnet, muss aber minimiert werden, und Tray-it scheint in dieser Hinsicht nicht so elegant zu sein.

Halbneuling
quelle

Antworten:

21

Sie können ein Tool namens devilspie verwenden Installiere devilspie .

Dieses Tool kann Aktionen ausführen, sobald Programme gestartet werden, z. B. Senden an Arbeitsbereiche, Fixieren und Minimieren. Ein Tutorial ist hier .

  • So installieren Sie es über die Befehlszeile:

sudo apt-get install devilspie.

  • So konfigurieren Sie Teamviewer so, dass es bei jeder Ausführung minimiert wird:

    mkdir ~/.devilspie

Erstellen Sie eine Datei mit dem Namen ~/.devilspie/teamviewer.dsund fügen Sie die folgenden Zeilen ein:

(if  
(is (application_name) "Teamviewer")  
(begin (minimize) )  
)  

Wenn Sie eine GUI zur einfacheren Konfiguration möchten, sollten Sie gdevilspie zur Kenntnis nehmen Installieren Sie gdevilspie

(Wenn GDevilspie nicht startet, versuchen Sie es mit einem Patch ).

MJB
quelle
1
Dies funktioniert, aber wenn ich das minimierte Fenster wiederherstellen zieht falsch - der Hintergrund des Fensters wird Teamviewer eine Kopie von was auch immer darunter ist und etwas Text nicht sichtbar ist , zB i.imgur.com/0p6yR.png (ich habe verdeckt Text in den drei Textfeldern). Andere Wein-Apps tun dies nicht (Notepad ++, Picasa).
Misterben
5

Ich bin über diesen Beitrag gestolpert, als genau dasselbe Problem auftrat, bei dem TeamViewer nicht minimiert gestartet wurde, wenn es für den automatischen Start während des Systemstarts von Ubuntu eingerichtet wurde.
Die von @MJB am 27. Januar um 16:02 beschriebene Methode funktionierte perfekt für mich (ich verwende Ubuntu 10.10 32bit, alle bis zu diesem Datum installierten Updates, mit teamviewer_linux_x32_v6.0.9224.deb).
Ich erlebe die von @misterben am 14. Februar um 18:50 beschriebenen Störungen nicht.
Ich habe GDevilspie über das Ubuntu Software Center installiert, ausgeführt, eine neue Regel erstellt und GDevilspie so eingerichtet, dass auf der Registerkarte "Raw" der folgende Code angezeigt wird:

( if 
( begin 
( is ( application_name ) "Teamviewer" )
( is ( window_name ) "TeamViewer" )
) 
( begin 
( minimize )
( println "match" )
)
)

Der devilspie-Daemon wird so eingestellt, dass er beim Systemstart automatisch startet, und der Teamviewer wird so eingestellt, dass er automatisch über System -> Einstellungen -> Anwendungen starten startet (klicken Sie auf Hinzufügen, Befehl: Teamviewer).

Es wäre toll, wenn die Entwickler von TeamViewer einen startminimierten Switch für Linux integrieren würden ...

Vielen Dank, MJB! :)

qwertz
quelle
4

Das Minimieren eines Programms hängt vom Programm ab, ob es dies unterstützt oder nicht. Es hängt auch davon ab, ob das Programm eine Option in der Benutzeroberfläche oder über die Befehlszeile hat. Zum Beispiel hat vlc eine Option in den Einstellungen, die die Möglichkeit bietet, es minimiert zu starten. Es hat aber auch eine Option in der Kommandozeile, um es minimiert zu starten (wie Parameter). Die Option zum Minimieren ändert sich ebenfalls je nach Programm. Einige Programme könnten program -minandere sein program -systray, usw. Stellen Sie sicher , dass Teamviewer beispielsweise in den GUI-Optionen eine Option dafür hat. Wenn das Programm über einen Parameter zum Minimieren der Befehlszeile verfügt, fügen Sie ihn einfach dem Start-Manager hinzu.

Luis Alvarado
quelle
Teamviewer verwendet Wine, um die Ausführung unter Linux zu unterstützen. Da die Windows-Versionen keine Befehlszeilenparameter akzeptieren, gilt dies auch für die Linux-Version nicht. Wenn Sie es in das Fach minimieren, wird das Weinsymbol verwendet, es sei denn, ein anderes wird von einem der verwendeten Tools bereitgestellt.
Greg Chabala
1

Ich minimiere Teamviewer auch beim Start in die Taskleiste, verwende aber KDocker .

sudo apt-get install kdocker

Mein Startskript besteht aus einer Zeile:

kdocker -n Teamviewer -i /opt/teamviewer/teamviewer/7/desktop/teamviewer.png -d 40 /usr/bin/teamviewer7 &
  • -n ist der Name des Fensters
  • -i ist die Symboldatei
  • -d ist ein Limit von 40 Sekunden, nach dem kdocker aufgibt, wenn kein passendes Fenster gefunden wird
Greg Chabala
quelle
0

Ab Teamviewer 8.0.20931 wird automatisch auf die Taskleistenfunktion minimiert. Aber in Gnome Classic erstellt es Wine System Tray und ich weiß nicht, wie ich es minimieren soll. Ich habe das Skript ausprobiert (gespeichert als ~ / .devilspie / wine.ds):

( if 
( begin 
( is ( application_name ) "Wine" )
( is ( window_name ) "Wine System Tray" )
) 
( begin 
( minimize )
( println "match" )
)
)

... aber es hat nicht funktioniert

Mit dem neuen Teamviewer 8.0.20931 für Linux funktioniert sogar die Anmeldung am Linux-Anmeldebildschirm - wenn noch kein Benutzer angemeldet ist. Wenn Sie sich jedoch nach einiger Zeit etwa zweimal an- und abmelden, können Sie keine Verbindung zu Teamviewer herstellen. Sie müssen Fernzugriff über die Befehlszeile haben, um einen Neustart des Computers durchzuführen - dann funktioniert es wieder.

nullkonf
quelle
0

Devilspie hat aus irgendeinem Grund nicht in meinem System funktioniert. Schließlich fand ich einen Ersatz (nicht so elegant). Ich installierte wmctrl:

sudo apt-get install wmctrl

Unter Verwendung wmctrl -lder Namen der gefundenen Fenster wollte ich beim Start schließen. Fügen Sie diese Befehle anschließend in das Skript ein (erstellen Sie eine neue leere Datei und benennen Sie sie .<...>.sh. Punkt am Anfang des Namens, um ihn auszublenden):

wmctrl -c <Window_1>
wmctrl -c <Window_2>
wmctrl -c <Window_3>

Fügen Sie diese Datei schließlich einige Sekunden nach den Zielen zu den Startanwendungen hinzu.


Beachten Sie, dass dieser Befehl Fenster schließt. Um das Programm minimiert zu starten, finden Sie auf verschiedenen Arbeitsplätzen die entsprechenden Optionen im Programmhandbuch.

Sergey
quelle
Wenn Sie nicht "geschickt" auf das Fenster warten, hängt der Erfolg von der Zeit zwischen dem Erscheinen des Fensters und dem Befehl zum Minimieren ab. Wie gesagt, lassen Sie es besser schlau auf das Fenster warten , sonst funktioniert es nicht, wenn Ihr System belegt ist (und somit langsamer). Außerdem besteht die Gefahr von Namenskonflikten, da Sie nicht die Fenster-ID, sondern (einen Teil) des Namens als Bezeichner verwenden. siehe askubuntu.com/a/663288/72216
Jacob Vlijm
Ich stimme mit Ihnen ein. Ich habe dort sogar meine Version des Skripts gepostet. Ich benutze diesen allerdings immer noch für den Teamviewer.
Sergey
0

2017 funktionierende Lösung!

Ich komme aus der Manjaro (XFCE) Edition, aber da es sich um eine linuxübergreifende Lösung mit Devilspie handelt, ist dies die Komplettlösung für den Start von Team Viewer minimiert:

  1. Terminal öffnen

  2. devilspiePaket installieren :

    apt-get install devilspie
  3. Eigenen Ordner erstellen:

    mkdir ~/.devilspie
  4. Erstellen Sie das folgende Skript (verwenden Sie stattdessen einen beliebigen Editor nano):

    nano ~/.devilspie/teamviewer.ds
  5. Fügen Sie das folgende Skript ein und speichern Sie die Datei (für nano- STRG + x , dann Y , dann EINGABE ):

    ( if
    ( begin
    ( is (application_name) "Teamviewer")
    ( is (window_name) "TeamViewer")
    )
    ( begin (close) )
    )
    1. Aus der devilspiePerspektive sind alle Schritte erledigt, aber das Seitenfenster "Computer & Kontakte" wird bei jedem Start weiterhin angezeigt. Um es auszublenden, öffne das:

TeamViewer -> Extras -> Optionen -> Erweitert -> "Erweiterte Optionen anzeigen " -> "Computer und Kontakte beim Start anzeigen " (unter "Erweiterte Einstellungen für Computer und Kontakte") und deaktivieren Sie diese Option.

Die Schritte beziehen sich auf TeamViewer 12 . In weiteren Versionen können sie abweichen.

HINWEIS:

Die Verwendung von (minimieren) anstelle von (schließen) im devilspie-Skript hat dazu geführt, dass der Fehler "TeamViewer nicht bereit. Bitte überprüfen Sie Ihre Verbindung" aufgetreten ist und ohne Neustart des Team Viewer-Dienstes nicht funktioniert hat.

Erikas
quelle
0

In der neuen Version hat das Programm bereits ein Symbol in der Taskleiste, aber beim Start werden zwei Hauptfenster des Programms angezeigt. Also benutze ich dieses Skript

#! /bin/sh

/opt/teamviewer/tv_bin/TeamViewer &
sleep 10
TV_WIN_ID=$(xdotool search --name TeamViewer)
TV_WIN_ID2=$(xdotool search --name 'Компьютеры и контакты')

if [ -n "$TV_WIN_ID" ] ; then
 sleep 1
 xdotool windowactivate $TV_WIN_ID
 xdotool key Alt+F4  
else
 exit 1
fi
if [ -n "$TV_WIN_ID2" ] ; then
 sleep 1
 xdotool windowactivate $TV_WIN_ID2
 xdotool key Alt+F4  
 else
exit 1
fi
Andrej
quelle