using wmctrl to close windows
Can I close a window using wmctrl
that is running in wine on Ubuntu?
For context:
$ wmctrl -m
Name: compiz
Class: N/A
PID: N/A
Window manager's "showing the desktop" mode: OFF
Also:
$ wmctrl -l
0x0240a3be -1 mjol N/A
0x02000003 0 mjol Top Expanded Edge Panel
0x0200004c 0 mjol Bottom Expanded Edg开发者_如何学运维e Panel
0x01e00024 0 mjol x-nautilus-desktop
0x04800253 0 mjol using wmctrl to close windows - Stack Overflow - Google Chrome
0x03c0c8c3 0 mjol Terminal
0x03c53f25 0 mjol Terminal
0x04400001 0 mjol Untitled - SketchUp
0x04400003 0 mjol Instructor
0x04400009 0 mjol SketchUp
The window I want to close is the last one:
0x04400009 0 mjol SketchUp
I've tried the following:
$ wmctrl -c "SketchUp"
$ wmctrl -c 0x04400009
$ wmctrl -i 0x04400009
$ wmctrl -c -i 0x04400009
But nothing works.
Maybe a little late, but first seen now.
Reading the info for wmctrl, it says that the correct syntax is 'options' before actions
, and -i
is an option, -c
an action. Try wmctrl -i -c 0x04400009
I was having the same question and just found how to do it!
Here's the one-liner that will gracefully close all Google Chrome windows:
wmctrl -lix |grep 'Google-chrome'|cut -d ' ' -f 1 |xargs -i% wmctrl -i -c %
Explanation:
wmctrl -lix
list all windows including their Id and Class
grep 'Google-chrome'
grep only windows with Google-chrome class (this is important because when you use a site with the app/shortcut option it gets it own class like 'calendar.google.com.Google-chrome'
cut -d ' ' -f 1
cuts the output to get only the IDs column
xargs -i% wmctrl -i -c %
passes each ID to the wmctrl
using the ID option -i
and close command -c
Note: the xargs only worked when I used the -i
option to specify replace-string. Otherwise it would only act on the first item.
According to the man page, you should select the window first using a select option, like -r
and -a
, exemple :
$ wmctrl -l
0x01800006 0 hostname Terminal - byobu
$ wmctrl -a Terminal
Here indeed selects (and raises + focus due to -a
) the terminal window.
Then you can use a resize / move option such as -e gravity,X,Y,width,height
As for your question, I just tested this :
$ wmctrl -l
0x01800006 0 machine_hostname - byobu
0x06800002 0 moe Microsoft Excel - Classeur1
And Excel (obviously running in Wine) closed gracefully when I entered
$ wmctrl -c Microsoft
Plenty of additional info here.
精彩评论