xprop -
プロパティ表示アプリケーション
xprop [-help] [-grammar] [-id
id] [-root] [-name
name]
[-frame] [-font
font] [-display
display] [-len
n]
[-notype] [-fs
file] [-remove
property-name] [-set
property-name value] [-spy] [-f
atom format
[
dformat]]* [
format [
dformat]
atom]*
xprop は X
サーバ内のウィンドウとフォントのプロパティを表示するためのユーティ
リティである。
xprop
においては、コマンド行の引き数を使ってウィンドウまたはフォントを1
つ選択する。ウィンドウの場合にはウィンドウをクリックして選択することも
できる。これにより、プロパティのリストと(たぶん)フォーマット情報が与え
られる。
オプション¶
- -help
- コマンド行オプションの概要を出力する。
- -grammar
- コマンド行オプションの全てに対する、細かい文法の説明を表示する。
- -id id
- このオプションを使うと、対象のウィンドウをポインタを使って選択する代わ
りにコマンド行からウィンドウ
id
で選択することができる。
このオプションは X
のアプリケーションをデバッグするときに大変便利であ
る。すなわち、対象のウィンドウがスクリーンにマップされない場合や、ポイ
ンタが利用できない場合、ポインタがアプリケーションの動作を妨げる場合に
有効である。
- -name name
- この引き数を使うと、ポインタを使って対象のウィンドウを選択する代わりに、
name
という名前を持つウィンドウをコマンド行から選択すること
ができる。
- -font font
- この引き数を使うと、ユーザはフォント
font
のプロパティを表示させ
ることができる。
- -root
- この引き数は X
のルートウィンドウを対象ウィンドウに指定する。
このオプションは、ルートウィンドウが他のウィンドウに完全に隠されている
場合に便利である。
- -display display
- この引き数を使うと、接続するサーバを指定することができる。
X(7)
を参照すること。
- -len n
- 読み込みや表示を行うプロパティの大きさの上限を
n バイトに指定す
る。
- -notype
- それぞれのプロパティの型を表示しないことを指定。
- -fs file
- 多数のプロパティに対するフォーマットを入力するファイルとして
file
を使うことを指定。
- -frame
- ウィンドウを手動で選択するとき(つまり、-name,
-root, -id
のいずれも与えないとき)に、クライアントのウィンドウの代わり
に(もしあれば)ウィンドウマネージャのフレームを参照することを指定する。
- -remove property-name
- 指定した名前のプロパティを、指定されたウィンドウから取り除くことを指定
する。
- -set property-name value
- 指定した名前のプロパティとそのプロパティの値を指定し、これらを
指定したウィンドウに設定する。
- -spy
- プロパティ変更イベントを監視することにより、ずっとウィンドウのプロパティ
を調べ続ける。
- -f name format [dformat]
- name に対する format
が format であることと
name に対する dformat が
dformat
であることをを指定
する。 dformat
を省略した場合には、"
= $0+\n"
が指定されたものと
見なされる。
これらのプロパティのそれぞれについて、選択されたウィンドウやフォントが
持つ値は、フォーマット情報が与えられていればそれを使って表示される。
フォーマット情報が与えられていなければ、内部的なデフォルト値が使用され
る。選択されたウィンドウやフォントにおいてプロパティが定義されていなけ
れば、そのプロパティに対しては
"not defined"
が表示される。プロパティ
のリストが与えられていない場合には、選択されたウィンドウやフォントが所
有している全てのプロパティが表示される。
ウィンドウは次の4つの方法のうちのいずれかで選択することができる。第一
に、ルートウィンドウを選択したい場合には
-root
オプションが利用できる。
選択したいウィンドウがルートウィンドウでない場合、コマンド行から選
択する方法は2つある。すなわち、
xwininfo 等で得られる
ウィンドウ ID
を使う方法と、ウィンドウが持っている名前を使う方法である。-id
オプ
ションは10進数か16進数の
ID
番号でウィンドウを使って選択する(16進数の
場合は0x
で始めなければならない)。-name
オプションは名前を使ってウィン
ドウを選択する。
ウィンドウを選択する最後の方法は、コマンド行とは全く関係がない。
-font, -id, -name, -root
のいずれも指定されていない場合、十字形のカー
ソルが表示され、ユーザは選択したいウィンドウ上でポインタのボタンをクリッ
クすることで表示されている任意のウィンドウを選択することができる。ウィ
ンドウではなくフォントのプロパティを表示したい場合には、-font
オプショ
ンを使ってコマンド行から選択するしかない。
上記の4つのオプションとヘルプを見るための
-help
オプション、コマンドラ
インの詳しい文法を表示するための
-grammer
オプションを除いた
コマンド行での引き数は全て、表示されるプロパティのフォーマットとプ
ロパティの表示の仕方を指定するために使われる。
-len
n
オプションは、与えられたプロパティのうち長くても
n
バイトだけが読み込み、表示されるように指定する。例えば、全部表示させる
と何ページになるかもしれないルートウィンドウのカットバッファを表示させ
るような場合には、このオプションが有効である。
通常はプロパティ名のそれぞれに対して、プロパティ名が最初に表示され、次
に(もしあれば)その型が括弧付きで表示され、それから値が表示される。
-notype
オプションを指定するとプロパティの型は表示されない。-fs
オプションはプロパティのフォーマットを記述したファイルを指定するために
使われ、-f
オプションはプロパティ1つに対してフォーマットを指定するために
使われる。
プロパティに対するフォーマット情報は具体的には2つの部分、すなわち
format と
dformat
から構成される。
format
はプロパティ
の実際のフォーマット(つまり、word,
byte, long
等からなる)を指定し、
dformat
はプロパティをどのように表示するかを指定する。
以降の段落においては、
format と
dformat
の記述方法を説明す
る。しかし、ほとんどのユーザとその使用目的に対しては必要がないであろう。
なぜなら、デフォルトで組み込まれているフォーマットには全ての標準プロパ
ティを表示するために必要な
format と
dformat
が含まれてい
るからである。
format は、0, 8, 16, 32
のいずれかの後に1つ以上の
フォーマット文字を続けたものである。
0, 8, 16, 32
の数字はプロパティにおいてフィールドごとにいくつビットが
あるかを指定する。0
は特別な場合で、プロパティそのものに対応する
フィールドサイズ情報を使うことを意味する。
(これは、プロパティのフィールドのサイズによって3つの異なる型
となる INTEGER
型のような、特別な場合にのみ必要となる。)
値が 8
の場合には、プロパティはバイト列であり、16の場合にはプロパティ
はワード列である。この2つの違いは、プロパティを出力した元のマシンとは
逆のバイト順を持つマシンでプロパティを読みだした場合、ワード列ではバイ
ト交換が行われるが、バイト列ではバイト列が行われないという点である。
プロパティのフォーマットや格納の方法に関する詳しい情報については、Xlib
のマニュアルを参照すること。
フィールドのサイズが指定されると、それぞれのフィールドの型を指定す
る必要がある(つまり、整数、文字列、アトムなど)。
これはフィールドごとのフォーマット文字1文字を使って指定する。
プロパティが与えたフォーマット文字よりも多くフィールドを持っている場合、
フォーマット文字の数を越えた分のフィールドに対しては、最後のフォーマッ
ト文字が必要なだけ繰り返される。フォーマット文字列とその意味を以下に示
す:
- a
- このフィールドはアトム番号である。この型のフィールドのサイズは32で
なければならない。
- b
- このフィールドは真偽値である。0
は偽を示し、それ以外の値は真を示す。
- c
- このフィールドは符号無しの数、つまり基数である。
- i
- このフィールドは符号付き整数である。
- m
- このフィールドはビットフラグの集合である。フラグは1の場合に立っている。
- s
- このフィールド以降で
0
またはプロパティが終わるまでのフィールドはバイ
ト列を表す。このフォーマット文字と共に使えるのはサイズが8のフィールド
だけである。このフィールドは大抵は文字列を表すために使われる。
- t
- このフィールドから
0
または属性の終わりまでのフィールドは
国際化テキスト文字列を表す。
このフォーマット文字列で使えるフィールドのサイズは
8 だけである。
この文字列は ICCCM
準拠のエンコーディングで使われることと、
出力される前に現在のロケールのエンコーディングに変換されることが
前提となる。
- x
- このフィールドは16進数である('c'
と似ているが
16進表示される。
ウィンドウID
等を表示するときに非常に便利である)。
プロパティが各32ビットのフィールドを3つ持ち、その最初のフィールドが符
号付き整数、2番目のフィールドが符号無し整数、3つめのフィールドがアトム
であるものの
format は32ica
である。
format とは異なり、
dformat
のフォーマットはあまり厳密では
ない。
dformat
の制限は、文字とダッシュで始まってはならないことだけであ
る。これは、プロパティ名やオプションと区別できるようにするためである。
dformat は、printf
で使われているフォーマット文字列と同様の方法
で様々なフィールドに様々な場所に表示させるための、特別な文字列を含むテ
キスト文字列である。例えば
dformat が " is ( $0, $1 \)\n" であ
る場合、フォーマットが
32ii である POINT 3, -4
に対しては " is ( 3, -4 )\n"
と表示される。
dformat に含まれる $, ?, \, (
以外の文字はそのまま表示される。
$, ?, \, (
を表示するにはその文字の前に
\
を付けること。例えば、$
を 表示するには \$
とする。バックスラッシュを使った特殊シーケンスの中に
はショートカットとして使われるものがある。例えば、\n
は改行文字を表示
させ、 \t
はタブ文字を表示させる。また、\
o (
oは10進数)は、
文字コードが
o
である文字を表示させる。
$ の後に数字
n
を続けると、番号
n
のフィールドが表示される。
表示されるフィールドのフォーマットは、対応する
format でフォーマッ
トを記述するために使われているフォーマット文字によって決まる。つまり、
基数が 'c'
で記述されている場合は10進数で表示され、'x'
で記述されてい
る場合には16進数で表示される。
フィールドがプロパティに含まれていない場合(このようなプロパティがいく
つかある)、その代わりに
<field not available>
が表示される。$
n+
は、番号
n
のフィールド、コンマ、番号
n+1 のフィールド、コ
ンマ、...
のような表示を、定義されている最後のフィールドまで続ける。
フィールド
n
が定義されていない場合には、何も表示されない。
これは値のリストになっているプロパティを表示する際に便利である。
? は条件式、つまり if-then
分のようなものを始めるときに使う。
?
exp(
text)は、
exp
を評価した値がゼロ以外の時に限って
text
を表示する。これは次の2点において有効である。第一に、フラグ
がセットされている時に限って表示を行うことが可能になる。第二に、状態数
を単なる数字としてではなく、名前として表示することが可能になる。
exp
の文法を以下に示す:
- exp
- ::= term | term=exp | !exp
- term
- ::= n | $n | mn
!
演算子は論理演算の「not(否定)」であり、0
を 1
に変化させ、0でない値
を0に変化させる。=
は等値演算子である。内部的には全ての式は32ビットの
数として表現されるため、-1
と 65535
は異なる値である点に注意すること。
=
は2つの値が等しい場合には
1
を返し、異なる場合には
0 を返す。
n は定数
n
を表し、$
n は番号
n
のフィールドの
値を表す。 m
n
は、対応する
format
においてフォーマット文字が
'm' であ
る最初のフィールドが持つ番号
n のフラグが 1 ならば 1
を返し、そ
うでなければ 0
を返す。
例: ?m3(count: $3\n)
は、(0から数えて)番号3のフラグが立っている場合に
のみフィールド 3 に count
というラベルを付けて表示する。
?$2=0(True)?!$2=0(False)
は、フィールド2
の真偽値の反対の値を表示する。
プロパティを表示するには、
xprop は
format と
dformat
の両方を表示する。
xprop は、
format
のデフォルト値 32x と
dformat のデフォルト値 "
= { $0+ }\n"
を使う前に、より細かいフォー
マットの検索を試み、いくつかの場所を調べる。まず、プロパティ名を使って
検索が行われる。これが失敗するとプロパティの型を使って検索が行われ
る。これにより、あるフォーマットのセットを使って
STRING 型を定義す
る一方で、STRING
型である プロパティ
WM_NAME
をこれと異なるフォー
マットで定義することができる。このようにして、特定のプロパティに対して
は与えられた型の表示フォーマットを上書きすることができる。
検索は次の順序で行われる:
(もしあれば)プロパティ名で指定されたフォーマッ
ト(WM_NAME では 8x)、-f
オプションで指定されたフォーマット(最後の指定
から最初の指定への順)、(もしあれば)-fs
オプションで指定したファイルの
内容、(もしあれば)環境変数
XPROPFORMATS
で指定したファイルの内容、
xprop
に組み込みのフォーマットのファイル。
-fs
オプションや環境変数
XPROPFORMATS
で参照されるファイルのフォーマッ
トは、以下の形式の行を1つ以上持つものである。
name format [
dformat]
name
はプロパティ名か型の名前であり、
format は
name
と共に使われる
format
であり、
dformat は
name
と共に使われる
dformat
である。
dformat
を省略し
た場合には、" = $0+\n"
が指定されたものとして処理される。
ルートウィンドウの名前を表示:
xprop -root WM_NAME
clock
に対するウィンドウマネージャヒントを表示:
xprop -name xclock WM_HINTS
カットバッファの先頭部分を表示:
xprop -root -len 100 CUT_BUFFER0
固定幅フォントのポイントサイズを表示:
xprop -font fixed POINT_SIZE
ID 0x200007
のウィンドウの全てのプロパティを表示:
xprop -id 0x200007
環境変数¶
- DISPLAY
- デフォルトのディスプレイを取得する。
- XPROPFORMATS
- xprop
が取得する追加的なフォーマットの内容を含むファイルの名前を指定する。
関連項目¶
X(7),
xwininfo(1)
Mark Lillibridge, MIT Project Athena