X11

如何找到控制根視窗的程序?

  • August 13, 2017

我正在嘗試使用此處描述的方法讓 xscreensaver 作為我的桌面背景/牆紙執行:https ://wiki.archlinux.org/index.php/XScreenSaver#Animated_wallpaper第一步是終止控制root X 視窗,但我不知道那是什麼程序。

理想情況下,我想學習如何自己獲取該程序的名稱[順便說一句ps aux | grep root並沒有幫助],然後從那裡弄清楚如何阻止該程序在啟動時啟動或斷言對根 X 視窗的控制。

但是,任何知道這將在 Cinnamon 中使用什麼程序的人都可以幫助我解決問題,自然/usr/lib/xscrensaver/glmatrix -root也將不勝感激有關停止/禁用該程序或啟動/啟用的任何其他資訊。

根視窗是 X 伺服器的一個特殊視窗。它沒有關聯的應用程序。

wiki 在這裡不正確地引用了根視窗。他們的意思是一個 Window 屏蔽/隱藏根 Window ,就像在現代桌面環境中通常發現的那樣(通常稱為Desktop,通常由向您顯示~/Desktop文件夾內容的文件管理器實現)。

這些xscreensaver小元件實際上是通過更新根視窗的內容來工作的。因此,您需要刪除將隱藏它的桌面視窗以及顯示在根視窗頂部的任何其他視窗。

您可以嘗試查找的是向視窗管理器註冊“桌面”的“視窗類型”的視窗的程序 ID。您可以執行以下操作:

xwininfo -tree -root |
 pcregrep -o '^\s+\K0x\S+' |
 xargs -n1 xwininfo -wm -id |
 pcregrep -Mo '(?s)Window type:\s+Desktop.*?Process id: \K\d+' |
 sort -u

xwininfo -tree列出所有視窗,第一個pcregrep提取它們的視窗 id,第二個 xwininfo 檢索每個視窗的 WM 屬性(包括視窗類型和 pid),然後第二個pcregrep提取這些桌面視窗的 PID)。

你也可以執行:

xprop _NET_WM_PID

並點擊桌面。甚至:

xkill

並點擊桌面以終止該視窗。

在任何情況下,請注意殺死該視窗/程序可能不安全,因為它很可能由視窗管理器等一些基本程序處理。

在 的情況下cinnamon,至少在 Linux mint 18.1 肉桂版的預設桌面環境中,它似乎是nemo(肉桂文件管理器),所以殺死它幾乎沒有什麼害處。

引用自:https://unix.stackexchange.com/questions/381366