Tengo una aplicación que usa varias ventanas. ¿Cómo puedo poner rápidamente en primer plano todas las ventanas de esa aplicación?
Cuando me desplazo por las aplicaciones con la rueda de desplazamiento, solo se muestra una ventana. Al ir a la siguiente ventana, la última ventana vuelve al fondo.
Cuando hago clic en el icono de la aplicación, obtengo una visión general de pantalla completa de todas las ventanas. Tengo que seleccionar cada ventana manualmente y mover el mouse por la mitad de la pantalla varias veces.
Mi mejor solución hasta ahora es minimizar todas las ventanas ( Ctrl+ Super+ D) y luego mostrar las ventanas de mi aplicación usando la rueda de desplazamiento.
¿Hay una mejor solución?
Respuestas:
EDITAR -nueva respuesta-
La (s) respuesta (s) a continuación es / siguen siendo totalmente válidas, por lo que las opciones sugeridas Sin embargo, el conocimiento continuo me hizo agregar esta opción para usar el siguiente indicador, que probablemente sea la solución más elegante.
Como tal, probablemente debería reemplazar la opción 5 (usando un archivo .desktop).
Simplemente elija la aplicación de la lista, y todas las ventanas de la aplicación correspondiente (presente en la ventana gráfica actual) mostrarán:
Cómo utilizar
de ppa:
... o manualmente:
El indicador necesita
wmctrl
Copie el indicador en un archivo vacío, guárdelo como
raise_apps.py
Copie la imagen a continuación, guárdela exactamente nombrada
raise.png
en el mismo directorio que el indicador.Luego simplemente ejecútelo con el comando:
python3 /path/to/raise_apps.py
Agregue si desea iniciar aplicaciones:
ANTIGUA RESPUESTA:
Sobre la pregunta
Con las herramientas adecuadas, no es muy complicado "solo" abrir todas las ventanas de una aplicación. Es un poco más complicado asegurarse de que solo se levanten las ventanas de la ventana gráfica actual. Sin embargo, el verdadero desafío es encontrar una manera conveniente de poner la acción a disposición del usuario.
A continuación, cinco opciones para encargarse de eso, para mostrar cómo se puede hacer. Todas las opciones están listas para ser utilizadas. Sin embargo, la última opción es algo experimental; funciona bien pero tiene algunos inconvenientes cosméticos menores, como se explica en la descripción de la opción. Sin embargo, lo agregué como concepto .
Difundir las ventanas automáticamente de forma no superpuesta, como se sugiere en un comentario, no me parece una idea práctica; si trabaja en una configuración de ventana agrupada (en cuanto a la aplicación), el script posiblemente reorganizaría ventanas de forma no deseada.
Cómo utilizar
Para todas las opciones necesita:
instalar
wmctrl
si aún no está en su sistema:cree, si aún no existe, el directorio:
(explicación: el directorio
~/bin
está en $ PATH, por lo que puede ejecutar ejecutables por su nombre)Copie el script, correspondiente a la opción, péguelo en un archivo vacío, guárdelo como
raise_app
(sin extensión)~/bin
y hágalo ejecutableEn las opciones separadas, se explicarán los posibles pasos adicionales.
Opción 1: elija la aplicación ingresando uno o más caracteres
zenity
aparecerá una ventanaEsto hará que todas las ventanas de la aplicación coincidente (en la ventana gráfica actual ) se muestren al frente.
elevar todas las
gnome-terminal
ventanas en la ventana gráfica actual:Cómo utilizar:
Pruébalo con el comando:
Si todo funciona bien, agréguelo a la combinación de teclas de acceso directo que elija: Elija: Configuración del sistema> "Teclado"> "Accesos directos"> "Accesos directos personalizados". Haga clic en "+" y agregue el comando
La secuencia de comandos:
Opción 2: recorrer las aplicaciones y subir sus ventanas con una combinación de teclas:
Digamos que tengo el script a continuación bajo una combinación de teclas Alt+ 1. Tengo varias ventanas abiertas de:
El estado actual:
Presiono una vez Alt+ 1, todas las
nautilus
ventanas aparecen:Presiono de nuevo Alt+ 1, todas las
firefox
ventanas aparecen:Presiono nuevamente Alt+ 1, todas las
gnome-terminal
ventanas vuelven a aparecer, el ciclo comienza de nuevo:Cómo utilizar
Agréguelo a la combinación de teclas de acceso directo que elija: Elija: Configuración del sistema> "Teclado"> "Atajos"> "Atajos personalizados". Haga clic en "+" y agregue el comando
Luego, recorra sus aplicaciones con ventanas de aplicaciones agrupadas con su combinación de teclas.
La secuencia de comandos:
Opción 3: presione la combinación de teclas + haga clic en el icono del iniciador -o-- ventana de la aplicación para abrir todas las ventanas en la ventana gráfica actual
Esta es probablemente la opción más cercana a lo que se describe en la pregunta / comentario.
Digamos que tengo un escritorio desordenado con tres
nautilus
ventanas enterradas debajo de otras ventanas.Para abrir todas las ventanas de nautilus (ejemplo de acceso directo: Alt+ 1):
En 3 segundos, ya sea:
haga clic en el icono de la aplicación en el iniciador
o:
haga clic en una de las ventanas de la aplicación
resultado:
Cómo utilizar:
Pruébalo con el comando:
Si todo funciona bien, agréguelo a la combinación de teclas de acceso directo que elija: Elija: Configuración del sistema> "Teclado"> "Accesos directos"> "Accesos directos personalizados". Haga clic en "+" y agregue el comando
Luego:
Presione su combinación de teclas y dentro de 3 segundos, ya sea:
La secuencia de comandos
Opción 4: una combinación de teclas llama a una lista de opciones, que muestra el número de ventanas por aplicación en la ventana gráfica actual
Este resultó ser más conveniente de lo que supuse:
Al presionar la combinación de teclas (nuevamente ejemplo-) Alt+ se 1llama a una
zenity
ventana, enumerando todas las aplicaciones y el número de sus ventanas en la ventana gráfica actual:Simplemente presionando las flechas ▴o ▾le llevará a la opción correcta. Presione Entery se abrirán todas las ventanas de la aplicación elegida.
Cómo utilizar:
Pruébalo con el comando:
Si todo funciona bien, agréguelo a la combinación de teclas de acceso directo que elija: Elija: Configuración del sistema> "Teclado"> "Accesos directos"> "Accesos directos personalizados". Haga clic en "+" y agregue el comando
La secuencia de comandos
Opción 5: abrir ventanas de aplicaciones en ejecución desde un icono de iniciador
Esta opción existe de un icono de iniciador, con las aplicaciones que se ejecutan actualmente en una lista rápida. Elija uno y se abrirán todas las ventanas de las aplicaciones.
El iniciador se actualiza automáticamente cuando cambia la lista de aplicaciones en ejecución (en la ventana gráfica actual). La lista rápida muestra una lista diferente en otras ventanas gráficas, donde se abren ventanas de otras aplicaciones (tomará 1-2 segundos para adaptarse).
Como se mencionó, aunque es completamente funcional, esta opción es un concepto . Tiene algunas desventajas cosméticas menores como es. El más importante:
Además, la configuración es un poco más complicada (aunque se explica en detalle a continuación):
Cómo utilizar
Abajo encontrarás:
dos scripts / un ícono / un
.desktop
archivoraise_app
en~/bin
Guarde el icono a continuación (haga clic derecho, guardar como) como
raise.png
Copie el
.desktop
archivo en un archivo vacío, edite la líneaa la ruta real al icono (rutas con espacios entre comillas)
Guárdelo como
raise.desktop
en~/.local/share/applications
Arrastre el
.desktop
archivo al iniciador para agregarloupdate_apps
en~/bin
, hágalo ejecutable.Agregue el siguiente comando a sus aplicaciones de inicio (Tablero> Aplicaciones de inicio> Agregar):
El primer guion
El segundo guión
El archivo .desktop
Breve explicacion
Todas las soluciones anteriores se usan
wmctrl
para crear una lista de ventanas, usando elwmctrl -lpG
comando. Este comando produce líneas, parecidas a:Estas líneas incluyen:
xrandr
)El pid se busca en la salida de
ps -u <username>
para obtener una identificación (nombre) "legible por el usuario" de la aplicación.Por lo tanto, podemos asignar ventanas a las aplicaciones. Posteriormente podemos elevar las ventanas de una aplicación dada en un
for
bucle con el comandowmctrl -ia
.En la opción 3,
el script inicia un ciclo de "espera" de 3 segundos, usando el
xprop -root
comando repetidamente para ver si hay algún cambio en la ventana más cercana; Esto sucederá si el usuario hace clic en el ícono del iniciador para abrir la ventana de una aplicación o hace clic directamente en una ventana. Si es así, el bucle while se rompe y busca la "nueva" aplicación de primer plano, y posteriormente levanta todas las demás ventanas de esa aplicación.fuente
Option 2
script, cuando una ventana de la aplicación está enfocada (que no está maximizada) y hago clic en otra ventana que está visible "debajo", la aplicación a continuación no obtiene el foco.Hay un acceso directo Super+ Wque mostrará la exposición de todas las ventanas abiertas actualmente, aunque eso incluirá otras aplicaciones. Esto viene de forma predeterminada y no requiere ningún cambio, por lo que quizás sea una opción más simple disponible.
Entre otras cosas, puede colocar ventanas en las mitades derecha e izquierda de la pantalla con los botones Ctrl+ Super+ Left/ Right, y cambiar entre ellas con Alt + ~ (tilde, la que está al lado de la tecla número uno).
fuente
Si presiona Alt + Tabulador para recorrer las aplicaciones, y llega a una con múltiples ventanas, simplemente mantenga presionada la tecla alt y después de aproximadamente 1 segundo completo, el icono se reemplazará con una vista de todas las ventanas para esa aplicación.
Eso puede o no ser lo que estás buscando, pero funciona para mí y es mucho más simple, ¡así que pensé que compartiría la opción!
fuente
Tomé el script raise_apps.py de @ JacobVlijm e hice algunas mejoras, incluso para hacerlo más robusto.
Específicamente, descubrí que después de un día o dos, el script de @ JacobVlijm dejaría de funcionar y tendría que reiniciarlo manualmente para que volviera a funcionar. En retrospectiva, mi mejor conjetura es que las numerosas llamadas a xrandr eventualmente causan problemas.
De todos modos, adapté su código, aumenté la frecuencia de sondeo de 5 segundos a cada 1 segundo, ya que de todos modos no usa mucha CPU y lo hice más robusto. Por lo general, puedo tenerlo funcionando durante días / semanas sin problemas.
Una advertencia es que solo llamo xrandr una vez durante el inicio, para obtener dimensiones de resolución de pantalla. Entonces, si cambia la resolución de su pantalla (por ejemplo, de 1920x1080 a alguna otra resolución), probablemente quiera reiniciar manualmente raise-apps.py para que recoja la nueva resolución. Personalmente, nunca cambio la resolución de mi pantalla, así que esto no es un problema para mí. Además, tengo buenas razones para creer que demasiadas llamadas a xrandr fueron lo que estaba causando que la versión de @ JacobVlijm del script dejara de funcionar después de un día o dos, por lo que recomendaría encarecidamente no simplemente volver a colocar las numerosas llamadas a xrandr.
Por cierto, debe colocar la imagen raise.png en el directorio / usr / local / icons /. O si desea colocar raise.png en un directorio diferente, realice el cambio apropiado en el script para que el script pueda encontrar el archivo de imagen.
Con suerte, Ubuntu integrará este tipo de funcionalidad 'elevar todas las ventanas' en su sistema lo antes posible, ya que es muy útil:
fuente