|
|
1.1 root 1: .TH XPROP 1 "6 July 1987" "X Version 11"
2: .SH NAME
3: xprop - X Window System property displayer.
4: .SH SYNOPSIS
5: .B "xprop"
6: [ -help ] [ -id \fIid\fP ] [ -root ] [ -name \fIname\fP ] [ -font \fIfont\fP ]
7: [ \fIhost\fP:\fIdisplay\fP ]
8: [ -len \fIn\fP ] [ -notype ] [ -fs \fIfile\fP ]
9: [ -f \fIatom\fP \fIformat\fP [\fIdformat\fP] ]*
10: [ \fIformat\fP [\fIdformat\fP] \fIatom\fP ]*
11: .SH DESCRIPTION
12: .PP
13: .I Xprop
14: is a utility for displaying X properties. Both the properties of windows
15: and fonts can be displayed. One window or font is selected using the command
16: line arguemnts or possibly in the case of a window, by clicking on the desired
17: window. A list of properties is then given, possibly with formatting
18: information.
19: .PP
20: For each of these properties, its value on the selected window
21: or font is printed using the supplied formatting information if any. If no
22: formatting information is supplied, internal defaults are used. If a property
23: is not defined on the selected window or font, "not defined" is printed as the
24: value for that property. If no property list is given, all the properties
25: possessed by the selected window or font are printed.
26: .PP
27: A window may be selected in one of four ways. First, if the desired window
28: is the root window, the -root argument may be used.
29: If the desired window is not the root window, it may be selected
30: in two ways on the command line, either by id number such as might be obtained
31: from \fIxwininfo\fP, or by name if the window possesses a name. The -id
32: argument selects a window by id number in either decimal or hex (must start
33: with 0x) while the -name argument selects a window by name.
34: .PP
35: The last way to select a window does not involve the command line at all.
36: If none of -font, -id, -name, and -root are specified, a crosshairs cursor
37: is displayed and the user allowed to choose any visible window by pressing
38: any mouse button in the desired window. If it is desired to display properties
39: of a font as opposed to a window, the -font argument may be used.
40: .PP
41: Other than the above four arguments and the -help argument for obtaining help,
42: all the other command line arguments are used in specifing both the format
43: of the properties to be displayed and how to display them. The -len \fIn\fP
44: argument specifies that at most \fIn\fP bytes of any given property will be
45: read and displayed. This is useful for example when displaying the cut buffer
46: on the root window which could run to several pages if displayed in full.
47: .PP
48: Normally each property name is displayed by printing first the property
49: name then its type if it has one in ()'s followed by its value.
50: The -notype argument specifies that types of the properties should not be
51: displayed. The -fs argument is used to specify a file containing a list of
52: formats for properties while the -f argument is used to specify the format
53: for one property.
54: .PP
55: The formatting information for a property actually consists of two parts,
56: a \fIformat\fP and a \fIdformat\fP. The \fIformat\fP specifies the actual
57: formatting of the property (i.e., is it made up of words, bytes, or longs?,
58: etc.) while the \fIdformat\fP specifies how the property should be displayed.
59: .PP
60: The following paragraphs describe how to construct \fIformat\fPs and
61: \fIdformat\fPs. However, for the vast majority of users and uses, this should
62: not be necessary as the built in defaults contain the \fIformat\fPs and
63: \fIdformat\fPs necessary to display all the standard properties. It should
64: only be necessary to muck about with \fIformat\fPs and \fIdformat\fPs
65: if a new property is being dealt with or the user dislikes the standard display
66: format. New users especially are encouraged to skip this part.
67: .PP
68: A \fIformat\fP consists of one of 0, 8, 16, or 32 followed by a sequence of one
69: or more format characters. The 0, 8, 16, or 32 specifies how many bits per
70: field there are in the property. Zero is a special case meaning use the
71: field size information associated with the property itself. (this is only
72: needed for special cases like type INTEGER which is actually three different
73: types depending on the size of the fields of the property)
74: .PP
75: A value of 8 means
76: that the property is a sequence of bytes while a value of 16 would mean that
77: the property is a sequence of words. The difference between these two lies in
78: the fact that the sequence of words will be byte swapped while the sequence of
79: bytes will not be when read by a machine of the opposite byte order of the
80: machine that orginally wrote the property. For more information on how
81: properties are formatted and stored, consult the X 11 XLib manual.
82: .PP
83: Once the size of the fields has been specified, it is necessary to specify
84: the type of each field (i.e., is it an integer, a string, an atom, or what?)
85: This is done using one format character per field. If there are more fields
86: in the property than format characters supplied, the last character will be
87: repeated as many times as necessary for the extra fields. The format
88: characters and their meaning are as follows:
89: .TP
90: a
91: The field holds a atom number. A field of this type should be of size 32.
92: .TP
93: b
94: The field is an boolean. A 0 means false while anything else means true.
95: .TP
96: c
97: The field is an unsigned number, a cardinal.
98: .TP
99: i
100: The field is a signed integer.
101: .TP
102: m
103: The field is a set of bit flags, 1 meaning on.
104: .TP
105: s
106: This field and the next ones until either a 0 or the end of the property
107: represent a sequence of bytes. This format character is only usable with
108: a field size of 8 and is most often used to represent a string.
109: .TP
110: x
111: The field is a hex number (like 'c' but displayed in hex - most useful
112: for displaying window ids and the like)
113: .PP
114: An example \fIformat\fP is 32ica which is the format for a property of three
115: fields of 32 bits each, the first holding a signed integer, the second an
116: unsigned integer, and the third an atom.
117: .PP
118: The format of a \fIdformat\fP unlike that of a \fIformat\fP is not so rigid.
119: The only limitations on a \fIdformat\fP is that one may not start with a letter
120: or a dash. This is so that it can be distingished from a property name or
121: an argument. A \fIdformat\fP is a text string containing special characters
122: instructing that various fields be printed at various points in a manor similar
123: to the formatting string used by printf. For example, the \fIdformat\fP
124: " is ( $0, $1 \\)\\n" would render the POINT 3, -4 which has a \fIformat\fP of
125: 32ii as " is ( 3, -4 )\\n".
126: .PP
127: Any character other than a $, ?, \\, or a ( in a \fIdformat\fP prints as
128: itself. To print out one of $, ?, \\, or ( preceed it by a \\. I.e.,
129: to print out a $, use \\$. Several special backslash sequences are provided
130: as shortcuts. \\n will cause a newline to be displayed while \\t will
131: cause a tab to be displayed. \\\fIo\fP where \fIo\fP is an octal number
132: will display character number \fIo\fP.
133: .PP
134: A $ followed by a number \fIn\fP causes field number \fIn\fP to be
135: displayed. The format of the displayed field depends on the formatting
136: character used to describe it in the corrsponding \fIformat\fP. I.e., if
137: a cardinal is described by 'c' it will print in decimal while if it is
138: described by a 'x' it is displayed in hex.
139: .PP
140: If the field is not present in
141: the property (this is possible with some properties), <field not available>
142: is displayed instead. $\fIn\fP+ will display field number \fIn\fP then a
143: comma then field number \fIn\fP+1 then another comma then ... until the last
144: field defined. If field \fIn\fP is not defined, nothing is displayed.
145: This is useful for a property that is a list of values.
146: .PP
147: A ? is used to start a conditional expression, a kind of if-then statement.
148: ?\fIexp\fP(\fItext\fP) will display \fItext\fP iff \fIexp\fP evaluates to
149: non-zero. This is useful for two things. First, it allows fields to be
150: displayed iff a flag is set. And second, it allows a value to such as a state
151: number to be displayed as a name rather than as just a number. The syntax of
152: \fIexp\fP is as follows:
153: .TP
154: \fIexp\fP
155: ::= \fIterm\fP | \fIterm\fP=\fIexp\fP | !\fIexp\fP
156: .TP
157: \fIterm\fP
158: ::= \fIn\fP | $\fIn\fP | m\fIn\fP
159: .PP
160: ! is a not operator changing 0 to 1 and any non-zero value to 0.
161: = is an equality operator. Note that internally all expressions are evaluated
162: as 32 bit numbers so -1 is not equal to 65535. = returns 1 if the two values
163: are equal and 0 if not.
164: \fIn\fP represents the constant value \fIn\fP while $\fIn\fP represents the
165: value of field number \fIn\fP.
166: m\fIn\fP is 1 if flag number \fIn\fP in the first field having format
167: character 'm' in the corrsponding \fIformat\fP is 1, 0 otherwise.
168: .PP
169: Examples: ?m3(count: $3\\n) displays field 3 with a label of count iff flag
170: number 3 (count starts at 0!) is on. ?$2=0(True)?!$2=0(False) displays the
171: inverted value of field 2 as a boolean.
172: .PP
173: In order to display a property, \fIxprop\fP needs both a \fIformat\fP and a
174: \fIdformat\fP. Before \fIxprop\fP uses its default values of a \fIformat\fP
175: of 32x and a \fIdformat\fP of " = { $0+ }\\n", it searches several places
176: in an attempt to find more specific formats.
177: First, a search is made using the name of the property. If this
178: fails, a search is made using the type of the property. This allows type
179: STRING to be defined with one set of formats while allowing property WM_NAME
180: which is of type STRING to be defined with a different format. In this way,
181: the display formats for a given type can be overridden for specific properties.
182: .PP
183: The locations searched are in order: the format if any specified with the
184: property name (as in 8x WM_NAME), the formats defined by -f options in last to
185: first order, the contents of the file specified by the -fs option if any,
186: the contents of the file specified by the environmental variable XPROPFORMATS
187: if any, and finally \fIxprop\fP's built in file of formats.
188: .PP
189: The format of the files refered to by the -fs argument and the XPROPFORMATS
190: variable is one or more lines of the following form:
191: .PP
192: \fIname\fP \fIformat\fP [\fIdformat\fP]
193: .PP
194: Where \fIname\fP is either the name of a property or the name of a type,
195: \fIformat\fP is the \fIformat\fP to be used with \fIname\fP and \fIdformat\fP
196: is the \fIdformat\fP to be used with \fIname\fP. If \fIdformat\fP is not
197: present, " = $0+\\n" is assumed.
198: .SH EXAMPLES
199: .PP
200: To display the name of the root window: \fIxprop\fP -root WM_NAME
201: .PP
202: To display the window manager hints for the clock: \fIxprop\fP -name xclock
203: WM_HINTS
204: .PP
205: To display the start of the cut buffer: \fIxprop\fP -root -len 100 CUT_BUFFER0
206: .PP
207: To display the point size of the fixed font: \fIxprop\fP -font fixed POINT_SIZE
208: .PP
209: To display all the properties of window # 0x200007: \fIxprop\fP -id 0x200007
210: .SH ARGUMENT SUMMARY
211: .PP
212: .TP 8
213: .B "-help"
214: Print out the 'Usage:' command syntax summary.
215: .PP
216: .TP 8
217: .B "-id \fIid\fP"
218: This argument allows the user to select window \fIid\fP on the
219: command line rather than using the mouse to select the target window.
220: This is very useful in debugging X applications where the target
221: window is not mapped to the screen or where the use of the mouse might
222: be impossible or interfere with the application.
223: .PP
224: .TP 8
225: .B "-name \fIname\fP"
226: This argument allows the user to specify that the window named \fIname\fP
227: is the target window on the command line rather than using the mouse to
228: select the target window.
229: .PP
230: .TP 8
231: .B "-font \fIfont\fP"
232: This argument allows the user to specify that the properties of font
233: \fIfont\fP should be displayed.
234: .PP
235: .TP 8
236: .B "-root"
237: This argument specifies that X's root window is the target window.
238: This is useful in situations where the root window is completely
239: obscured.
240: .PP
241: .TP 8
242: .B "\fIhost\fP:\fIdisplay\fP"
243: This argument allow you to specify the host and display number on
244: which to find the target window. For example `xprop orpheus:1'
245: would specify that the target window is on display `1' on the machine
246: `orpheus'. By default,
247: .I xprop
248: uses the host and display number stored in the environment variable
249: DISPLAY, and therefore this argument is not normally specified.
250: .PP
251: .TP 8
252: .B "-len \fIn\fP"
253: Specifies that at most \fIn\fP bytes of any property should be read or
254: displayed.
255: .PP
256: .TP 8
257: .B "-notype"
258: Specifies that the type of each property should not be displayed.
259: .PP
260: .TP 8
261: .B "-fs \fIfile\fP"
262: Specifies that file \fIfile\fP should be used as a source of more formats
263: for properties.
264: .PP
265: .TP 8
266: .B "-f \fIname\fP \fIformat\fP [\fIdformat\fP]"
267: Specifies that the \fIformat\fP for \fIname\fP should be \fIformat\fP and that
268: the \fIdformat\fP for \fIname\fP should be \fIdformat\fP. If \fIdformat\fP
269: is missing, " = $0+\\n" is assumed.
270: .SH ENVIRONMENT
271: .PP
272: .TP 8
273: .B XPROPFORMATS
274: Specifies the name of a file from which additional formats are to be obtained.
275: .PP
276: .TP 8
277: .B DISPLAY
278: To get default host and display number.
279: .SH SEE ALSO
280: X(1), XWININFO(1)
281: .SH AUTHOR
282: Mark Lillibridge, MIT Project Athena
283: .br
284: Copyright 1987, Massachusetts Institute of Technology.
285:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.