.\" Copyright 1988, 1998 The Open Group .\" Copyright \(co 2000 The XFree86 Project, Inc. .\" .\" Permission to use, copy, modify, distribute, and sell this software and its .\" documentation for any purpose is hereby granted without fee, provided that .\" the above copyright notice appear in all copies and that both that .\" copyright notice and this permission notice appear in supporting .\" documentation. .\" .\" The above copyright notice and this permission notice shall be included .\" in all copies or substantial portions of the Software. .\" .\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS .\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF .\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. .\" IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR .\" OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, .\" ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR .\" OTHER DEALINGS IN THE SOFTWARE. .\" .\" Except as contained in this notice, the name of The Open Group shall .\" not be used in advertising or otherwise to promote the sale, use or .\" other dealings in this Software without prior written authorization .\" from The Open Group. .\" .TH XPROP 1 "xprop 1.2.8" "X Version 11" .SH "نام (NAME)" xprop \- نمایش‌دهنده ویژگی‌ها برای X .SH "خلاصه دستور (SYNOPSIS)" .B "xprop" [-help] [-grammar] [-id \fIid\fP] [-root] [-name \fIname\fP] [-frame] [-font \fIfont\fP] [-display \fIdisplay\fP] [-len \fIn\fP] [-notype] [-fs \fIfile\fP] [-remove \fIproperty-name\fP] [-set \fIproperty-name\fP \fIvalue\fP] [-spy] [-version] [-f \fIatom\fP \fIformat\fP [\fIdformat\fP]]* [\fIformat\fP [\fIdformat\fP] \fIatom\fP]* .SH "خلاصه (SUMMARY)" .PP ابزار .I xprop برای نمایش ویژگی‌های پنجره و قلم در کارساز X به کار می‌رود. یک پنجره یا قلم با استفاده از آرگومان‌های خط فرمان یا در مورد پنجره، احتمالاً با کلیک بر روی پنجرهٔ مورد نظر انتخاب می‌شود. سپس فهرستی از ویژگی‌ها، احتمالاً همراه با اطلاعات قالب‌بندی ارائه می‌شود. .SH "گزینه‌ها (OPTIONS)" .PP .TP 8 .B "-help" چاپ خلاصه‌ای از گزینه‌های خط فرمان. .PP .TP 8 .B "-grammar" چاپ دستور زبان (grammar) تفصیلی برای تمام گزینه‌های خط فرمان. .PP .TP 8 .B "-id \fIid\fP" این آرگومان به کاربر اجازه می‌دهد پنجرهٔ \fIid\fP را در خط فرمان انتخاب کند، به‌جای آن‌که از نشانگر برای انتخاب پنجرهٔ هدف استفاده نماید. این گزینه در اشکال‌زدایی برنامه‌های کاربردی X که در آن‌ها پنجرهٔ هدف روی صفحه نگاشت نشده است (mapped نیست) یا مواردی که استفاده از نشانگر غیرممکن است یا با برنامه تداخل ایجاد می‌کند، بسیار مفید است. .PP .TP 8 .B "-name \fIname\fP" این آرگومان به کاربر امکان می‌دهد به‌جای استفاده از نشانگر ماوس، پنجره‌ای به نام \fIname\fP را در خط فرمان به عنوان پنجرهٔ هدف تعیین کند. .PP .TP 8 .B "-font \fIfont\fP" این آرگومان به کاربر اجازه می‌دهد مشخص کند که ویژگی‌های قلم \fIfont\fP باید نمایش داده شوند. .PP .TP 8 .B "-root" این آرگومان مشخص می‌کند که پنجرهٔ ریشه (root window) در X پنجرهٔ هدف است. این گزینه در مواردی که پنجرهٔ ریشه کاملاً پوشانده شده است کاربرد دارد. .PP .TP 8 .B "-display \fIdisplay\fP" این آرگومان امکان تعیین کارسازی را که باید به آن متصل شد فراهم می‌کند؛ مدخل \fIX(7)\fP را ببینید. .PP .TP 8 .B "-len \fIn\fP" مشخص می‌کند که حداکثر \fIn\fP بایت از هر ویژگی خوانده یا نمایش داده شود. .PP .TP 8 .B "-notype" مشخص می‌کند که نوع هر ویژگی نباید نمایش داده شود. .PP .TP 8 .B "-fs \fIfile\fP" مشخص می‌کند که فایل \fIfile\fP باید به‌عنوان منبعی برای قالب‌های بیشتر ویژگی‌ها استفاده شود. .PP .TP 8 .B "-frame" مشخص می‌کند که هنگام انتخاب دستی یک پنجره (یعنی اگر هیچ‌کدام از گزینه‌های \fB-name\fP، \fB-root\fP یا \fB-id\fP داده نشده باشند)، به‌جای جستجو برای پنجرهٔ کلاینت، قاب مدیر پنجره (در صورت وجود) بررسی شود. .PP .TP 8 .B "-remove \fIproperty-name\fP" نام ویژگی‌ای را مشخص می‌کند که باید از پنجرهٔ تعیین‌شده حذف شود. .PP .TP 8 .B "-set \fIproperty-name\fP \fIvalue\fP" نام یک ویژگی و مقدار آن را برای تنظیم شدن روی پنجرهٔ تعیین‌شده مشخص می‌کند. .PP .TP 8 .B "-spy" ویژگی‌های پنجره را به‌صورت نامحدود برای یافتن رویدادهای تغییر ویژگی پایش و بررسی می‌کند. .PP .TP 8 .B "-version" اطلاعات نگارش برنامه را چاپ کرده و خارج می‌شود. .PP .TP 8 .B "-f \fIname\fP \fIformat\fP [\fIdformat\fP]" مشخص می‌کند که \fIformat\fP برای \fIname\fP باید \fIformat\fP و \fIdformat\fP برای \fIname\fP باید \fIdformat\fP باشد. اگر \fIdformat\fP مشخص نشده باشد، مقدار " = $0+\\n" فرض می‌شود..SH "توضیحات (DESCRIPTION)" .PP برای هر یک از این ویژگی‌ها، مقدار آن روی پنجره یا قلم (فونت) انتخاب‌شده با استفاده از اطلاعات قالب‌بندی ارائه‌شده (در صورت وجود) چاپ می‌شود. اگر هیچ اطلاعات قالب‌بندی ارائه‌ نشده باشد، پیش‌فرض‌های داخلی به کار گرفته می‌شوند. اگر ویژگی‌ای روی پنجره یا قلم انتخاب‌شده تعریف نشده باشد، عبارت "not defined" به عنوان مقدار آن ویژگی چاپ می‌شود. اگر هیچ فهرستی از ویژگی‌ها ارائه نشود، تمام ویژگی‌های پنجره یا قلم انتخاب‌شده چاپ خواهند شد. .PP یک پنجره را می‌توان به یکی از چهار روش انتخاب کرد. نخست، اگر پنجرهٔ مورد نظر پنجرهٔ ریشه (root window) باشد، می‌توان از آرگومان \-root استفاده کرد. اگر پنجرهٔ مورد نظر پنجرهٔ ریشه نباشد، می‌توان آن را به دو روش در خط فرمان انتخاب کرد: یا از طریق شمارهٔ شناسه مانند آنچه ممکن است از \fIxwininfo\fP به دست آید، یا از طریق نام، در صورتی که پنجره دارای نام باشد. آرگومان \-id پنجره را با شمارهٔ شناسه در قالب ده‌دهی یا هگزادسیمال (که باید با 0x آغاز شود) انتخاب می‌کند، در حالی که آرگومان \-name پنجره را با نام آن برمی‌گزیند. .PP آخرین روش برای انتخاب پنجره اصلاً نیازی به خط فرمان ندارد. اگر هیچ‌یک از آرگومان‌های \-font، \-id، \-name و \-root مشخص نشده باشند، یک مکان‌نمای نشانه‌گیری (crosshairs) نمایش داده می‌شود و کاربر می‌تواند با فشردن هر یک از کلیدهای اشاره‌گر در پنجرهٔ مورد نظر، هر پنجرهٔ قابل مشاهده‌ای را انتخاب کند. اگر به جای پنجره، نمایش ویژگی‌های یک قلم مد نظر باشد، باید از آرگومان \-font استفاده شود. .PP به جز چهار آرگومان فوق و آرگومان \-help برای دریافت راهنما، و آرگومان \-grammar برای فهرست کردن گرامر کامل خط فرمان، تمامی دیگر آرگومان‌های خط فرمان برای تعیین قالب ویژگی‌های قابل نمایش و چگونگی نمایش آن‌ها به کار می‌روند. آرگومان \-len \fIn\fP مشخص می‌کند که حداکثر \fIn\fP بایت از هر ویژگی داده‌شده خوانده و نمایش داده شود. این گزینه برای نمونه هنگام نمایش بافر برش (cut buffer) روی پنجرهٔ ریشه کاربرد دارد، که در صورت نمایش کامل ممکن است چندین صفحه طول بکشد. .PP به طور معمول نام هر ویژگی با چاپ ابتدا نام ویژگی، سپس نوع آن (در صورت وجود) در پرانتز، و پس از آن مقدارش نمایش داده می‌شود. آرگومان \-notype مشخص می‌کند که نوع ویژگی نباید نمایش داده شود. آرگومان \-fs برای تعیین فایلی شامل فهرستی از قالب‌ها برای ویژگی‌ها استفاده می‌شود، در حالی که آرگومان \-f برای تعیین قالب یک ویژگی خاص به کار می‌رود. .PP اطلاعات قالب‌بندی برای یک ویژگی در واقع از دو بخش تشکیل شده است: یک \fIformat\fP و یک \fIdformat\fP. مقدار \fIformat\fP قالب‌بندی واقعی ویژگی را مشخص می‌کند (یعنی آیا از کلمات (words)، بایت‌ها یا longs تشکیل شده است؟ و غیره)، در حالی که \fIdformat\fP نحوهٔ نمایش ویژگی را تعیین می‌کند. .PP پاراگراف‌های زیر چگونگی ساختن \fIformat\fPها و \fIdformat\fPها را شرح می‌دهند. با این حال، برای اکثریت قریب به اتفاق کاربران و کاربردها، این کار نباید ضروری باشد زیرا پیش‌فرض‌های داخلی حاوی \fIformat\fPها و \fIdformat\fPهای لازم برای نمایش تمامی ویژگی‌های استاندارد هستند. تنها زمانی باید \fIformat\fPها و \fIdformat\fPها را مشخص کرد که با ویژگی جدیدی سر و کار باشد یا کاربر از قالب نمایش استاندارد ناراضی باشد. به‌ویژه به کاربران تازه‌کار توصیه می‌شود از این بخش صرف‌نظر کنند. .PP یک \fIformat\fP از یکی از اعداد 0، 8، 16 یا 32 و به دنبال آن دنباله‌ای از یک یا چند نویسهٔ قالب تشکیل شده است. اعداد 0، 8، 16 یا 32 مشخص می‌کنند که در هر فیلد از ویژگی چند بیت وجود دارد. صفر یک حالت خاص به معنای استفاده از اطلاعات اندازهٔ فیلد مرتبط با خود ویژگی است. (این فقط برای موارد خاصی مانند نوع INTEGER لازم است که بسته به اندازهٔ فیلدهای ویژگی، در واقع سه نوع مختلف است.) .PP مقدار 8 به این معناست که ویژگی دنباله‌ای از بایت‌ها است، در حالی که مقدار 16 به معنای آن است که ویژگی دنباله‌ای از کلمات (words) است. تفاوت بین این دو در این است که هنگام خوانده شدن توسط ماشینی با ترتیب بایت (byte order) مخالف با ماشینی که در ابتدا ویژگی را نوشته است، ترتیب بایت‌های دنبالهٔ کلمات جابه‌جا خواهد شد (byte swapped)، اما دنبالهٔ بایت‌ها جابه‌جا نمی‌شود. برای کسب اطلاعات بیشتر دربارهٔ نحوهٔ قالب‌بندی و ذخیره‌سازی ویژگی‌ها، به کتابچهٔ راهنمای Xlib مراجعه کنید. .PP پس از مشخص شدن اندازهٔ فیلدها، لازم است نوع هر فیلد نیز مشخص شود (یعنی آیا یک عدد صحیح، رشته، اتم، یا چیز دیگری است؟). این کار با استفاده از یک نویسهٔ قالب به ازای هر فیلد انجام می‌شود. اگر تعداد فیلدهای ویژگی بیشتر از نویسه‌های قالب ارائه‌شده باشد، آخرین نویسه به تعداد لازم برای فیلدهای اضافی تکرار خواهد شد. نویسه‌های قالب و معانی آن‌ها به شرح زیر است: .TP a فیلد حاوی یک شمارهٔ اتم (atom number) است. فیلدی از این نوع باید دارای اندازهٔ 32 باشد. .TP b فیلد یک بولی (boolean) است. مقدار 0 به معنای نادرست (false) و هر مقدار دیگری به معنای درست (true) است. .TP c فیلد یک عدد بدون علامت (cardinal) است. .TP i فیلد یک عدد صحیح علامت‌دار است. .TP m فیلد مجموعه‌ای از پرچم‌های بیتی (bit flags) است که 1 به معنای روشن بودن است. .TP o فیلد آرایه‌ای از آیکون‌ها است که به صورت دنباله‌ای از اعداد 32 بیتی متشکل از عرض، ارتفاع و مقادیر پیکسل ARGB بسته‌بندی شده‌اند، همان‌گونه که برای ویژگی _NET_WM_ICON در مشخصات \fIExtended Window Manager Hints\fP تعریف شده است. فیلدی از این نوع باید دارای اندازهٔ 32 باشد. .TP s این فیلد و فیلدهای بعدی تا رسیدن به یک 0 یا انتهای ویژگی، دنباله‌ای از بایت‌ها را نشان می‌دهند. این نویسهٔ قالب تنها با اندازهٔ فیلد 8 قابل استفاده است و اغلب برای نمایش یک رشته به کار می‌رود. .TP t این فیلد و فیلدهای بعدی تا رسیدن به یک 0 یا انتهای ویژگی، یک رشتهٔ متنی بین‌المللی‌شده را نشان می‌دهند. این نویسهٔ قالب تنها با اندازهٔ فیلد 8 قابل استفاده است. فرض می‌شود رشته در یک کدگذاری منطبق با ICCCM است و پیش از ارسال به خروجی، به کدگذاری محلی (locale) فعلی تبدیل می‌شود. .TP u این فیلد و فیلدهای بعدی تا رسیدن به یک 0 یا انتهای ویژگی، یک رشتهٔ یونیکد کدگذاری‌شده با UTF-8 را نشان می‌دهند. این نویسهٔ قالب تنها با اندازهٔ فیلد 8 قابل استفاده است. اگر مشخص شود که رشته دارای نویسهٔ نامعتبر است، در عوض نوع تخلف از کدگذاری چاپ شده و به دنبال آن رشته با استفاده از 's' قالب‌بندی می‌شود. در محیطی که قادر به نمایش رشته‌های کدگذاری‌شده با UTF-8 نیست، رفتار آن همانند 's' خواهد بود. .TP x فیلد یک عدد هگزادسیمال است (مانند 'c' اما به صورت هگزادسیمال نمایش داده می‌شود \- برای نمایش شناسه‌های پنجره و مانند آن بسیار مفید است). .PP یک نمونه \fIformat\fP مقدار 32ica است که قالب ویژگی‌ای با سه فیلد 32 بیتی است؛ اولی شامل یک عدد صحیح علامت‌دار، دومی یک عدد صحیح بدون علامت، و سومی یک اتم. .PP قالب یک \fIdformat\fP بر خلاف یک \fIformat\fP چندان سفت و سخت نیست. تنها محدودیت در مورد \fIdformat\fP این است که نباید با یک حرف یا یک خط تیره آغاز شود. این محدودیت برای آن است که بتوان آن را از نام ویژگی یا یک آرگومان تشخیص داد. یک \fIdformat\fP رشته‌ای متنی شامل نویسه‌های ویژه‌ای است که دستور چاپ فیلدهای گوناگون را در نقاط مختلف صادر می‌کند، به روشی مشابه با رشتهٔ قالب‌بندی مورد استفاده در printf. برای مثال، \fIdformat\fP با مقدار " is ( $0, $1 \\)\\n" ویژگی POINT 3, -4 را که دارای \fIformat\fP مقدار 32ii است، به صورت " is ( 3, -4 )\\n" نمایش می‌دهد. .PP هر نویسه‌ای به جز $، ?، \\ یا ( در یک \fIdformat\fP همان‌گونه که هست چاپ می‌شود. برای چاپ یکی از نویسه‌های $، ?، \\ یا (، یک \\ پیش از آن قرار دهید. برای مثال، برای چاپ یک $ از \\$ استفاده کنید. چند توالی ممیز وارونه (backslash) ویژه به عنوان میان‌بر فراهم شده است. \\n باعث نمایش سطر جدید و \\t باعث نمایش نویسهٔ تب می‌شود. \\\fIo\fP که در آن \fIo\fP یک عدد در مبنای هشت (octal) است، نویسهٔ شمارهٔ \fIo\fP را نمایش خواهد داد. .PP یک $ به دنبال عدد \fIn\fP باعث نمایش فیلد شمارهٔ \fIn\fP می‌شود. قالب فیلدِ نمایش‌داده‌شده به نویسهٔ قالب‌بندی که برای توصیف آن در \fIformat\fP متناظر استفاده شده است بستگی دارد. یعنی اگر یک عدد بدون علامت (cardinal) با 'c' توصیف شده باشد به صورت ده‌دهی چاپ می‌شود، در حالی که اگر با 'x' توصیف شده باشد به صورت هگزادسیمال نمایش داده خواهد شد. .PP اگر فیلد در ویژگی موجود نباشد (این مورد در برخی ویژگی‌ها امکان‌پذیر است)، به جای آن نمایش داده می‌شود. $\fIn\fP+ فیلد شمارهٔ \fIn\fP، سپس یک ویرگول، سپس فیلد شمارهٔ \fIn\fP+1، سپس ویرگول بعدی و... را تا آخرین فیلد تعریف‌شده نمایش می‌دهد. اگر فیلد \fIn\fP تعریف نشده باشد، چیزی نمایش داده نمی‌شود. این قابلیت برای ویژگی‌هایی که فهرستی از مقادیر هستند مفید است. .PP یک ? برای آغاز یک عبارت شرطی (نوعی دستور if-then) استفاده می‌شود. ?\fIexp\fP(\fItext\fP) مقدار \fItext\fP را نمایش می‌دهد اگر و تنها اگر مقدار \fIexp\fP به مقداری غیرصفر ارزیابی شود. این قابلیت برای دو منظور مفید است: نخست، به فیلدها امکان می‌دهد تنها در صورتی که یک پرچم تنظیم شده باشد نمایش یابند؛ و دوم، اجازه می‌دهد مقداری مانند شمارهٔ وضعیت، به جای صرفاً یک عدد، به صورت یک نام نمایش داده شود. نحوِ (syntax) عبارت \fIexp\fP به صورت زیر است: .TP \fIexp\fP ::= \fIterm\fP | \fIterm\fP=\fIexp\fP | !\fIexp\fP .TP \fIterm\fP ::= \fIn\fP | $\fIn\fP | m\fIn\fP .PP عملگر ! یک «نقیض» (not) منطقی است که 0 را به 1 و هر مقدار غیرصفری را به 0 تغییر می‌دهد. = عملگر برابری است. توجه داشته باشید که در ساختار داخلی، تمام عبارت‌ها به عنوان اعداد 32 بیتی ارزیابی می‌شوند، بنابراین \-1 با 65535 برابر نیست. اگر دو مقدار برابر باشند = مقدار 1 و در غیر این صورت 0 را برمی‌گرداند. \fIn\fP نشان‌دهندهٔ مقدار ثابت \fIn\fP است در حالی که $\fIn\fP نشان‌دهندهٔ مقدار فیلد شمارهٔ \fIn\fP است. m\fIn\fP برابر با 1 خواهد بود اگر پرچم شمارهٔ \fIn\fP در نخستین فیلدی که دارای نویسهٔ قالب 'm' در \fIformat\fP متناظر است برابر با 1 باشد، و در غیر این صورت 0 است. .PP مثال‌ها: ?m3(count: $3\\n) فیلد 3 را با برچسب count نمایش می‌دهد اگر و تنها اگر پرچم شمارهٔ 3 (شمارش از 0 آغاز می‌شود!) روشن باشد. ?$2=0(True)?!$2=0(False) مقدار معکوس فیلد 2 را به صورت بولی نمایش می‌دهد. .PP برای نمایش یک ویژگی، \fIxprop\fP هم به یک \fIformat\fP و هم به یک \fIdformat\fP نیاز دارد. پیش از آنکه \fIxprop\fP از مقادیر پیش‌فرض خود یعنی \fIformat\fP با مقدار 32x و \fIdformat\fP با مقدار " = { $0+ }\\n" استفاده کند، چندین مکان را در تلاش برای یافتن قالب‌های مشخص‌تر جستجو می‌کند. نخست، جستجویی با استفاده از نام ویژگی انجام می‌شود. اگر این جستجو ناموفق باشد، جستجو با استفاده از نوع ویژگی صورت می‌گیرد. این امر اجازه می‌دهد تا نوع STRING با یک مجموعه قالب تعریف شود، در حالی که ویژگی WM_NAME که از نوع STRING است، با قالب متفاوتی تعریف شود. به این ترتیب، می‌توان قالب‌های نمایش یک نوع مشخص را برای ویژگی‌های خاص بازنویسی (override) کرد..PP مکان‌های جستجو به‌ترتیب عبارتند از: قالبی که به‌همراه نام ویژگی مشخص شده باشد (در صورت وجود، مانند 8x WM_NAME)، قالب‌های تعریف‌شده توسط گزینه‌های \-f به‌ترتیب از آخر به اول، محتویات فایل مشخص‌شده با گزینهٔ \-fs (در صورت وجود)، محتویات فایل مشخص‌شده توسط متغیر محیطی XPROPFORMATS (در صورت وجود)، و در نهایت فایل توکار قالب‌های \fIxprop\fP. .PP قالب فایل‌های ارجاع‌داده‌شده با آرگومان \-fs و متغیر XPROPFORMATS به‌صورت یک یا چند خط در قالب زیر است: .PP \fIname\fP \fIformat\fP [\fIdformat\fP] .PP که در آن \fIname\fP نام یک ویژگی یا نام یک نوع داده است، \fIformat\fP همان قالبی است که با \fIname\fP استفاده می‌شود و \fIdformat\fP قالب نمایشی است که با \fIname\fP به‌کار می‌رود. اگر \fIdformat\fP مشخص نشده باشد، مقدار " = $0+\\n" فرض می‌شود. .SH "مثال‌ها (EXAMPLES)" .PP برای نمایش نام پنجرهٔ ریشه: \fIxprop\fP \-root WM_NAME .PP برای نمایش راهنماهای مدیر پنجره برای ساعت: \fIxprop\fP \-name xclock WM_HINTS .PP برای نمایش ابتدای بافر برش: \fIxprop\fP \-root \-len 100 CUT_BUFFER0 .PP برای نمایش اندازهٔ پوینت قلمِ fixed: \fIxprop\fP \-font fixed POINT_SIZE .PP برای نمایش تمام ویژگی‌های پنجرهٔ شمارهٔ 0x200007: \fIxprop\fP \-id 0x200007 .PP برای تنظیم یک ویژگی رشته‌ای ساده: \fIxprop\fP \-root \-format MY_ATOM_NAME 8s \-set MY_ATOM_NAME "my_value" .SH "محیط (ENVIRONMENT)" .PP .TP 8 .B DISPLAY برای دریافت نمایشگر پیش‌فرض. .TP 8 .B XPROPFORMATS نام فایلی را مشخص می‌کند که قالب‌های اضافی از آن دریافت می‌شوند. .PP .SH "همچنین ببینید (SEE ALSO)" X(7), xdpyinfo(1), xwininfo(1), xdriinfo(1), glxinfo(1), xvinfo(1) .SH "نویسندگان (AUTHORS)" Mark Lillibridge، پروژهٔ Athena در MIT