如何只关闭应用程序的一个窗口?

DOC*_*Cff 5 command-line window-manager kill wmctrl

我知道如果我通过了 sid:

ps -ax | grep firefox

并使用:

kill -9 "sid"

我将关闭程序的所有窗口。

如何仅关闭通过终端运行的应用程序的一个窗口?

Jac*_*ijm 10

可能最简单的选择是使用wmctrl -c. 您可能必须先安装它:

~$ sudo apt-get install wmctrl
Run Code Online (Sandbox Code Playgroud)

然后关闭一个名为“example”的窗口(无论它属于什么应用程序),使用命令:

~$ wmctrl -c "example"
Run Code Online (Sandbox Code Playgroud)

更多选择

不过,也有很多更多的选择来关闭特定的窗口,这取决于你的“入射角”。

几个例子

  1. 要通过单击关闭特定窗口:

    ~$ wmctrl -c :SELECT:
    [then click on the window to be closed]
    
    Run Code Online (Sandbox Code Playgroud)
  2. 要通过数字 ID 关闭特定窗口:

    ~$ wmctrl -ic <numeric_id>
    
    Run Code Online (Sandbox Code Playgroud)
  3. 关闭活动窗口:

    ~$ wmctrl -c :ACTIVE:
    
    Run Code Online (Sandbox Code Playgroud)
  4. 要使用 pid 获取特定应用程序(例如 gedit)拥有的窗口列表:

    ~$ pidof gedit
    22576
    
    ~$ wmctrl -l -p | grep 22576
    0x04600085  0 22576  jacob-System-Product-Name get.sh (~/Bureaublad) - gedit
    0x0461aee4  0 22576  jacob-System-Product-Name verhaal (~/Bureaublad) - gedit
    0x0461b0a1  0 22576  jacob-System-Product-Name *Niet-opgeslagen document 1 - gedit
    
    Run Code Online (Sandbox Code Playgroud)

    然后get.sh通过以下任一方式关闭特定窗口:

    wmctrl -c get.sh
    
    Run Code Online (Sandbox Code Playgroud)

    或者:

    wmctrl -ic 0x04600085
    
    Run Code Online (Sandbox Code Playgroud)
  5. 如果您只知道窗口名称的一部分,例如有一个窗口;monkey eats banana.txt,你知道它banana的名字里有,

选项很多,另见 man wmctrl。 男人 wmctrl