it-swarm-es.com

¿Puedo forzar que la ventana se abra encima de otras ventanas cuando se abre con el atajo de teclado?

Yo uso SpaceFM como mi administrador de archivos principal en Ubuntu. Normalmente abro la carpeta directamente mediante métodos abreviados de teclado, por ejemplo Ctrl+Super+W abre mi carpeta de trabajo.

Específicamente, utilizo ejecutar el comando spacefm -w /home/rasmus/Work/ mediante el acceso directo anterior, con el -w asegurando que SpaceFM abra una nueva ventana.

Sin embargo, esta nueva ventana no siempre está abierta encima de la última ventana activa en el espacio de trabajo. Esto es bastante molesto, ya que significa que a veces tengo que "Cavar" para la ventana recién abierta.

Entonces, mi pregunta es: ¿hay algo adicional que pueda agregar al comando ejecutado que garantice que se abra la ventana nueva en la parte superior?

Soluciones alternativas para el mismo efecto son bienvenidas.

4
Rasmus

Como spacefm utiliza un solo proceso. El nuevo comando simplemente pasa la señal al proceso en ejecución y esto crea la nueva ventana en el nivel justo por encima de su última ventana creada.

Sudo apt-get install wmctrl
  • Con la función: Tiene 1 segundo de retraso.

    sfm() { spacefm $* & pid=`pgrep spacefm | head -1`; sleep 1;  wmctrl -i -R `wmctrl -lp | grep " $pid" | tail -1 | awk '{ print $1 }'` }
    
    1. Ejecute spacefm con los mismos argumentos $* se pasaron a la función, & en segundo plano
    2. pgrep spacefm | head -1 obtiene el PID del proceso principal que está en la cabeza y luego lo almacena en la variable pid
    3. sleep 1 espera el nuevo proceso a la terminal, para evitar el aumento de dos ventanas (no sé por qué, intenta eliminarlo)
    4. wmctrl -lp obtener la lista de ventanas | grep " $pid" filtrar los relacionados con $pid, | tail -1 filtrar la última línea/ventana y luego | awk '{ print $1 }' filtrar la identificación de la ventana (WID) que está en el primera columna $1
    5. wmctrl -i -R WID Mueve la ventana WID al escritorio actual, levanta la ventana y concéntrate.
  • Con alias: Esto elevará 2 ventanas, la nueva en la parte superior pero más simple.

    alias sfm="wmctrl -i -R \`wmctrl -lp | grep ' $(pgrep spacefm)' | tail -1 | awk '{ print $1 }'\`; spacefm"
    
    1. wmctrl -lp obtener la lista de ventanas | grep " $pid" filtrar los relacionados con spacefm, | tail -1 filtrar la última línea/ventana y luego | awk '{ print $1 }' filtrar la identificación de la ventana (WID) que está en el primera columna $1
    2. wmctrl -i -R WID Mueve la ventana WID al escritorio actual, levanta la ventana y concéntrate.
    3. Ejecute spacefm con argumentos que vienen después. La nueva ventana se creará en la parte superior.

- Cómo usar: forma similar al comando original.

    sfm -w /home/rasmus/Work/

Referencias: Busque las páginas man.

1
user.dz

Es una pregunta antigua pero aún relevante, así que agregaré una solución alternativa.

Esto suena como el resultado de la prevención de enfoque de Compiz, tratando de evitar que las ventanas "roben" el enfoque mientras trabaja en otro lugar.

La prevención de enfoque se puede configurar en diferentes niveles (predeterminado: bajo) o completamente deshabilitada a través del Administrador de configuración de CompizConfig.

Si aún no está instalado, haga esto ejecutando:

Sudo apt-get install compizconfig-settings-manager

Luego, ejecútelo con ccsm, navegue hasta Opciones generales, cambie a la pestaña Enfoque y aumento del comportamiento y cambie el campo Nivel de prevención de enfoque (en su caso, probablemente querrá Desactivado ).

0
Cedric Reichenbach