Creo que la página de manual relacionada es, XKillClient . Puede usar xdotool
para simular el botón de cierre que se hace clic desde un terminal de esta manera.
Ejemplo
Suponiendo que tengo un gnome-terminal
abierto y su nombre es "saml @ grinchy: / home".
Obtenga la ID de la ventana
$ xdotool search --name "saml@grinchy:/home"
96488188
Envíale un Alt+F4
$ xdotool windowactivate --sync 96488188 key --clearmodifiers \
--delay 100 alt+F4
Puede juntarlos incrustando el primer comando en el segundo:
$ xdotool windowactivate --sync $( ...1st command...) key --clearmodifiers \
--delay 100 alt+F4
Puedes salvarte dejando xdotool
ambas cosas al mismo tiempo:
$ xdotool search --name "saml@grinchy:~" key alt+f4
Globalmente
Puede adaptar lo que he proporcionado para ejecutarlo en ventanas que tienen el mismo nombre:
$ xdotool search --name "saml@grinchy:~"
96488779
96468996
O en ventanas por otros atributos. Puede utilizar xwininfo
para obtener más información sobre una ventana en particular. Ejecútelo y luego haga clic en la ventana de interés:
$ xwininfo
xwininfo: Please select the window about which you
would like information by clicking the
mouse in that window.
xwininfo: Window id: 0x5c04d4b "saml@grinchy:~"
Absolute upper-left X: 14
Absolute upper-left Y: 74
Relative upper-left X: 14
Relative upper-left Y: 74
Width: 941
Height: 361
Depth: 32
Visual: 0x62
Visual Class: TrueColor
Border width: 0
Class: InputOutput
Colormap: 0x5c00003 (not installed)
Bit Gravity State: NorthWestGravity
Window Gravity State: NorthWestGravity
Backing Store State: NotUseful
Save Under State: no
Map State: IsViewable
Override Redirect State: no
Corners: +14+74 -485+74 -485-465 +14-465
-geometry 132x24+14+74
Otras herramientas útiles cuando se trata con ventanas X11 son xdpyinfo
& xprop
. xdpyinfo
se puede usar para encontrar información sobre el servidor X. Para que pueda averiguar qué ventana tiene foco:
$ xdpyinfo |grep focus
focus: window 0x5c00005, revert to Parent
xprop
y xwininfo
puede tomar un -id
cambio para que pueda proporcionarles la ID de ventana que le interesa en lugar de tener que hacer clic en ella:
$ xprop -id 0x5c00001|grep -i class
WM_CLASS(STRING) = "gnome-terminal", "Gnome-terminal"
Referencias
xdotool search --name "saml@grinchy:~" key alt+f4
, el problema es que no he encontrado cómo hacer esto con varias ventanas que tienen el mismo nombre ...wmctrl -r :ACTIVE: -N "MyWindowTitle
key alt+F4
a todas las ventanas (si se puede cambiar el tamaño, ¿por qué no alt + F4), pero sin suerte. Y gracias: D.xdotool search --name "gedit|terminal|office" key --window %@ alt+F4
buscaré cualquier ventana que tenga gedit, terminal u oficina en su nombre de título y enviaré el comando alt + F4.Me pareció
xdotool
escamoso / con errores, a veces cierra la ventana de primer plano en lugar de la que debería estar cerrada. Esto parece deberse a la forma en que se envían las claves después de poner la ventana en primer plano en lugar de enviar directamente eventos de ventana, y es un problema muy molesto. Sugiero usarwmctrl
, que cierra directamente una ventana sin enviar pulsaciones de teclas.Puede cerrar una ventana directamente haciendo coincidir el nombre, por ejemplo, ambos cerrarán la ventana "Documento sin título 1 - gedit":
Puede usar la
-F
opción para considerar solo coincidencias exactas:O puede dar la identificación directamente:
Se pueden encontrar más ejemplos de uso / documentación aquí .
Una cosa que encuentro muy útil es
xdotool
la capacidad de esperar hasta que haya un resultado usando el--sync
argumento. La combinación del comando dos en uno se hace así:Si está en una Mac, probablemente necesitará el
-I{}
parámetro:Si desea admitir varias ventanas, debe indicar
xargs
que llamewmctrl
con un máximo de 1 argumento cada vez con la-n
opción.wmctrl
no admite explícitamente múltiples ventanas como argumentos:Esto esperará hasta que haya al menos 1 de esas ventanas y luego las cerrará todas.
fuente
top
), por supuesto, lo mismo que cuando se hace clic en el botón Cerrar.xdotool search --sync --name "Software Updater" | xargs wmctrl -i -c
en confianza, y empecé Software Updater. De ahora en adelante, el Actualizador de software no se muestra correctamente. Solo se muestra la barra de título. Reinstalar update-manager no ayudó.pkill (1) debería ser lo que necesita.
fuente
--signal
interruptor no es diferente dekill
okillall
. Estoy esperando el ¿Quieres salvar? alerta.