如何在Linux中獲得準確的窗口信息?我知道我可以使用wmctrl
來獲得窗口大小,但窗口的實際大小可能因窗口裝飾而異。我需要以下信息和方法:如何在Linux(X)中獲得準確的窗口信息(尺寸等)?
- 精確窗口尺寸
- 精確可用的屏幕空間(不包括像侏儒面板面板)
- 設置一個窗口,以在一定的大小,包括裝飾 的能力
這樣做的最好方法是什麼?我對Python的工作感興趣,所以有一些Python模塊會更受歡迎。
在此先感謝!
如何在Linux中獲得準確的窗口信息?我知道我可以使用wmctrl
來獲得窗口大小,但窗口的實際大小可能因窗口裝飾而異。我需要以下信息和方法:如何在Linux(X)中獲得準確的窗口信息(尺寸等)?
這樣做的最好方法是什麼?我對Python的工作感興趣,所以有一些Python模塊會更受歡迎。
在此先感謝!
最好的辦法是使用X11/Xlib的直接(文檔:http://tronche.com/gui/x/xlib/)
從您可能無法通過XQueryTree(樹走根開始),並得到窗口通過XGetWindowAttributes屬性()/ XGetGeometry() 。
好吧,這是一個C函數庫,但也有一個Python端口:http://python-xlib.sourceforge.net/?page=documentation
X11如何知道窗飾的大小? – mellort 2010-07-20 20:21:55
由於窗口組織在樹中,並且如果從其父窗口中減去子窗口的大小,您將獲得裝飾的大小。裝飾中的關閉按鈕通常也是X11-Windows。 '根窗口(桌面) - 頂級-窗口(窗口裝飾) - 子窗口(可以是裝飾或內容區域等的一部分) - 按鈕etc' 這種方法並不總是有效,例如當Compiz打開時,Compiz繪製了繞過X11的窗口裝飾(但我不確定) – nob 2010-07-22 10:49:35
但是,您可以嘗試一個簡單的dump-testprogram並找出您感興趣的窗口的哪一部分。您甚至可以抓取它的內容通過XGetImage()。 – nob 2010-07-22 10:53:40
什麼窗口庫中使用? – Mark 2010-07-13 02:17:53
我不確定你在問什麼,@Mark。我使用的Ubuntu 10.04的Gnome桌面環境和Metacity作爲我的窗口管理器。 – mellort 2010-07-13 02:22:07
我認爲馬克假設你是從創建窗口的程序內完成這個操作的。你是否希望這是一個與窗口所有者分開運行的工具?我認爲你可能在超級用戶(http://superuser.com/)上有更多的運氣。 – nmichaels 2010-07-15 14:44:27