我可以使用在Ubuntu上运行wine的wmctrl
关闭窗口吗?
上下文:
$ wmctrl -m
Name: compiz
Class: N/A
PID: N/A
Window manager's "showing the desktop" mode: OFF
此外:
$ wmctrl -l
0x0240a3be -1 mjol N/A
0x02000003 0 mjol Top Expanded Edge Panel
0x0200004c 0 mjol Bottom Expanded Edge 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
我要关闭的窗口是最后一个:
0x04400009 0 mjol SketchUp
我尝试了以下内容:
$ wmctrl -c "SketchUp"
$ wmctrl -c 0x04400009
$ wmctrl -i 0x04400009
$ wmctrl -c -i 0x04400009
但没有任何作用。
答案 0 :(得分:6)
也许有点晚了,但现在第一次见到。
阅读wmctrl的信息,它表示正确的语法是actions
之前的'选项',而-i
是一个选项,-c
是一个动作。试试wmctrl -i -c 0x04400009
答案 1 :(得分:1)
我遇到了同样的问题,只是找到了解决方法!
这是将正常关闭所有Google Chrome窗口的单行代码:
wmctrl -lix |grep 'Google-chrome'|cut -d ' ' -f 1 |xargs -i% wmctrl -i -c %
说明:
wmctrl -lix
列出所有窗口,包括其ID和Class
grep 'Google-chrome'
仅grep具有Google-chrome类的窗口(这很重要,因为当您将网站与app / shortcut选项一起使用时,它将获得其自己的类,例如“ calendar.google.com.Google-chrome” < / p>
cut -d ' ' -f 1
将输出剪切为仅获得ID列
xargs -i% wmctrl -i -c %
使用ID 选项 wmctrl
将每个ID传递到-i
,然后关闭命令 -c
< / p>
注意:仅当我使用-i
选项指定替换字符串时,xargs才起作用。否则,它只会作用于第一项。
答案 2 :(得分:0)
根据the man page,您应首先使用选择选项选择,例如-r
和-a
,例如:
$ wmctrl -l
0x01800006 0 hostname Terminal - byobu
$ wmctrl -a Terminal
这里确实选择(并且由于-a
而引起+焦点)终端窗口。
然后您可以使用调整大小/移动选项,例如-e gravity,X,Y,width,height
关于你的问题,我刚刚对此进行了测试:
$ wmctrl -l
0x01800006 0 machine_hostname - byobu
0x06800002 0 moe Microsoft Excel - Classeur1
当我进入
时,Excel(显然是在Wine中运行)优雅地关闭了$ wmctrl -c Microsoft
大量额外信息here。