10 votos

Cuando las horquillas Terminal del proceso, la aplicación actual pierde el foco

Mientras estoy ejecutando algún programa en el Terminal (o iTerm2), cuando el programa se bifurca el proceso, el OS X de escritorio cambia el foco de la aplicación actual a la bifurcada proceso. Cuando esto sucede, la bifurcada nombre de proceso se muestra en OS X de la barra de menú.

Esto es especialmente molesto mientras se utiliza el modo de pantalla completa, ya que hace que el área de trabajo para el cambio cuando el horquillado de proceso recibe el foco.

Cómo puedo detener este interruptor de enfoque suceda? Estos programas terminal son interrumpir el trabajo que estoy haciendo en otras aplicaciones mientras se ejecutan.

6voto

michele b Puntos 156

En mi caso fue el de Maven a prueba de fallos Plugin que causó el molesto foco de la ventana de robo de ForkedBooter, y el establecimiento de la JAVA_TOOL_OPTIONS variable .bashrc no ayuda.

Esta revisión se aplica tanto a prueba de fallos y Segura (aunque en mi caso, no estaba Segura de robar el foco).

En su pom.xml, agregar un <argLine>-Djava.awt.headless=true</argLine> línea dentro de la <configuration> para el de seguridad (y/o) infalible plugin.

Se parecerá a esto:

<!-- this is inside your <project><build><plugins> block -->
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>${maven.surefire.plugin.version}</version>
    <configuration>
      <includes>
        <include>**/unit/**/*Test*.java</include>
      </includes>
      <!-- prevent the annoying ForkedBooter process from stealing window 
        focus on Mac OS -->
      <argLine>-Djava.awt.headless=true</argLine>
    </configuration>
  </plugin>
  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-failsafe-plugin</artifactId>
    <version>${maven.failsafe.plugin.version}</version>
    <configuration>
      <!-- prevent the annoying ForkedBooter process from stealing window 
        focus on Mac OS -->
      <argLine>-Djava.awt.headless=true</argLine>
      <includes>
        <include>**/integration/**/*Test*</include>
      </includes>
    </configuration>
    <executions>
      <execution>
        <goals>
          <goal>integration-test</goal>
          <goal>verify</goal>
        </goals>
      </execution>
    </executions>
  </plugin>

4voto

jdgilday Puntos 168

Como ha sugerido @patrix, parece que sólo tengo este problema con procesos Java.

Esta respuesta más en StackOverflow parece resolver el problema

0voto

dvmlls Puntos 171

Puede ejecutar el programa del terminal en el fondo? Creo que este va a mantener es la de centrarse en el escritorio. Sólo añadir " & " al final del comando de terminal para ejecutar un proceso en segundo plano.

Así que si su terminal de comandos fueron:

sh someprocess.sh

cambiar a:

sh someprocess.sh y

Para llevar un proceso en segundo plano al primer plano en el uso terminal el comando:

fg

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X