Wenn ein Programm in Terminal (oder iTerm2) ausgeführt wird und das Programm den Prozess forciert, wechselt der OS X-Desktop von der aktuellen Anwendung zu dem verzweigten Prozess. In diesem Fall wird der verzweigte Prozessname in der OS X-Menüleiste angezeigt.
Dies ist besonders im Vollbildmodus ärgerlich, da sich der Arbeitsbereich ändert, wenn der verzweigte Prozess den Fokus erhält.
Wie kann ich verhindern, dass dieser Fokuswechsel stattfindet? Diese Terminalprogramme unterbrechen meine Arbeit in anderen Anwendungen, während sie ausgeführt werden.
macos
mountain-lion
terminal
fullscreen
iterm
jdgilday
quelle
quelle
Antworten:
In meinem Fall war es das Maven Failsafe Plugin, das den ärgerlichen Fensterfokus von ForkedBooter verursachte und die Einstellung der
JAVA_TOOL_OPTIONS
Variable in.bashrc
hat nicht geholfenDieser Fix gilt sowohl für Failsafe als auch für Surefire (obwohl Surefire in meinem Fall den Fokus nicht gestohlen hat).
In deiner
pom.xml
, füge hinzu ein<argLine>-Djava.awt.headless=true</argLine>
Linie innerhalb der<configuration>
für das fehlersichere (und / oder) todsichere Plugin.Es wird so aussehen:
quelle
Wie @patrix vorgeschlagen hat, scheint dieses Problem nur bei Java-Prozessen zu bestehen.
Diese Antworten Sie bei StackOverflow scheint das Problem zu lösen
quelle
Können Sie Ihr Terminalprogramm im Hintergrund ausführen? Ich glaube, dass dies auch auf dem Desktop nicht im Fokus stehen wird. Fügen Sie einfach "& amp;" bis zum Ende des Terminalbefehls, um einen Prozess im Hintergrund auszuführen.
Wenn Ihr Terminalbefehl also wäre:
Ändern Sie es in:
Um einen Hintergrundprozess im Terminal in den Vordergrund zu bringen, verwenden Sie den Befehl
quelle