快捷搜索:   nginx

X windows系统使用指南(十)

第12章 资讯与状态程式

在本章,我们将讨论一些提供视窗系统本身资讯和目前状态的程式。这包括了检查系统上视窗各种性质 (property) 的工具,和一个观察X事件结构是如何工作的程式。

这些程式有下列用途:

.当你使用系统时,这些工具程式所提供有关系统内部组织和操作的资讯,可以帮助你了解发生了什麽事。

.当你要做某种处理时,可以藉著所给的资讯来确认系统的组件。(例如你必须知道一个视窗的window-id,才可以用xwd 来倾印它。)

.你将经常把从这些工具获得的资讯,当成定制系统工具程式的输入(稍後几章会讨论)。



12.1 列出你的Xserver的特徵 -- xdpyinfo

xdpyinfo列出有关你的Xserver和server所控制萤幕之各种项目的资讯,一个典型的输出见图12-1(一个server在Sun 3/50单色工作站上执行的结果)。

┌———————————————————┐
│ p134 fig 12.1 │
│ │
│ 图12-1 典型的xdpyinfo工具程式的输出 │
└———————————————————┘



12.2 获取有关视窗的资讯

有三个程式可以提供目前在你显示器上视窗的资讯。它们是从不同的角度看系统:

1. 列印视窗的阶层 -- xlswins

2. 对单一视窗详细的资讯 -- xwininfo

3. 列出视窗的性质 -- xprop



12.2.1 列印视窗的阶层 -- xlswins

在第一部曾经提过,所有在系统上的视窗被安排成树状的阶层,根视窗(也叫背景(background)视窗)在最上层,在其下才是应用视窗,每一个应用 视窗可以拥有它自己的子视窗阶层。

xlswins 列印出这个树状结构,从根视窗或所指定的视窗起至其下所有的树状结构,对每一个视窗,xlswins 列出视窗的window-id 并用括弧括住它的名称(如果有的话),子视窗则在下面的几行依序以缩入(indent)两格的方式列出。下面的图对xman应用程式列出三个不同子树的输出,藉以展示xlswins 如何剖析系统的结构。

图12-2a 是xman主选单的树。你可以看到在应用视窗(0X600011)中含有另一个视窗(0X600012),而(0X600012)又包含了四个视窗,不需要知道原始程式,你也可以猜得到是一种视窗包含著视窗,而对子视窗做某种管理的情况。

图12-2b 是xman手册页(manpage) 视窗的树。比上一个例子复杂一些,而且也无法在确定是否在这一页手册页中总共就只有这麽多视窗和子视窗。所以 ...

图12-2c 这是xlswins 更详细的输出,比上一个例子需要在命令列中多加一个 -l 的选项,多出来的讯息为巢状的深度(第几层树)、相对於父视窗的几何座标和大小、和视窗左上角距离根视窗的座标(也就是萤幕上的绝对座标),有了这些视窗的座标,你就能了解它们在萤幕上的位置,如果你还是搞不太清楚,可以执行xwd ,指定xlswins 所输出的window-id ,在本图,我们发觉视窗(0X60005d)是高而窄的,所以可能是一个卷动棒。我们可以试著用命令:

xwd -id 0x60005d | xwud

结果的确 xman 卷动棒的图形出现了,这个命令我们在9.2.1 节有提过(只不过这一次我们不把输出送到档案,而利用导管 (pipe) 的技巧直接当成另一程式的输入。)你可以用这种方法分析任何视窗。

┌——————————————————┐
│ p136 fig 12.2 │
顶(0)
踩(0)

您可能还会对下面的文章感兴趣:

最新评论