Answers:
正常关闭应用程序的典型方法是使用kill -TERM 1234,其中1234窗口的PID。但是,问题在于图形应用程序被设计为侦听来自X服务器本身的特定信号,而不是侦听该TERM信号。
这意味着您和X服务器之间需要某种代理来传达您想要发送适当信号的信息。您当然可以编写C程序,但是有一个区域程序确实可以做到这一点(当然也wmctrl不用C编写)。
的用法wmctrl很简单:
wmctrl -c :SELECT: # close window that will be selected with pointer
wmctrl -c :ACTIVE: # close currently active window
wmctrl -ic <numeric id> # close window with specific id in hex
默认情况下未安装它,因此请获取 sudo apt-get install wmctrl
它的许多用途wmctrl远不只是关闭窗口,所以请查看我的更多答案,以及Jacob Vlijm的使用脚本示例
wmctrl -l列出所有窗口,并在第一列中以十六进制给出数字标识。=)
Minimize to tray on close,wmctrl -c它将关闭一个窗口,而不是应用程序本身,它将最小化运行到托盘。
我认为值得添加的wmctrl -xl结果将是这样的:
0x03000001 -1 google-chrome.google-chrome dcentore-pc Rybak - Google Play Music - Google Chrome
0x04600006 0 speedcrunch.Speedcrunch dcentore-pc SpeedCrunch
当x要求窗口类是在输出中。这通常是每次关闭同一程序的最简单方法。然后,我们可以在关闭窗口类时提供它:
wmctrl -xc speedcrunch.Speedcrunch
本示例将关闭speedcrunch。