¿Cómo cerrar, minimizar y maximizar una ventana específica desde la Terminal?

17

Estoy ejecutando Ubuntu GNOME 15.10 con GNOME 3.18 y me pregunto si hay una forma desde la Terminal para cerrar, minimizar, minimizar, maximizar y no maximizar ventanas especificadas.

Nota - He visto estas preguntas y respuestas - Estoy preguntando cómo hacerlo desde la Terminal ... No cómo agregar los botones ... Los botones ya están allí, no necesito agregarlos.

Comunidad
fuente
@Anastasia: ¿Cómo es esto un duplicado de eso? Eso solo pregunta sobre minimizar ... También estoy preguntando sobre todas las otras cosas que no se responden allí.
Asumí que esas acciones están tan estrechamente relacionadas que responder una debería conducir a todas las demás, pero tienes razón, eso puede ser un gran avance. Ahora también me pregunto en subconjuntos de preguntas que pueden considerarse duplicados.
Anastasia
@Anastasia: Bueno, debido a que las respuestas a la otra pregunta en realidad no mencionan cómo lograr esto, incluso si me ayudaran, todavía no es un duplicado de esa pregunta. Además, incluso si las respuestas a la otra pregunta responden a mi pregunta, mi pregunta sigue sin preguntar lo mismo que la otra pregunta.
Hola Para, espero que la pregunta siga "abierta". Una visión general ...
Jacob Vlijm

Respuestas:

18

Hay dos herramientas importantes para manipular ventanas cli; xdotooly wmctrl. Ambas herramientas se superponen entre sí en funcionalidad, pero los comandos más importantes se refieren a su pregunta:

En una descripción general (sin duda incompleta), enumerando los comandos que más uso:

Cerrando una ventana

wmctrl:

wmctrl -ic <window_id>

Minimizando una ventana

xdotool:

xdotool windowminimize <window_id>

Minimizar una ventana

wmctrl:

la minimización efectiva se realiza mediante:

wmctrl -ia <window_id>

Menciono efectivamente , ya que el comando se mueve al escritorio correspondiente, minimiza y levanta la ventana, pero el comando también lo hace en ventanas que no están minimizadas.

Maximizando una ventana

xdotool:

xdotool windowsize <window_id> 100% 100%

wmctrl:

wmctrl -ir <window_id> -b add,maximized_vert,maximized_horz

Des maximizando una ventana:

wmctrl -ir <window_id> -b remove,maximized_vert,maximized_horz

Notas

  • Ambos xdotooly wmctrlno están en su sistema por defecto:

    sudo apt-get install xdotool wmctrl
    
  • Para ejecutar cualquiera de los comandos en la ventana activa actualmente :

    • para wmctrlcomandos, elimine la -iopción, reemplace <window_id>por:ACTIVE:

    • para xdotoolcomandos: reemplazar <window_id>por$(xdotool getactivewindow)

  • En muchos casos, los comandos se pueden ejecutar utilizando la identificación de la ventana o el nombre de la ventana . La -iopción en wmctrlindica wmctrlque se use la identificación de la ventana. Sugeriría no usar el nombre de la ventana como identificador, para evitar conflictos de nombres. Sucede más fácilmente de lo que cabría esperar.

  • Desde mi propia experiencia, usando la maximización en un guión; Usar wmctrlpara maximizar / no maximizar puede ser un poco defectuoso en ambos Unityy Gnome, mientras que la xdotoolopción funciona más robusta en mi experiencia. En la mayoría de los guiones, termino usando una mezcla de ambos wmctrly xdotool.

Más información sobre man wmctrl y man xdotool (principalmente la sección: COMANDOS DE VENTANA ).

Jacob Vlijm
fuente
¡Gracias por la gran respuesta! Pero, ¿cómo también se minimiza una ventana?
1
@ParanoidPanda ver mi respuesta actualizada :)
Jacob Vlijm
1
wmctrl -ir <window_id> -b remove,maximized_vert,maximized_horzno funciona en gnome 3.20
user41209
4

Agregando a la respuesta de Jacob Vlijm:

xdotool windowactivate $minwinid
xdotool windowraise $minwinid
xdotool windowfocus $minwinid

También funciona para minimizar la ventana. La animación es más rápida para mí.

asdfdsa
fuente