'\" t .\" Title: ctwm .\" Author: [see the "AUTHOR(S)" section] .\" Generator: Asciidoctor 2.0.18 .\" Date: 2023-03-26 .\" Manual: \ \& .\" Source: \ \& .\" Language: Persian .\" .TH "CTWM" "1" "2023-03-26" "\ \&" "\ \&" .ie \n(.g .ds Aq \(aq .el .ds Aq ' .ss \n[.ss] 0 .nh .ad l .de URL \fI\\$2\fP <\\$1>\\$3 .. .als MTO URL .if \n[.g] \{\ . mso www.tmac . am URL . ad l . . . am MTO . ad l . . . LINKSTYLE blue R < > .\} .SH "نام (NAME)" ctwm \- مدیر پنجره کلاود تب‌دار برای سامانه پنجره اکس (X11) .SH "خلاصه دستور (SYNOPSIS)" .sp .if n .RS 4 .nf .fam C ctwm [(\-\-display | \-d) dpy] [\-\-replace] [\-\-single] [(\-\-file | \-f) initfile] [\-\-cfgchk] [\-\-dumpcfg] [\-\-nom4 | \-n] [(\-\-keep\-defs | \-k)] [(\-\-keep | \-K) m4file] [\-\-verbose | \-v] [\-\-quiet | \-q] [\-\-mono] [\-\-xrm resource] [\-\-version] [\-\-info] [\-\-nowelcome | \-W] [\-\-clientId clid] [\-\-restore resfname] [\-\-help | \-h] .fam .fi .if n .RE .SH "توضیحات (DESCRIPTION)" .sp برنامه ctwm یک مدیر پنجره برای سامانه پنجره اکس (X Window System) است. این برنامه قابلیت‌هایی مانند نوارهای عنوان، پنجره‌های شکل‌دار، صفحه‌های مجازی (فضاهای کاری)، چندین شیوه مدیریت آیکون، توابع ماکروی تعریف‌شده توسط کاربر، فوکوس صفحه‌کلید به‌صورت کلیک برای تایپ یا هدایت‌شده با اشاره‌گر، و مقیدسازی‌های سفارشی کلیدها و دکمه‌های اشاره‌گر توسط کاربر را ارائه می‌دهد. این برنامه در واقع همان \f(CRtwm(1)\fP (مدیر پنجره تب‌دار) از توزیع X11 مؤسسه MIT است که برای تطبیق و بهره‌گیری از چندین صفحه مجازی (فضای کاری) اندکی تغییر یافته است. این برنامه به شدت از مدیر پنجره vuewm متعلق به Hewlett\-Packard الهام گرفته است. علاوه بر این، ctwm می‌تواند از آیکون‌های رنگی و شکل‌دار، و نگاشت‌های پیکسلی ریشه (pixmap) پس‌زمینه در قالب XPM [اثر Arnaud Le Hors]، قالب JPEG با استفاده از libjpeg و فایل‌های xwd استفاده کند. ctwm را می‌توان برای استفاده از هر ترکیبی از قالب‌های آیکون/پیکس‌مپ فوق کامپایل کرد. .sp این برنامه معمولاً توسط مدیر نشست یا اسکریپت راه‌انداز کاربر اجرا می‌شود. هنگام استفاده از \f(CRxdm(1)\fP یا \f(CRxinit(1)\fP بدون یک مدیر نشست، ctwm معمولاً در پیش‌زمینه به عنوان آخرین کلاینت اجرا می‌شود. در صورت اجرا به این شیوه، خروج از ctwm موجب پایان یافتن نشست X، خاموش شدن کارساز X و خاتمه دادن به فعالیت سایر کلاینت‌های در حال اجرا می‌شود. .sp به‌طور پیش‌فرض، پنجره‌های برنامه‌ها با یک «قاب» احاطه می‌شوند که دارای یک نوار عنوان در بالا و یک حاشیه ویژه در اطراف پنجره است. نوار عنوان شامل نام پنجره، مستطیلی که هنگام دریافت ورودی صفحه‌کلید روشن می‌شود، و جعبه‌های تابعی موسوم به «دکمه‌های عنوان» در لبه‌های چپ و راست نوار عنوان است که می‌توان عملیات مختلف را به آن‌ها پیوند داد. .sp فشردن دکمه شماره ۱ اشاره‌گر (معمولاً چپ‌ترین دکمه، مگر اینکه با \f(CRxmodmap\fP تغییر یافته باشد) روی یک دکمه عنوان، تابع مرتبط با آن دکمه را فراخوانی می‌کند. در رابط پیش‌فرض، پنجره‌ها با کلیک کردن (فشردن و بلافاصله رها کردن) روی دکمه سمت چپ عنوان (که شبیه یک نقطه است) به آیکون تبدیل می‌شوند. در مقابل، پنجره‌ها با کلیک کردن روی آیکون مربوطه یا مدخل آن در مدیر آیکون، از حالت آیکون خارج می‌شوند (توضیحات متغیر \f(CRShowIconManager\fP و تابع \f(CRf.showiconmgr\fP را ببینید). .sp تغییر اندازه پنجره‌ها با فشردن دکمه سمت راست عنوان (که شبیه گروهی از مربع‌های تودرتو است)، کشیدن اشاره‌گر روی لبه‌ای که قرار است جابه‌جا شود، و رها کردن اشاره‌گر زمانی که طرح کلی پنجره به اندازه دلخواه رسید انجام می‌شود. به همین ترتیب، پنجره‌ها با فشردن اشاره‌گر در ناحیه عنوان یا هایلایت، کشیدن طرح کلی پنجره به مکان جدید و سپس رها کردن در موقعیت مورد نظر جابه‌جا می‌شوند. صرفاً کلیک کردن در ناحیه عنوان یا هایلایت، پنجره را بدون جابه‌جایی بالا می‌آورد (raise). .sp هنگام ایجاد پنجره‌های جدید، ctwm هرگونه اطلاعات اندازه و مکان درخواست‌شده توسط کاربر را (معمولاً از طریق آرگومان خط فرمان \f(CR\-geometry\fP یا منابع مربوط به هر برنامه) رعایت می‌کند. در غیر این صورت، طرح کلی از اندازه پیش‌فرض پنجره، نوار عنوان آن و خطوطی که پنجره را به یک شبکه ۳در۳ تقسیم کرده و اشاره‌گر را دنبال می‌کنند نمایش داده می‌شود. کلیک کردن دکمه شماره ۱ اشاره‌گر، پنجره را در موقعیت فعلی قرار داده و اندازه پیش‌فرض را به آن می‌دهد. فشردن دکمه شماره ۲ اشاره‌گر (معمولاً دکمه وسط اشاره‌گر) و کشیدن طرح کلی، پنجره را در موقعیت فعلی قرار می‌دهد اما امکان تغییر اندازه اضلاع را همان‌طور که در بالا توضیح داده شد فراهم می‌کند. کلیک کردن دکمه شماره ۳ اشاره‌گر (معمولاً دکمه راست اشاره‌گر)، پنجره را در موقعیت فعلی قرار می‌دهد اما تلاش می‌کند طول آن را به اندازه‌ای افزایش دهد که به پایین صفحه نمایش برسد. .SH "گزینه‌ها (OPTIONS)" .sp \f(CRctwm\fP گزینه‌های خط فرمان زیر را می‌پذیرد: .sp \-\-help, \-h .RS 4 چاپ متن راهنمای استفاده. .RE .sp \-\-display=\f(CRdpy\fP, \-d \f(CRdpy\fP .RS 4 این گزینه کارساز X مورد استفاده را مشخص می‌کند. .RE .sp \-\-replace .RS 4 این گزینه مشخص می‌کند که اگر یک مدیر پنجره هم‌اکنون در حال اجرا باشد، خطایی رخ ندهد. در این حالت، از مدیر پنجره فعلی خواسته می‌شود خارج شود و ctwm جایگزین آن می‌شود. تنها در صورتی در دسترس است که ctwm با پرچم \f(CRUSE_EWMH\fP کامپایل شده باشد. نخستین بار در نسخه 4.0.0 ارائه شد. .RE .sp \-\-single .RS 4 این گزینه مشخص می‌کند که فقط صفحه نمایش پیش‌فرض (همان‌طور که توسط \f(CR\-\-display\fP یا متغیر محیطی \f(CRDISPLAY\fP تعیین شده) باید مدیریت شود. به‌طور پیش‌فرض، ctwm تلاش می‌کند تمام صفحه‌های نمایشگر را مدیریت کند. .RE .sp \-\-cfgchk .RS 4 این گزینه باعث می‌شود ctwm فقط فایل پیکربندی را تجزیه کرده و وجود خطاها را بررسی و اعلام نماید. .RE .sp \-\-dumpcfg .RS 4 این گزینه باعث می‌شود ctwm پیکربندی جایگزین پیش‌فرض کامپایل‌شده داخلی را چاپ کند. نخستین بار در نسخه 4.0.0 ارائه شد. .RE .sp \-\-file=\f(CRfilename\fP, \-f \f(CRfilename\fP .RS 4 این گزینه نام فایل راه‌انداز مورد استفاده را مشخص می‌کند. ctwm ابتدا تلاش می‌کند فایل filename.num را بارگیری کند که در آن \f(CRnum\fP شماره صفحه است. اگر ناموفق باشد، تلاش می‌کند filename را بارگیری کند. به‌طور پیش‌فرض، ctwm در دایرکتوری خانگی کاربر به دنبال فایل‌هایی به نام‌های \f(CR.ctwmrc.num\fP، \f(CR.ctwmrc\fP، \f(CR.twmrc.num\fP یا \f(CR.twmrc\fP می‌گردد (که در آن \f(CRnum\fP شماره صفحه است). .RE .sp \-\-verbose, \-v .RS 4 این گزینه مشخص می‌کند هر زمان که یک رویداد خطای غیرمنتظره X دریافت شد، ctwm پیام‌های خطا را چاپ کند. این گزینه هنگام اشکال‌زدایی برنامه‌ها مفید است اما در استفاده معمول می‌تواند مخل تمرکز باشد. .RE .sp \-\-quiet, \-q .RS 4 گزینه \f(CR\-\-verbose\fP را غیرفعال می‌کند (برای لغو نام‌های مستعار و غیره کاربرد دارد). .RE .sp \-\-nom4, \-n .RS 4 این گزینه مشخص می‌کند ctwm نباید فایل راه‌انداز را از فیلتر \f(CRm4\fP عبور دهد. تنها در صورتی در دسترس است که ctwm با پرچم \f(CRUSE_M4\fP کامپایل شده باشد. .RE .sp \-\-keep\-defs, \-k .RS 4 این گزینه مشخص می‌کند ctwm باید تعاریفی را که هنگام فیلتر کردن از طریق \f(CRm4\fP به ابتدای فایل راه‌انداز شما اضافه می‌کند، در /tmp نگه‌داری کند. تنها در صورتی در دسترس است که ctwm با پرچم \f(CRUSE_M4\fP کامپایل شده باشد. .RE .sp \-\-keep=\f(CRm4file\fP, \-K \f(CRm4file\fP .RS 4 این گزینه مشخص می‌کند ctwm باید نتیجه فیلتر کردن فایل راه‌انداز شما از طریق \f(CRm4\fP را در فایل نام‌برده نگه‌داری کند. تنها در صورتی در دسترس است که ctwm با پرچم \f(CRUSE_M4\fP کامپایل شده باشد. .RE .sp \-\-mono .RS 4 اجرا در حالت تک‌رنگ (سیاه و سفید). .RE .sp \-\-version .RS 4 برنامه ctwm صرفاً شماره نسخه خود را چاپ می‌کند. .RE .sp \-\-info .RS 4 برنامه ctwm مشخصات دقیق نسخه و گزینه‌های زمان کامپایل خود را چاپ می‌کند. .RE .sp \-\-nowelcome, \-W .RS 4 این گزینه به ctwm اعلام می‌کند که هنگام راه‌اندازی، پیام خوش‌آمدگویی نمایش ندهد. .RE .sp \-\-clientId=\f(CRclid\fP, \-\-restore=\f(CRresfname\fP .RS 4 مربوط به مدیریت نشست. .RE .sp \-\-xrm=\f(CRresource\fP .RS 4 نادیده گرفته می‌شود. .RE .sp برنامه ctwm از \f(CRgetopt_long()\fP برای تجزیه گزینه‌های خط فرمان استفاده می‌کند. این بدان معناست که آرگومان‌ها را می‌توان هم از طریق \f(CR\-\-long=arg\fP و \f(CR\-\-long arg\fP و هم از طریق \f(CR\-l arg\fP و \f(CR\-larg\fP منتقل کرد؛ همچنین آرگومان‌های کوتاه را می‌توان هم به‌صورت دسته‌ای مانند \f(CR\-vnk\fP و هم به‌صورت جداگانه مانند \f(CR\-v \-n \-k\fP استفاده کرد. .SH "سفارشی‌سازی (CUSTOMIZATION)" .sp بخش عمده‌ای از ظاهر و رفتار ctwm را می‌توان با ایجاد یک فایل راه‌انداز در یکی از مکان‌های زیر کنترل کرد (هنگام شروع ctwm، برای هر صفحه‌ای که مدیریت می‌شود به ترتیب زیر جستجو می‌گردد): .sp $HOME/.ctwmrc.\f(CRscreennumber\fP .RS 4 شناسه \f(CRscreennumber\fP یک عدد مثبت کوچک (مانند ۰، ۱، و غیره) است که شماره صفحه نمایش را نشان می‌دهد (برای مثال، آخرین عدد در متغیر محیطی DISPLAY به‌صورت \f(CRhost:displaynum.screennum\fP) که برای اتصال به آن صفحه نمایشگر استفاده می‌شود. این مورد برای نمایشگرهایی با چندین صفحه از انواع بصری متفاوت در نظر گرفته شده است. .RE .sp $HOME/.ctwmrc .RS 4 این نام متداول برای فایل راه‌انداز اختصاصی هر کاربر است. .RE .sp $HOME/.twmrc.\f(CRscreennumber\fP, $HOME/.twmrc .RS 4 فایل راه‌انداز twm کاربر. .RE .sp /usr/etc/system.ctwmrc .RS 4 اگر هیچ‌یک از فایل‌های قبلی پیدا نشود، ctwm در این فایل به دنبال یک پیکربندی پیش‌فرض خواهد گشت. این فایل معمولاً توسط مدیر سیستم تنظیم می‌شود تا منوهای مناسب یا کلیدهای میانبر آشنا را برای کاربران تازه‌کار فراهم کند. .RE .sp اگر هیچ فایل راه‌اندازی یافت نشود، ctwm از پیش‌فرض‌های تعبیه‌شده داخلی که در بالا توضیح داده شد استفاده می‌کند. تنها منبع مورد استفاده توسط ctwm، گزینه \f(CRbitmapFilePath\fP است که شامل فهرستی از دایرکتوری‌های جداشده با دونقطه برای جستجوی فایل‌های بیت‌مپ می‌باشد (برای اطلاعات بیشتر، راهنمای \f(CRAthena Widgets\fP و \f(CRxrdb(1)\fP را ببینید). .sp فایل‌های راه‌انداز ctwm از نظر منطقی به سه نوع مشخصه تقسیم می‌شوند: \f(CRمتغیرها (Variables)\fP، \f(CRمقیدسازی‌ها (Bindings)\fP و \f(CRمنوها (Menus)\fP. بخش \f(CRVariables\fP باید در ابتدا قرار گیرد و برای توصیف قلم‌ها، رنگ‌ها، مکان‌نماها، پهنای حاشیه‌ها، محل قرارگیری آیکون‌ها و پنجره‌ها، هایلایت، بالا آمدن خودکار، چیدمان عنوان‌ها، پرش مکان‌نما و استفاده از مدیر آیکون به کار می‌رود. بخش \f(CRBindings\fP معمولاً در رتبه دوم قرار دارد و برای تعیین توابعی به کار می‌رود که هنگام فشردن کلیدهای صفحه‌کلید و دکمه‌های اشاره‌گر در پنجره‌ها، آیکون‌ها، عنوان‌ها و قاب‌ها فراخوانی می‌شوند. بخش \f(CRMenus\fP هرگونه منوی تعریف‌شده توسط کاربر را مشخص می‌کند (حاوی توابعی برای فراخوانی یا دستوراتی برای اجرا). .sp نام متغیرها و کلمات کلیدی به بزرگی و کوچکی حروف حساس نیستند. رشته‌ها باید درون نویسه‌های نقل‌قول دوگانه (مانند «blue») قرار گیرند و به بزرگی و کوچکی حروف حساس هستند. علامت هش (#) در خارج از رشته باعث می‌شود ادامه خطی که این نویسه در آن ظاهر شده است به عنوان کامنت در نظر گرفته شود. .SH "پیش‌پردازش M4 (M4 PREPROCESSING)" .sp برنامه ctwm می‌تواند از \f(CRm4(1)\fP برای پیش‌پردازش فایل‌های پیکربندی خود استفاده کند. در دسترس بودن پیش‌پردازش m4 وابسته به گزینه زمان ساخت \f(CRUSE_M4\fP است (به‌طور پیش‌فرض فعال است)، و می‌توان آن را به‌صورت انتخابی با آرگومان خط فرمان \f(CR\-\-nom4\fP غیرفعال کرد. .sp هنگامی که ctwm راه‌اندازی می‌شود، فایلی را برای ورودی همان‌طور که در بالا توضیح داده شد باز می‌کند. اما پیش از تجزیه، آن فایل را از طریق \f(CRm4\fP پردازش می‌کند. بنابراین، می‌توانید از ماکروهای m4 برای انجام عملیات در زمان اجرا استفاده کنید. این ویژگی کار در شرایط استفاده از چندین نمایشگر با مشخصات گوناگون را بسیار آسان می‌کند. به عنوان مثال، اگر می‌خواهید بخش پایینی سمت راست صفحه نمایشگر را به عنوان \f(CRIconRegion\fP خود تعیین کنید (برای جزئیات بیشتر به بخش مربوط به متغیر \f(CRIconRegion\fP در ادامه مراجعه کنید)، می‌توانید از دستورالعمل‌های m4 و نمادهای از پیش تعریف‌شده برای محاسبه ناحیه دلخواه خود بهره ببرید. برای نمونه: .sp .if n .RS 4 .nf .fam C define(IRegion, translit(eval(WIDTH/3)*eval(HEIGHT/2)+eval(WIDTH\-WIDTH/3)\-0, *, x)) IconRegion "IRegion" SOUTH EAST 75 25 .fam .fi .if n .RE .sp این دستور نیمه پایینی و یک‌سوم سمت راست صفحه را تعریف می‌کند. کد بالا از نمادهایی استفاده می‌کند که توسط ctwm برای m4 از پیش تعریف شده‌اند. نمادهای WIDTH و HEIGHT از جمله مواردی هستند که توسط ctwm محاسبه شده و در یک فایل موقت برای استفاده \f(CRm4\fP نوشته می‌شوند. .sp اگر راهنمای \f(CRm4(1)\fP را به خوبی مطالعه کرده و به قدرت m4 پی ببرید، درخواهید یافت که این یک ابزار \fIبسیار\fP سودمند و قدرتمند است. با این حال، اگر از هر یک از نمادهایی که توسط m4 از پیش تعریف شده‌اند استفاده کنید، با خطری جدی روبرو خواهید شد! برای مثال، نگارش سان از \f(CRm4\fP نماد shift را از پیش تعریف کرده است؛ بنابراین اگر از این نام در فایل \f(CR.ctwmrc\fP خود استفاده کنید، دچار مشکل خواهید شد. .sp نمادهای زیر توسط ctwm از پیش تعریف شده‌اند: .SS "نام‌های میزبان (Hostnames)" .sp SERVERHOST .RS 4 این متغیر روی نام سامانه‌ای که کارساز X را اجرا می‌کند تنظیم می‌شود. .RE .sp CLIENTHOST .RS 4 سامانه‌ای که کلاینت‌ها را اجرا می‌کند (یعنی ctwm). .RE .sp HOSTNAME .RS 4 از نسخه 4.0.2، این متغیر نسخه تکراری از \f(CRCLIENTHOST\fP است. در نسخه‌های قبلی، از \f(CRgethostbyname()\fP برای به‌دست آوردن نسخه استاندارد یا نام دامنه کاملاً معین (FQDN) نام میزبان استفاده می‌شد. .RE .SS "اطلاعات کاربر (User Info)" .sp USER .RS 4 نام کاربری که برنامه را اجرا می‌کند. مقدار آن از متغیرهای محیطی \f(CR$USER\fP و \f(CR$LOGNAME\fP، یا در صورت عدم وجود آن‌ها، از جستجوی شناسه کاربر (UID) شما در فایل passwd دریافت می‌شود. در صورت عدم موفقیت تمام روش‌ها، مقدار آن به «unknown» تغییر می‌کند. .RE .sp HOME .RS 4 دایرکتوری خانگی کاربر. از متغیر محیطی \f(CR$HOME\fP دریافت می‌شود. .RE .SS "اطلاعات ctwm (ctwm info)" .sp TWM_TYPE .RS 4 مشخص می‌کند کدام انشعاب از \f(CRtwm\fP در حال اجرا است. این متغیر در این برنامه همواره روی رشته «ctwm» تنظیم می‌شود. این برای محافظت از بخش‌هایی از فایل \f(CR.twmrc\fP شما که twm اصلی آن‌ها را نمی‌شناسد (مانند \f(CRWorkSpaces\fP) کاربرد دارد تا همچنان بتوان از آن در سایر برنامه‌های \f(CRtwm\fP استفاده کرد. .RE .sp TWM_VERSION .RS 4 نسخه ctwm در حال اجرا را در قالب یک عدد با ممیز شناور نشان می‌دهد. .RE .sp CTWM_VERSION_MAJOR, CTWM_VERSION_MINOR, CTWM_VERSION_PATCH, CTWM_VERSION_ADDL .RS 4 نسخه ctwm را به‌صورت تفکیک‌شده ارائه می‌دهد. به عنوان مثال، برای نسخه‌ای مانند "3.8.2\-beta1"، متغیر \f(CR_MAJOR\fP برابر با "3"، \f(CR_MINOR\fP برابر با "8"، \f(CR_PATCH\fP برابر با "2" و \f(CR_ADDL\fP برابر با "\-beta1" خواهد بود. نسخه‌های نهایی عموماً مقدار خالی برای \f(CRCTWM_VERSION_ADDL\fP خواهند داشت؛ این متغیر بیشتر در نسخه‌های توسعه و بتا کاربرد دارد. برای مقایسه، در این وضعیت، TWM_VERSION برابر با "3.8.2" خواهد بود. .sp متغیرهای \f(CRCTWM_VERSION_*\fP نخستین بار در نسخه 4.0.0 ارائه شدند. .RE .SS "اطلاعات کارساز اکس (X server info)" .sp VERSION .RS 4 نسخه اصلی پروتکل X. همان‌طور که توسط ProtocolVersion(3) گزارش می‌شود. .RE .sp REVISION .RS 4 بازنگری فرعی پروتکل X. همان‌طور که توسط ProtocolRevision(3) گزارش می‌شود. .RE .sp VENDOR .RS 4 تأمین‌کننده یا سازنده کارساز X شما. به عنوان مثال: \f(CRMIT X Consortium\fP. .RE .sp RELEASE .RS 4 شماره انتشار کارساز X شما. برای سامانه MIT X11R5، این مقدار برابر با \f(CR5\fP است. .RE .SS "اطلاعات نمایشگر (Display info)" .sp WIDTH .RS 4 عرض نمایشگر شما بر حسب پیکسل. .RE .sp HEIGHT .RS 4 ارتفاع نمایشگر شما بر حسب پیکسل. .RE .sp X_RESOLUTION .RS 4 تفکیک‌پذیری افقی (X) نمایشگر شما بر حسب پیکسل در هر متر. .RE .sp Y_RESOLUTION .RS 4 تفکیک‌پذیری عمودی (Y) نمایشگر شما بر حسب پیکسل در هر متر. .RE .sp PLANES .RS 4 تعداد صفحات بیتی که نمایشگر شما در پنجره ریشه پیش‌فرض پشتیبانی می‌کند. .RE .sp BITS_PER_RGB .RS 4 تعداد بیت‌های بااهمیت در یک رنگ RGB (لگاریتم پایه ۲ از تعداد رنگ‌های متمایزی که می‌توان ایجاد کرد. این مقدار اغلب با تعداد رنگ‌هایی که می‌توان به‌طور همزمان نمایش داد تفاوت دارد). .RE .sp CLASS .RS 4 کلاس بصری شما. یکی از مقادیر \f(CRStaticGray\fP، \f(CRGrayScale\fP، \f(CRStaticColor\fP، \f(CRPseudoColor\fP، \f(CRTrueColor\fP، \f(CRDirectColor\fP یا اگر قادر به تشخیص نباشد، \f(CRNonStandard\fP را برمی‌گرداند. .RE .sp COLOR .RS 4 این متغیر برابر با «Yes» یا «No» خواهد بود. این صرفاً یک لفاف روی تعریف فوق است. برای \f(CR*Color\fP مقدار «Yes» و برای \f(CRStaticGray\fP و \f(CRGrayScale\fP مقدار «No» برمی‌گرداند. .RE .SS "گزینه‌های زمان کامپایل ctwm (ctwm compile\-time options)" .sp XPM .RS 4 تنها در صورتی تعریف می‌شود که ctwm با پشتیبانی از XPM کامپایل شده باشد. .RE .sp PIXMAP_DIRECTORY .RS 4 دایرکتوری محل نصب تصاویر ctwm. .RE .sp JPEG .RS 4 تنها در صورتی تعریف می‌شود که ctwm با پشتیبانی از JPEG کامپایل شده باشد. .RE .sp SOUNDS .RS 4 تنها در صورتی تعریف می‌شود که ctwm با پشتیبانی از صدا (SOUND) کامپایل شده باشد. .RE .sp EWMH .RS 4 تنها در صورتی تعریف می‌شود که ctwm با پشتیبانی از EWMH کامپایل شده باشد. نخستین بار در نسخه 4.0.0 ارائه شد. .RE .sp I18N .RS 4 در صورتی تعریف می‌شود که ctwm با پشتیبانی از بومی‌سازی و بین‌المللی‌سازی (I18N) کامپایل شده باشد. این قابلیت از نسخه 3.8 به بعد دیگر اختیاری نیست و همیشه کامپایل می‌شود. این تعریف در نسخه‌های بعدی حذف خواهد شد. .RE .SS "گزینه‌های منسوخ (Obsolete options)" .sp GNOME .RS 4 زمانی تعریف می‌شد که ctwm با پشتیبانی از GNOME1 کامپایل شده بود. پس از نسخه 3.8.2 حذف گردید. .RE .sp TWM_CAPTIVE .RS 4 این مقدار برابر با «Yes» یا «No» بود. اگر ctwm فعلی اسیر (با پرچم \-w) بود مقدار «Yes» و در غیر این صورت مقدار «No». در نسخه 4.1.0 حذف شد. .RE .sp TWM_CAPTIVE_NAME .RS 4 تنها در صورتی تعریف می‌شد که TWM_CAPTIVE نیز تعریف شده باشد. حاوی نام ctwm اسیر (پرچم \-\-name). در نسخه 4.1.0 حذف شد. .RE .SH "متغیرها (VARIABLES)" .sp بسیاری از جنبه‌های رابط کاربری ctwm توسط متغیرهایی کنترل می‌شوند که می‌توان آن‌ها را در فایل راه‌اندازی کاربر تنظیم کرد. برخی از گزینه‌ها صرفاً با حضور یک کلیدواژه خاص فعال یا غیرفعال می‌شوند. گزینه‌های دیگر نیازمند کلیدواژه‌ها، اعداد، رشته‌ها یا فهرست‌هایی از تمام این موارد هستند. .sp فهرست‌ها درون آکولاد محصور می‌شوند و معمولاً با فاصله خالی یا خط جدید از یکدیگر جدا می‌گردند. برای مثال: .sp .if n .RS 4 .nf .fam C AutoRaise { "emacs" "XTerm" "Xmh" } .fam .fi .if n .RE .sp یا .sp .if n .RS 4 .nf .fam C AutoRaise { "emacs" "XTerm" "Xmh" } .fam .fi .if n .RE .sp هنگامی که متغیری حاوی فهرستی از رشته‌های نشان‌دهنده پنجره‌ها جستجو می‌شود (برای نمونه جهت تعیین فعال بودن یا نبودن بالا آمدن خودکار پنجره همان‌طور که در بالا نشان داده شد)، رشته باید تطابق دقیق و حساس به حروف کوچک و بزرگ با نام پنجره (که توسط مشخصه‌های گوناگون پنجره، مانند \f(CRWM_NAME\fP تعیین می‌شود)، نام منبع یا نام کلاس (هر دو توسط مشخصه پنجره \f(CRWM_CLASS\fP تعیین می‌شوند) داشته باشد. مثال پیشین، بالا آمدن خودکار را برای پنجره‌هایی با نام \(lqemacs\(rq و همچنین هر پنجره \f(CRxterm\fP (از آنجا که از کلاس \(lqXTerm\(rq هستند) یا پنجره‌های xmh (که از کلاس \(lqXmh\(rq هستند) فعال می‌کند. .sp آرگومان‌های رشته‌ای که به عنوان نام فایل تفسیر می‌شوند (متغیرهای \f(CRPixmaps\fP، \f(CRCursors\fP و \f(CRIconDirectory\fP را در ادامه ببینید)، در صورتی که کاراکتر اول آن‌ها یک مدک (~) باشد، دایرکتوری کاربر (مشخص‌شده توسط متغیر محیطی \f(CRHOME\fP) را به ابتدای مسیر اضافه می‌کنند. اگر در عوض، کاراکتر اول یک دونقطه (:) باشد، نام به عنوان ارجاع به یکی از بیت‌مپ‌های داخلی که برای ایجاد نمادهای پیش‌فرض نوار عنوان استفاده می‌شوند، در نظر گرفته می‌شود: \f(CR:xlogo\fP یا \f(CR:iconify\fP (هر دو به X مورد استفاده برای دکمه آیکون‌سازی اشاره دارند)، \f(CR:resize\fP (مربع‌های تودرتو که توسط دکمه تغییر اندازه استفاده می‌شوند) و \f(CR:question\fP (علامت سوال مورد استفاده برای فایل‌های بیت‌مپ ناموجود). .sp متغیرهای زیر را می‌توان در ابتدای فایل راه‌اندازی ctwm مشخص کرد. فهرست رشته‌های پیشوند نام پنجره با \f(CRwin\-list\fP نشان داده شده‌اند. آرگومان‌های اختیاری درون کروشه نمایش داده شده‌اند: .sp AlwaysOnTop { \f(CRwin\-list\fP } .RS 4 این متغیر فهرستی از پنجره‌ها را مشخص می‌کند (در صورت عدم تعیین فهرست، شامل همه پنجره‌ها خواهد بود) که ctwm تمام تلاش خود را برای نگه داشتن آن‌ها در بالای سایر پنجره‌ها به کار می‌گیرد. این قابلیت در همه شرایط کار نمی‌کند. .RE .sp AlwaysShowWindowWhenMovingFromWorkspaceManager .RS 4 هنگامی که \f(CRReallyMoveInWorkspaceManager\fP وجود داشته باشد و کاربر در حال جابجایی یک پنجره از WorkSpaceMap باشد، ctwm پنجره واقعی را تنها در صورتی نمایش می‌دهد که از فضای کاری فعال جاری عبور کند. اگر \f(CRAlwaysShowWindowWhenMovingFromWorkspaceManager\fP وجود داشته باشد، پنجره واقعی همیشه در طول جابجایی قابل مشاهده است، صرف‌نظر از اینکه از فضای کاری جاری عبور کند یا خیر. کلید Shift این رفتار را تغییر وضعیت می‌دهد. .RE .sp AlwaysSqueezeToGravity [{ \f(CRwin\-list\fP }] .RS 4 این متغیر نشان می‌دهد که ctwm هنگام جمع کردن پنجره، حتی زمانی که پنجره نوار عنوان دارد، باید از گرانش (gravity) پنجره پیروی کند. در حالت عادی، ctwm همواره پنجره‌ای را که دارای نوار عنوان است به سمت شمال (بالا) جمع می‌کند. از \f(CRwin\-list\fP اختیاری می‌توان برای کنترل این موضوع استفاده کرد که این رفتار برای کدام پنجره‌ها اعمال شود. .RE .sp AnimationSpeed \f(CRspeed\fP .RS 4 آرگومان \f(CRspeed\fP یک عدد صحیح غیرمنفی است. این آرگومان تعداد دفعاتی در ثانیه را که پویانمایی‌ها (در صورت وجود) به‌روزرسانی می‌شوند، تعیین می‌کند. اگر \f(CRspeed\fP برابر با 0 باشد، پویانمایی‌ها متوقف (فریز) می‌شوند. مقدار پیش‌فرض 0 است. .RE .sp AutoFocusToTransients .RS 4 پنجره‌های گذرا هنگام ایجاد شدن، به صورت خودکار فوکوس را دریافت می‌کنند. برای برنامه‌هایی که میانبرهای صفحه‌کلید جهت باز کردن پنجره‌های بالاپران دارند کاربردی است. .RE .sp AutoLower [{ \f(CRwin\-list\fP }] .RS 4 این متغیر فهرستی از پنجره‌ها را مشخص می‌کند (در صورت عدم تعیین فهرست، شامل همه پنجره‌ها خواهد بود) که هرگاه اشاره‌گر از پنجره خارج شود، به صورت خودکار به پایین فرستاده شوند. این عمل را می‌توان به صورت تعاملی روی پنجره‌های تکی با استفاده از تابع \f(CRf.autolower\fP فعال یا غیرفعال کرد. .RE .sp AutoOccupy .RS 4 این متغیر مشخص می‌کند که کلاینت‌ها هنگام تغییر نام یا نام آیکون خود، اشغال فضای کاری خود را به صورت خودکار تغییر می‌دهند. اشغال جدید بر اساس فیلدهای Occupy و OccupyAll در فایل \f(CR.ctwmrc\fP مجدداً محاسبه خواهد شد. .RE .sp AutoPopup [{ \f(CRwin\-list\fP }] .RS 4 این متغیر فهرستی از پنجره‌ها را مشخص می‌کند که هرگاه نام آن‌ها تغییر کند، از حالت آیکون خارج می‌شوند. برای نمونه، این متغیر می‌تواند برای xconsole استفاده شود که هر زمان پیامی روی کنسول نمایش داده می‌شود یک "*" به نام خود اضافه می‌کند، یا برای برنامه‌های مختلف خواندن ایمیل که آیکون خود را بسته به وجود نامه‌های خوانده‌نشده تغییر می‌دهند. .sp اولین بار در نسخه 4.0.0 معرفی شد. .RE .sp AutoPriority .RS 4 این متغیر مشخص می‌کند که ctwm باید هنگام تغییر نام یک پنجره، اولویت آن پنجره (و آیکون مرتبط با آن) را به صورت خودکار مجدداً محاسبه کند. \f(CROnTopPriority\fP را نیز ببینید. .sp اولین بار در نسخه 4.0.0 معرفی شد. .RE .sp AutoRaise [{ \f(CRwin\-list\fP }] .RS 4 این متغیر فهرستی از پنجره‌ها را مشخص می‌کند (در صورت عدم تعیین فهرست، شامل همه پنجره‌ها خواهد بود) که هرگاه اشاره‌گر به مدت زمان مشخص‌شده توسط متغیر \f(CRRaiseDelay\fP درون یک پنجره ساکن بماند، به صورت خودکار به بالا آورده شوند. این عمل را می‌توان به صورت تعاملی روی پنجره‌های تکی با استفاده از تابع \f(CRf.autoraise\fP فعال یا غیرفعال کرد. .RE .sp AutoRaiseIcons .RS 4 هنگامی که نشانگر وارد آیکون می‌شود، آیکون‌ها به بالا آورده می‌شوند. همراه با ShrinkIconTitles کاربردی است. .RE .sp AutoRelativeResize .RS 4 این متغیر نشان می‌دهد که کشیدن برای تعیین اندازه پنجره (چه در زمان اندازه تعیین اولیه پنجره با Button2 ماوس یا هنگام تغییر اندازه آن) نباید منتظر عبور اشاره‌گر از لبه‌های پنجره بماند. در عوض، حرکت دادن اشاره‌گر به طور خودکار باعث می‌شود نزدیک‌ترین لبه یا لبه‌ها به همان اندازه حرکت کنند. این قابلیت اجازه تغییر اندازه پنجره‌هایی را می‌دهد که به خارج از لبه صفحه نمایش امتداد یافته‌اند. اگر اشاره‌گر در مرکز پنجره باشد، یا اگر تغییر اندازه با فشردن دکمه نوار عنوان آغاز شده باشد، ctwm همچنان منتظر عبور اشاره‌گر از لبه پنجره می‌ماند (برای جلوگیری از خطاهای تصادفی). این گزینه به ویژه برای افرادی کاربرد دارد که روش فشردن-کشیدن-رها کردن (press\-drag\-release) را برای تغییر اندازه پنجره‌ها می‌پسندند. .RE .sp AutoSqueeze { \f(CRwin\-list\fP } .RS 4 این پنجره‌ها به صورت خودکار جمع/فشرده می‌شوند (f.squeeze را ببینید)؛ یعنی هنگام دریافت فوکوس به صورت خودکار از حالت جمع‌شده خارج شده و هنگام از دست دادن آن جمع می‌شوند. برای مدیر فضای کاری مفید است. برای مدیران آیکون مجاز نیست. .RE .sp BackingStore .RS 4 استفاده از حافظه پشتیبان (backing store) را روی منوها و پنجره‌های نقشه فضای کاری فعال می‌کند. \f(CRNoBackingStore\fP را نیز ببینید. در نسخه 4.0.0 اضافه شد؛ در نسخه‌های پیشین این حالت پیش‌فرض بود. .RE .sp BeNiceToColormap .RS 4 به طور پیش‌فرض هنگام استفاده از ظاهر سه‌بعدی، رنگ‌های جدیدی برای سایه‌ها تخصیص داده می‌شود، اما زمانی که \f(CRBeNiceToColormap\fP را مشخص می‌کنید، ctwm به جای رنگ‌های جدید از الگوهای نقطه‌چینی (stippling) استفاده می‌کند؛ جلوه حاصل کمتر زیبا است، اما قابل قبول است. در این حالت ClearShadowContrast و DarkShadowContrast هیچ تاثیری ندارند. .RE .sp BorderBottom \f(CRpixels\fP .RS 4 این متغیر عرض بر حسب پیکسل یک منطقه ممنوعه را در پایین صفحه نمایش مشخص می‌کند. تمام توابع مقیدسازی پنجره (مانند f.movepack، f.move همراه با DontMoveOff و غیره) این منطقه را خارج از صفحه نمایش در نظر می‌گیرند. مقدار پیش‌فرض 0 است. .RE .sp BorderColor \f(CRstring\fP [{ \f(CRwincolorlist\fP }] .RS 4 این متغیر رنگ پیش‌فرض کادری را مشخص می‌کند که دور تمام پنجره‌های آیکون‌نشده قرار می‌گیرد، و تنها در یک فهرست \f(CRColor\fP یا \f(CRMonochrome\fP قابل تعریف است. \f(CRwincolorlist\fP اختیاری، فهرستی از جفت‌های نام پنجره و نام رنگ را برای تعیین رنگ‌های کادر ویژه برای انواع مختلف پنجره‌ها مشخص می‌کند. برای مثال: .sp .if n .RS 4 .nf .fam C BorderColor "gray50" { "XTerm" "red" "xmh" "green" } .fam .fi .if n .RE .sp مقدار پیش‌فرض \(lqblack\(rq است. .RE .sp BorderLeft \f(CRpixels\fP .RS 4 این متغیر عرض بر حسب پیکسل یک منطقه ممنوعه را در سمت چپ صفحه نمایش مشخص می‌کند. تمام توابع مقیدسازی پنجره (مانند f.movepack، f.move همراه با DontMoveOff و غیره) این منطقه را خارج از صفحه نمایش در نظر می‌گیرند. مقدار پیش‌فرض 0 است. .RE .sp BorderResizeCursors .RS 4 این متغیر مشخص می‌کند که ctwm باید هنگامی که اشاره‌گر روی کادر پنجره قرار دارد، از نشانگرهای تغییر اندازه استفاده کند. ترجیحاً زمانی استفاده شود که دکمه‌ای را به f.resize در زمینه قاب (frame context) اختصاص داده باشید. .RE .sp BorderRight \f(CRpixels\fP .RS 4 این متغیر عرض بر حسب پیکسل یک منطقه ممنوعه را در سمت راست صفحه نمایش مشخص می‌کند. تمام توابع مقیدسازی پنجره (مانند f.movepack، f.move همراه با DontMoveOff و غیره) این منطقه را خارج از صفحه نمایش در نظر می‌گیرند. مقدار پیش‌فرض 0 است. .RE .sp BorderShadowDepth \f(CRpixels\fP .RS 4 این متغیر عمق سایه‌ای را که ctwm برای کادرهای سه‌بعدی پنجره هنگام انتخاب UseThreeDBorders استفاده می‌کند، مشخص می‌نماید. .RE .sp BorderTileBackground \f(CRstring\fP [{ \f(CRwincolorlist\fP }] .RS 4 این متغیر رنگ پس‌زمینه پیش‌فرض در الگوی خاکستری مورد استفاده در کادرهای برجسته‌نشده را مشخص می‌کند (تنها در صورتی که \f(CRNoHighlight\fP تنظیم نشده باشد)، و تنها در یک فهرست \f(CRColor\fP یا \f(CRMonochrome\fP قابل تعریف است. \f(CRwincolorlist\fP اختیاری امکان تعیین رنگ‌ها به ازای هر پنجره را فراهم می‌سازد. مقدار پیش‌فرض \(lqwhite\(rq است. .RE .sp BorderTileForeground \f(CRstring\fP [{ \f(CRwincolorlist\fP }] .RS 4 این متغیر رنگ پیش‌زمینه پیش‌فرض در الگوی خاکستری مورد استفاده در کادرهای برجسته‌نشده را مشخص می‌کند (تنها در صورتی که \f(CRNoHighlight\fP تنظیم نشده باشد)، و تنها در یک فهرست \f(CRColor\fP یا \f(CRMonochrome\fP قابل تعریف است. \f(CRwincolorlist\fP اختیاری امکان تعیین رنگ‌ها به ازای هر پنجره را فراهم می‌سازد. مقدار پیش‌فرض \(lqblack\(rq است. .RE .sp BorderTop \f(CRpixels\fP .RS 4 این متغیر عرض بر حسب پیکسل یک منطقه ممنوعه را در بالای صفحه نمایش مشخص می‌کند. تمام توابع مقیدسازی پنجره (مانند f.movepack، f.move همراه با DontMoveOff و غیره) این منطقه را خارج از صفحه نمایش در نظر می‌گیرند. مقدار پیش‌فرض 0 است. .RE .sp BorderWidth \f(CRpixels\fP .RS 4 این متغیر عرض بر حسب پیکسل کادر پیرامون تمام قاب‌های پنجره‌های کلاینت را در صورتی که \f(CRClientBorderWidth\fP مشخص نشده باشد، تعیین می‌کند. این مقدار همچنین برای تنظیم اندازه کادر پنجره‌های ایجادشده توسط ctwm (مانند مدیر آیکون) استفاده می‌شود. مقدار پیش‌فرض 2 است. .RE .sp ButtonIndent \f(CRpixels\fP .RS 4 این متغیر میزان فرورفتگی دکمه‌های نوار عنوان را از تمام جهات مشخص می‌کند. مقادیر مثبت باعث می‌شوند دکمه‌ها از متن پنجره و ناحیه برجسته‌سازی کوچک‌تر شوند تا متمایز و برجسته جلوه کنند. تنظیم این متغیر و متغیرهای \f(CRTitleButtonBorderWidth\fP روی 0 باعث می‌شود دکمه‌های نوار عنوان تا جای ممکن بلند و پهن باشند. در صورتی که \f(CRUseThreeDTitles\fP تنظیم نشده باشد، مقدار پیش‌فرض 1 و در صورت تنظیم بودن آن، 0 است. .RE .sp CenterFeedbackWindow .RS 4 پنجره اطلاعات جابجایی و تغییر اندازه به جای گوشه بالا سمت چپ، در وسط صفحه نمایش قرار می‌گیرد. .RE .sp ClearShadowContrast \f(CRcontrast\fP .RS 4 به ctwm نشان می‌دهد که چگونه رنگ سایه روشن (clear shadow) را برای عناصر سه‌بعدی محاسبه کند. این مقدار بین 0 تا 100 است. فرمول مورد استفاده عبارت است از: .sp .if n .RS 4 .nf .fam C clear.{RGB} = (65535 \- color.{RGB}) * (contrast / 100). .fam .fi .if n .RE .sp در صورت فعال بودن \f(CRBeNiceToColormap\fP تاثیری ندارد. .RE .sp ClickToFocus .RS 4 فوکوس کردن روی پنجره‌ها با کلیک روی آن‌ها، به جای بردن صرف نشانگر ماوس روی آن‌ها. .RE .sp ClientBorderWidth .RS 4 این متغیر نشان می‌دهد که عرض کادر قاب پنجره باید روی عرض اولیه کادر خود پنجره تنظیم شود، نه روی مقدار \f(CRBorderWidth\fP. در صورت تنظیم بودن \f(CRUse3DBorders\fP این متغیر به طور خودکار غیرفعال می‌شود. .RE .sp Color { \f(CRcolors\-list\fP } .RS 4 این متغیر فهرستی از تخصیص‌های رنگ را مشخص می‌کند که در صورت توانایی نمایشگر پیش‌فرض در نمایش مواردی بیش از سیاه و سفید ساده، اعمال می‌شوند. \f(CRcolors\-list\fP از متغیرهای رنگ زیر و مقادیر آن‌ها تشکیل شده است: \f(CRDefaultBackground\fP، \f(CRDefaultForeground\fP، \f(CRMenuBackground\fP، \f(CRMenuForeground\fP، \f(CRMenuTitleBackground\fP، \f(CRMenuTitleForeground\fP و \f(CRMenuShadowColor\fP. به متغیرهای رنگ زیر نیز می‌توان فهرستی از جفت‌های نام پنجره و نام رنگ را برای تعیین رنگ‌ها به ازای هر پنجره اختصاص داد (برای جزئیات \f(CRBorderColor\fP را ببینید): \f(CRBorderColor\fP، \f(CRIconManagerHighlight\fP، \f(CRBorderTileBackground\fP، \f(CRBorderTileForeground\fP، \f(CRTitleBackground\fP، \f(CRTitleForeground\fP، \f(CRIconBackground\fP، \f(CRIconForeground\fP، \f(CRIconBorderColor\fP، \f(CRIconManagerBackground\fP و \f(CRIconManagerForeground\fP. برای مثال: .sp .if n .RS 4 .nf .fam C Color { MenuBackground "gray50" MenuForeground "blue" BorderColor "red" { "XTerm" "yellow" } TitleForeground "yellow" TitleBackground "blue" } .fam .fi .if n .RE .sp تمام این متغیرهای رنگ را می‌توان برای متغیر \f(CRMonochrome\fP نیز مشخص کرد، که امکان استفاده از همان فایل مقداردهی اولیه را در هر دو نمایشگر رنگی و تک‌رنگ فراهم می‌سازد. .RE .sp ConstrainedMoveTime \f(CRmilliseconds\fP .RS 4 این متغیر مدت زمان بین کلیک‌های دکمه را که برای شروع یک عملیات جابجایی مقید (constrained move) نیاز است، مشخص می‌کند. دوبار کلیک در این بازه زمانی هنگام فراخوانی \f(CRf.move\fP یا سایر توابع مشابه جابجایی باعث می‌شود پنجره تنها در جهت افقی یا عمودی حرکت داده شود. تنظیم این مقدار روی 0، جابجایی‌های مقید را غیرفعال می‌کند. مقدار پیش‌فرض 400 میلی‌ثانیه است. .sp توجه داشته باشید که این گزینه بر دوبار کلیک در \f(CRf.raiseorsqueeze\fP و احتمالاً مکان‌های دیگر که نیاز به ردیابی دوبار کلیک دارند نیز اثر می‌گذارد. احتمالاً این متغیر باید تغییر نام پیدا کند. .RE .sp Cursors { \f(CRcursor\-list\fP } .RS 4 این متغیر گلیف‌هایی (شکل‌هایی) را مشخص می‌کند که ctwm باید برای نشانگرهای مختلف ماوس استفاده کند. هر مکان‌نما می‌تواند یا از قلم \f(CRcursor\fP یا از دو فایل بیت‌مپ تعریف شود. شکل‌ها از قلم \f(CRcursor\fP را می‌توان مستقیماً به صورت زیر مشخص کرد: .sp .if n .RS 4 .nf .fam C cursorname "string" .fam .fi .if n .RE .sp که در آن \f(CRcursorname\fP یکی از نام‌های مکان‌نمای فهرست‌شده در زیر است، و \f(CRstring\fP نام یک گلیف است همان‌طور که در فایل (بدون پیشوند \(lqXC_\(rq) یافت می‌شود. اگر قرار باشد مکان‌نما از فایل‌های بیت‌مپ تعریف شود، در عوض نحو (syntax) زیر به کار می‌رود: .sp .if n .RS 4 .nf .fam C cursorname "image" "mask" .fam .fi .if n .RE .sp رشته‌های \f(CRimage\fP و \f(CRmask\fP نام فایل‌های حاوی تصویر و ماسک گلیف را در قالب \f(CRbitmap(1)\fP مشخص می‌کنند. مکان‌یابی فایل‌های بیت‌مپ به همان شیوه فایل‌های بیت‌مپ آیکون انجام می‌شود. مثال زیر تعاریف پیش‌فرض مکان‌نما را نشان می‌دهد: .sp .if n .RS 4 .nf .fam C Cursors { Frame "top_left_arrow" Title "top_left_arrow" Icon "top_left_arrow" IconMgr "top_left_arrow" Move "fleur" Resize "fleur" Menu "sb_left_arrow" Button "hand2" Wait "watch" Select "dot" Destroy "pirate" } .fam .fi .if n .RE .RE .sp DarkShadowContrast \f(CRcontrast\fP .RS 4 به ctwm نشان می‌دهد که چگونه رنگ سایه تیره (dark shadow) را برای عناصر سه‌بعدی محاسبه کند. این مقدار عددی بین 0 تا 100 است. فرمول مورد استفاده به شرح زیر است: .sp .if n .RS 4 .nf .fam C dark.{RGB} = color.{RGB} * ((100 \- contrast) / 100), .fam .fi .if n .RE .sp اگر \f(CRBeNiceToColormap\fP فعال باشد، هیچ تاثیری ندارد. .RE .sp DecorateTransients .RS 4 این متغیر مشخص می‌کند که پنجره‌های گذرا (پنجره‌هایی که حاوی مشخصه \f(CRWM_TRANSIENT_FOR\fP هستند) باید نوار عنوان داشته باشند. از نسخه 4.0.0 این حالت پیش‌فرض است. .RE .sp DefaultBackground \f(CRstring\fP .RS 4 این متغیر رنگ پس‌زمینه مورد استفاده برای پنجره‌های اندازه‌گیری و اطلاعاتی را مشخص می‌کند. مقدار پیش‌فرض \(lqwhite\(rq (سفید) است. .RE .sp DefaultForeground \f(CRstring\fP .RS 4 این متغیر رنگ پیش‌زمینه مورد استفاده برای پنجره‌های اندازه‌گیری و اطلاعاتی را مشخص می‌کند. مقدار پیش‌فرض \(lqblack\(rq (سیاه) است. .RE .sp DontIconifyByUnmapping { \f(CRwin\-list\fP } .RS 4 این متغیر فهرستی از پنجره‌هایی را مشخص می‌کند که نباید صرفاً با محو کردن پنجره به آیکون تبدیل شوند (همان‌طور که در صورت تنظیم \f(CRIconifyByUnmapping\fP اتفاق می‌افتاد). این گزینه معمولاً برای اجبار برخی پنجره‌ها به این‌که به عنوان آیکون رفتار کنند در حالی که پنجره‌های دیگر توسط مدیر آیکون مدیریت می‌شوند، به کار می‌رود. .RE .sp DontMoveOff .RS 4 این متغیر مشخص می‌کند که جابه‌جایی پنجره‌ها به خارج از صفحه نمایش نباید مجاز باشد. این رفتار را می‌توان با تابع \f(CRf.forcemove\fP لغو کرد. .RE .sp DontNameDecorations .RS 4 تنظیم مشخصه‌های \f(CRWM_NAME\fP را روی پنجره‌های مختلف تزییناتی که ctwm در اطراف پنجره‌های تحت مدیریت خود قرار می‌دهد، غیرفعال می‌کند. این مشخصه‌ها برای ردیابی این‌که هنگام بررسی فهرست پنجره‌های روی صفحه نمایش چه چیزی متعلق به چه چیزی است بسیار سودمند هستند، اما ممکن است برخی ابزارهایی را که انتظار یافتن آن‌ها را در آن‌جا ندارند دچار سردرگمی کنند (معروف است که xwit یکی از آن‌هاست). نخستین بار در 4.0.2 ارائه شد. .RE .sp DontPaintRootWindow .RS 4 این متغیر به ctwm می‌گوید صرف‌نظر از آنچه در مشخصات Workspaces تعیین کرده‌اید، پنجره ریشه (root window) را رنگ‌آمیزی نکند. این ویژگی برای داشتن نقشه‌های پیکسلی در نقشه فضای کاری (Workspace Map) ولی نه روی پنجره ریشه، مفید است. .RE .sp DontSave { \f(CRwin\-list\fP } .RS 4 مشخصات این پنجره‌ها برای مدیر نشست (session manager) ذخیره نخواهد شد. .RE .sp DontSetInactive { \f(CRwin\-list\fP } .RS 4 این پنجره‌ها هنگامی که به دلیل تغییر فضای کاری ناپدید می‌شوند، به وضعیت InactiveState تنظیم نخواهند شد. این گزینه به این دلیل اضافه شده است که برخی کلاینت‌های بدرفتار (Frame5) این حالت را دوست ندارند. .RE .sp DontShowWelcomeWindow .RS 4 همانند گزینه \f(CR\-W\fP عمل می‌کند: پنجره خوش‌آمدگویی نمایش داده نمی‌شود. .RE .sp DontSqueezeTitle [{ \f(CRwin\-list\fP }] .RS 4 این متغیر مشخص می‌کند که نوارهای عنوان نباید به حداقل اندازه خود فشرده شوند، همان‌طور که در زیر بخش \f(CRSqueezeTitle\fP در ادامه شرح داده شده است. اگر فهرست اختیاری پنجره‌ها ارائه شود، فقط از فشرده شدن همان پنجره‌ها جلوگیری خواهد شد. .RE .sp DontToggleWorkSpaceManagerState .RS 4 ویژگی تغییر وضعیت مدیر فضای کاری به/از حالت نقشه/دکمه را هنگامی که ctrl را فشار می‌دهید و پنجره مدیر فضای کاری در حالت فوکوس است، خاموش می‌کند. .RE .sp DontWarpCursorInWMap .RS 4 به ctwm می‌گوید هنگامی که روی یک پنجره کوچک در نقشه فضای کاری کلیک می‌کنید، مکان‌نما را به پنجره واقعی متناظر پرش (warp) ندهد. .RE .sp EWMHIgnore { \f(CRmessage\-types\fP } .RS 4 انواع پیام‌های EWMH را که ctwm نادیده خواهد گرفت تعیین می‌کند. این متغیر تنها در صورتی معتبر است که برنامه با \f(CRUSE_EWMH\fP کامپایل شده باشد (که در حال حاضر به‌طور پیش‌فرض فعال است). مثال زیر تمام گزینه‌های معتبر را نشان می‌دهد: .sp .if n .RS 4 .nf .fam C EWMHIgnore { # Window states "STATE_MAXIMIZED_VERT" "STATE_MAXIMIZED_HORZ" "STATE_FULLSCREEN" "STATE_SHADED" "STATE_ABOVE" "STATE_BELOW" } .fam .fi .if n .RE .sp نخستین بار در 4.0.0 ارائه شد. .RE .sp ForceFocus [{ \f(CRwin\-list\fP }] .RS 4 فوکوس را به پنجره‌ها اختصاص می‌دهد چه آن‌ها درخواست کرده باشند و چه نکرده باشند. این قابلیت گاهی برای پنجره‌هایی کاربرد دارد که به ما می‌گویند به آن‌ها فوکوس ندهیم، اما همچنان به آن نیاز دارند و بدون این کار به درستی عمل نمی‌کنند. فهرست اختیاری پنجره‌ها امکان تعیین این‌که کدام پنجره‌ها مشمول چنین رفتاری شوند را فراهم می‌سازد. .sp نخستین بار در 4.0.0 ارائه شد. در نسخه‌های قبلی، گونه‌ای از این قابلیت به صورت بدون قید و شرط فعال بود. .RE .sp ForceIcons .RS 4 این متغیر مشخص می‌کند که نقشه‌های پیکسلی (pixmaps) آیکون تعیین‌شده در متغیر \f(CRIcons\fP باید بر هر نقشه پیکسلی ارائه‌شده از سوی کلاینت اولویت داشته و جایگزین آن شوند. .RE .sp FramePadding \f(CRpixels\fP .RS 4 این متغیر فاصله بین تزیینات نوار عنوان (دکمه و متن) و کادر پنجره را مشخص می‌کند. در صورت عدم تنظیم \f(CRUseThreeDTitles\fP مقدار پیش‌فرض 2 پیکسل و در صورت تنظیم آن 0 است. .RE .sp GrabServer .RS 4 مشخص می‌کند که ctwm هنگام باز کردن منوها و جابه‌جایی پنجره‌های کدر (opaque)، سرور X را تسخیر کند (مسدود کردن تمام رویدادها به جز رویدادهای متعلق به ما). همچنین \f(CRNoGrabServer\fP را ببینید. در نسخه 4.0.0 اضافه شد؛ در نسخه‌های پیشین این حالت پیش‌فرض بود. .RE .sp IconBackground \f(CRstring\fP [{ \f(CRwin\-list\fP }] .RS 4 این متغیر رنگ پس‌زمینه آیکون‌ها را مشخص می‌کند، و فقط می‌تواند درون یک فهرست \f(CRColor\fP یا \f(CRMonochrome\fP تعیین شود. مقدار اختیاری \f(CRwin\-list\fP فهرستی از نام‌ها و رنگ‌های پنجره‌هاست تا بتوان رنگ‌ها را به ازای هر پنجره مشخص کرد. برای توضیحات کامل درباره \f(CRwin\-list\fP به متغیر \f(CRBorderColor\fP مراجعه کنید. مقدار پیش‌فرض \(lqwhite\(rq (سفید) است. .RE .sp IconBorderColor \f(CRstring\fP [{ \f(CRwin\-list\fP }] .RS 4 این متغیر رنگ حاشیه مورد استفاده برای پنجره‌های آیکون را مشخص می‌کند، و فقط می‌تواند درون یک فهرست \f(CRColor\fP یا \f(CRMonochrome\fP تعیین شود. مقدار اختیاری \f(CRwin\-list\fP فهرستی از نام‌ها و رنگ‌های پنجره‌هاست تا بتوان رنگ‌ها را به ازای هر پنجره مشخص کرد. برای توضیحات کامل درباره \f(CRwin\-list\fP به متغیر \f(CRBorderColor\fP مراجعه کنید. مقدار پیش‌فرض \(lqblack\(rq (سیاه) است. .RE .sp IconBorderWidth \f(CRpixels\fP .RS 4 این متغیر عرض حاشیه اطراف پنجره‌های آیکون را بر حسب پیکسل مشخص می‌کند. مقدار پیش‌فرض 2 است. .RE .sp IconDirectory \f(CRstring\fP .RS 4 این متغیر پوشه‌ای را مشخص می‌کند که در صورت پیدا نشدن فایل بیت‌مپ در هیچ‌یک از پوشه‌های منبع \f(CRbitmapFilePath\fP، باید مورد جستجو قرار گیرد. .RE .sp IconFont \f(CRstring\fP .RS 4 این متغیر قلم (فونت) مورد استفاده برای نمایش نام آیکون‌ها درون آیکون‌ها را مشخص می‌کند. مقدار پیش‌فرض \(lqvariable\(rq است. .RE .sp IconForeground \f(CRstring\fP [{ \f(CRwin\-list\fP }] .RS 4 این متغیر رنگ پیش‌زمینه مورد استفاده هنگام نمایش آیکون‌ها را مشخص می‌کند، و فقط می‌تواند درون یک فهرست \f(CRColor\fP یا \f(CRMonochrome\fP تعیین شود. مقدار اختیاری \f(CRwin\-list\fP فهرستی از نام‌ها و رنگ‌های پنجره‌هاست تا بتوان رنگ‌ها را به ازای هر پنجره مشخص کرد. برای توضیحات کامل درباره \f(CRwin\-list\fP به متغیر \f(CRBorderColor\fP مراجعه کنید. مقدار پیش‌فرض \(lqblack\(rq (سیاه) است. .RE .sp IconifyByUnmapping [{ \f(CRwin\-list\fP }] .RS 4 این متغیر مشخص می‌کند که پنجره‌ها باید صرفاً با محو شدن (unmap شدن) بدون تلاش برای نگاشت هیچ آیکونی، آیکون‌سازی شوند. فرض بر این است که کاربر پنجره را مجدداً از طریق مدیر آیکون، تابع \f(CRf.warpto\fP یا منوی \f(CRTwmWindows\fP بازنشانی خواهد کرد. اگر مقدار اختیاری \f(CRwin\-list\fP ارائه شود، تنها همان پنجره‌ها صرفاً با محو شدن آیکون‌سازی خواهند شد. پنجره‌هایی که هر دو گزینه این مورد و \f(CRIconManagerDontShow\fP را تنظیم کرده باشند، در صورتی که هیچ اتصالی به منوی \f(CRTwmWindows\fP در فایل راه‌اندازی کاربر تعریف نشده باشد ممکن است غیرقابل دسترسی شوند. .RE .sp IconifyStyle \f(CRstring\fP .RS 4 که در آن string یکی از مقادیر \f(CR"normal"\fP، \f(CR"mosaic"\fP، \f(CR"zoomin"\fP، \f(CR"zoomout"\fP یا \f(CR"sweep"\fP است. به ctwm می‌گوید هنگام آیکون‌سازی پنجره‌ها از جلوه‌های گرافیکی تزیینی و جذاب استفاده کند. .RE .sp IconJustification \f(CRstring\fP .RS 4 که در آن string یکی از مقادیر \f(CR"left"\fP، \f(CR"center"\fP یا \f(CR"right"\fP است. به ctwm می‌گوید تصویر آیکون را نسبت به عنوان آیکون (در صورت وجود) چگونه تراز کند. .RE .sp IconManagerBackground \f(CRstring\fP [{ \f(CRwin\-list\fP }] .RS 4 این متغیر رنگ پس‌زمینه مورد استفاده برای مدخل‌های مدیر آیکون را مشخص می‌کند، و فقط می‌تواند درون یک فهرست \f(CRColor\fP یا \f(CRMonochrome\fP تعیین شود. مقدار اختیاری \f(CRwin\-list\fP فهرستی از نام‌ها و رنگ‌های پنجره‌هاست تا بتوان رنگ‌ها را به ازای هر پنجره مشخص کرد. برای توضیحات کامل درباره \f(CRwin\-list\fP به متغیر \f(CRBorderColor\fP مراجعه کنید. مقدار پیش‌فرض \(lqwhite\(rq (سفید) است. .RE .sp IconManagerDontShow [{ \f(CRwin\-list\fP }] .RS 4 این متغیر مشخص می‌کند که مدیر آیکون نباید هیچ پنجره‌ای را نمایش دهد. اگر مقدار اختیاری \f(CRwin\-list\fP ارائه شود، فقط آن پنجره‌ها نمایش داده نخواهند شد. این متغیر برای جلوگیری از اشغال فضا در مدیر آیکون توسط پنجره‌هایی که به ندرت آیکون‌سازی می‌شوند (مانند \f(CRxclock\fP یا \f(CRxload\fP) به کار می‌رود. .RE .sp IconManagerFont \f(CRstring\fP .RS 4 این متغیر قلم (فونت) مورد استفاده هنگام نمایش مدخل‌های مدیر آیکون را مشخص می‌کند. مقدار پیش‌فرض \(lqvariable\(rq است. .RE .sp IconManagerForeground \f(CRstring\fP [{ \f(CRwin\-list\fP }] .RS 4 این متغیر رنگ پیش‌زمینه مورد استفاده هنگام نمایش مدخل‌های مدیر آیکون را مشخص می‌کند، و فقط می‌تواند درون یک فهرست \f(CRColor\fP یا \f(CRMonochrome\fP تعیین شود. مقدار اختیاری \f(CRwin\-list\fP فهرستی از نام‌ها و رنگ‌های پنجره‌هاست تا بتوان رنگ‌ها را به ازای هر پنجره مشخص کرد. برای توضیحات کامل درباره \f(CRwin\-list\fP به متغیر \f(CRBorderColor\fP مراجعه کنید. مقدار پیش‌فرض \(lqblack\(rq (سیاه) است. .RE .sp IconManagerGeometry \f(CRstring\fP [ \f(CRcolumns\fP ] .RS 4 این متغیر هندسه پنجره مدیر آیکون را مشخص می‌کند. آرگومان \f(CRstring\fP یک مشخصه استاندارد هندسه است که اندازه کامل اولیه مدیر آیکون را نشان می‌دهد. پنجره مدیر آیکون سپس به تعداد \f(CRcolumns\fP بخش تقسیم شده و بر اساس تعداد مدخل‌های موجود در مدیر آیکون مقیاس‌بندی می‌شود. مدخل‌های اضافی شکسته شده و سطرهای جدیدی را تشکیل می‌دهند. تعداد پیش‌فرض ستون‌ها 1 است. هنگامی که برنامه با پشتیبانی از XrandR کامپایل شده باشد، می‌توان هندسه را با افزودن پیشوند نام نمایشگر (قابل مشاهده با خط فرمان \f(CRxrandr(1)\fP) به همراه \f(CR:\fP نسبت به آن نمایشگر تعیین کرد. این نام در صورت عدم دسترسی به XrandR نادیده گرفته می‌شود. .RE .sp IconManagerHighlight \f(CRstring\fP [{ \f(CRwin\-list\fP }] .RS 4 این متغیر رنگ حاشیه مورد استفاده هنگام برجسته‌سازی مدخل مدیر آیکون که در حال حاضر دارای فوکوس است را مشخص می‌کند، و فقط می‌تواند درون یک فهرست \f(CRColor\fP یا \f(CRMonochrome\fP تعیین شود. مقدار اختیاری \f(CRwin\-list\fP فهرستی از نام‌ها و رنگ‌های پنجره‌هاست تا بتوان رنگ‌ها را به ازای هر پنجره مشخص کرد. برای توضیحات کامل درباره \f(CRwin\-list\fP به متغیر \f(CRBorderColor\fP مراجعه کنید. مقدار پیش‌فرض \(lqblack\(rq (سیاه) است. .RE .sp IconManagers { \f(CRiconmgr\-list\fP } .RS 4 این متغیر فهرستی از مدیران آیکون را برای ایجاد مشخص می‌کند. هر مورد در \f(CRiconmgr\-list\fP دارای قالب زیر است: .sp .if n .RS 4 .nf .fam C "winname" ["iconname"] "geometry" columns .fam .fi .if n .RE .sp که در آن \f(CRwinname\fP نام پنجره‌هایی است که باید در این مدیر آیکون قرار گیرند، \f(CRiconname\fP نام آیکونِ پنجره آن مدیر آیکون است، \f(CRgeometry\fP یک مشخصه استاندارد هندسه است، و \f(CRcolumns\fP تعداد ستون‌های این مدیر آیکون مطابق توضیحات ارائه شده در \f(CRIconManagerGeometry\fP است. هنگامی که برنامه با پشتیبانی از XrandR کامپایل شده باشد، می‌توان هندسه را با پیشوند کردن نام نمایشگر (قابل مشاهده با خط فرمان \f(CRxrandr(1)\fP) به همراه \f(CR:\fP نسبت به آن نمایشگر تعیین کرد. این نام در صورت عدم دسترسی به XrandR نادیده گرفته می‌شود. برای نمونه: .sp .if n .RS 4 .nf .fam C IconManagers { "XTerm" "=300x5+800+5" 5 "myhost" "HDMI2:400x5+100+5" 2 } .fam .fi .if n .RE .sp کلاینت‌هایی که نام یا کلاس آن‌ها \(lqXTerm\(rq باشد مدخلی ایجادشده در مدیر آیکون \(lqXTerm\(rq خواهند داشت. کلاینت‌هایی که نام آن‌ها \(lqmyhost\(rq باشد در مدیر آیکون \(lqmyhost\(rq قرار می‌گیرند. .RE .sp IconManagerShadowDepth \f(CRpixels\fP .RS 4 این متغیر عمق سایه‌ای را که ctwm برای مدخل‌های سه‌بعدی مدیر آیکون، در صورت انتخاب UseThreeDIconManagers استفاده می‌کند، مشخص می‌نماید. .RE .sp IconManagerShow { \f(CRwin\-list\fP } .RS 4 این متغیر فهرستی از پنجره‌هایی را مشخص می‌کند که باید در مدیر آیکون ظاهر شوند. هنگامی که همراه با متغیر \f(CRIconManagerDontShow\fP استفاده شود، فقط پنجره‌های موجود در این فهرست در مدیر آیکون نمایش داده خواهند شد. .RE .sp IconMenuDontShow { \f(CRwin\-list\fP } .RS 4 نام این پنجره‌ها را در منوی TwmIcons نمایش نده. .RE .sp IconRegion \f(CRgeomstring\fP \f(CRvgrav hgrav gridwidth gridheight\fP [\f(CRiconjust\fP] [\f(CRiconregjust\fP] [\f(CRiconregalign\fP] [{ \f(CRwin\-list\fP }] .RS 4 این متغیر ناحیه‌ای را روی پنجره ریشه مشخص می‌کند که در صورت عدم ارائه محل مشخص برای آیکون توسط کلاینت، آیکون‌ها در آن قرار می‌گیرند. آرگومان \f(CRgeomstring\fP یک رشته درون نقل‌قول حاوی مشخصه استاندارد هندسه است. هنگامی که برنامه با پشتیبانی از XrandR کامپایل شده باشد، می‌توان هندسه را با پیشوند کردن نام نمایشگر (قابل مشاهده با خط فرمان \f(CRxrandr(1)\fP) به همراه \f(CR:\fP نسبت به آن نمایشگر تعیین کرد. این نام در صورت عدم دسترسی به XrandR نادیده گرفته می‌شود. اگر بیش از یک سطر \f(CRIconRegion\fP داده شود، آیکون‌ها پس از پر شدن ناحیه اول در نواحی آیکون بعدی قرار خواهند گرفت. آرگومان \f(CRvgrav\fP باید یکی از مقادیر \f(CRNorth\fP یا \f(CRSouth\fP باشد و برای کنترل این‌که آیا آیکون‌ها ابتدا از بالا یا از پایین ناحیه آیکون پر شوند، به کار می‌رود. به همین ترتیب، آرگومان \f(CRhgrav\fP باید \f(CREast\fP یا \f(CRWest\fP باشد و برای کنترل پر شدن آیکون‌ها از چپ یا از راست استفاده می‌شود. آیکون‌ها درون این ناحیه در یک شبکه با سلول‌هایی به عرض \f(CRgridwidth\fP پیکسل و ارتفاع \f(CRgridheight\fP پیکسل چیده می‌شوند. آرگومان اختیاری win\-list به ctwm می‌گوید چنانچه چنین پنجره‌ای آیکون‌سازی شود و فضای کافی در این ناحیه آیکون برای آیکون آن وجود داشته باشد، آن را در این‌جا قرار دهد. آرگومان‌های اختیاری \f(CRiconjust\fP، \f(CRiconregjust\fP و \f(CRiconregalign\fP می‌توانند برای تعیین مقادیر اختصاصی IconJustification، IconRegionJustification و IconRegionAlignement برای این IconRegion مورد استفاده قرار گیرند. .RE .sp IconRegionAlignement \f(CRstring\fP .RS 4 که در آن string یکی از مقادیر \f(CR"top"\fP، \f(CR"center"\fP، \f(CR"bottom"\fP یا \f(CR"border"\fP است. به ctwm می‌گوید آیکون‌ها را چگونه در جای خود درون IconRegion تراز کند. اگر \(lqborder\(rq داده شود، در صورتی که جاذبه ناحیه آیکون \(lqnorth\(rq باشد تراز برابر با \(lqtop\(rq و در صورتی که جاذبه ناحیه آیکون \(lqsouth\(rq باشد تراز برابر با \(lqbottom\(rq خواهد بود. .RE .sp IconRegionJustification \f(CRstring\fP .RS 4 که در آن string یکی از مقادیر \f(CR"left"\fP، \f(CR"center"\fP، \f(CR"right"\fP یا \f(CR"border"\fP است. به ctwm می‌گوید آیکون‌ها را چگونه در جای خود درون IconRegion تراز کند. اگر \(lqborder\(rq داده شود، در صورتی که جاذبه ناحیه آیکون \(lqwest\(rq باشد تراز برابر با \(lqleft\(rq و در صورتی که جاذبه ناحیه آیکون \(lqeast\(rq باشد تراز برابر با \(lqright\(rq خواهد بود. .RE .sp Icons { \f(CRwin\-list\fP } .RS 4 این متغیر فهرستی از نام‌های پنجره و نام فایل‌های بیت‌مپ که باید به عنوان آیکون آن‌ها استفاده شود را مشخص می‌کند. برای نمونه: .sp .if n .RS 4 .nf .fam C Icons { "XTerm" "xterm.icon" "xfd" "xfd_icon" } .fam .fi .if n .RE .sp پنجره‌هایی که با \(lqXTerm\(rq تطابق دارند و با محو شدن آیکون‌سازی نمی‌شوند، سعی خواهند کرد از بیت‌مپ آیکون در فایل \(lqxterm.icon\(rq استفاده کنند. اگر \f(CRForceIcons\fP تعیین شده باشد، این بیت‌مپ حتی در صورتی که کلاینت نقشه پیکسلی آیکون مخصوص به خود را درخواست کرده باشد، استفاده خواهد شد. .RE .sp IconSize \f(CRstring\fP .RS 4 (تنها در صورت ساخته شدن با \f(CRUSE_EWMH\fP) رشته به شکل "\f(CRx\fP" یا "\f(CRsize\fP" برای اندازه مربعی است. این متغیر اندازه ترجیحی آیکون‌های انتخاب‌شده از ویژگی پنجره EWMH یعنی \f(CR_NET_WM_ICON\fP را مشخص می‌کند. اگر آیکونی با اندازه دقیق موجود نباشد، گزینه‌ای با نزدیک‌ترین اندازه (از لحاظ مساحت) انتخاب خواهد شد. .sp نخستین بار در 4.0.0 ارائه شد. .RE .sp IgnoreCaseInMenuSelection .RS 4 هنگام حرکت دادن اشاره‌گر درون یک منو با صفحه‌کلید استفاده می‌شود. هنگامی که حرفی را تایپ می‌کنید، اشاره‌گر به مدخل بعدی که با این حرف آغاز می‌شود حرکت می‌کند. اگر IgnoreCaseInMenuSelection وجود داشته باشد، این انتخاب بزرگی و کوچکی این حرف اول را نادیده می‌گیرد. .RE .sp IgnoreLockModifier .RS 4 در صورت حضور، تمامی اتصالات (دکمه‌ها و کلیدها) مقدار LockMask را نادیده می‌گیرند. اگر غالباً از کلید caps lock استفاده می‌کنید و مایل نیستید تمامی اتصالات خود را دو بار تعریف نمایید، مفید خواهد بود. .RE .sp IgnoreModifier .RS 4 تمامی اتصالات (دکمه‌ها و کلیدها) کلیدهای تبدیل (modifiers) مشخص‌شده توسط شما را نادیده می‌گیرند. این گزینه زمانی که از کلیدهای caps lock یا num lock استفاده می‌کنید کاربرد دارد. با استفاده از این گزینه دیگر نیازی به IgnoreLockModifier ندارید. .sp .if n .RS 4 .nf .fam C IgnoreModifier { lock m2 } .fam .fi .if n .RE .RE .sp IgnoreTransient .RS 4 فهرست پنجره‌هایی که پنجره‌های گذرا (transients) برای آن‌ها نادیده گرفته می‌شود. .sp .if n .RS 4 .nf .fam C IgnoreTransient { "Wine" } .fam .fi .if n .RE .RE .sp InterpolateMenuColors .RS 4 این متغیر مشخص می‌کند که رنگ‌های ورودی منو باید بین رنگ‌های مشخص‌شده برای هر ورودی درون‌یابی شوند. در مثال زیر: .sp .if n .RS 4 .nf .fam C Menu "mymenu" { "Title" ("black":"red") f.title "entry1" f.nop "entry2" f.nop "entry3" ("white":"green") f.nop "entry4" f.nop "entry5" ("red":"white") f.nop } .fam .fi .if n .RE .sp رنگ‌های پیش‌زمینه برای \(lqentry1\(rq و \(lqentry2\(rq بین سیاه و سفید، و رنگ‌های پس‌زمینه بین قرمز و سبز درون‌یابی خواهند شد. به طور مشابه، رنگ پیش‌زمینه برای \(lqentry4\(rq در نیمه‌راه بین سفید و قرمز، و رنگ پس‌زمینه در نیمه‌راه بین سبز و سفید خواهد بود. .RE .sp MakeTitle { \f(CRwin\-list\fP } .RS 4 این متغیر فهرستی از پنجره‌ها را مشخص می‌کند که باید نوار عنوان روی آن‌ها قرار گیرد، و برای درخواست نوار عنوان روی پنجره‌های مشخص در حالتی که \f(CRNoTitle\fP تنظیم شده است به کار می‌رود. .RE .sp MapWindowBackground color [{ win\-list }] .RS 4 این متغیر رنگ‌های پس‌زمینه را برای پنجره‌های کوچک در پنجره نقشه فضای کاری مشخص می‌کند و فقط می‌تواند در داخل یک فهرست Color یا Monochrome مشخص شود. گزینه اختیاری \f(CRwin\-list\fP فهرستی از نام‌ها و رنگ‌های پنجره‌ها است تا بتوان رنگ‌ها را به تفکیک هر پنجره مشخص کرد. اگر نه MapWindowBackground و نه MapWindowForeground مشخص نشده باشند، از رنگ‌های عنوان پنجره استفاده می‌شود. .RE .sp MapWindowCurrentWorkSpace { border_color [background] [foreground] [bitmap] } .RS 4 ظاهر پنجره نقشه مربوط به فضای کاری فعلی را مشخص می‌کند. .RE .sp MapWindowDefaultWorkSpace { border_color [background] [foreground] [bitmap] } .RS 4 ظاهر پنجره نقشه مربوط به فضاهای کاری غیر از فضای کاری فعلی را در حالتی که هیچ اطلاعات پس‌زمینه ریشه‌ای در دستور WorkSpace به ctwm داده نشده باشد، مشخص می‌کند. در موارد دیگر استفاده نمی‌شود. .RE .sp MapWindowForeground color [{ win\-list }] .RS 4 این متغیر رنگ‌های پیش‌زمینه را برای پنجره‌های کوچک در پنجره نقشه فضای کاری مشخص می‌کند و فقط می‌تواند در داخل یک فهرست Color یا Monochrome مشخص شود. گزینه اختیاری \f(CRwin\-list\fP فهرستی از نام‌ها و رنگ‌های پنجره‌ها است تا بتوان رنگ‌ها را به تفکیک هر پنجره مشخص کرد. اگر نه MapWindowBackground و نه MapWindowForeground مشخص نشده باشند، از رنگ‌های عنوان پنجره استفاده می‌شود. .RE .sp MaxIconTitleWidth \f(CRwidth\fP .RS 4 آرگومان عدد صحیح به ctwm حداکثر عرض مورد استفاده برای عنوان آیکون را اعلام می‌کند. اگر عنوان آیکون بزرگ‌تر از \f(CRwidth\fP باشد، بریده (کوتاه) می‌شود. .RE .sp MaxWindowSize \f(CRstring\fP .RS 4 این متغیر ابعاد هندسی‌ای را مشخص می‌کند که در آن عرض و ارتفاع، حداکثر اندازه را برای یک پنجره مشخص می‌کنند. این ویژگی معمولاً برای محدود کردن پنجره‌ها به اندازه صفحه نمایش به کار می‌رود. مقدار پیش‌فرض \(lq30000x30000\(rq است. .RE .sp MenuBackground \f(CRstring\fP .RS 4 این متغیر رنگ پس‌زمینه مورد استفاده برای منوها را مشخص می‌کند و فقط می‌تواند در داخل یک فهرست \f(CRColor\fP یا \f(CRMonochrome\fP مشخص شود. مقدار پیش‌فرض \(lqwhite\(rq است. .RE .sp MenuFont \f(CRstring\fP .RS 4 این متغیر قلم مورد استفاده هنگام نمایش منوها را مشخص می‌کند. مقدار پیش‌فرض \(lqvariable\(rq است. .RE .sp MenuForeground \f(CRstring\fP .RS 4 این متغیر رنگ پیش‌زمینه مورد استفاده برای منوها را مشخص می‌کند و فقط می‌تواند در داخل یک فهرست \f(CRColor\fP یا \f(CRMonochrome\fP مشخص شود. مقدار پیش‌فرض \(lqblack\(rq است. .RE .sp MenuShadowColor \f(CRstring\fP .RS 4 این متغیر رنگ سایه پشت منوهای افتادنی (pull\-down) را مشخص می‌کند و فقط می‌تواند در داخل یک فهرست \f(CRColor\fP یا \f(CRMonochrome\fP مشخص شود. مقدار پیش‌فرض \(lqblack\(rq است. .RE .sp MenuShadowDepth \f(CRpixels\fP .RS 4 این متغیر عمق سایه‌ای را که ctwm برای منوهای سه‌بعدی استفاده می‌کند، در هنگام فعال بودن UseThreeDMenus مشخص می‌نماید. .RE .sp MenuTitleBackground \f(CRstring\fP .RS 4 این متغیر رنگ پس‌زمینه را برای ورودی‌های \f(CRf.title\fP در منوها مشخص می‌کند و فقط می‌تواند در داخل یک فهرست \f(CRColor\fP یا \f(CRMonochrome\fP مشخص شود. مقدار پیش‌فرض \(lqwhite\(rq است. .RE .sp MenuTitleForeground \f(CRstring\fP .RS 4 این متغیر رنگ پیش‌زمینه را برای ورودی‌های \f(CRf.title\fP در منوها مشخص می‌کند و فقط می‌تواند در داخل یک فهرست \f(CRColor\fP یا \f(CRMonochrome\fP مشخص شود. مقدار پیش‌فرض \(lqblack\(rq است. .RE .sp MonitorLayout { \f(CRmonitor\-list\fP } .RS 4 این گزینه امکان پیکربندی دستی مواردی را که ctwm به عنوان فهرست مانیتورها در نظر می‌گیرد، فراهم می‌کند. اگر پشتیبانی از \f(CRXRANDR\fP کامپایل شده باشد (از نسخه 4.1.0 به بعد به عنوان پیش‌فرض) و افزونه \f(CRRANDR\fP روی کارساز شما موجود باشد، آن‌گاه \f(CRctwm\fP از آن برای تعیین اندازه و چیدمان مانیتورهای شما استفاده خواهد کرد. .sp اما اگر هیچ‌یک از این دو برقرار نباشد، یا بخواهید نتایجی را که بازمی‌گرداند بازنویسی کنید، می‌توانید نام‌ها و چیدمان‌های \(lqمانیتورهای\(rq دلخواه خود را با این متغیر مشخص نمایید. برای نمونه، اگر مانیتور بسیار عریضی دارید و ترجیح می‌دهید به عنوان چند مانیتور باریک‌تر در کنار هم در نظر گرفته شود، می‌توانید از این گزینه استفاده کنید تا به ctwm بگویید با آن به همین صورت رفتار کند. .sp .if n .RS 4 .nf .fam C MonitorLayout { # Imagine a 5000x1000 monitor, that we want to split into two 2k wide # sections at the far left and right, with a 1k wide section in the # middle. "Left:2000x1000+0+0" "1000x1000+2000+0" # Middle section unnamed "Right:2000x1000+3000+0" } .fam .fi .if n .RE .sp با پشتیبانی از \f(CRm4\fP، حتی می‌توانید کاری کنید که صفحه نمایش کامل شما به صورت خودکار به ۲ \(lqمانیتور\(rq تقسیم شود: .sp .if n .RS 4 .nf .fam C define(LeftWidth, eval(WIDTH / 2))dnl define(RightWidth, eval(WIDTH \- LeftWidth))dnl MonitorLayout { "`AutoL:\*(AqLeftWidth`x\*(AqHEIGHT`+0+0\*(Aq" "`AutoR:\*(AqRightWidth`x\*(AqHEIGHT`+\*(AqLeftWidth`+0\*(Aq" } .fam .fi .if n .RE .RE .sp Monochrome { \f(CRcolors\fP } .RS 4 این متغیر فهرستی از تخصیص‌های رنگ را مشخص می‌کند که در صورت داشتن عمق رنگ ۱ برای صفحه نمایش، باید اعمال شوند. به توضیحات \f(CRColor\fP مراجعه کنید. .RE .sp MoveDelta \f(CRpixels\fP .RS 4 این متغیر تعداد پیکسل‌هایی را مشخص می‌کند که اشاره‌گر باید جابجا شود تا تابع \f(CRf.move\fP شروع به کار کند. همچنین تابع \f(CRf.deltastop\fP را ببینید. مقدار پیش‌فرض صفر پیکسل است. .RE .sp MovePackResistance \f(CRpixels\fP .RS 4 این متغیر میزان مقاومت movepack و movepush را بر حسب پیکسل مشخص می‌کند. توابع \f(CRf.movepack\fP و \f(CRf.movepush\fP را ببینید. .RE .sp MoveOffResistance \f(CRpixels\fP .RS 4 این متغیر میزان مقاومت moveoff (خروج از لبه) را بر حسب پیکسل مشخص می‌کند. اگر \f(CRpixels\fP مثبت باشد، \f(CRDontMoveOff\fP تنها در صورتی از خارج شدن شما از لبه جلوگیری می‌کند که در فاصله n پیکسل از لبه باشید. اگر دورتر بروید، \f(CRDontMoveOff\fP متوقف شده و اجازه می‌دهد تا هر چقدر که می‌خواهید پیش بروید. تابع \f(CRf.forcemove\fP همچنان امکان نادیده گرفتن کامل \f(CRDontMoveOff\fP را فراهم می‌کند. مقدار منفی شما را به حالت \(lqهرگز از لبه خارج نشو\(rq بازمی‌گرداند (که حالت پیش‌فرض است). .RE .sp MWMIgnore .RS 4 راهنمایی‌های (hints) مدیر پنجره Motif را که ctwm نادیده خواهد گرفت، مشخص می‌کند. مثال زیر تمامی گزینه‌های معتبر را نشان می‌دهد: .sp .if n .RS 4 .nf .fam C MWMIgnore { # en/disable window borders "DECOR_BORDER" # en/disable titlebars "DECOR_TITLE" } .fam .fi .if n .RE .sp نخستین بار در نسخه 4.0.0 ظاهر شد. .RE .sp NoBackingStore .RS 4 این متغیر نشان می‌دهد که منوهای ctwm نباید به منظور به حداقل رساندن بازترسیم منوها، درخواست backing store کنند. این گزینه معمولاً با کارسازهایی به کار می‌رود که بازترسیم را سریع‌تر از مدیریت backing store انجام می‌دهند. همچنین \f(CRBackingStore\fP را ببینید. از نسخه 4.0.0 به بعد، این حالت پیش‌فرض است. .RE .sp NoBorder { \f(CRwin\-list\fP } .RS 4 این پنجره‌ها کادر (حاشیه) نخواهند داشت. اگر می‌خواهید هیچ پنجره‌ای کادر نداشته باشد، از کلیدواژه BorderWidth استفاده کنید. .RE .sp NoCaseSensitive .RS 4 این متغیر نشان می‌دهد که هنگام مرتب‌سازی نام آیکون‌ها در یک مدیر آیکون، بزرگی و کوچکی حروف نادیده گرفته شود. این گزینه معمولاً برای برنامه‌هایی استفاده می‌شود که حرف نخست نام آیکون خود را بزرگ می‌نویسند. .RE .sp NoDecorateTransients .RS 4 مشخص می‌کند پنجره‌های گذرا (یعنی پنجره‌هایی که ویژگی \f(CRWM_TRANSIENT_FOR\fP برای آن‌ها تنظیم شده است) توسط ctwm نادیده گرفته شوند (تزئینات پنجره به آن‌ها تعلق نگیرد). همچنین \f(CRDecorateTransients\fP را ببینید. در نسخه 4.0.0 اضافه شد؛ در نسخه‌های قبلی این حالت پیش‌فرض بود. .RE .sp NoDefaults .RS 4 این متغیر نشان می‌دهد که ctwm نباید دکمه‌های نوار عنوان و میانبرهای پیش‌فرض را ارائه دهد. این گزینه تنها زمانی باید استفاده شود که فایل راه‌اندازی شامل مجموعه کاملاً جدیدی از میانبرها و تعاریف باشد. .RE .sp NoGrabServer .RS 4 این متغیر نشان می‌دهد که ctwm نباید هنگام بالا آوردن منوها و جابجایی پنجره‌های کدر (opaque)، کارساز را تسخیر (grab) کند. از نسخه 4.0.0 به بعد این حالت پیش‌فرض است. .RE .sp NoHighlight [{ \f(CRwin\-list\fP }] .RS 4 این متغیر نشان می‌دهد که حاشیه‌ها نباید برای دنبال کردن موقعیت اشاره‌گر برجسته (highlight) شوند. اگر مقدار اختیاری \f(CRwin\-list\fP مشخص شود، برجسته‌سازی فقط برای آن پنجره‌ها غیرفعال خواهد شد. زمانی که حاشیه برجسته است، با رنگ کنونی \f(CRBorderColor\fP ترسیم می‌شود. هنگامی که حاشیه برجسته نیست، با یک الگوی خاکستری مشبک با استفاده از رنگ‌های فعلی \f(CRBorderTileForeground\fP و \f(CRBorderTileBackground\fP سایه‌زنی (stippled) خواهد شد. .RE .sp NoIconTitle [{ \f(CRwin\-list\fP }] .RS 4 این متغیر نشان می‌دهد که آیکون‌ها نباید نام آیکون کلاینت را نمایش دهند. اگر مقدار اختیاری \f(CRwin\-list\fP مشخص شود، فقط آیکون آن کلاینت‌ها عنوان نخواهند داشت. .RE .sp NoIconManagerFocus .RS 4 این متغیر نشان می‌دهد که وقتی اشاره‌گر در یک IconManager است، ctwm فوکوس را روی پنجره متناظر قرار نخواهد داد. .RE .sp NoIconManagers .RS 4 این متغیر مشخص می‌کند که هیچ مدیر آیکونی نباید ساخته شود. .RE .sp NoImagesInWorkSpaceManager .RS 4 این متغیر نمایش تصاویر پس‌زمینه را در WorkSpaceMap غیرفعال می‌کند. در عوض تنها رنگ‌های تعریف‌شده در \f(CRWorkSpaces\fP به عنوان پس‌زمینه در WorkSpaceMap به کار خواهند رفت. .RE .sp NoMenuShadows .RS 4 این متغیر نشان می‌دهد که برای منوها نباید سایه در پشت آن‌ها ترسیم شود. این گزینه معمولاً با کارسازهای کندتر استفاده می‌شود، زیرا ترسیم منو را سریع‌تر می‌کند، هرچند خواندن منو را کمی دشوارتر می‌سازد. .RE .sp NoOpaqueMove [{ \f(CRwindow\-list\fP }] .RS 4 همتای \f(CROpaqueMove\fP است. به \f(CROpaqueMove\fP مراجعه کنید. .RE .sp NoOpaqueResize [{ \f(CRwindow\-list\fP }] .RS 4 همتای \f(CROpaqueResize\fP است. به \f(CROpaqueResize\fP مراجعه کنید. .RE .sp NoRaiseOnDeiconify .RS 4 این متغیر نشان می‌دهد پنجره‌هایی که از حالت آیکون خارج می‌شوند (deiconified) نباید به جلو آورده شوند. .RE .sp NoRaiseOnMove .RS 4 این متغیر نشان می‌دهد که پنجره‌ها هنگام جابجایی نباید به جلو آورده شوند. این گزینه معمولاً برای این به کار می‌رود که پنجره‌ها بتوانند زیر یکدیگر بلغزند. .RE .sp NoRaiseOnResize .RS 4 این متغیر نشان می‌دهد که پنجره‌ها هنگام تغییر اندازه نباید به جلو آورده شوند. این گزینه معمولاً برای این به کار می‌رود که پنجره‌ها بتوانند زیر یکدیگر تغییر اندازه دهند. .RE .sp NoRaiseOnWarp .RS 4 این متغیر نشان می‌دهد زمانی که اشاره‌گر با تابع \f(CRf.warpto\fP به داخل پنجره‌ها جهش داده می‌شود (warped)، نباید پنجره‌ها به جلو آورده شوند. اگر این گزینه تنظیم شده باشد، جهش به یک پنجره پوشانده‌شده ممکن است منجر به قرار گرفتن اشاره‌گر در پنجره پوشاننده به جای پنجره مورد نظر شود (که این امر باعث رفتار غیرمنتظره در \f(CRf.warpring\fP می‌گردد). .RE .sp NoRestartPreviousState .RS 4 تلاشی برای بازتولید وضعیتی که صفحه نمایش قبل از خاموش شدن مدیر پنجره پیشین در آن بود، انجام نمی‌دهد. برای جزئیات به \f(CRRestartPreviousState\fP مراجعه کنید. در نسخه 4.0.0 اضافه شد؛ در نسخه‌های قبلی این حالت پیش‌فرض بود. .RE .sp NoSaveUnders .RS 4 این متغیر نشان می‌دهد که منوها نباید برای به حداقل رساندن بازترسیم پنجره به دنبال انتخاب منو، درخواست save\-unders کنند. این گزینه معمولاً در نمایشگرهایی به کار می‌رود که می‌توانند سریع‌تر از مدیریت save\-unders بازترسیم را انجام دهند. .RE .sp NoShowOccupyAll .RS 4 این متغیر مشخص می‌کند که پنجره‌های OccupyAll (حاضر در همه فضاها) در پنجره WorkSpaceMap نمایش داده نشوند. .RE .sp NoSortIconManager .RS 4 مشخص می‌کند که ورودی‌ها در مدیر آیکون به همان ترتیبی که ظاهر می‌شوند اضافه شوند. همچنین \f(CRSortIconManager\fP را ببینید. در نسخه 4.0.0 اضافه شد؛ در نسخه‌های قبلی این حالت پیش‌فرض بود. .RE .sp NoStackMode [{ \f(CRwin\-list\fP }] .RS 4 این متغیر نشان می‌دهد که درخواست‌های پنجره کلاینت برای تغییر ترتیب پشته پنجره‌ها (stacking order) باید نادیده گرفته شوند. اگر مقدار اختیاری \f(CRwin\-list\fP مشخص شود، تنها درخواست‌های مربوط به آن پنجره‌ها نادیده گرفته خواهند شد. این گزینه معمولاً برای جلوگیری از پرتاب مداوم پنجره برنامه‌ها به جلوی پشته پنجره‌ها به کار می‌رود. .RE .sp NoTitle [{ \f(CRwin\-list\fP }] .RS 4 این متغیر نشان می‌دهد که پنجره‌ها نباید نوار عنوان داشته باشند. اگر مقدار اختیاری \f(CRwin\-list\fP مشخص شود، تنها آن پنجره‌ها نوار عنوان نخواهند داشت. می‌توان از \f(CRMakeTitle\fP به همراه این گزینه استفاده کرد تا وجود نوار عنوان روی پنجره‌های مشخصی اجباری شود. .RE .sp NoTitleFocus .RS 4 این متغیر نشان می‌دهد که ctwm نباید با ورود اشاره‌گر به هر پنجره، فوکوس ورودی صفحه‌کلید را روی آن تنظیم کند. در حالت عادی، ctwm فوکوس را به گونه‌ای تنظیم می‌کند که رویدادهای فوکوس و کلید از نوار عنوان و مدیران آیکون به برنامه ارسال شوند. اگر اشاره‌گر سریع حرکت داده شود و ctwm در پاسخگویی کند باشد، ورودی ممکن است به جای پنجره جدید به پنجره قبلی هدایت شود. این گزینه معمولاً برای جلوگیری از این \(lqتأخیر در ورودی\(rq (input lag) و برای رفع اشکالات برنامه‌های قدیمی‌تر که با رویدادهای فوکوس مشکل دارند استفاده می‌شود. .RE .sp NoTitleHighlight [{ \f(CRwin\-list\fP }] .RS 4 این متغیر نشان می‌دهد که ناحیه برجسته (highlight) نوار عنوان، که برای مشخص کردن پنجره دارای فوکوس ورودی فعلی استفاده می‌شود، نباید نمایش داده شود. اگر مقدار اختیاری \f(CRwin\-list\fP مشخص شود، تنها آن پنجره‌ها فاقد ناحیه برجسته خواهند بود. این گزینه و گزینه \f(CRSqueezeTitle\fP را می‌توان طوری تنظیم کرد که فضای اشغال‌شده روی صفحه توسط نوارهای عنوان به میزان قابل توجهی کاهش یابد. .RE .sp NoWarpToMenuTitle .RS 4 این متغیر نشان می‌دهد که مکان‌نما نباید به عنوان منویی که فضای کافی برای باز شدن در زیر موقعیت فعلی مکان‌نما ندارد، جهش (warp) پیدا کند. .RE .spOccupy { \f(CRoccupy\-list\fP } .RS 4 این متغیر مشخص می‌کند که در زمان راه‌اندازی، کدام پنجره‌ها کدام فضاهای کاری را اشغال کنند. .sp \f(CRoccupy\-list\fP شامل مدخل‌هایی به شکل زیر است: .sp .if n .RS 4 .nf .fam C [Window] win\-name { wspc1 wspc2 ... } or Workspace wspc\-name { win1 win2 ... } .fam .fi .if n .RE .sp مثال: .sp .if n .RS 4 .nf .fam C Occupy { "xload" {"all"} Window "xterm" {"here" "there" "elsewhere"} "xv" {"images"} WorkSpace "images" {"xloadimage"} } .fam .fi .if n .RE .sp اگر \f(CRall\fP برای نام فضای کاری (در هر یک از دو حالت) مشخص شود، پنجره یا پنجره‌های نام‌برده در همه فضاهای کاری قرار خواهند گرفت، درست همانند اینکه در \f(CROccupyAll\fP فهرست شده باشند. اگر نام فضای کاری با \f(CRws:\fP آغاز شود، نام فضای کاری ابتدا بدون این پیشوند جستجو خواهد شد؛ یعنی اگر نام داده‌شده \f(CRws:abc\fP باشد، ابتدا به دنبال فضای کاری با نام \f(CRabc\fP می‌گردد و در صورت پیدا شدن، به آن اختصاص می‌یابد؛ در غیر این صورت به جستجوی نام \f(CRws:abc\fP بازمی‌گردد. .sp نکته: اعلان Occupy باید پس از اعلان WorkSpaces قرار گیرد. .RE .sp OccupyAll { \f(CRwindow\-list\fP } .RS 4 .sp این متغیر فهرستی از پنجره‌هایی را مشخص می‌کند که در زمان راه‌اندازی، همه فضاهای کاری را اشغال خواهند کرد. .sp \f(CRwindow\-list\fP فهرستی از نام‌های پنجره‌ها است. .sp مثال: .sp .if n .RS 4 .nf .fam C OccupyAll { "xload" "xbiff" "xconsole" } .fam .fi .if n .RE .sp نکته: اعلان OccupyAll باید پس از اعلان WorkSpaces قرار گیرد. .RE .sp OnTopPriority [Icons] \f(CRpriority\fP [ { \f(CRwin\-list\fP } ] .RS 4 مدیر پنجره ctwm به شما امکان می‌دهد پنجره‌ها را در چندین صفحه اولویت همپوشان از \-8 تا +8 قرار دهید، که این کار داشتن پنجره‌هایی که همیشه در رو قرار می‌گیرند یا در پس‌زمینه نگه داشته می‌شوند را ممکن می‌سازد. اگر \f(CRwin\-list\fP مشخص شده باشد، تعیین می‌کند کدام پنجره‌ها باید در صفحه \f(CRpriority\fP قرار گیرند. در غیر این صورت، \f(CRpriority\fP مقدار پیش‌فرض مورد استفاده را تعیین می‌کند (پیش‌فرضِ پیش‌فرض 0 است). پارامتر \f(CRIcons\fP در صورت وجود، نشان می‌دهد که اولویت شرح‌داده‌شده به جای پنجره‌ها برای آیکون‌ها اعمال می‌شود. .sp مثال: .sp .if n .RS 4 .nf .fam C OnTopPriority Icons \-1 # place icons a little in the background OnTopPriority Icons 1 # place mail icons on top of normal windows { "Exmh" "xbiff" } OnTopPriority 8 # keep these always on top of other windows { "Emacs Icon Manager" "WorkSpaceManager" "TWM Icon Manager" "XDaliClock" } .fam .fi .if n .RE .sp نخستین بار در نگارش 4.0.0 ارائه شد. .RE .sp OpaqueMove [{ \f(CRwindow\-list\fP }] .RS 4 این متغیر نشان می‌دهد که تابع \f(CRf.move\fP باید به جای نمایش صرف یک خط دور (outline)، پنجره واقعی را جابه‌جا کند تا کاربر بتواند بلافاصله ظاهر پنجره را در موقعیت جدید مشاهده کند. این گزینه معمولاً در نمایشگرهای سریع استفاده می‌شود (به‌ویژه اگر \f(CRNoGrabServer\fP تنظیم شده باشد). پارامتر اختیاری فهرست پنجره‌ها مشخص می‌کند که فقط پنجره‌های این فهرست باید به صورت کدر جابه‌جا شوند. گزینه متناظر \f(CRNoOpaqueMove\fP نیز در دسترس است. .sp از نگارش 4.0.0 این قابلیت به طور پیش‌فرض فعال است. .RE .sp OpaqueMoveThreshold \f(CRthreshold\fP .RS 4 این پارامتر عدد صحیح، یک درصد است و مشخص می‌کند تنها پنجره‌هایی (واجد شرایط جابه‌جایی کدر) که مساحتی کوچک‌تر از این درصد از مساحت صفحه نمایش دارند، باید به صورت کدر جابه‌جا شوند. مقدار پیش‌فرض 200 است. از نگارش 4.0.0 به بعد، مقادیر بیشتر یا مساوی 200 به عنوان بی‌نهایت در نظر گرفته می‌شوند و باعث می‌شوند پنجره‌های واجد شرایط همیشه با \f(CROpaqueMove\fP جابه‌جا شوند. .RE .sp OpaqueResize [{ \f(CRwindow\-list\fP }] .RS 4 نسخه تغییر اندازه به صورت کدر (Opaque). این حالت به شدت منابع سیستم را مصرف می‌کند، اما با سرور/کلاینت/شبکه سریع بسیار چشم‌نواز است. به \f(CROpaqueMove\fP مراجعه کنید. گزینه متناظر \f(CRNoOpaqueResize\fP نیز موجود است. از نگارش 4.0.0 این ویژگی به طور پیش‌فرض فعال است. .RE .sp OpaqueResizeThreshold \f(CRthreshold\fP .RS 4 نسخه تغییر اندازه متغیر \f(CROpaqueMoveThreshold\fP. مقدار پیش‌فرض 1000 است. از نگارش 3.8.1 به بعد، مقادیر بزرگ‌تر یا مساوی 1000 به عنوان بی‌نهایت تلقی شده و باعث می‌شوند پنجره‌ها در صورت واجد شرایط بودن، همیشه با \f(CROpaqueResize\fP تغییر اندازه داده شوند. .RE .sp OpenWindowTimeout \f(CRseconds\fP .RS 4 پارامتر seconds یک عدد صحیح است که تعداد ثانیه‌ها را نشان می‌دهد. هنگامی که یک پنجره تلاش می‌کند روی یک نمایشگر بدون نظارت (unattended) باز شود، پس از این تعداد ثانیه به طور خودکار نگاشت (نمایش داده) خواهد شد. .RE .sp PackNewWindows .RS 4 استفاده از الگوریتم f.movepack به جای f.move در هنگام باز کردن یک پنجره جدید. .RE .sp Pixmaps { \f(CRpixmaps\fP } .RS 4 این متغیر فهرستی از نگاشت‌های پیکسلی (pixmap) را مشخص می‌کند که ظاهر تصاویر مختلف را تعیین می‌کنند. هر مدخل شامل یک کلمه کلیدی است که پیکس‌مپ مورد نظر را مشخص کرده و پس از آن رشته‌ای حاوی نام فایل بیت‌مپ می‌آید. پیکس‌مپ‌های زیر را می‌توان تعیین کرد: .sp .if n .RS 4 .nf .fam C Pixmaps { TitleHighlight "gray1" # TitleHighlight "supman%.xbm" } .fam .fi .if n .RE .sp حالت پیش‌فرض برای \f(CRTitleHighlight\fP استفاده از یک الگوی نقطه‌چین یکنواخت (stipple) است. .RE .sp PixmapDirectory \f(CRpath\fP .RS 4 این متغیر مسیری را مشخص می‌کند که ctwm در آن برای یافتن فایل‌های بیت‌مپ غیر از X11 جستجو می‌کند. هر زمان که بخواهید از یک فایل تصویری استفاده کنید که بیت‌مپ X11 نیست، مشخص کنید: \f(CRxpm:filename\fP برای فایل‌های xpm، \f(CRxwd:filename\fP برای فایل‌های xwd، \f(CRjpeg:file\fP برای فایل‌های jpeg، یا \f(CR|command\fP برای یک فایل xwd که به صورت پویا (در لحظه) تولید می‌شود. از نویسه % برای مشخص کردن یک انیمیشن (پویانمایی) استفاده کنید. \f(CRpath\fP می‌تواند فهرستی از دایرکتوری‌ها باشد که با دونقطه (:) از یکدیگر جدا شده‌اند. مثال: .sp .if n .RS 4 .nf .fam C PixmapDirectory "/usr/lib/X11/twm" Icons { "Axe" "xpm:edit.xpm" "xterm" "xpm:ball%.xpm" } .fam .fi .if n .RE .sp توجه: این ویژگی تنها در صورتی معتبر است که نسخه ctwm شما با افزونه مناسب (XPM یا JPEG) کامپایل شده باشد. .RE .sp PrioritySwitching [Icons] { \f(CRwin\-list\fP } .RS 4 مشخص می‌کند که پنجره‌های موجود در \f(CRwin\-list\fP می‌توانند اولویت خود را تغییر دهند. این بدان معناست که آن‌ها بسته به موقعیت می‌توانند در صفحه \f(CRpriority\fP یا \f(CR\-priority\fP قرار گیرند. به عنوان مثال، پنجره‌ای با اولویت \f(CRpriority\fP برابر ۲، هنگام بالا کشیده شدن در صفحه ۲ و هنگام پایین فرستاده شدن در صفحه \-2 قرار خواهد گرفت؛ یعنی اگر پنجره دیگری را بالا بکشید معمولاً در رو می‌ماند، اما اگر اولویت آن موقتاً بیش از حد دلخواه شما بالا باشد همچنان می‌توان آن را پایین فرستاد. اگر \f(CRIcons\fP مشخص شده باشد، بدین معنی است که ترجیح شرح‌داده‌شده به جای پنجره‌ها روی آیکون‌ها اعمال می‌شود. همچنین برای افزودن/حذف پویای پنجره‌ها در زمان اجرا به تابع \f(CRf.priorityswitching\fP مراجعه کنید. .sp نخستین بار در نگارش 4.0.0 ارائه شد. .RE .sp PriorityNotSwitching [Icons] { \f(CRwin\-list\fP } .RS 4 همانند بالا، با این تفاوت که تعیین می‌کند حالت پیش‌فرض باید توانایی پنجره‌ها در تغییر اولویت باشد، به جز پنجره‌های موجود در \f(CRwin\-list\fP که این امکان را ندارند. .sp نخستین بار در نگارش 4.0.0 ارائه شد. .RE .sp RaiseDelay \f(CRmilliseconds\fP .RS 4 برای پنجره‌هایی که قرار است با ورود نشانگر ماوس به طور خودکار بالا کشیده شوند (متغیر \f(CRAutoRaise\fP و تابع \f(CRf.autoraise\fP را ببینید)، این متغیر مدت زمانی را مشخص می‌کند که نشانگر باید پیش از بالا آمدن پنجره در آن مکث کند. مقدار پیش‌فرض 0 میلی‌ثانیه است. .RE .sp RaiseOnClick .RS 4 در صورت وجود، پنجره با کلیک بر روی آن روی دیگر پنجره‌ها بالا کشیده می‌شود و رویداد ButtonPress به درستی به کلاینت صاحب پنجره (در صورتی که درخواست کرده باشد) ارسال می‌شود. به \f(CRRaiseOnClickButton\fP مراجعه کنید. .RE .sp RaiseOnClickButton \f(CRbutton_number\fP .RS 4 که در آن \f(CRbutton_number\fP یک شماره دکمه معتبر است (در حال حاضر ۱ تا ۱۱). دکمه مورد استفاده برای RaiseOnClick را مشخص می‌کند. .RE .sp RaiseWhenAutoUnSqueeze .RS 4 پنجره‌ها هنگام خروج خودکار از حالت فشرده (Auto-Unsqueeze) بالا کشیده می‌شوند (به AutoSqueeze مراجعه کنید). .RE .sp RandomPlacement [ \f(CRstring1\fP [ \f(CRstring2\fP ]] .RS 4 این متغیر مشخص می‌کند پنجره‌هایی که هندسه (geometry) مشخصی ندارند، باید به جای اینکه کاربر کادر دور آن‌ها را بکشد، در یک موقعیت شبه‌تصادفی قرار گیرند. اگر هیچ آرگومانی داده نشود، به عنوان \f(CRRandomPlacement "on"\fP تفسیر می‌شود. .sp \f(CRstring1\fP می‌تواند \(lqon\(rq، \(lqoff\(rq، \(lqall\(rq یا \(lqunmapped\(rq باشد و \f(CRstring2\fP میزان جابه‌جایی پنجره در موقعیت شبه‌تصادفی را نسبت به پنجره پیشین تعیین می‌کند. آرگومان‌های \(lqon\(rq یا \(lqall\(rq معادل هم هستند و به ctwm می‌گویند این کار را برای همه این پنجره‌ها انجام دهد؛ \(lqoff\(rq می‌گوید این کار را انجام ندهد، و \(lqunmapped\(rq فقط برای پنجره‌های نگاشت‌نشده مانند پنجره‌های آیکون‌شده یا پنجره‌هایی که در فضای کاری جاری قابل مشاهده نیستند اعمال می‌شود. اگر آرگومان دوم داده نشود، جابه‌جایی +30+30 (۳۰ پیکسل به راست و پایین) استفاده می‌شود. .sp از نگارش 4.0.0، در صورتی که \f(CRRandomPlacement\fP در پیکربندی مشخص نشده باشد، مقدار پیش‌فرض \(lqon\(rq است. پیش‌تر مقدار پیش‌فرض \(lqoff\(rq بود. .RE .sp ReallyMoveInWorkspaceManager .RS 4 این کلمه کلیدی به ctwm دستور می‌دهد زمانی که کاربر پنجره‌های کوچک را در پنجره WorkSpaceMap جابه‌جا می‌کند، پنجره واقعی را حرکت دهد. در صورت عدم وجود این گزینه، از WorkSpaceMap تنها می‌توان برای تغییر اشغال فضای کاری یک پنجره استفاده کرد. فشردن کلید \f(CRshift\fP هنگام کشیدن پنجره در مدیر فضای کاری، این گزینه را موقتاً تغییر وضعیت می‌دهد. .RE .sp ResizeFont \f(CRstring\fP .RS 4 این متغیر قلم مورد استفاده در پنجره ابعاد را هنگام تغییر اندازه پنجره‌ها مشخص می‌کند. مقدار پیش‌فرض \(lqfixed\(rq است. .RE .sp RestartPreviousState .RS 4 این متغیر نشان می‌دهد که از مشخصه‌های پنجره‌های کلاینت برای تلاش در جهت بازسازی وضعیتی که صفحه نمایش پیش از خاموش شدن مدیر پنجره قبلی داشت، استفاده شود. این فرایند شامل استفاده از مشخصه \f(CRWM_STATE\fP برای تشخیص اینکه کدام پنجره‌ها باید آیکون شده و کدام یک باید نمایان بمانند، و مشخصه \f(CRWM_OCCUPATION\fP برای تعیین اینکه یک پنجره در کدام فضاهای کاری باید نمایان باشد، می‌شود. از نگارش 4.0.0 این رفتار پیش‌فرض است. .RE .sp ReverseCurrentWorkspace .RS 4 این متغیر به ctwm می‌گوید رنگ‌های پس‌زمینه و پیش‌زمینه را در پنجره‌های کوچک نقشه فضای کاری (Workspace Map) برای فضای کاری جاری معکوس کند. .RE .sp RplaySoundHost \f(CRstring\fP .RS 4 میزبانی که صداها باید روی آن پخش شوند. این گزینه تنها زمانی معنادار است که ctwm با \f(CRUSE_SOUND\fP ساخته شده باشد؛ در غیر این صورت یک هشدار صادر می‌کند. به بخش SOUNDS مراجعه کنید. در نگارش 4.0.0 اضافه شد؛ نگارش‌های پیشین به جای آن از پارامتر \f(CRSoundHost\fP استفاده می‌کردند. .RE .sp RplaySounds { \f(CRsounds\-list\fP } .RS 4 تعیین می‌کند که در رویدادهای مختلف چه صداهایی از طریق rplayd پخش شوند. این متغیر شامل مدخل‌هایی به شکل زیر است: .sp .if n .RS 4 .nf .fam C "EventName" "/file/to/play.wav" .fam .fi .if n .RE .sp تنها زمانی معنادار است که ctwm با \f(CRUSE_SOUND\fP ساخته شده باشد؛ در غیر این صورت یک هشدار صادر می‌کند. به بخش SOUNDS مراجعه کنید. توجه داشته باشید که اگر این بخش در ctwmrc داده شود، فایل \f(CR~/.ctwm\-sounds\fP تجزیه نخواهد شد. نخستین بار در نگارش 4.0.0 ارائه شد. .RE .sp SaveColor { \f(CRcolors\-list\fP } .RS 4 این متغیر فهرستی از تخصیص‌های رنگی را مشخص می‌کند که باید به صورت مقادیر پیکسلی در مشخصه پنجره ریشه _MIT_PRIORITY_COLORS ذخیره شوند. کلاینت‌ها می‌توانند هنگام نصب جدول رنگ (colormap) خود، این مقادیر را حفظ کنند. توجه داشته باشید که استفاده از این سازوکار روشی است تا برنامه‌ها از مشکل «تکنیکالر» (\(lqtechnicolor\(rq) جلوگیری کنند؛ مشکلی که به موجب آن اشیاء مفید صفحه نمایش مانند کادرها و نوارهای عنوان پنجره‌ها با نصب رنگ‌های سفارشی یک برنامه توسط مدیر پنجره ناپدید می‌شوند. برای مثال: .sp .if n .RS 4 .nf .fam C SaveColor { BorderColor TitleBackground TitleForeground "red" "green" "blue" } .fam .fi .if n .RE .sp این کار ۳ مقدار پیکسلی برای کادرها و نوارهای عنوان و همچنین سه رشته رنگ را روی پنجره ریشه قرار می‌دهد که همگی از جدول رنگ پیش‌فرض گرفته شده‌اند. .RE .sp ShrinkIconTitles .RS 4 کوچک‌سازی عنوان آیکون‌ها به سبک موتیف (Motif)، و بزرگ‌نمایی آن‌ها هنگامی که ماوس درون آیکون قرار می‌گیرد. املای نادرست قدیمی \f(CRSchrinkIconTitles\fP نیز همچنان پذیرفته می‌شود. .RE .sp ShortAllWindowsMenus .RS 4 عدم نمایش WorkSpaceManager و IconManagers در منوهای TwmWindows و TwmAllWindows. .RE .sp ShowIconManager .RS 4 این متغیر مشخص می‌کند که پنجره مدیر آیکون باید در زمان راه‌اندازی ctwm نمایش داده شود. این پنجره را همیشه می‌توان با استفاده از تابع \f(CRf.showiconmgr\fP باز کرد. .RE .sp ShowWorkSpaceManager .RS 4 این متغیر مشخص می‌کند که WorkSpaceManager باید قابل مشاهده باشد. .RE .sp SloppyFocus .RS 4 استفاده از حالت تمرکز سهل‌گیرانه (Sloppy Focus). .RE .sp SaveWorkspaceFocus .RS 4 هنگام جابه‌جایی به یک فضای کاری، تمرکز را به آخرین پنجره‌ای که پیش از ترک آن فضای کاری دارای تمرکز بود، با پرش نشانگر ماوس به داخل آن، بازمی‌گرداند. این کار اساساً پنجره دارای تمرکز را به همراه فضای کاری ذخیره کرده و هنگام تعویض فضا، آن را به طور خودکار بازیابی می‌کند. در بسیاری از موارد، این قابلیت مانع از نیاز به حرکت دادن ماوس پس از جابه‌جایی به یک فضای کاری جدید می‌شود. .RE .sp SortIconManager .RS 4 این متغیر مشخص می‌کند که مدخل‌ها در مدیر آیکون باید به ترتیب الفبایی مرتب شوند، به جای اینکه صرفاً پنجره‌های جدید به انتها افزوده شوند. از نگارش 4.0.0 این رفتار پیش‌فرض است. .RE .sp SoundHost \f(CRstring\fP .RS 4 نام مستعار برای \f(CRRplaySoundHost\fP که در نسخه‌های پیش از 4.0.0 استفاده می‌شد. مگر اینکه به سازگاری عقب‌رو با آن‌ها نیاز داشته باشید، به جای آن از \f(CRRplaySoundHost\fP استفاده کنید. این نام مستعار در نگارش‌های آینده حذف خواهد شد. .RE .sp SqueezeTitle [{ \f(CRsqueeze\-list\fP }] .RS 4 این متغیر نشان می‌دهد که ctwm باید تلاش کند از افزونه SHAPE استفاده کند تا نوارهای عنوان تنها به اندازه فضای مورد نیاز خود فضا اشغال کنند، به جای اینکه در سراسر بخش بالایی پنجره امتداد یابند. فهرست اختیاری \f(CRsqueeze\-list\fP می‌تواند برای کنترل موقعیت نوار عنوان فشرده‌شده در بالای پنجره استفاده شود. این فهرست شامل مدخل‌هایی به شکل زیر است: .sp .if n .RS 4 .nf .fam C "name" justification num denom .fam .fi .if n .RE .sp که در آن \f(CRname\fP نام پنجره است، \f(CRjustification\fP یکی از مقادیر \f(CRleft\fP، \f(CRcenter\fP، یا \f(CRright\fP است، و \f(CRnum\fP و \f(CRdenom\fP اعدادی هستند که نسبتی را برای تعیین موقعیت نسبی تراز شدن نوار عنوان مشخص می‌کنند. این نسبت اگر صورت کسر مثبت باشد از چپ به راست و اگر منفی باشد از راست به چپ سنجیده می‌شود. مخرج 0 نشان می‌دهد که صورت کسر باید به عنوان مقدار برحسب پیکسل تفسیر شود. برای حفظ سازگاری، موقعیت پیکسلی 0/0 همان میانه نسبی پنجره (1/2) برای \f(CRcenter\fP و سمت راست نسبی پنجره (2/2) برای \f(CRright\fP است، اما این نوع کاربرد توصیه نمی‌شود. از "right 2 2" برای موقعیت‌یابی نسبی یا "right \-1 0" برای موقعیت‌یابی مطلق استفاده کنید؛ این مورد هنگام کشیدن نوار عنوان تفاوت ایجاد می‌کند (به \f(CRf.movetitlebar\fP مراجعه کنید). برای مثال: .sp .if n .RS 4 .nf .fam C SqueezeTitle { "XTerm" left 0 0 "xterm1" left 1 3 "xterm2" left 2 3 "oclock" center 1 2 "emacs" right 2 2 } .fam .fi .if n .RE .sp موقعیت‌یابی پیش‌فرض، تراز چپ (left-justified) و مطلق در 0 پیکسل است. فهرست \f(CRDontSqueezeTitle\fP می‌تواند برای غیرفعال کردن فشرده‌سازی در برخی عنوان‌های خاص استفاده شود. .RE .sp StartIconified { \f(CRwin\-list\fP } .RS 4 این متغیر مشخص می‌کند که پنجره‌های کلاینت باید در ابتدا به‌صورت آیکون باقی بمانند تا زمانی که کاربر صراحتاً آن‌ها را از حالت آیکون خارج کند. اگر \f(CRwin\-list\fP اختیاری مشخص شده باشد، تنها همان پنجره‌ها در حالت آیکون راه‌اندازی می‌شوند. این ویژگی برای برنامه‌هایی که از گزینه خط فرمان یا منبع \f(CR\-iconic\fP پشتیبانی نمی‌کنند، مفید است. .RE .sp StartInButtonState .RS 4 راه‌اندازی مدیر فضای کاری (WorkSpaceManager) در قالب دکمه‌ای. همچنین \f(CRStartInMapState\fP را ببینید. در نگارش 4.0.0 اضافه شد. .RE .sp StartInMapState .RS 4 این متغیر مشخص می‌کند که WorkSpaceManager هنگام ایجاد باید در قالب نقشه‌ای خود راه‌اندازی شود. همچنین \f(CRStartInButtonState\fP را ببینید. از نگارش 4.0.0 به بعد، این حالت پیش‌فرض است. .RE .sp StartSqueezed { \f(CRwin\-list\fP } .RS 4 این پنجره‌ها در ابتدا به‌صورت فشرده‌شده نمایش داده خواهند شد (تابع \f(CRf.squeeze\fP را ببینید). .RE .sp StayUpMenus .RS 4 به ctwm می‌گوید از منوهای ماندگار (StayUp) استفاده کند. این منوها هنگام رها شدن دکمه ماوس (ButtonUp) روی صفحه باقی می‌مانند، مشروط بر اینکه یا نشانگر هنوز وارد منو نشده باشد، یا آیتم فعلی از نوع \f(CRf.title\fP باشد. .RE .sp StrictWinNameEncoding .RS 4 سخت‌گیرانه عمل کردن در مورد کدگذاری‌های مجاز برای مشخصه‌های نام‌گذاری پنجره. در نگارش 4.0.2 اضافه شد. .sp این متغیر هنگام پردازش و تبدیل مشخصه‌های مربوط به نام پنجره‌ها، مانند \f(CRWM_NAME\fP استفاده می‌شود. برای نمونه، طبق استاندارد ICCCM، مشخصه \f(CRWM_NAME\fP فقط می‌تواند از نوع \f(CRSTRING\fP یا \f(CRCOMPOUND_TEXT\fP باشد. با این حال، برنامه‌های سهل‌انگار مانند کروم (Chrome) ممکن است آن را روی \f(CRUTF8_STRING\fP تنظیم کنند. اگر این متغیر تنظیم شود، ctwm آن را رد خواهد کرد؛ رفتاری که پیش از نگارش 4.0.2 استاندارد بود. .RE .sp SunkFocusWindowTitle .RS 4 این متغیر مشخص می‌کند که عنوان پنجره دارای فوکوس (در صورت وجود) به جای برجسته بودن، باید فرورفته باشد. تنها در صورتی معتبر است که UseThreeDTitles تنظیم شده باشد. .RE .sp ThreeDBorderWidth \f(CRpixels\fP .RS 4 عرض کادر سه‌بعدی به پیکسل، در صورت وجود. .RE .sp TitleBackground \f(CRstring\fP [{ \f(CRwin\-list\fP }] .RS 4 این متغیر رنگ پس‌زمینه مورد استفاده در نوار عنوان را مشخص می‌کند و فقط می‌تواند درون یک فهرست \f(CRColor\fP یا \f(CRMonochrome\fP تعیین شود. مقدار اختیاری \f(CRwin\-list\fP فهرستی از نام‌های پنجره و رنگ‌ها است تا بتوان رنگ‌ها را برای هر پنجره به‌طور جداگانه تعیین کرد. مقدار پیش‌فرض \(lqwhite\(rq است. .RE .sp TitleButtonBorderWidth \f(CRpixels\fP .RS 4 این متغیر عرض کادر دور دکمه‌های نوار عنوان را به پیکسل مشخص می‌کند. این متغیر معمولاً روی 0 تنظیم می‌شود تا به دکمه‌های نوار عنوان اجازه دهد بیشترین فضای ممکن را اشغال کنند و کادری نداشته باشند. مقدار پیش‌فرض در صورت تنظیم نبودن \f(CRUseThreeDTitles\fP برابر 1 و در صورت تنظیم بودن آن برابر 0 است. .RE .sp TitleButtonShadowDepth \f(CRpixels\fP .RS 4 این متغیر عمق سایه‌ای را که ctwm برای دکمه‌های سه‌بعدی نوار عنوان استفاده می‌کند، در هنگام انتخاب UseThreeDTitles مشخص می‌سازد. .RE .sp TitleFont \f(CRstring\fP .RS 4 این متغیر قلم (فونت) مورد استفاده برای نمایش نام پنجره‌ها در نوار عنوان را مشخص می‌کند. مقدار پیش‌فرض \(lqvariable\(rq است. .RE .sp TitleForeground \f(CRstring\fP [{ \f(CRwin\-list\fP }] .RS 4 این متغیر رنگ پیش‌زمینه مورد استفاده در نوار عنوان را مشخص می‌کند و فقط می‌تواند درون یک فهرست \f(CRColor\fP یا \f(CRMonochrome\fP تعیین شود. مقدار اختیاری \f(CRwin\-list\fP فهرستی از نام‌های پنجره و رنگ‌ها است تا بتوان رنگ‌ها را برای هر پنجره به‌طور جداگانه تعیین کرد. مقدار پیش‌فرض \(lqblack\(rq است. .RE .sp TitleJustification \f(CRstring\fP .RS 4 این کلمه کلیدی به یک مقدار رشته‌ای نیاز دارد. مقادیر پذیرفته‌شده عبارتند از: \(lqleft\(rq (چپ‌چین)، \(lqcenter\(rq (وسط‌چین) و \(lqright\(rq (راست‌چین). عنوان پنجره‌ها بر اساس این تنظیم در پنجره عنوان تراز خواهند شد. .RE .sp TitlePadding \f(CRpixels\fP .RS 4 این متغیر فاصله بین دکمه‌های مختلف، متن و نواحی هایلایت در نوار عنوان را مشخص می‌کند. مقدار پیش‌فرض در صورت تنظیم نبودن \f(CRUseThreeDTitles\fP برابر 8 پیکسل و در صورت تنظیم بودن آن برابر 0 است. .RE .sp TitleShadowDepth \f(CRpixels\fP .RS 4 این متغیر عمق سایه‌ای را که ctwm برای عنوان‌های سه‌بعدی استفاده می‌کند، در هنگام انتخاب UseThreeDTitles مشخص می‌سازد. .RE .sp TransientHasOccupation .RS 4 این متغیر مشخص می‌کند که پنجره‌های وابسته (transient\-for) و پنجره‌های غیرسرگروه می‌توانند اشتغال فضای کاری (occupation) اختصاصی خود را داشته باشند که بالقوه با پنجره سرگروه آن‌ها متفاوت باشد. در حالت پیش‌فرض این پنجره‌ها از سرگروه خود پیروی می‌کنند؛ اگر رفتار پیش‌فرض مطابق میلتان نیست، از این کلمه کلیدی استفاده کنید. .RE .sp TransientOnTop \f(CRpercentage\fP .RS 4 این پارامتر (الزامی) یک مقدار درصدی است و به ctwm می‌گوید پنجره‌های موقت (و غیرسرگروه) را همیشه روی پنجره سرگروه خود قرار دهد، تنها در صورتی که مساحت آن‌ها کوچک‌تر از این کسر از مساحت پنجره سرگروه‌شان باشد. مساحت یک پنجره برابر با حاصل‌ضرب عرض در ارتفاع آن است. مقدار پیش‌فرض 30% است. در نگارش 3.0 اضافه شد. .RE .sp UnknownIcon \f(CRstring\fP .RS 4 این متغیر نام فایل یک تصویر بیت‌مپ (bitmap) را برای استفاده به‌عنوان آیکون پیش‌فرض مشخص می‌کند. این بیت‌مپ به‌عنوان آیکون تمام کلاینت‌هایی که تصویر بیت‌مپ برای آیکون ارائه نمی‌دهند و در فهرست \f(CRIcons\fP نیز ذکر نشده‌اند، استفاده خواهد شد. .RE .sp UnmapByMovingFarAway { \f(CRwin\-list\fP } .RS 4 این پنجره‌ها هنگامی که به دلیل تغییر فضای کاری ناپدید می‌شوند، به جای برداشته شدن نگاشت (unmapped)، به خارج از صفحه منتقل می‌شوند. این ویژگی به این دلیل اضافه شده است که برخی کلاینت‌های بدرفتار (مانند Frame5) لغو نگاشت شدن را نمی‌پذیرند. .RE .sp UsePPosition \f(CRstring\fP .RS 4 این متغیر مشخص می‌کند که آیا ctwm در صورت عدم وجود موقعیت مشخص‌شده توسط کاربر، باید به موقعیت‌های درخواست‌شده توسط برنامه (مشخص‌شده با پرچم \f(CRPPosition\fP در مشخصه \f(CRWM_NORMAL_HINTS\fP) احترام بگذارد یا خیر. آرگومان \f(CRstring\fP می‌تواند یکی از سه مقدار زیر را داشته باشد: \f(CR"off"\fP (پیش‌فرض) که نشان می‌دهد ctwm باید موقعیت ارائه‌شده توسط برنامه را نادیده بگیرد، \f(CR"on"\fP که نشان می‌دهد این موقعیت باید اعمال شود، و \f(CR"non\-zero"\fP که نشان می‌دهد در صورتی که موقعیت مقداری به غیر از (0,0) داشته باشد باید اعمال گردد. گزینه اخیر برای رفع اشکالی در جعبه‌ابزارهای قدیمی‌تر (Toolkits) است. .RE .sp UseSunkTitlePixmap .RS 4 این متغیر موجب می‌شود که هنگام از دست رفتن فوکوس، سایه‌های تصویر پیکسلی (pixmap) نوار عنوان معکوس شوند. این رفتار مشابه فعال بودن SunkFocusWindowTitle است، اما باعث فرورفتن فایل xbm یا XPM سه‌بعدی شما (در صورت وجود) می‌شود، نه کل نوار عنوان. .RE .sp UseThreeDBorders .RS 4 به ctwm می‌گوید از کادرهای پنجره با ظاهر سه‌بعدی استفاده کند. عرض کادرهای سه‌بعدی \f(CRThreeDBorderWidth\fP است. رنگ کادر سه‌بعدی \f(CRBorderTileBackground\fP است، و اگر NoHighlight انتخاب نشده باشد، کادر پنجره دارای فوکوس \f(CRBorderColor\fP خواهد بود. تنظیم این گزینه به‌طور خودکار \f(CRClientBorderWidth\fP را لغو می‌کند. .RE .sp UseThreeDIconManagers .RS 4 به ctwm می‌گوید در صورت وجود، از مدیرهای آیکون (IconManagers) با ظاهر سه‌بعدی استفاده کند. .RE .sp UseThreeDMenus .RS 4 به ctwm می‌گوید از منوهایی با ظاهر سه‌بعدی استفاده کند. .RE .sp UseThreeDTitles .RS 4 به ctwm می‌گوید از عنوان‌های پنجره با ظاهر سه‌بعدی استفاده کند. در این صورت، مقادیر پیش‌فرض \f(CRTitleButtonBorderWidth\fP، \f(CRFramePadding\fP، \f(CRTitlePadding\fP و \f(CRButtonIndent\fP روی 0 تنظیم می‌شوند. تصاویر پیکسلی (pixmap) مقیاس‌پذیر داخلی متعددی برای دکمه‌ها وجود دارند: \f(CR:xpm:menu\fP، \f(CR:xpm:dot\fP، \f(CR:xpm:cross\fP، \f(CR:xpm:bar\fP، \f(CR:xpm:vbar\fP، \f(CR:xpm:iconify\fP، \f(CR:xpm:resize\fP، \f(CR:xmp:sunkresize\fP و \f(CR:xpm:box\fP. چندین پویانمایی (انیمیشن) مقیاس‌پذیر داخلی نیز برای دکمه‌ها موجود است: \f(CR%xpm:resize\fP، \f(CR%xpm:menu\-up\fP، \f(CR%xpm:menu\-down\fP، \f(CR%xpm:resize\-out\-top\fP، \f(CR%xpm:resize\-in\-top\fP، \f(CR%xpm:resize\-out\-bot\fP، \f(CR%xpm:resize\-in\-bot\fP، \f(CR%xpm:maze\-out\fP، \f(CR%xpm:maze\-in\fP، \f(CR%xpm:zoom\-out\fP، \f(CR%xpm:zoom\-in\fP و \f(CR%xpm:zoom\-inout\fP. آن‌ها را امتحان کنید تا ظاهرشان را ببینید. .RE .sp UseThreeDWMap .RS 4 به ctwm می‌گوید برای پنجره‌های کوچک در نقشه فضای کاری از حالت سه‌بعدی استفاده کند. .RE .sp WarpCursor [{ \f(CRwin\-list\fP }] .RS 4 این متغیر مشخص می‌کند که نشانگر ماوس هنگام خارج شدن پنجره‌ها از حالت آیکون، باید به داخل آن‌ها هدایت (Warp) شود. اگر \f(CRwin\-list\fP اختیاری مشخص شده باشد، نشانگر تنها هنگام خروج همان پنجره‌ها از حالت آیکون منتقل خواهد شد. .RE .sp WarpOnDeIconify { \f(CRwin\-list\fP } .RS 4 هنگامی که ctwm درخواستی برای نگاشت یک پنجره دریافت می‌کند، معمولاً فقط آن را از حالت آیکون خارج می‌سازد؛ اما اگر پنجره در \f(CRwin\-list\fP باشد، در صورت نیاز آن را به فضای کاری جاری نیز منتقل می‌کند. برای مثال: .sp .if n .RS 4 .nf .fam C WarpOnDeIconify { "Emacs" } .fam .fi .if n .RE .sp اطمینان حاصل خواهد کرد که پنجره‌های emacs در صورت لزوم همیشه در فضای کاری جاری باز شوند (معمولاً زمانی که مینی‌بافر یا فریم \fBHelp\fP در فضای کاری دیگری قرار دارد). .sp اولین بار در نگارش 4.0.0 معرفی شد. .RE .sp WarpRingOnScreen .RS 4 به ctwm می‌گوید تابع f.warpring نشانگر ماوس را تنها به پنجره‌های قابل مشاهده در فضای کاری جاری هدایت کند. .RE .sp WarpToDefaultMenuEntry .RS 4 (فقط همراه با StayUpMenus کاربرد دارد) هنگام استفاده از StayUpMenus، اگر منویی باز بماند، نشانگر ماوس به ورودی پیش‌فرض آن منو هدایت می‌شود. .RE .sp WarpUnmapped .RS 4 این متغیر مشخص می‌کند که تابع \f(CRf.warpto\fP باید هر پنجره آیکون‌شده‌ای را که با آن مواجه می‌شود از حالت آیکون خارج کند. این متغیر معمولاً برای ایجاد یک کلید میانبر استفاده می‌شود که پنجره خاصی (مانند \f(CRxmh\fP) را صرف‌نظر از مکانی که قرار دارد، به نمایش درآورد. رفتار پیش‌فرض تابع \f(CRf.warpto\fP نادیده گرفتن پنجره‌های آیکون‌شده است. .RE .sp WindowGeometries { \f(CRwin\-list\fP } .RS 4 برای تعیین ابعاد و موقعیت (geometry) پیش‌فرض برای برخی کلاینت‌ها استفاده می‌شود. هنگامی که پشتیبانی از XrandR کامپایل شده باشد، موقعیت می‌تواند نسبت به یک نمایشگر تعیین شود؛ با افزودن نام آن نمایشگر (قابل مشاهده با خط فرمان \f(CRxrandr(1)\fP) همراه با پیشوند \f(CR:\fP. در صورت عدم دسترسی به XrandR، این نام نادیده گرفته می‌شود: .sp .if n .RS 4 .nf .fam C WindowGeometries { "Mozilla*" "1000x800+10+10" "jpilot*" "HDMI1:800x600\-0\-0" } .fam .fi .if n .RE .RE .sp WindowRegion \f(CRgeomstring\fP \f(CRvgrav\fP \f(CRhgrav\fP { \f(CRwin\-list\fP } .RS 4 مشابه IconRegion، اما برای پنجره‌ها. توجه داشته باشید که \f(CRwin\-list\fP اختیاری نیست. .RE .sp WindowRing [{ \f(CRwin\-list\fP }] .RS 4 این متغیر فهرستی از پنجره‌ها را مشخص می‌کند که تابع \f(CRf.warpring\fP در میان آن‌ها می‌چرخد. اگر هیچ آرگومانی داده نشود، تمام پنجره‌ها در این حلقه قرار می‌گیرند. .RE .sp WindowRingExclude [{ \f(CRwin\-list\fP }] .RS 4 تمام پنجره‌های فهرست‌شده از WarpRing مستثنی خواهند شد. .RE .sp WMgrButtonShadowDepth \f(CRdepth\fP .RS 4 کنترل عمق سایه دکمه‌های مدیر فضای کاری. .RE .sp WMgrButtonStyle \f(CRstring\fP .RS 4 سبک دکمه‌های مدیر فضای کاری (هنگامی که در حالت دکمه‌ای است نه نقشه‌ای) و همچنین دکمه‌های پنجره Occupy را تنظیم می‌کند. گزینه‌های موجود عبارتند از \f(CRnormal\fP (ظاهر سه‌بعدی پیش‌فرض)، \f(CRstyle1\fP، \f(CRstyle2\fP و \f(CRstyle3\fP (که ظاهرهای دوبعدی اندکی متفاوت هستند). .RE .sp WMgrHorizButtonIndent \f(CRnb_pixels\fP .RS 4 فاصله افقی بین دکمه‌های مدیر فضای کاری (در حالت دکمه‌ای) را به پیکسل مشخص می‌کند. .RE .sp WMgrVertButtonIndent \f(CRnb_pixels\fP .RS 4 فاصله عمودی بین دکمه‌های مدیر فضای کاری (در حالت دکمه‌ای) را به پیکسل مشخص می‌کند. .RE .sp WorkSpaceFont \f(CRstring\fP .RS 4 به شما امکان می‌دهد قلم (فونت) مورد استفاده برای پنجره‌های کوچک در نقشه مدیر فضای کاری را مشخص کنید (\f(CR\-adobe\-times\-*\-r\-*\-\-10\-*\-*\-*\-*\-*\-*\-*\fP را امتحان کنید). .RE .sp WorkSpaceManagerGeometry \f(CRstring\fP [ \f(CRcolumns\fP ] .RS 4 این متغیر ابعاد و موقعیت (geometry) پنجره مدیر فضای کاری را مشخص می‌کند. آرگومان \f(CRstring\fP یک قالب استاندارد مشخصات هندسی است که اندازه اولیه کامل مدیر فضای کاری را تعیین می‌کند. هنگامی که پشتیبانی از XrandR کامپایل شده باشد، موقعیت می‌تواند نسبت به یک نمایشگر تعیین شود؛ با افزودن نام آن نمایشگر (قابل مشاهده با خط فرمان \f(CRxrandr(1)\fP) همراه با پیشوند \f(CR:\fP. در صورت عدم دسترسی به XrandR، این نام نادیده گرفته می‌شود. آرگومان \f(CRcolumns\fP تعداد ستون‌های مورد استفاده برای پنجره مدیر فضای کاری را مشخص می‌کند. .sp .if n .RS 4 .nf .fam C WorkSpaceManagerGeometry "360x60+60\-0" 8 WorkSpaceManagerGeometry "HDMI1:600x30+1235+0" 12 .fam .fi .if n .RE .RE .sp WorkSpaces { \f(CRworkspace\-list\fP } .RS 4 این متغیر فهرستی از فضاهای کاری ایجادشونده هنگام راه‌اندازی را مشخص می‌کند، که در آن \f(CRworkspace\-list\fP به‌صورت زیر است: .sp .if n .RS 4 .nf .fam C name [{bg\-button [fg\-button] [bg\-root] [fg\-root] [pixmap\-root]}] .fam .fi .if n .RE .sp همراه با: .sp bg\-button .RS 4 رنگ پس‌زمینه دکمه متناظر در مدیر فضای کاری. .RE .sp fg\-button .RS 4 رنگ پیش‌زمینه دکمه متناظر در مدیر فضای کاری. .RE .sp bg\-root .RS 4 رنگ پس‌زمینه صفحه ریشه متناظر. .RE .sp fg\-root .RS 4 رنگ پیش‌زمینه صفحه ریشه متناظر. .RE .sp pixmap\-root .RS 4 تصویر پیکسلی (pixmap) برای نمایش در صفحه ریشه متناظر؛ یا نام یک فایل بیت‌مپ، \f(CRxpm:xpmfile\fP، \f(CRxwd:xwdfile\fP، \f(CRjpeg:jpgfile\fP، یا \f(CR|command_that generates_xwd\fP. .RE .sp مثال: .sp .if n .RS 4 .nf .fam C WorkSpaces { "One" {"#686B9F" "white" "DeepSkyBlue3" "white" "jpeg:shark.jpg"} "Two" {"#619AAE" "white" "firebrick"} "Three" {"#727786" "white" "MidnightBlue" "white" "xpm:ball%.xpm"} "Four" {"#727786" "white" "white" "white" "|(giftoppm | pnmtoxwd) < 2010.gif"} "Five" {"#727786" "white" "DeepSkyBlue3" "white" "plaid"} "Six" {"#619AAE" "white" "DeepSkyBlue3" "white" "xpm:background1"} "Seven" {"#8C5b7A" "white" "chartreuse4"} "Eight" {"#686B9F" "white" "MidnightBlue"} } .fam .fi .if n .RE .sp تعریف WorkSpaces باید قبل از تعاریف Occupy یا OccupyAll قرار گیرد. حداکثر تعداد فضاهای کاری ۳۲ است. .sp هر فضای کاری همچنین یک برچسب (label) دارد که هنگام قرار داشتن WorkSpaceManager در حالت دکمه‌ای نمایش داده می‌شود. با بردن نشانگر ماوس روی یک دکمه و تایپ حروف و/یا کلید پس‌بر (backspace)، می‌توانید برچسب را ویرایش کنید. نام فضای کاری بدون تغییر باقی می‌ماند. توابعی که فضاهای کاری را بر اساس نام جستجو می‌کنند، برچسب را نیز بررسی می‌نمایند. .RE .sp XMoveGrid \f(CRnumber\fP .RS 4 این متغیر مقداری را برای محدود کردن حرکت پنجره مشخص می‌کند. هنگام جابجایی پنجره‌ها، مختصات x همیشه مضربی از این متغیر خواهد بود. مقدار پیش‌فرض 1 است. تابع f.forcemove این متغیر را نادیده می‌گیرد. .RE .sp XorValue \f(CRnumber\fP .RS 4 این متغیر مقداری را برای استفاده هنگام ترسیم خطوط پیرامونی پنجره جهت جابجایی و تغییر اندازه مشخص می‌کند. این مقدار باید روی مقداری تنظیم شود که در صورت اعمال عملیات XOR (یا مانعه‌الجمع) با محتویات صفحه نمایش معمول کاربر، رنگ‌های متمایز گوناگونی حاصل شود. تنظیم این متغیر روی 1 در صورتی که رنگ‌های مجاور در جدول رنگ (colormap) پیش‌فرض متمایز باشند، اغلب نتایج خوبی به همراه دارد. به‌طور پیش‌فرض، ctwm تلاش می‌کند خطوط موقت در انتهای مخالف جدول رنگ نسبت به گرافیک ظاهر شوند. .RE .sp YMoveGrid \f(CRnumber\fP .RS 4 این متغیر مقداری را برای محدود کردن حرکت پنجره مشخص می‌کند. هنگام جابجایی پنجره‌ها، مختصات y همیشه مضربی از این متغیر خواهد بود. مقدار پیش‌فرض 1 است. تابع f.forcemove این متغیر را نادیده می‌گیرد. .RE .sp Zoom [ \f(CRcount\fP ] .RS 4 این متغیر مشخص می‌کند هر زمان که پنجره‌ای به آیکون تبدیل شده یا از حالت آیکون خارج می‌شود، باید خطوط پیرامونی متحرکی که حرکت پنجره را به/از حالت آیکون نشان می‌دهند، نمایش داده شوند. آرگومان اختیاری \f(CRcount\fP تعداد خطوط پیرامونی رسم‌شونده را مشخص می‌کند. مقدار پیش‌فرض 8 است. .RE .sp متغیرهای زیر باید پس از تخصیص قلم‌ها تنظیم شوند، بنابراین معمولاً بهتر است آن‌ها را در انتهای بخش متغیرها یا ابتدای بخش مقیدسازی‌ها (bindings) قرار دهید: .sp ChangeWorkspaceFunction \f(CRfunction\fP .RS 4 این متغیر تابعی را مشخص می‌کند که باید هنگام تغییر فضای کاری جاری توسط کاربر (zap) اجرا شود. .RE .sp DefaultFunction \f(CRfunction\fP .RS 4 این متغیر تابعی را مشخص می‌کند که باید هنگام دریافت رویداد کلید یا دکمه‌ای که هیچ مقیدسازی (binding) برای آن تعریف نشده است، اجرا شود. این متغیر معمولاً به \f(CRf.nop\fP، \f(CRf.beep\fP یا منویی شامل عملیات پنجره مقید می‌شود. .RE .sp DeIconifyFunction \f(CRfunction\fP .RS 4 این متغیر تابعی را مشخص می‌کند که باید هنگام خروج یک پنجره از حالت آیکون اجرا شود. .RE .sp IconifyFunction \f(CRfunction\fP .RS 4 این متغیر تابعی را مشخص می‌کند که باید هنگام تبدیل یک پنجره به آیکون اجرا شود. .RE .sp WindowFunction \f(CRfunction\fP .RS 4 این متغیر تابعی را مشخص می‌کند که باید هنگام انتخاب یک پنجره از منوی \f(CRTwmWindows\fP اجرا شود. اگر این متغیر تنظیم نشود، پنجره از حالت آیکون خارج شده و به بالا آورده می‌شود (raised). .RE .SH "اتصالات (BINDINGS)" .sp پس از تنظیم متغیرهای مورد نظر، می‌توان توابع را به دکمه‌های نوار عنوان (titlebuttons) و دکمه‌های کلید و اشاره‌گر متصل کرد. دکمه‌های نوار عنوان را می‌توان از سمت چپ یا راست اضافه کرد و آن‌ها بر اساس ترتیبی که مشخص شده‌اند، از چپ به راست در نوار عنوان ظاهر می‌شوند. اتصالات دکمه‌های کلید و اشاره‌گر را می‌توان به هر ترتیبی تعیین کرد. .SS "دکمه‌های نوار عنوان (Title buttons)" .sp مشخصات دکمه‌های نوار عنوان باید شامل نام پیکس‌مپ مورد استفاده در جعبه دکمه و تابعی باشد که هنگام فشردن دکمه اشاره‌گر در داخل آن‌ها فراخوانی می‌شود: .sp .if n .RS 4 .nf .fam C LeftTitleButton "bitmapname" = function .fam .fi .if n .RE .sp یا .sp .if n .RS 4 .nf .fam C LeftTitleButton "bitmapname" { Buttoni = modlist : function ... Buttonj = function } .fam .fi .if n .RE .sp یا .sp .if n .RS 4 .nf .fam C RightTitleButton "bitmapname" = function .fam .fi .if n .RE .sp یا .sp .if n .RS 4 .nf .fam C RightTitleButton "bitmapname" { Buttoni = modlist : function ... Buttonj = function } .fam .fi .if n .RE .sp مقدار \f(CRbitmapname\fP می‌تواند با استفاده از نام مناسب با پیشوند دونقطه که در بالا توضیح داده شد، به یکی از بیت‌مپ‌های داخلی (که متناسب با \f(CRTitleFont\fP مقیاس‌بندی می‌شوند) ارجاع دهد. .sp مشخصات دکمه‌های اشاره‌گر به دو صورت ارائه می‌شوند: همراه با فهرستی از کلیدهای تغییردهنده (modifier) یا بدون آن. هنگامی که مشخصات بدون فهرست کلیدهای تغییردهنده ارائه می‌شود، برای حالتی به کار می‌رود که از هیچ کلید تغییردهنده‌ای استفاده نشده باشد. به عبارت دیگر، دو خط زیر معادل یکدیگرند: .sp .if n .RS 4 .nf .fam C Buttoni = function .fam .fi .if n .RE .sp .if n .RS 4 .nf .fam C Buttoni = : function .fam .fi .if n .RE .SS "دکمه‌های کلید و اشاره‌گر (Key and pointer buttons)" .sp مشخصات دکمه‌های کلید و اشاره‌گر باید تعیین کنند که کدام کلیدهای تغییردهنده باید فشرده شوند، اشاره‌گر باید روی کدام بخش‌های صفحه قرار داشته باشد و چه تابعی باید فراخوانی شود. کلیدها به صورت رشته‌هایی شامل نام مناسب keysym ارائه می‌شوند؛ دکمه‌ها با کلمات کلیدی \f(CRButton1\fP\-\f(CRButton11\fP مشخص می‌گردند: .sp .if n .RS 4 .nf .fam C "FP1" = modlist : context : function Button1 = modlist : context : function .fam .fi .if n .RE .sp کاربری که می‌خواهد بتواند پنجره‌ها را از طریق صفحه‌کلید کنترل کند، می‌تواند از اتصالات زیر استفاده نماید: .sp .if n .RS 4 .nf .fam C "F1" = : all : f.iconify "F2" = : all : f.raiselower "F3" = : all : f.warpring "next" "F4" = : all : f.warpto "xmh" "F5" = : all : f.warpto "emacs" "F6" = : all : f.colormap "next" "F7" = : all : f.colormap "default" "F20" = : all : f.warptoscreen "next" "Left" = m : all : f.backiconmgr "Right" = m | s : all : f.forwiconmgr "Up" = m : all : f.upiconmgr "Down" = m | s : all : f.downiconmgr .fam .fi .if n .RE .sp مدیر پنجره ctwm دستورات پایه بسیار بیشتری برای مدیریت پنجره‌ها نسبت به آنچه بتوان به راحتی در نوار عنوان، منو یا مجموعه‌ای از اتصالات کلید جا داد، فراهم می‌کند. اگرچه مجموعه‌ای کوچک از پیش‌فرض‌ها ارائه شده است (مگر اینکه \f(CRNoDefaults\fP مشخص شده باشد)، بیشتر کاربران مایلند پرکاربردترین عملیات خود را به فشردن کلیدها و دکمه‌ها متصل کنند. برای این کار، ctwm نام‌هایی را به هر یک از این دستورات پایه اختصاص می‌دهد و توابع تعریف‌شده توسط کاربر را برای ساخت دستورات سطح بالاتر و منوهایی جهت انتخاب تعاملی بین گروه‌هایی از توابع فراهم می‌سازد. .SS "تغییردهنده‌ها و زمینه‌ها (Modifiers and Contexts)" .sp مقدار \f(CRmodlist\fP امکان مشخص کردن اتصالات متفاوت برای یک دکمه یا کلید را در زمان اعمال کلیدهای تغییردهنده فراهم می‌کند. فهرست نام‌های شناخته‌شده تغییردهنده‌ها (همراه با اختصار آن‌ها) عبارتند از: \f(CRshift\fP (\f(CRs\fP)، \f(CRcontrol\fP (\f(CRc\fP)، \f(CRlock\fP (\f(CRl\fP)، \f(CRalter1\fP (\f(CRa1\fP)، \f(CRalter2\fP (\f(CRa2\fP)، \f(CRalter3\fP (\f(CRa3\fP)، \f(CRalter4\fP (\f(CRa4\fP)، \f(CRalter5\fP (\f(CRa5\fP)، \f(CRmeta\fP (\f(CRm\fP)، \f(CRmod1\fP (\f(CRm1\fP)، \f(CRmod2\fP (\f(CRm2\fP)، \f(CRmod3\fP (\f(CRm3\fP)، \f(CRmod4\fP (\f(CRm4\fP) و \f(CRmod5\fP (\f(CRm5\fP). می‌توان با ترکیب چندین تغییردهنده با استفاده از خط عمودی (\f(CR|\fP)، آن‌ها را در یک خط اعمال کرد. برای مثال: .sp .if n .RS 4 .nf .fam C # Open the "top" menu with a Button1 (usually left mouse button) click in # the root window Button1 = : root : f.menu "top" # Open the "top2" menu with shift\-click Button1 = s : root : f.menu "top2" # And "top3" when control\-shift\-click Button1 = c | s : root : f.menu "top3" .fam .fi .if n .RE .sp تغییردهنده \f(CRlock\fP به کلید CapsLock اشاره دارد. \f(CRmeta\fP عموماً همان کلید Alt شماست. \f(CRmod1\fP همان \f(CRmeta\fP است. \f(CRmod2..5\fP می‌توانند معانی خاص مختلفی داشته باشند؛ اجرای \f(CRxmodmap \-pm\fP را امتحان کنید تا ببینید کارساز X شما چگونه موارد را نگاشت می‌کند (برنامه \f(CRxkeycaps\fP نیز ممکن است مفید باشد). تغییردهنده‌های \f(CRalter1..5\fP به نقشه‌های کلید جایگزین ctwm اشاره دارند؛ برای جزئیات به توضیحات \f(CRf.altkeymap\fP در زیر مراجعه کنید. .sp توجه داشته باشید که اگر از پیش‌پردازنده \f(CRm4\fP استفاده می‌کنید، بیشتر پیاده‌سازی‌ها یک ماکروی \f(CRshift\fP را به صورت داخلی تعریف می‌کنند، بنابراین استفاده از آن به عنوان یک تغییردهنده بدون هیچ پیامی به درستی کار نخواهد کرد. برای دور زدن این مشکل، باید آن را درون کوتیشن قرار دهید تا \f(CRm4\fP آن را به صورت یک رشته متنی عیناً عبور دهد: \f(CR`shift\*(Aq\fP. .sp گزینه \f(CRcontext\fP به شما امکان می‌دهد مشخص کنید کدام نگاشت‌ها بر اساس موقعیت فعلی اشاره‌گر روی صفحه اعمال شوند. گزینه‌های موجود عبارتند از: \f(CRwindow\fP (\f(CRw\fP)، \f(CRtitle\fP (\f(CRt\fP)، \f(CRicon\fP (\f(CRi\fP)، \f(CRroot\fP (\f(CRr\fP)، \f(CRframe\fP (\f(CRf\fP)، \f(CRworkspace\fP (بدون اختصار)، \f(CRiconmgr\fP (\f(CRm\fP) و \f(CRalter\fP (\f(CRa\fP). همانند تغییردهنده‌های بالا، این موارد نیز می‌توانند با یک خط عمودی ترکیب شوند که به شما اجازه می‌دهد یک عمل را به طور همزمان در چندین زمینه متصل کنید. به عنوان روش دیگر، می‌توان \f(CRall\fP را برای زمینه تعیین کرد تا مشخص شود اتصال باید در همه جا رخ دهد. این مقدار معادل ترکیب تمام انتخاب‌هاست (به جز \f(CRalter\fP که خاص است). .sp زمینه \f(CRalter\fP اجازه اتصال تابع را هنگام قرار داشتن در زمینه جایگزین فراهم می‌کند؛ برای جزئیات به تابع \f(CRf.altcontext\fP در زیر مراجعه کنید. .sp یک مقدار جادویی احتمالی دیگر نیز برای \f(CRcontext\fP وجود دارد؛ اگر یک رشته درون کوتیشن (به عنوان مثال، \f(CR"MyXterm"\fP) برای زمینه یک اتصال کلید (اما نه دکمه) مشخص کنید، آن اتصال تابع مربوطه را در زمینه پنجره برای تمام پنجره‌هایی که با آن نام مطابقت دارند فعال می‌کند. به عنوان مثال: .sp .if n .RS 4 .nf .fam C # Pressing "F1" anywhere on the screen will cause all windows with name # "xterm" to raise themselves. "F1" = : "xterm" : f.raise .fam .fi .if n .RE .sp توجه داشته باشید که اگر چندین پنجره با نام مطابقت داشته باشند، این کار می‌تواند اثرات جانبی عجیبی به همراه داشته باشد، به ویژه اگر تابع باعث تداخل پنجره‌ها با یکدیگر شود (به عنوان مثال در نمونه بالا، اگر دو پنجره "xterm" روی یکدیگر همپوشانی داشته باشند). .SS "توابع (Functions)" .sp مقدار \f(CRfunction\fP در یک اتصال، هر یک از کلمات کلیدی \f(CRf.\fP است که در زیر شرح داده شده‌اند. برای مثال، فایل راه‌اندازی پیش‌فرض شامل اتصالات زیر است: .sp .if n .RS 4 .nf .fam C Button1 = : root : f.menu "TwmWindows" Button1 = m : window | icon : f.function "move\-or\-lower" Button2 = m : window | icon : f.iconify Button3 = m : window | icon : f.function "move\-or\-raise" Button1 = : title : f.function "move\-or\-raise" Button2 = : title : f.raiselower Button1 = : icon : f.function "move\-or\-iconify" Button2 = : icon : f.iconify Button1 = : iconmgr : f.iconify Button2 = : iconmgr : f.iconify .fam .fi .if n .RE .sp توابع تعریف‌شده توسط کاربر شامل نامی هستند که با آن در فراخوانی‌های \f(CRf.function\fP به آن‌ها ارجاع داده می‌شود و فهرستی از توابع دیگر برای اجرا. برای مثال: .sp .if n .RS 4 .nf .fam C Function "move\-or\-lower" { f.move f.deltastop f.lower } Function "move\-or\-raise" { f.move f.deltastop f.raise } Function "move\-or\-iconify" { f.move f.deltastop f.iconify } Function "restore\-colormap" { f.colormap "default" f.lower } .fam .fi .if n .RE .sp نام تابع باید در \f(CRf.function\fP دقیقاً همان‌گونه که در مشخصات تابع آمده است استفاده شود. .sp در توضیحات زیر، اگر گفته شود تابعی روی پنجره انتخاب‌شده عمل می‌کند، اما از یک منوی ریشه (root menu) فراخوانی شده باشد، مکان‌نما به مکان‌نمای \f(CRSelect\fP تغییر می‌یابد و پنجره بعدی که کلیک دکمه را دریافت کند، انتخاب خواهد شد: .sp ! \f(CRstring\fP .RS 4 این یک علامت اختصاری برای \f(CRf.exec\fP \f(CRstring\fP است. .RE .sp f.addtoworkspace \f(CRstring\fP .RS 4 این تابع پنجره انتخاب‌شده را به فضای کاری با نام \f(CRstring\fP اضافه می‌کند. .RE .sp f.altcontext .RS 4 زمینه جایگزین را تنظیم می‌کند. رویداد کلید یا دکمه بعدی که ctwm دریافت می‌کند، با استفاده از زمینه جایگزین تفسیر خواهد شد. برای تعریف اتصالات در زمینه جایگزین، از کلمه کلیدی \f(CRalter\fP در فیلد زمینه دستور اتصال استفاده کنید. برای مثال: .sp .if n .RS 4 .nf .fam C "Return" = m : all : f.altcontext "n" = : alter : f.nextworkspace "p" = : alter : f.prevworkspace .fam .fi .if n .RE .RE .sp f.altkeymap \f(CRnumber\fP .RS 4 نقشه کلید جایگزین \f(CRnumber\fP را تنظیم می‌کند که در آن \f(CRnumber\fP یک عدد صحیح بین ۱ تا ۵ (شامل خود آن‌ها) است. رویداد کلید یا دکمه بعدی که ctwm دریافت می‌کند، با استفاده از این نقشه کلید جایگزین تفسیر خواهد شد. برای تعریف اتصالات در یک نقشه کلید جایگزین، از کلمه کلیدی \f(CRa\fP و به دنبال آن \f(CRnumber\fP در فیلد تغییردهنده دستور اتصال استفاده کنید. برای مثال: .sp .if n .RS 4 .nf .fam C "Return" = c : all : f.altkeymap "1" "i" = a1 : window|icon|iconmgr : f.iconify "z" = a1 : window : f.zoom "d" = a1 : window|icon : f.delete "o" = a1 : window|icon : f.occupy "r" = a1 : window|icon : f.refresh .fam .fi .if n .RE .sp هنگام استفاده از نقشه‌های کلید جایگزین، فقط زمینه‌های root، window، icon و iconmgr مجاز هستند. .RE .sp f.autolower .RS 4 این تابع وضعیت پایین رفتن خودکار پنجره انتخاب‌شده هنگام خروج اشاره‌گر از آن را تغییر می‌دهد (فعال/غیرفعال). به توضیحات متغیر \f(CRAutoLower\fP مراجعه کنید. .RE .sp f.autoraise .RS 4 این تابع وضعیت بالا آمدن خودکار پنجره انتخاب‌شده هنگام ورود اشاره‌گر به آن را تغییر می‌دهد (فعال/غیرفعال). به توضیحات متغیر \f(CRAutoRaise\fP مراجعه کنید. .RE .sp f.backiconmgr .RS 4 این تابع اشاره‌گر را به ستون قبلی در مدیر آیکون فعلی پرش (warp) می‌دهد و در صورت لزوم به سطر قبلی بازمی‌گردد. .RE .sp f.backmapiconmgr .RS 4 این تابع اشاره‌گر را همانند \f(CRf.backiconmgr\fP پرش می‌دهد، اما فقط روی پنجره‌هایی توقف می‌کند که نگاشت (mapped) شده باشند. .RE .sp f.beep .RS 4 این تابع زنگ صفحه‌کلید را به صدا درمی‌آورد. .RE .sp f.bottomzoom .RS 4 این تابع لبه پایینی پنجره را تا لبه پایینی نمایشگر فعلی گسترش می‌دهد، یا در صورتی که پنجره قبلاً bottomzoom شده باشد، اندازه اصلی آن را بازمی‌گرداند. .RE .sp f.changepriority \f(CRrel\-value\fP .RS 4 اولویت یک پنجره را به اندازه \f(CRrel\-value\fP (محصور در جفت‌گیومه) تغییر می‌دهد. برای مثال، جهت فرستادن یک پنجره به یک سطح پایین‌تر، از f.changepriority "\-1" استفاده می‌کنید. به متغیر \f(CROnTopPriority\fP مراجعه کنید. .sp نخستین بار در نسخه 4.0.0 ارائه شد. .RE .sp f.changesize \f(CRstring\fP .RS 4 این تابع به شما اجازه می‌دهد اندازه پنجره دارای فوکوس را تغییر دهید. قالب رشته باید به صورت \f(CR" <+|\->"\fP (که در آن \f(CR\fP باید یکی از \f(CRtop\fP، \f(CRbottom\fP، \f(CRleft\fP یا \f(CRright\fP باشد) یا \f(CR"x"\fP (که در آن اندازه، اندازه جدید درخواستی برای پنجره است) باشد. ارتفاع پنجره هرگز نمی‌تواند به کمتر از ارتفاع عنوان + ۱ (یا ۱ اگر پنجره بدون نوار عنوان باشد) تنظیم/تغییر داده شود و پهنای پنجره نیز هرگز نمی‌تواند به کمتر از ۱ تنظیم/تغییر یابد. .sp .if n .RS 4 .nf .fam C "Right" = c|s : all : f.changesize "right +10" "Left" = c|s : all : f.changesize "right \-10" "Down" = c|s : all : f.changesize "bottom +10" "Up" = c|s : all : f.changesize "bottom \-10" "F1" = c|s : all : f.changesize "640x480" "F2" = c|s : all : f.changesize "800x600" "F3" = c|s : all : f.changesize "1024x768" .fam .fi .if n .RE .RE .sp f.circledown .RS 4 این تابع بالاترین پنجره‌ای را که پنجره دیگری را پوشانده است، به پایین می‌برد. .RE .sp f.circleup .RS 4 این تابع پایین‌ترین پنجره‌ای را که توسط پنجره دیگری پوشانده شده است، بالا می‌آورد. .RE .sp f.colormap \f(CRstring\fP .RS 4 این تابع نقشه‌های رنگی (به‌دست‌آمده از ویژگی \f(CRWM_COLORMAP_WINDOWS\fP روی پنجره) را که ctwm هنگام قرار گرفتن اشاره‌گر در این پنجره نمایش می‌دهد، جابه‌جا می‌کند. آرگومان \f(CRstring\fP می‌تواند یکی از مقادیر زیر را داشته باشد: \f(CR"next"\fP، \f(CR"prev"\fP و \f(CR"default"\fP. در اینجا باید توجه داشت که به طور کلی، نقشه رنگی نصب‌شده توسط فوکوس صفحه‌کلید تعیین می‌شود. فوکوس صفحه‌کلید مبتنی بر اشاره‌گر، به محض ورود به پنجره صاحب نقشه رنگی، یک نقشه رنگی اختصاصی را نصب می‌کند. در مدل کلیک برای تایپ (click to type)، نقشه‌های رنگی اختصاصی تا زمانی که کاربر دکمه ماوس را روی پنجره هدف فشار ندهد، نصب نخواهند شد. .RE .sp f.deiconify .RS 4 این تابع پنجره انتخاب‌شده را از حالت آیکون خارج می‌کند. اگر پنجره آیکون نباشد، این تابع کاری انجام نمی‌دهد. .RE .sp f.delete .RS 4 اگر برنامه کلاینت از طریق ویژگی پنجره \f(CRWM_PROTOCOLS\fP درخواست کرده باشد، این تابع پیام \f(CRWM_DELETE_WINDOW\fP را به پنجره انتخاب‌شده ارسال می‌کند. از برنامه انتظار می‌رود با بستن پنجره مشخص‌شده به این پیام پاسخ دهد. اگر پنجره پیام‌های \f(CRWM_DELETE_WINDOW\fP را درخواست نکرده باشد، زنگ صفحه‌کلید به صدا درمی‌آید که نشان می‌دهد کاربر باید از روش دیگری استفاده کند. توجه داشته باشید که این تابع با f.destroy بسیار متفاوت است؛ هدف در اینجا حذف یک پنجره منفرد است، نه لزوماً کل برنامه. .RE .sp f.deleteordestroy .RS 4 ابتدا سعی می‌کند پنجره را حذف کند (پیام \f(CRWM_DELETE_WINDOW\fP را به آن ارسال کند)، یا اگر کلاینت چنین پیامی را نمی‌پذیرد، آن را می‌کشد (kill می‌کند). .RE .sp f.deltastop .RS 4 این تابع امکان متوقف کردن یک تابع تعریف‌شده توسط کاربر را در صورتی که اشاره‌گر بیش از \f(CRMoveDelta\fP پیکسل حرکت کرده باشد، فراهم می‌کند. به مثال تعریف‌شده برای \f(CRFunction "move\-or\-raise"\fP در ابتدای این بخش مراجعه کنید. .RE .sp f.destroy .RS 4 این تابع به کارساز X دستور می‌دهد تا اتصال نمایش کلاینتی را که پنجره انتخاب‌شده را ایجاد کرده است، ببندد. این عمل فقط باید به عنوان آخرین راه‌حل برای متوقف کردن کلاینت‌های سرکش استفاده شود. همچنین به f.delete مراجعه کنید. .RE .sp f.downiconmgr .RS 4 این تابع اشاره‌گر را به سطر بعدی در مدیر آیکون فعلی پرش می‌دهد و در صورت لزوم به ابتدای ستون بعدی می‌رود. .RE .sp f.downworkspace .RS 4 به فضای کاری دقیقاً زیر فضای کاری فعلی در مدیر فضای کاری می‌رود. اگر فضای کاری فعلی پایین‌ترین مورد باشد، به بالاترین فضای کاری در همان ستون می‌رود. نتیجه به چیدمان مدیر فضای کاری بستگی دارد. .RE .sp f.exec \f(CRstring\fP .RS 4 این تابع آرگومان \f(CRstring\fP را جهت اجرا به \f(CR/bin/sh\fP ارسال می‌کند. در حالت چندصفحه‌ای، اگر \f(CRstring\fP یک کلاینت جدید X را بدون ارائه آرگومان display راه‌اندازی کند، کلاینت در همان صفحه‌ای که این تابع از آن فراخوانی شده است ظاهر خواهد شد. اگر رشته \(lq$currentworkspace\(rq در داخل آرگومان متنی وجود داشته باشد، با نام فضای کاری فعلی جایگزین می‌شود. .RE .sp f.fill \f(CRstring\fP .RS 4 که در آن string یکی از موارد: \(lqright\(rq، \(lqleft\(rq، \(lqtop\(rq، \(lqbottom\(rq یا \(lqvertical\(rq است. پنجره فعلی در جهت مشخص‌شده تا رسیدن به یک مانع (پنجره‌ای دیگر یا لبه صفحه) تغییر اندازه می‌دهد. دستور f.fill \(lqvertical\(rq وضعیت پنجره را به \(lqzoomed\(rq تغییر داده و به صورت کلید دوحالته عمل می‌کند؛ یعنی فراخوانی مجدد آن، اندازه قبلی پنجره را بازمی‌گرداند. .RE .sp f.focus .RS 4 این تابع فوکوس صفحه‌کلید کارساز را روی پنجره انتخاب‌شده فعال یا غیرفعال می‌کند و در صورت لزوم قاعده فوکوس را از حالت مبتنی بر اشاره‌گر تغییر می‌دهد. اگر پنجره انتخاب‌شده از قبل فوکوس داشته باشد، این تابع یک \f(CRf.unfocus\fP را اجرا می‌کند. .RE .sp f.forcemove .RS 4 این تابع شبیه \f(CRf.move\fP است، با این تفاوت که متغیر \f(CRDontMoveOff\fP را نادیده می‌گیرد. .RE .sp f.forwiconmgr .RS 4 این تابع اشاره‌گر را به ستون بعدی در مدیر آیکون فعلی پرش می‌دهد و در صورت لزوم به ابتدای سطر بعدی بازمی‌گردد. .RE .sp f.forwmapiconmgr .RS 4 این تابع اشاره‌گر را به همان روش \f(CRf.forwiconmgr\fP پرش می‌دهد، اما فقط روی پنجره‌هایی توقف می‌کند که نگاشت (mapped) شده باشند. .RE .sp f.fullscreenzoom .RS 4 این تابع شبیه تابع \f(CRf.fullzoom\fP است، با این تفاوت که اندازه پنجره کلاینت (بخش درون قاب) را به اندازه نمایشگر فعلی درمی‌آورد، به طوری که تزئینات پنجره خارج از صفحه قرار می‌گیرند. این کار همان جلوه بصری پوشاندن کل صفحه توسط پنجره بدون هیچ تزئیناتی را ایجاد می‌کند. اگر پنجره از قبل fullscreenzoom شده باشد، اندازه اصلی آن را بازمی‌گرداند. .RE .sp f.fullzoom .RS 4 این تابع اندازه پنجره انتخاب‌شده را به اندازه کامل نمایشگر فعلی تغییر می‌دهد، یا اگر پنجره از قبل fullzoom شده باشد، اندازه اصلی آن را بازمی‌گرداند. .RE .sp f.function \f(CRstring\fP .RS 4 این تابع، تابع تعریف‌شده توسط کاربر را که نام آن با آرگومان \f(CRstring\fP مشخص شده است اجرا می‌کند. .RE .sp f.gotoworkspace \f(CRworkspace_name\fP .RS 4 این تابع شما را به فضای کاری با نام \f(CRworkspace_name\fP منتقل (warp) می‌کند. .RE .sp f.hbzoom .RS 4 این تابع مترادفی برای \f(CRf.bottomzoom\fP است. .RE .sp f.hideiconmgr .RS 4 این تابع مدیر آیکون فعلی را پنهان (unmap) می‌کند. .RE .sp f.hideworkspacemgr .RS 4 مدیر فضای کاری را پنهان (unmap) می‌کند. .RE .sp f.horizoom .RS 4 این تابع پنجره را طوری گسترش می‌دهد که تمام عرض نمایشگر فعلی را بپوشاند، یا در صورتی که پنجره از قبل horizoom شده باشد، اندازه اصلی آن را بازمی‌گرداند. .RE .sp f.htzoom .RS 4 این تابع مترادفی برای \f(CRf.topzoom\fP است. .RE .sp f.hzoom .RS 4 این تابع مترادفی برای \f(CRf.horizoom\fP است. .RE .sp f.iconify .RS 4 این تابع پنجره یا آیکون انتخاب‌شده را به ترتیب به آیکون تبدیل یا از حالت آیکون خارج می‌کند. .RE .sp f.identify .RS 4 این تابع خلاصه‌ای از نام و ابعاد هندسی پنجره انتخاب‌شده را نمایش می‌دهد. کلیک کردن با اشاره‌گر یا فشردن یک کلید در پنجره، آن را می‌بندد. .RE .sp f.initsize .RS 4 این تابع پنجره را به اندازه اولیه خود که توسط مشخصه‌های \f(CRWM_NORMAL_HINTS\fP تعیین شده است بازنشانی می‌کند. .RE .sp f.jumpdown \f(CRstep\fP .RS 4 این تابع برای اتصال به یک کلید طراحی شده است و پنجره فعلی را به اندازه (step * {X,Y}MoveGrid) پیکسل به سمت پایین جابه‌جا می‌کند و در صورت برخورد پنجره با پنجره‌ای دیگر یا لبه صفحه متوقف می‌شود (مشابه f.pack). .RE .sp f.jumpleft \f(CRstep\fP .RS 4 معادل حرکت به سمت چپ برای f.jumpdown. .RE .sp f.jumpright \f(CRstep\fP .RS 4 معادل حرکت به سمت راست برای f.jumpdown. .RE .sp f.jumpup \f(CRstep\fP .RS 4 معادل حرکت به سمت بالا برای f.jumpdown. .RE .sp f.lefticonmgr .RS 4 این تابع شبیه به \f(CRf.backiconmgr\fP است، با این تفاوت که بازگشت به ابتدا (wrapping) سطرها را تغییر نمی‌دهد. .RE .sp f.leftworkspace .RS 4 به فضای کاری دقیقاً در سمت چپ فضای کاری فعلی در مدیر فضای کاری می‌رود. اگر فضای کاری فعلی چپ‌ترین مورد باشد، به راست‌ترین فضای کاری در همان سطر می‌رود. نتیجه به چیدمان مدیر فضای کاری بستگی دارد. .RE .sp f.leftzoom .RS 4 این تابع لبه سمت چپ پنجره را تا لبه چپ نمایشگر فعلی گسترش می‌دهد، یا در صورتی که پنجره قبلاً leftzoom شده باشد، اندازه اصلی آن را بازمی‌گرداند. .RE .sp f.lower .RS 4 این تابع پنجره انتخاب‌شده را پایین می‌برد. .RE .sp f.menu \f(CRstring\fP .RS 4 این تابع منوی مشخص‌شده توسط آرگومان \f(CRstring\fP را فراخوانی می‌کند. منوهای آبشاری را می‌توان با تودرتو کردن فراخوانی‌های \f(CRf.menu\fP ساخت. هنگامی که یک منو باز می‌شود، می‌توانید از کلیدهای جهت‌نما برای حرکت مکان‌نما در آن استفاده کنید؛ کلید «Down» یا فاصله به پایین می‌رود، «Up» به بالا می‌رود، «Left» منو را می‌بندد و «Right» ورودی فعلی را فعال می‌کند. حرف اول نام یک ورودی، آن ورودی را فعال می‌کند (اگر چند ورودی مطابقت داشته باشند، اولین مورد). اگر حرف اول ~ باشد، ترکیب کلید مِتا با حرف دوم آن را فعال می‌کند، اگر این حرف اول ^ باشد، ترکیب کلید کنترل با حرف دوم آن را فعال می‌کند، و اگر این حرف اول فاصله باشد، حرف دوم آن را فعال خواهد کرد. .RE .sp f.move .RS 4 این تابع طرح کلی پنجره انتخاب‌شده (یا خود پنجره را در صورت تنظیم متغیر \f(CROpaqueMove\fP) تا زمان رها شدن دکمه فراخواننده اشاره‌گر می‌کشد (drag می‌کند). دوبار کلیک کردن در بازه زمانی میلی‌ثانیه‌ای تعیین‌شده توسط \f(CRConstrainedMoveTime\fP، اشاره‌گر را به مرکز پنجره پرش می‌دهد و بسته به اینکه از کدام خط شبکه عبور شود، حرکت را به افقی یا عمودی محدود می‌کند. برای لغو حرکت، قبل از رها کردن دکمه اول، دکمه دیگری را فشار دهید. .RE .sp f.movepack .RS 4 این تابع شبیه به \f(CRf.move\fP است، با این تفاوت که سعی می‌کند از همپوشانی پنجره‌ها جلوگیری کند. هنگامی که پنجره در حال حرکت شروع به همپوشانی با پنجره دیگری می‌کند، حرکت متوقف می‌شود. اگر بیش از حد روی پنجره دیگر بروید (بیش از \f(CRMovePackResistance\fP پیکسل)، حرکت از سر گرفته می‌شود و پنجره در حال حرکت می‌تواند با پنجره دیگر همپوشانی داشته باشد. برای چیدمان فشرده پنجره‌ها در کنار یکدیگر مفید است. .RE .sp f.movepush .RS 4 این تابع شبیه \f(CRf.move\fP است، با این تفاوت که تلاش می‌کند از هم‌پوشانی پنجره‌ها جلوگیری کند. هنگامی که پنجرهٔ در حال جابه‌جایی شروع به هم‌پوشانی با پنجرهٔ دیگری می‌کند، پنجرهٔ دیگر هل داده می‌شود. اگر بیش از حد بر روی پنجرهٔ دیگر بروید (بیشتر از \f(CRMovePackResistance\fP پیکسل)، هیچ هل‌دادنی رخ نمی‌دهد و پنجرهٔ در حال جابه‌جایی می‌تواند روی پنجرهٔ دیگر هم‌پوشانی داشته باشد. تنها زمانی در دسترس است که \f(CROpaqueMove\fP فعال باشد. .RE .sp f.moveresize \f(CRgeometry\fP .RS 4 یک آرگومان رشته‌ای می‌گیرد که یک موقعیت و ابعاد هندسی با نحو استاندارد هندسهٔ X است (مانند 200x300+150\-0). پنجرهٔ فعلی را روی ابعاد هندسی مشخص‌شده تنظیم می‌کند. پهنا و ارتفاع باید بر حسب پیکسل داده شوند، هیچ اندازهٔ پایه یا گام تغییر اندازه‌ای به کار برده نمی‌شود. هنگامی که پشتیبانی از XrandR کامپایل شده باشد، موقعیت هندسی می‌تواند نسبت به یک مانیتور باشد، با قرار دادن نام آن (که با خط فرمان \f(CRxrandr(1)\fP قابل مشاهده است) به عنوان پیشوند به همراه \f(CR:\fP (مانند HDMI1:200x300+150\-0). این نام در صورت در دسترس نبودن XrandR نادیده گرفته می‌شود. .RE .sp f.movetitlebar .RS 4 اگر بر روی یک نوار عنوان جمع‌شده (squeezed، بخش \f(CRSqueezeTitle\fP را ببینید) اعمال شود، می‌توانید آن را در طول بالای پنجره بکشید (قابلیتی که نخستین بار در BeOS دیده شد). نوع تراز موجود و همچنین موقعیت‌دهی (نسبی یا مطلق) حفظ می‌شود. این بدان معناست که یک نوار عنوان با موقعیت نسبی با تغییر پهنای پنجره حرکت خواهد کرد، در حالی که عنوان با موقعیت مطلق حرکتی نخواهد داشت. موقعیت‌دهی پیش‌فرض به صورت چپ‌چین، مطلق در ۰ پیکسل است. .sp .if n .RS 4 .nf .fam C Button1 = m1 : title : f.movetitlebar .fam .fi .if n .RE .sp اگر پنجره عنوانی نداشته باشد، پنجره جمع‌شده باشد (f.squeeze را ببینید)، یا عنوان جمع نشده باشد (\f(CRSqueezeTitle\fP را ببینید)، \f(CRf.movetitlebar\fP هیچ کاری انجام نمی‌دهد. .RE .sp f.movetonextworkspace, f.movetonextworkspaceandfollow .RS 4 پنجره را به فضای کاری بعدی منتقل می‌کند، و در صورت تمایل نمای دید را نیز به آن فضای کاری تغییر می‌دهد. .RE .sp f.movetoprevworkspace, f.movetoprevworkspaceandfollow .RS 4 پنجره را به فضای کاری قبلی منتقل می‌کند، و در صورت تمایل نمای دید را به آن فضای کاری تغییر می‌دهد. .RE .sp f.nexticonmgr .RS 4 این تابع اشاره‌گر را به مدیر آیکون بعدی که حاوی هرگونه پنجره‌ای در صفحهٔ فعلی یا هر صفحهٔ بعدی باشد، پرش می‌دهد. .RE .sp f.nextworkspace .RS 4 رفتن به فضای کاری بعدی در فهرست، با استفاده از ترتیبی که در فایل \f(CR.ctwmrc\fP آمده است. .RE .sp f.nop .RS 4 این تابع هیچ کاری انجام نمی‌دهد و معمولاً با متغیرهای \f(CRDefaultFunction\fP یا \f(CRWindowFunction\fP یا برای ایجاد خطوط خالی در منوها استفاده می‌شود. .RE .sp f.occupy .RS 4 این تابع پنجره‌ای باز می‌کند تا کاربر بتواند انتخاب کند پنجره متعلق به کدام فضاهای کاری باشد. .RE .sp f.occupyall .RS 4 این تابع باعث می‌شود پنجرهٔ مشخص‌شده تمامی فضاهای کاری را اشغال کند. .RE .sp f.pack \f(CRstring\fP .RS 4 که در آن string یکی از موارد زیر است: \(lqright\(rq،‏ \(lqleft\(rq،‏ \(lqtop\(rq یا \(lqbottom\(rq. پنجرهٔ فعلی در جهت مشخص‌شده حرکت داده می‌شود تا به یک مانع برسد (خواه پنجره‌ای دیگر یا لبهٔ صفحه نمایش). اشاره‌گر به دنبال پنجره حرکت می‌کند. .RE .sp f.pin .RS 4 تنها در یک منوی ریشه معتبر است. یک منو را بر روی صفحه نمایش دائمی می‌کند. این یک تابع تعویض وضعیت (toggle) است؛ اگر هنگامی که منو از قبل دائمی است آن را انتخاب کنید، به حالت غیردائمی تبدیل می‌شود. .RE .sp f.previconmgr .RS 4 این تابع اشاره‌گر را به مدیر آیکون قبلی که حاوی هرگونه پنجره‌ای در صفحهٔ فعلی یا صفحه‌های قبلی باشد پرش می‌دهد. .RE .sp f.prevworkspace .RS 4 رفتن به فضای کاری قبلی در فهرست، با استفاده از ترتیبی که در فایل \f(CR.ctwmrc\fP آمده است. .RE .sp f.priorityswitching .RS 4 قابلیت تعویض پنجره را تغییر وضعیت می‌دهد (toggle می‌کند). ارجاع متقابل به متغیرهای \f(CRPrioritySwitching\fP و \f(CROnTopPriority\fP. .sp نخستین بار در نسخهٔ 4.0.0 ارائه شد. .RE .sp f.quit .RS 4 این تابع باعث می‌شود ctwm حاشیه‌های پنجره را بازیابی کرده و خارج شود. اگر ctwm نخستین کلاینتی باشد که از \f(CRxdm\fP فراخوانی شده است، این کار منجر به بازنشانی کارساز خواهد شد. .RE .sp f.raise .RS 4 این تابع پنجرهٔ انتخاب‌شده را بالا می‌آورد. .RE .sp f.raiseicons .RS 4 این تابع تمامی آیکون‌های موجود در فضای کاری فعلی را به بالاترین سطح می‌آورد. .RE .sp f.raiselower .RS 4 این تابع در صورتی که پنجرهٔ انتخاب‌شده توسط هر پنجره‌ای پوشانده شده باشد، آن را به بالای ترتیب پشته‌سازی می‌آورد؛ در غیر این صورت پنجره به پایین فرستاده خواهد شد. .RE .sp f.raiseorsqueeze .RS 4 پنجره را بالا می‌آورد، یا در صورتی که دوبار کلیک باشد آن را جمع (squeeze) می‌کند. زمانی که دوبار کلیک را تعریف می‌کند با متغیر \f(CRConstrainedMoveTime\fP مشخص می‌شود. .sp نخستین بار در نسخهٔ 4.0.0 ارائه شد. .RE .sp f.refresh .RS 4 این تابع باعث بازآوری تمامی پنجره‌ها می‌شود. .RE .sp f.removefromworkspace \f(CRstring\fP .RS 4 این تابع پنجرهٔ انتخاب‌شده را از فضای کاری که نام آن \f(CRstring\fP است حذف می‌کند. .RE .sp f.rereadsounds .RS 4 این تابع باعث می‌شود فایل \f(CR.ctwm\-sounds\fP دوباره خوانده شود. توجه داشته باشید که این تابع صداهای تعیین‌شده در \f(CRRplaySounds\fP در فایل پیکربندی را دوباره \fBنمی‌خواند\fP. در نتیجه، با حذف پشتیبانی از \f(CR.ctwm\-sounds\fP در آینده، این تابع احتمالاً حذف خواهد شد. بخش SOUNDS را ببینید. .RE .sp f.rescuewindows .RS 4 اگر به هر طریقی پنجره‌ای را از محدودهٔ دید خارج کرده‌اید، فراخوانی این تابع تمامی پنجره‌ها و آیکون‌های موجود در صفحه‌های مجازی قابل‌مشاهدهٔ فعلی را بررسی می‌کند، و مواردی را که (تقریباً) از محدودهٔ صفحهٔ مجازی خود خارج شده‌اند کاملاً به داخل بازمی‌گرداند (در صورتی که جا شود). .sp نخستین بار در نسخهٔ 4.0.0 ارائه شد. .RE .sp f.resize .RS 4 این تابع خطوط پیرامونی پنجرهٔ انتخاب‌شده را نمایش می‌دهد. عبور از یک حاشیه (یا تنظیم \f(CRAutoRelativeResize\fP) باعث می‌شود خطوط پیرامونی حالت کشسانی (rubber band) به خود بگیرد تا زمانی که دکمهٔ فراخواننده رها شود. برای لغو تغییر اندازه، پیش از رها کردن دکمهٔ اول، دکمهٔ دیگری را فشار دهید. .RE .sp f.restart .RS 4 این تابع ctwm را متوقف کرده و مجدداً راه‌اندازی می‌کند. .RE .sp f.restoregeometry .RS 4 ابعاد و موقعیت هندسی پنجرهٔ فعلی را به آنچه در آخرین فراخوانی \f(CRf.savegeometry\fP ذخیره شده بود بازیابی می‌کند. .RE .sp f.righticonmgr .RS 4 این تابع شبیه \f(CRf.nexticonmgr\fP است، با این تفاوت که چرخش به ابتدا سطرها را تغییر نمی‌دهد. .RE .sp f.rightworkspace .RS 4 رفتن به فضای کاری بلافاصله در سمت راست فضای کاری فعلی در مدیر فضای کاری. اگر فضای کاری فعلی راست‌ترین مورد باشد، به چپ‌ترین مورد در همان ردیف می‌رود. نتیجه به چیدمان مدیر فضای کاری بستگی دارد. .RE .sp f.rightzoom .RS 4 این تابع سمت راست پنجره را تا لبهٔ راست مانیتور فعلی می‌کشد، یا در صورتی که پنجره از قبل rightzoom شده باشد اندازهٔ اصلی را بازیابی می‌کند. .RE .sp f.ring .RS 4 پنجره‌ای را انتخاب کرده و آن را به WarpRing اضافه می‌کند، یا اگر از قبل در حلقه بوده باشد آن را حذف می‌کند. این دستور با پویا ساختن پیکربندی \f(CRf.warpring\fP، آن را بسیار کاربردی‌تر می‌سازد. .RE .sp f.savegeometry .RS 4 ابعاد و موقعیت هندسی پنجرهٔ فعلی ذخیره می‌شود. فراخوانی بعدی \f(CRf.restoregeometry\fP این پنجره را به این مشخصات هندسی بازیابی خواهد کرد. .RE .sp f.saveyourself .RS 4 این تابع در صورتی که پنجرهٔ انتخاب‌شده در مشخصهٔ پنجره‌ای \f(CRWM_PROTOCOLS\fP خود پیام \f(CRWM_SAVEYOURSELF\fP را درخواست کرده باشد، آن را ارسال می‌کند. کلاینت‌هایی که این پیام را می‌پذیرند موظفند تمام وضعیت مرتبط با پنجره را در یک نقطهٔ بازرسی ثبت کرده و مشخصهٔ \f(CRWM_COMMAND\fP را همان‌طور که در ICCCM مشخص شده است به‌روزرسانی کنند. اگر پنجرهٔ انتخاب‌شده برای این پیام تنظیم نشده باشد، زنگ صفحه‌کلید به صدا درخواهد آمد. .RE .sp f.separator .RS 4 تنها در منوها معتبر است. اثر آن افزودن یک خط جداکننده میان ورودی قبلی و بعدی است. بخش انتخاب‌گر نام در منو استفاده نمی‌شود (اما باید وجود داشته باشد). .RE .sp f.setbuttonsstate .RS 4 تنظیم مدیر فضای کاری در حالت دکمه‌ای. .RE .sp f.setmapstate .RS 4 تنظیم مدیر فضای کاری در حالت نقشه‌ای. .RE .sp f.setpriority "\f(CRvalue\fP" .RS 4 اولویت پنجره را روی \f(CRvalue\fP (محصور میان دو گیومه) تنظیم می‌کند. اگر پس از \f(CRvalue\fP بلافاصله \f(CR<\fP یا \f(CRb\fP بیاید، پنجره در زیر سایر پنجره‌های دارای این اولویت قرار می‌گیرد؛ در غیر این صورت در بالای آن‌ها قرار خواهد گرفت. برای جزئیات به متغیر \f(CROnTopPriority\fP مراجعه کنید. .sp نخستین بار در نسخهٔ 4.0.0 ارائه شد. .RE .sp f.showbackground .RS 4 این تابع نگاشت تمامی پنجره‌ها را در فضای کاری فعلی لغو می‌کند (پنهان می‌سازد). این یک تابع تعویض وضعیت است؛ اگر تمام پنجره‌ها پنهان شده باشند، همگی مجدداً نگاشت می‌شوند (نمایش داده می‌شوند). بهتر است این تابع در بافت ریشه مقید شود. .RE .sp f.showiconmgr .RS 4 این تابع مدیر آیکون فعلی را نگاشت می‌کند (نمایش می‌دهد). .RE .sp f.showworkspacemgr .RS 4 نگاشت (نمایش) مدیر فضای کاری. .RE .sp f.slowdownanimation .RS 4 کاهش مقدار \f(CRAnimationSpeed\fP به اندازهٔ ۱ واحد. .RE .sp f.sorticonmgr .RS 4 این تابع مدخل‌های مدیر آیکون فعلی را به ترتیب الفبایی مرتب می‌کند. متغیر \f(CRSortIconManager\fP را ببینید. .RE .sp f.speedupanimation .RS 4 افزایش مقدار \f(CRAnimationSpeed\fP به اندازهٔ ۱ واحد. .RE .sp f.squeeze .RS 4 تابع f.squeeze پنجره را به اندازهٔ عمودی صفر جمع (فشرده) می‌کند. تنها برای پنجره‌هایی کار می‌کند که دارای عنوان یا حاشیهٔ سه‌بعدی باشند (تا چیزی بر روی صفحه باقی بماند). اگر پنجره از قبل جمع شده باشد، باز (unsqueeze) می‌شود. .RE .sp f.startanimation .RS 4 شروع مجدد پویانمایی‌های متوقف‌شده (در صورت وجود). .RE .sp f.stopanimation .RS 4 متوقف کردن پویانمایی‌ها (در صورت وجود). .RE .sp f.switchpriority .RS 4 تعویض اولویت پنجره، مستقل از توانایی آن در تعویض خودکار. ارجاع متقابل به متغیرهای \f(CROnTopPriority\fP و \f(CRPrioritySwitching\fP. .sp نخستین بار در نسخهٔ 4.0.0 ارائه شد. .RE .sp f.tinylower, f.tinyraise .RS 4 این دو تابع به شما امکان می‌دهند پنجره را «یک گام» در هر بار بالا بیاورید/پایین ببرید. برای نمونه، \f(CRf.tinyraise\fP پنجرهٔ فعلی را دقیقاً بالای پایین‌ترین پنجره‌ای که آن را پوشانده است قرار می‌دهد. این دو تابع مشمول تعویض اولویت (priority-switching) نیستند. .sp نخستین بار در نسخهٔ 4.0.0 ارائه شد. .RE .sp f.title .RS 4 این تابع یک آیتم وسط‌چین و غیرقابل‌انتخاب در تعریف منو فراهم می‌کند. نباید در هیچ بافت دیگری استفاده شود. .RE .sp f.toggleoccupation \f(CRstring\fP .RS 4 این تابع پنجرهٔ انتخاب‌شده را به فضای کاری با نام \f(CRstring\fP در صورتی که از قبل متعلق به آن نباشد اضافه کرده، و در غیر این صورت آن را از این فضای کاری حذف می‌کند. .RE .sp f.togglesound .RS 4 تغییر وضعیت صدا (روشن/خاموش). بخش SOUNDS را ببینید. .RE .sp f.togglestate .RS 4 تغییر وضعیت حالت مدیر فضای کاری. .RE .sp f.toggleworkspacemgr .RS 4 تغییر وضعیت حضور مدیر فضای کاری (WorkSpaceManager). اگر نگاشت شده باشد، پنهان می‌شود و بالعکس. .RE .sp f.topzoom .RS 4 این تابع لبهٔ بالای پنجره را تا لبهٔ بالای مانیتور فعلی می‌کشد، یا در صورتی که پنجره از قبل topzoom شده باشد اندازهٔ اصلی را بازیابی می‌کند. .RE .sp f.trace \f(CRstring\fP .RS 4 برای مدیریت تخلیهٔ خروجی اشکال‌زدایی (debug) استفاده می‌شود. اگر نام فایلی در \f(CRstring\fP داده شود، شروع به نوشتن خروجی در آن فایل می‌کند؛ اگر \f(CRstring\fP برابر با \f(CR"stderr"\fP باشد در stderr می‌نویسد. اگر فایل اشکال‌زدایی از قبل باز باشد، فراخوانی مجدد f.trace آن را می‌بندد. .sp این احتمالاً تنها در صورتی مفید است که در حال توسعهٔ ctwm باشید. .RE .sp f.twmrc .RS 4 نام مستعار برای \f(CRf.restart\fP. .RE .sp f.unfocus .RS 4 این تابع تمرکز (فوکوس) را به حالت اشاره‌گر‌محور بازنشانی می‌کند. زمانی باید استفاده شود که فوکوس بر روی پنجره دیگر مورد نظر نباشد. .RE .sp f.unsqueeze .RS 4 نسبت به \f(CRf.squeeze\fP همان نقشی را دارد که \f(CRf.deiconify\fP نسبت به \f(CRf.iconify\fP دارد. .sp نخستین بار در نسخهٔ 4.0.0 ارائه شد. .RE .sp f.upiconmgr .RS 4 این تابع اشاره‌گر را به سطر قبلی در مدیر آیکون فعلی پرش می‌دهد، و در صورت لزوم به آخرین سطر در همان ستون می‌چرخد. .RE .sp f.upworkspace .RS 4 رفتن به فضای کاری بلافاصله بالای فضای کاری فعلی در مدیر فضای کاری. اگر فضای کاری فعلی بالاترین مورد باشد، به پایین‌ترین مورد در همان ستون می‌رود. نتیجه به چیدمان مدیر فضای کاری بستگی دارد. .RE .sp f.vanish .RS 4 پنجرهٔ مشخص‌شده از فضای کاری فعلی ناپدید می‌شود اگر دست‌کم یک فضای کاری دیگر را اشغال کرده باشد. در سایر موارد هیچ کاری انجام نمی‌دهد. .RE .sp f.version .RS 4 این تابع باعث نمایش پنجرهٔ نگارش ctwm می‌شود. این پنجره تا زمانی که یکی از دکمه‌های اشاره‌گر فشرده شود یا اشاره‌گر از یک پنجره به پنجرهٔ دیگری جابه‌جا شود، نمایش داده خواهد شد. .RE .sp f.vlzoom .RS 4 این تابع مترادفی برای \f(CRf.leftzoom\fP است. .RE .sp f.vrzoom .RS 4 این تابع مترادفی برای \f(CRf.rightzoom\fP است. .RE .sp f.warphere \f(CRwin_name\fP .RS 4 این تابع پنجره‌ای را که نام یا کلاس آن با رشته مطابقت دارد به فضای کاری فعلی اضافه کرده و اشاره‌گر را به آن منتقل می‌کند. اگر پنجره به آیکون تبدیل شده باشد، در صورتی که متغیر WarpUnmapped تنظیم شده باشد از حالت آیکون خارج می‌شود وگرنه نادیده گرفته خواهد شد. .RE .sp f.warpring \f(CRstring\fP .RS 4 این تابع اشاره‌گر را به پنجرهٔ بعدی یا قبلی (همان‌طور که با آرگومان \f(CRstring\fP مشخص شده و می‌تواند \f(CR"next"\fP یا \f(CR"prev"\fP باشد) تعیین‌شده در متغیر \f(CRWindowRing\fP پرش می‌دهد. .RE .sp f.warpto \f(CRstring\fP .RS 4 این تابع اشاره‌گر را به پنجره‌ای که نام یا کلاس آن با \f(CRstring\fP مطابقت دارد منتقل می‌کند. اگر پنجره به آیکون تبدیل شده باشد، در صورتی که متغیر \f(CRWarpUnmapped\fP تنظیم شده باشد از حالت آیکون خارج می‌شود وگرنه نادیده گرفته خواهد شد. .RE .sp f.warptoiconmgr \f(CRstring\fP .RS 4 این تابع اشاره‌گر را به مدخل مدیر آیکون مرتبط با پنجره‌ای که اشاره‌گر در آن قرار دارد، در مدیر آیکون مشخص‌شده با آرگومان \f(CRstring\fP منتقل می‌کند. اگر \f(CRstring\fP خالی باشد (یعنی "")، مدیر آیکون فعلی انتخاب می‌شود. .RE .sp f.warptoscreen \f(CRstring\fP .RS 4 این تابع اشاره‌گر را به صفحهٔ مشخص‌شده توسط آرگومان \f(CRstring\fP پرش می‌دهد. آرگومان می‌تواند یک عدد (مانند \f(CR"0"\fP یا \f(CR"1"\fP)، کلمهٔ \f(CR"next"\fP (نشان‌دهندهٔ صفحهٔ فعلی به اضافهٔ ۱، با صرف‌نظر کردن از هر صفحهٔ مدیریت‌نشده)، کلمهٔ \f(CR"back"\fP (نشان‌دهندهٔ صفحهٔ فعلی منهای ۱، با صرف‌نظر کردن از هر صفحهٔ مدیریت‌نشده)، یا کلمهٔ \f(CR"prev"\fP (نشان‌دهندهٔ آخرین صفحهٔ بازدیدشده) باشد. .RE .sp f.winrefresh .RS 4 این تابع شبیه تابع \f(CRf.refresh\fP است با این تفاوت که تنها پنجرهٔ انتخاب‌شده بازآوری می‌شود. .RE .sp f.xbottomzoom .RS 4 این تابع شبیه تابع \f(CRf.bottomzoom\fP است، اما از مرز مانیتورها عبور خواهد کرد. .RE .sp f.xfullscreenzoom .RS 4 این تابع شبیه تابع \f(CRf.fullscreenzoom\fP است، اما از مرز مانیتورها عبور خواهد کرد. .RE .sp f.xfullzoom .RS 4 این تابع شبیه تابع \f(CRf.fullzoom\fP است، اما از مرز مانیتورها عبور خواهد کرد. .RE .sp f.xhorizoom .RS 4 این تابع شبیه تابع \f(CRf.horizoom\fP است، اما از مرز مانیتورها عبور خواهد کرد. .RE .sp f.xleftzoom .RS 4 این تابع شبیه تابع \f(CRf.leftzoom\fP است، اما از مرز مانیتورها عبور خواهد کرد. .RE .sp f.xrightzoom .RS 4 این تابع شبیه تابع \f(CRf.rightzoom\fP است، اما از مرز مانیتورها عبور خواهد کرد. .RE .sp f.xtopzoom .RS 4 این تابع شبیه تابع \f(CRf.topzoom\fP است، اما از مرز مانیتورها عبور خواهد کرد. .RE .sp f.xzoom .RS 4 این تابع شبیه تابع \f(CRf.zoom\fP است، اما از مرز مانیتورها عبور خواهد کرد. .RE .sp f.zoom .RS 4 این تابع پنجره را طوری می‌کشد که تمام ارتفاع مانیتور فعلی را بپوشاند، یا در صورتی که پنجره از قبل با zoom بزرگ شده باشد، اندازهٔ اصلی را بازیابی می‌کند. این معادل عمودی \f(CRf.horizoom\fP است؛ شاید \f(CRf.vertzoom\fP نام بهتری می‌بود... .RE .SH "منوها (MENUS)" .sp توابع را می‌توان با استفاده از منوهای بالاپر (pop\-up، هنگامی که به یکی از کلیدهای اشاره‌گر مقید شده باشد) یا کشویی (pull\-down، هنگامی که به دکمه نوار عنوان متصل باشد) گروه‌بندی کرد و به صورت تعاملی انتخاب نمود. هر مشخصه منو شامل نام منو آن‌گونه که با \f(CRf.menu\fP به آن ارجاع داده خواهد شد، رنگ‌های پیش‌فرض و اختیاری پیش‌زمینه و پس‌زمینه، فهرستی از نام آیتم‌ها و توابعی که باید فراخوانی شوند، و رنگ‌های اختیاری پیش‌زمینه و پس‌زمینه برای تک‌تک آیتم‌ها است: .sp .if n .RS 4 .nf .fam C Menu "menuname" [ ("deffg":"defbg") ] { string1 [ ("fg1":"bg1") ] function1 string2 [ ("fg2":"bg2") ] function2 . . . stringN [ ("fgN":"bgN") ] functionN } .fam .fi .if n .RE .sp نام \f(CRmenuname\fP به بزرگ و کوچک بودن حروف حساس است. آرگومان‌های اختیاری \f(CRdeffg\fP و \f(CRdefbg\fP رنگ‌های پیش‌زمینه و پس‌زمینه مورد استفاده در نمایشگرهای رنگی را برای برجسته‌سازی آیتم‌های منو مشخص می‌کنند. بخش \f(CRstring\fP هر ورودی منو، متنی خواهد بود که در منو نمایش داده می‌شود. آرگومان‌های اختیاری \f(CRfgN\fP و \f(CRbgN\fP رنگ‌های پیش‌زمینه و پس‌زمینه ورودی منو را زمانی که اشاره‌گر روی آن ورودی قرار ندارد، تعیین می‌کنند. این رنگ‌ها فقط در نمایشگرهای رنگی استفاده خواهند شد. حالت پیش‌فرض، استفاده از رنگ‌های تعیین‌شده توسط متغیرهای \f(CRMenuForeground\fP و \f(CRMenuBackground\fP است. بخش \f(CRfunction\fP ورودی منو یکی از توابع، از جمله هر تابع تعریف‌شده توسط کاربر، یا منوهای تکمیلی است. .sp اگر نام یک ورودی با یک \(lq*\(rq (ستاره) آغاز شود، این ستاره نمایش داده نخواهد شد و ورودی مربوطه، ورودی پیش‌فرض این منو خواهد بود. هنگامی که یک منو دارای ورودی پیش‌فرض باشد و به عنوان زیرمنوی یک منوی دیگر به کار رود، کنش این ورودی پیش‌فرض هنگامی که این زیرمنو بدون نمایش داده شدن انتخاب شود، به صورت خودکار اجرا خواهد شد. توضیح آن دشوار است، اما درکش ساده است. .SS "منوهای ویژه (Special Menus)" .sp چندین منوی ویژه وجود دارد. .sp منوی \f(CRTwmWindows\fP شامل نام تمامی پنجره‌های کلاینت و پنجره‌های ارائه‌شده توسط ctwm در فضای کاری فعلی است. انتخاب یک ورودی باعث می‌شود که \f(CRWindowFunction\fP روی آن پنجره اجرا گردد. اگر \f(CRWindowFunction\fP تنظیم نشده باشد، پنجره از حالت آیکون خارج شده و بالا آورده می‌شود. .sp منوی \f(CRTwmVisible\fP پنجره‌هایی را فهرست می‌کند که در حال حاضر از حالت آیکون خارج هستند (اولین بار در نسخه 3.7 ارائه شد). منوی \f(CRTwmIcons\fP فقط پنجره‌هایی را فهرست می‌کند که در حال حاضر آیکون شده‌اند. .sp منوهای \f(CRTwmAllWindows\fP و \f(CRTwmAllIcons\fP مشابه با نسخه‌های بدون All توصیف‌شده در بالا عمل می‌کنند، با این تفاوت که پنجره‌ها را در تمامی فضاهای کاری نمایش می‌دهند، نه فقط در فضای کاری فعلی. .sp منوی \f(CRTwmWorkspaces\fP حاوی نام‌های فضاهای کاری شما است که با انتخاب یک ورودی، به آن فضای کاری منتقل می‌شوید. علاوه بر این، این ورودی‌ها دارای زیرمنوهایی شامل نام تمامی پنجره‌های مستقر در آن فضای کاری هستند؛ با انتخاب چنین ورودی‌ای، \f(CRf.warpto\fP روی آن پنجره اجرا می‌شود. .sp منوی \f(CRTwmKeys\fP تمامی کلیدهای مقیدشده در بستر ریشه (root context) را که \f(CRf.exec\fP را فراخوانی می‌کنند، فهرست می‌کند. اولین بار در نسخه 3.7 ارائه شد. .SH "آیکون‌ها (ICONS)" .sp برنامه ctwm از چندین روش مختلف برای مدیریت پنجره‌های آیکون‌شده پشتیبانی می‌کند. سبک متداول نگاشت پیکسلی-و-متن (pixmap\-and\-text) می‌تواند به صورت دستی چیده شود یا به صورت خودکار همان‌طور که در متغیر \f(CRIconRegion\fP شرح داده شده است، مرتب گردد. علاوه بر این، یک شبکه فشرده از نام آیکون‌ها به نام مدیر آیکون (icon manager)، استفاده بهینه‌تری از فضای صفحه نمایش و همچنین امکان پیمایش بین پنجره‌ها از طریق صفحه‌کلید را فراهم می‌سازد. .sp مدیر آیکون پنجره‌ای است که شامل نام پنجره‌های انتخاب‌شده یا تمامی پنجره‌های موجود روی صفحه نمایش است. علاوه بر نام پنجره، هنگامی که پنجره آیکون می‌شود، یک دکمه کوچک با نماد پیش‌فرض آیکون در سمت چپ نام نمایش داده خواهد شد. به طور پیش‌فرض، کلیک کردن روی یک ورودی در مدیر آیکون، تابع \f(CRf.iconify\fP را اجرا می‌کند. برای تغییر کنش‌های انجام‌شده در مدیر آیکون، هنگام تعیین مقیدسازی‌های دکمه و صفحه‌کلید از بستر \f(CRiconmgr\fP استفاده کنید. .sp حرکت دادن اشاره‌گر به داخل مدیر آیکون، تمرکز صفحه‌کلید را نیز به پنجره مربوطه هدایت می‌کند (تنظیم مستقیم تمرکز، یا در صورتی که \f(CRNoTitleFocus\fP تنظیم شده باشد، ارسال رویدادهای مصنوعی). با استفاده از توابع \f(CRf.upiconmgr\fP، \f(CRf.downiconmgr\fP، \f(CRf.lefticonmgr\fP و \f(CRf.righticonmgr\fP، تمرکز ورودی را می‌توان مستقیماً از طریق صفحه‌کلید میان پنجره‌ها جابه‌جا کرد. .SH "ویژگی‌های پنجره اکس (X WINDOW PROPERTIES)" .sp به عنوان یک مدیر پنجره، ctwm دامنه گسترده‌ای از ویژگی‌ها را روی پنجره‌هایی که مدیریت می‌کند و پنجره‌هایی که می‌سازد، می‌خواند و تنظیم می‌نماید. بیشتر این موارد فراتر از حیطه راهنمای کاربری است. با این حال، چند نکته ارزش ذکر کردن دارد. .SS "نام‌گذاری پنجره (Window Naming)" .sp پنجره‌ها نام خود را از طریق ویژگی‌های X به دست می‌آورند. دو نوع نام وجود دارد؛ نام پنجره (که در نوار عنوان، پنجره \f(CRf.identify\fP و غیره نمایش می‌یابد)، و نام آیکون (که روی آیکون و روی مدیر آیکون نشان داده می‌شود). .sp پیش از نسخه 4.0.2، ctwm فقط از ویژگی‌های استاندارد ICCCM برای تنظیم نام پنجره و آیکون پشتیبانی می‌کرد. این‌ها \f(CRWM_NAME\fP برای نام پنجره، و \f(CRWM_ICON_NAME\fP برای نام آیکون هستند. از نسخه 4.0.2، ctwm همچنین از نسخه‌های EWMH این ویژگی‌ها، یعنی \f(CR_NET_WM_NAME\fP و \f(CR_NET_WM_ICON_NAME\fP پشتیبانی می‌کند. اگر متغیرهای EWMH موجود باشند، در اولویت نسبت به سبک قدیمی‌تر ICCCM استفاده می‌شوند. .sp از نسخه 4.0.2، ctwm همچنین از یک جفت ویژگی اضافی پشتیبانی می‌کند: \f(CRCTWM_WM_NAME\fP و \f(CRCTWM_WM_ICON_NAME\fP، که بر تمامی موارد دیگر ارجحیت دارند. این ویژگی‌ها مشخصاً برای تنظیم دستی توسط کاربر در نظر گرفته شده‌اند، نه برای این‌که برنامه‌ها خودشان آن‌ها را تنظیم کنند. این قابلیت به کاربر امکان می‌دهد تا نام برنامه‌هایی را که نام‌گذاری نامناسبی دارند لغو کند، یا موارد را مطابق میل خود برچسب‌گذاری نماید. .sp شما می‌توانید این ویژگی‌ها را با هر روشی که برای تنظیم ویژگی‌های پنجره به کار می‌برید، مشخص کنید. از طریق خط فرمان، ابزار \f(CRxprop(1)\fP اگرچه کمی زمخت است، اما به طور گسترده در دسترس است. بنابراین، برای نمونه، برای تنظیم نام آیکون یک پنجره (تغییر نحوه نمایش آن در مدیر آیکون)، اما دست‌نخورده گذاشتن نام پنجره به همان شکلی که خود برنامه به طور معمول تنظیم می‌کند (عادی ماندن نوار عنوان)، می‌توانید دستوری مانند زیر را اجرا کنید: .sp .if n .RS 4 .nf .fam C xprop \-f CTWM_WM_ICON_NAME 8u \-set CTWM_WM_ICON_NAME "I hate this window" .fam .fi .if n .RE .sp و سپس روی پنجره‌ای که می‌خواهید ویژگی روی آن تنظیم شود کلیک کنید. متأسفانه، \f(CRxprop(1)\fP شما را ملزم می‌کند که هنگام تعریف قالب و همچنین هنگام تنظیم آن، نام ویژگی را مشخص کنید، بنابراین کمی ناخوشایند است. \f(CR8u\fP به این معنی است که شما یک رشته UTF\-8 ارائه می‌دهید. قالب‌های احتمالی دیگر عبارتند از \f(CR8s\fP برای یک \f(CRSTRING\fP ساده ۷ بیتی (یعنی ASCII معمولی)، و \f(CR8t\fP برای \f(CRCOMPOUND_TEXT\fP \(lqبین‌المللی‌شده\(rq به سبک ICCCM. با این حال، معمولاً فقط از UTF\-8 استفاده خواهید کرد. دستور \f(CRxprop \-remove CTWM_WM_ICON_NAME\fP و کلیک کردن به شما اجازه می‌دهد آن را لغو کنید و به نام‌گذاری عادی بازگردید. برای اطلاعات بیشتر، راهنمای \f(CRxprop(1)\fP را ببینید. .SH "صداها (SOUNDS)" .sp اگر با گزینه \f(CRUSE_SOUND\fP کامپایل شده باشد، ctwm قادر است برای هر رویداد X صدایی پخش کند. این کار را می‌توان به دو روش پیکربندی کرد. .sp از نسخه 4.0.0، صداها را می‌توان در ctwmrc با پارامتر پیکربندی \f(CRRplaySounds\fP تنظیم کرد. برای جزئیات بخش‌های بالا را ببینید. .sp اگر آن پارامتر یافت نشود، یا در نسخه‌های قدیمی‌تر، ctwm به دنبال فایل \f(CR.ctwm\-sounds\fP در دایرکتوری خانگی کاربر می‌گردد تا هر رویداد X را به یک فایل صوتی برای پخش پیوند دهد. هر خط در \f(CR.ctwm\-sounds\fP دارای ساختار نحوی زیر است: .sp .if n .RS 4 .nf .fam C {X event}: {sound file} .fam .fi .if n .RE .sp اگر \f(CRRplaySounds\fP در فایل پیکربندی داده شده باشد و \f(CR.ctwm\-sounds\fP موجود باشد، یک هشدار صادر خواهد شد و محتویات \f(CR.ctwm\-sounds\fP نادیده گرفته می‌شود. تمام پشتیبانی از \f(CR.ctwm\-sounds\fP در نسخه‌های آینده حذف خواهد شد و تنها روش پیکربندی ctwmrc در دسترس باقی خواهد ماند. .sp صرف‌نظر از نحوه پیکربندی، رویدادهای شناخته‌شده فعلی X که می‌توان تعیین کرد عبارتند از: .sp .if n .RS 4 .nf .fam C KeyPress KeyRelease ButtonPress ButtonRelease MotionNotify EnterNotify LeaveNotify FocusIn FocusOut KeymapNotify Expose GraphicsExpose NoExpose VisibilityNotify CreateNotify DestroyNotify UnmapNotify MapNotify MapRequest ReparentNotify ConfigureNotify ConfigureRequest GravityNotify ResizeRequest CirculateNotify CirculateRequest PropertyNotify SelectionClear SelectionRequest SelectionNotify ColormapNotify ClientMessage MappingNotify .fam .fi .if n .RE .sp علاوه بر این، دو مورد زیر نیز شناخته می‌شوند و نمایانگر زمانی هستند که ctwm راه‌اندازی یا خاموش می‌شود: .sp .if n .RS 4 .nf .fam C Startup Shutdown .fam .fi .if n .RE .SH "اشکالات (BUGS)" .sp به جای تمامی فهرست‌های پنجره، می‌بایست از مدیر منابع (resource manager) استفاده می‌شد. .sp دوبار کلیک بسیار سریع برای دستیابی به تابع جابه‌جایی مقید (constrained move)، گاهی اوقات حتی با اینکه اشاره‌گر حرکت داده نشده است، باعث جابه‌جایی پنجره می‌شود. .sp اگر \f(CRIconifyByUnmapping\fP فعال باشد و پنجره‌ها در \f(CRIconManagerDontShow\fP فهرست شده باشند ولی در \f(CRDontIconifyByUnmapping\fP نباشند، در صورتی که آیکون شوند و هیچ مقیدسازی به \f(CRf.menu "TwmWindows"\fP یا \f(CRf.warpto\fP تنظیم نشده باشد، ممکن است ناپدید یا گم شوند. .SH "فایل‌ها (FILES)" .sp بخش قبلی سفارشی‌سازی را ببینید. .SH "متغیرهای محیطی (ENVIRONMENT VARIABLES)" .sp DISPLAY .RS 4 این متغیر برای تعیین این که از کدام سرور X استفاده شود به کار می‌رود. همچنین در طول \f(CRf.exec\fP تنظیم می‌شود تا برنامه‌ها روی صفحه نمایش مناسب باز شوند. .RE .sp HOME .RS 4 این متغیر به عنوان پیشوند برای فایل‌هایی که با علامت مد (~) شروع می‌شوند و برای مکان‌یابی فایل راه‌اندازی ctwm استفاده می‌شود. .RE .SH "همچنین ببینید (SEE ALSO)" .sp X(1), Xserver(1), xdm(1), xrdb(1) .SH "حق نشر (COPYRIGHT)" .sp بخش‌هایی از حق نشر ۱۹۸۸ متعلق به Evans & Sutherland Computer Corporation؛ بخش‌هایی از حق نشر ۱۹۸۹ متعلق به Hewlett\-Packard Company و Massachusetts Institute of Technology است. برای بیانیه کامل حقوق و مجوزها راهنمای \f(CRX(1)\fP را ببینید. .sp برای اطلاعات بیشتر فایل COPYRIGHT را در بسته توزیع بررسی کنید. .SH "نویسندگان (AUTHORS)" .SS "TWM" .sp Tom LaStrange, Solbourne Computer; Jim Fulton, MIT X Consortium; Steve Pitschke, Stardent Computer; Keith Packard, MIT X Consortium; Dave Sternlicht, MIT X Consortium; Dave Payne, Apple Computer. .SS "CTWM" .sp Claude Lecommandeur, Swiss Polytechnical Institute of Lausanne (\c .MTO "lecom\(atsic.epfl.ch" "" ");" Richard Levitte (\c .MTO "richard\(atlevitte.org" "" ");" Matthew Fuller (\c .MTO "fullermd\(atover\-yonder.net" "" ");" و بسیاری از مشارکت‌کنندگان دیگر. .SH "نسخه (VERSION)" .sp این راهنما برای ctwm نسخه 4.1.0 تهیه شده است.