CTWM(1)   CTWM(1)

ctwm - مدیر پنجره کلاود تب‌دار برای سامانه پنجره اکس (X11)

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]

برنامه ctwm یک مدیر پنجره برای سامانه پنجره اکس (X Window System) است. این برنامه قابلیت‌هایی مانند نوارهای عنوان، پنجره‌های شکل‌دار، صفحه‌های مجازی (فضاهای کاری)، چندین شیوه مدیریت آیکون، توابع ماکروی تعریف‌شده توسط کاربر، فوکوس صفحه‌کلید به‌صورت کلیک برای تایپ یا هدایت‌شده با اشاره‌گر، و مقیدسازی‌های سفارشی کلیدها و دکمه‌های اشاره‌گر توسط کاربر را ارائه می‌دهد. این برنامه در واقع همان twm(1) (مدیر پنجره تب‌دار) از توزیع X11 مؤسسه MIT است که برای تطبیق و بهره‌گیری از چندین صفحه مجازی (فضای کاری) اندکی تغییر یافته است. این برنامه به شدت از مدیر پنجره vuewm متعلق به Hewlett-Packard الهام گرفته است. علاوه بر این، ctwm می‌تواند از آیکون‌های رنگی و شکل‌دار، و نگاشت‌های پیکسلی ریشه (pixmap) پس‌زمینه در قالب XPM [اثر Arnaud Le Hors]، قالب JPEG با استفاده از libjpeg و فایل‌های xwd استفاده کند. ctwm را می‌توان برای استفاده از هر ترکیبی از قالب‌های آیکون/پیکس‌مپ فوق کامپایل کرد.

این برنامه معمولاً توسط مدیر نشست یا اسکریپت راه‌انداز کاربر اجرا می‌شود. هنگام استفاده از xdm(1) یا xinit(1) بدون یک مدیر نشست، ctwm معمولاً در پیش‌زمینه به عنوان آخرین کلاینت اجرا می‌شود. در صورت اجرا به این شیوه، خروج از ctwm موجب پایان یافتن نشست X، خاموش شدن کارساز X و خاتمه دادن به فعالیت سایر کلاینت‌های در حال اجرا می‌شود.

به‌طور پیش‌فرض، پنجره‌های برنامه‌ها با یک «قاب» احاطه می‌شوند که دارای یک نوار عنوان در بالا و یک حاشیه ویژه در اطراف پنجره است. نوار عنوان شامل نام پنجره، مستطیلی که هنگام دریافت ورودی صفحه‌کلید روشن می‌شود، و جعبه‌های تابعی موسوم به «دکمه‌های عنوان» در لبه‌های چپ و راست نوار عنوان است که می‌توان عملیات مختلف را به آن‌ها پیوند داد.

فشردن دکمه شماره ۱ اشاره‌گر (معمولاً چپ‌ترین دکمه، مگر اینکه با xmodmap تغییر یافته باشد) روی یک دکمه عنوان، تابع مرتبط با آن دکمه را فراخوانی می‌کند. در رابط پیش‌فرض، پنجره‌ها با کلیک کردن (فشردن و بلافاصله رها کردن) روی دکمه سمت چپ عنوان (که شبیه یک نقطه است) به آیکون تبدیل می‌شوند. در مقابل، پنجره‌ها با کلیک کردن روی آیکون مربوطه یا مدخل آن در مدیر آیکون، از حالت آیکون خارج می‌شوند (توضیحات متغیر ShowIconManager و تابع f.showiconmgr را ببینید).

تغییر اندازه پنجره‌ها با فشردن دکمه سمت راست عنوان (که شبیه گروهی از مربع‌های تودرتو است)، کشیدن اشاره‌گر روی لبه‌ای که قرار است جابه‌جا شود، و رها کردن اشاره‌گر زمانی که طرح کلی پنجره به اندازه دلخواه رسید انجام می‌شود. به همین ترتیب، پنجره‌ها با فشردن اشاره‌گر در ناحیه عنوان یا هایلایت، کشیدن طرح کلی پنجره به مکان جدید و سپس رها کردن در موقعیت مورد نظر جابه‌جا می‌شوند. صرفاً کلیک کردن در ناحیه عنوان یا هایلایت، پنجره را بدون جابه‌جایی بالا می‌آورد (raise).

هنگام ایجاد پنجره‌های جدید، ctwm هرگونه اطلاعات اندازه و مکان درخواست‌شده توسط کاربر را (معمولاً از طریق آرگومان خط فرمان -geometry یا منابع مربوط به هر برنامه) رعایت می‌کند. در غیر این صورت، طرح کلی از اندازه پیش‌فرض پنجره، نوار عنوان آن و خطوطی که پنجره را به یک شبکه ۳در۳ تقسیم کرده و اشاره‌گر را دنبال می‌کنند نمایش داده می‌شود. کلیک کردن دکمه شماره ۱ اشاره‌گر، پنجره را در موقعیت فعلی قرار داده و اندازه پیش‌فرض را به آن می‌دهد. فشردن دکمه شماره ۲ اشاره‌گر (معمولاً دکمه وسط اشاره‌گر) و کشیدن طرح کلی، پنجره را در موقعیت فعلی قرار می‌دهد اما امکان تغییر اندازه اضلاع را همان‌طور که در بالا توضیح داده شد فراهم می‌کند. کلیک کردن دکمه شماره ۳ اشاره‌گر (معمولاً دکمه راست اشاره‌گر)، پنجره را در موقعیت فعلی قرار می‌دهد اما تلاش می‌کند طول آن را به اندازه‌ای افزایش دهد که به پایین صفحه نمایش برسد.

ctwm گزینه‌های خط فرمان زیر را می‌پذیرد:

--help, -h

چاپ متن راهنمای استفاده.

--display=dpy, -d dpy

این گزینه کارساز X مورد استفاده را مشخص می‌کند.

--replace

این گزینه مشخص می‌کند که اگر یک مدیر پنجره هم‌اکنون در حال اجرا باشد، خطایی رخ ندهد. در این حالت، از مدیر پنجره فعلی خواسته می‌شود خارج شود و ctwm جایگزین آن می‌شود. تنها در صورتی در دسترس است که ctwm با پرچم USE_EWMH کامپایل شده باشد. نخستین بار در نسخه 4.0.0 ارائه شد.

--single

این گزینه مشخص می‌کند که فقط صفحه نمایش پیش‌فرض (همان‌طور که توسط --display یا متغیر محیطی DISPLAY تعیین شده) باید مدیریت شود. به‌طور پیش‌فرض، ctwm تلاش می‌کند تمام صفحه‌های نمایشگر را مدیریت کند.

--cfgchk

این گزینه باعث می‌شود ctwm فقط فایل پیکربندی را تجزیه کرده و وجود خطاها را بررسی و اعلام نماید.

--dumpcfg

این گزینه باعث می‌شود ctwm پیکربندی جایگزین پیش‌فرض کامپایل‌شده داخلی را چاپ کند. نخستین بار در نسخه 4.0.0 ارائه شد.

--file=filename, -f filename

این گزینه نام فایل راه‌انداز مورد استفاده را مشخص می‌کند. ctwm ابتدا تلاش می‌کند فایل filename.num را بارگیری کند که در آن num شماره صفحه است. اگر ناموفق باشد، تلاش می‌کند filename را بارگیری کند. به‌طور پیش‌فرض، ctwm در دایرکتوری خانگی کاربر به دنبال فایل‌هایی به نام‌های .ctwmrc.num، .ctwmrc، .twmrc.num یا .twmrc می‌گردد (که در آن num شماره صفحه است).

--verbose, -v

این گزینه مشخص می‌کند هر زمان که یک رویداد خطای غیرمنتظره X دریافت شد، ctwm پیام‌های خطا را چاپ کند. این گزینه هنگام اشکال‌زدایی برنامه‌ها مفید است اما در استفاده معمول می‌تواند مخل تمرکز باشد.

--quiet, -q

گزینه --verbose را غیرفعال می‌کند (برای لغو نام‌های مستعار و غیره کاربرد دارد).

--nom4, -n

این گزینه مشخص می‌کند ctwm نباید فایل راه‌انداز را از فیلتر m4 عبور دهد. تنها در صورتی در دسترس است که ctwm با پرچم USE_M4 کامپایل شده باشد.

--keep-defs, -k

این گزینه مشخص می‌کند ctwm باید تعاریفی را که هنگام فیلتر کردن از طریق m4 به ابتدای فایل راه‌انداز شما اضافه می‌کند، در /tmp نگه‌داری کند. تنها در صورتی در دسترس است که ctwm با پرچم USE_M4 کامپایل شده باشد.

--keep=m4file, -K m4file

این گزینه مشخص می‌کند ctwm باید نتیجه فیلتر کردن فایل راه‌انداز شما از طریق m4 را در فایل نام‌برده نگه‌داری کند. تنها در صورتی در دسترس است که ctwm با پرچم USE_M4 کامپایل شده باشد.

--mono

اجرا در حالت تک‌رنگ (سیاه و سفید).

--version

برنامه ctwm صرفاً شماره نسخه خود را چاپ می‌کند.

--info

برنامه ctwm مشخصات دقیق نسخه و گزینه‌های زمان کامپایل خود را چاپ می‌کند.

--nowelcome, -W

این گزینه به ctwm اعلام می‌کند که هنگام راه‌اندازی، پیام خوش‌آمدگویی نمایش ندهد.

--clientId=clid, --restore=resfname

مربوط به مدیریت نشست.

--xrm=resource

نادیده گرفته می‌شود.

برنامه ctwm از getopt_long() برای تجزیه گزینه‌های خط فرمان استفاده می‌کند. این بدان معناست که آرگومان‌ها را می‌توان هم از طریق --long=arg و --long arg و هم از طریق -l arg و -larg منتقل کرد؛ همچنین آرگومان‌های کوتاه را می‌توان هم به‌صورت دسته‌ای مانند -vnk و هم به‌صورت جداگانه مانند -v -n -k استفاده کرد.

بخش عمده‌ای از ظاهر و رفتار ctwm را می‌توان با ایجاد یک فایل راه‌انداز در یکی از مکان‌های زیر کنترل کرد (هنگام شروع ctwm، برای هر صفحه‌ای که مدیریت می‌شود به ترتیب زیر جستجو می‌گردد):

$HOME/.ctwmrc.screennumber

شناسه screennumber یک عدد مثبت کوچک (مانند ۰، ۱، و غیره) است که شماره صفحه نمایش را نشان می‌دهد (برای مثال، آخرین عدد در متغیر محیطی DISPLAY به‌صورت host:displaynum.screennum) که برای اتصال به آن صفحه نمایشگر استفاده می‌شود. این مورد برای نمایشگرهایی با چندین صفحه از انواع بصری متفاوت در نظر گرفته شده است.

$HOME/.ctwmrc

این نام متداول برای فایل راه‌انداز اختصاصی هر کاربر است.

$HOME/.twmrc.screennumber, $HOME/.twmrc

فایل راه‌انداز twm کاربر.

/usr/etc/system.ctwmrc

اگر هیچ‌یک از فایل‌های قبلی پیدا نشود، ctwm در این فایل به دنبال یک پیکربندی پیش‌فرض خواهد گشت. این فایل معمولاً توسط مدیر سیستم تنظیم می‌شود تا منوهای مناسب یا کلیدهای میانبر آشنا را برای کاربران تازه‌کار فراهم کند.

اگر هیچ فایل راه‌اندازی یافت نشود، ctwm از پیش‌فرض‌های تعبیه‌شده داخلی که در بالا توضیح داده شد استفاده می‌کند. تنها منبع مورد استفاده توسط ctwm، گزینه bitmapFilePath است که شامل فهرستی از دایرکتوری‌های جداشده با دونقطه برای جستجوی فایل‌های بیت‌مپ می‌باشد (برای اطلاعات بیشتر، راهنمای Athena Widgets و xrdb(1) را ببینید).

فایل‌های راه‌انداز ctwm از نظر منطقی به سه نوع مشخصه تقسیم می‌شوند: متغیرها (Variables)، مقیدسازی‌ها (Bindings) و منوها (Menus). بخش Variables باید در ابتدا قرار گیرد و برای توصیف قلم‌ها، رنگ‌ها، مکان‌نماها، پهنای حاشیه‌ها، محل قرارگیری آیکون‌ها و پنجره‌ها، هایلایت، بالا آمدن خودکار، چیدمان عنوان‌ها، پرش مکان‌نما و استفاده از مدیر آیکون به کار می‌رود. بخش Bindings معمولاً در رتبه دوم قرار دارد و برای تعیین توابعی به کار می‌رود که هنگام فشردن کلیدهای صفحه‌کلید و دکمه‌های اشاره‌گر در پنجره‌ها، آیکون‌ها، عنوان‌ها و قاب‌ها فراخوانی می‌شوند. بخش Menus هرگونه منوی تعریف‌شده توسط کاربر را مشخص می‌کند (حاوی توابعی برای فراخوانی یا دستوراتی برای اجرا).

نام متغیرها و کلمات کلیدی به بزرگی و کوچکی حروف حساس نیستند. رشته‌ها باید درون نویسه‌های نقل‌قول دوگانه (مانند «blue») قرار گیرند و به بزرگی و کوچکی حروف حساس هستند. علامت هش (#) در خارج از رشته باعث می‌شود ادامه خطی که این نویسه در آن ظاهر شده است به عنوان کامنت در نظر گرفته شود.

برنامه ctwm می‌تواند از m4(1) برای پیش‌پردازش فایل‌های پیکربندی خود استفاده کند. در دسترس بودن پیش‌پردازش m4 وابسته به گزینه زمان ساخت USE_M4 است (به‌طور پیش‌فرض فعال است)، و می‌توان آن را به‌صورت انتخابی با آرگومان خط فرمان --nom4 غیرفعال کرد.

هنگامی که ctwm راه‌اندازی می‌شود، فایلی را برای ورودی همان‌طور که در بالا توضیح داده شد باز می‌کند. اما پیش از تجزیه، آن فایل را از طریق m4 پردازش می‌کند. بنابراین، می‌توانید از ماکروهای m4 برای انجام عملیات در زمان اجرا استفاده کنید. این ویژگی کار در شرایط استفاده از چندین نمایشگر با مشخصات گوناگون را بسیار آسان می‌کند. به عنوان مثال، اگر می‌خواهید بخش پایینی سمت راست صفحه نمایشگر را به عنوان IconRegion خود تعیین کنید (برای جزئیات بیشتر به بخش مربوط به متغیر IconRegion در ادامه مراجعه کنید)، می‌توانید از دستورالعمل‌های m4 و نمادهای از پیش تعریف‌شده برای محاسبه ناحیه دلخواه خود بهره ببرید. برای نمونه:

define(IRegion, translit(eval(WIDTH/3)*eval(HEIGHT/2)+eval(WIDTH-WIDTH/3)-0, *, x))
IconRegion  "IRegion" SOUTH EAST 75 25

این دستور نیمه پایینی و یک‌سوم سمت راست صفحه را تعریف می‌کند. کد بالا از نمادهایی استفاده می‌کند که توسط ctwm برای m4 از پیش تعریف شده‌اند. نمادهای WIDTH و HEIGHT از جمله مواردی هستند که توسط ctwm محاسبه شده و در یک فایل موقت برای استفاده m4 نوشته می‌شوند.

اگر راهنمای m4(1) را به خوبی مطالعه کرده و به قدرت m4 پی ببرید، درخواهید یافت که این یک ابزار بسیار سودمند و قدرتمند است. با این حال، اگر از هر یک از نمادهایی که توسط m4 از پیش تعریف شده‌اند استفاده کنید، با خطری جدی روبرو خواهید شد! برای مثال، نگارش سان از m4 نماد shift را از پیش تعریف کرده است؛ بنابراین اگر از این نام در فایل .ctwmrc خود استفاده کنید، دچار مشکل خواهید شد.

نمادهای زیر توسط ctwm از پیش تعریف شده‌اند:

SERVERHOST

این متغیر روی نام سامانه‌ای که کارساز X را اجرا می‌کند تنظیم می‌شود.

CLIENTHOST

سامانه‌ای که کلاینت‌ها را اجرا می‌کند (یعنی ctwm).

HOSTNAME

از نسخه 4.0.2، این متغیر نسخه تکراری از CLIENTHOST است. در نسخه‌های قبلی، از gethostbyname() برای به‌دست آوردن نسخه استاندارد یا نام دامنه کاملاً معین (FQDN) نام میزبان استفاده می‌شد.

USER

نام کاربری که برنامه را اجرا می‌کند. مقدار آن از متغیرهای محیطی $USER و $LOGNAME، یا در صورت عدم وجود آن‌ها، از جستجوی شناسه کاربر (UID) شما در فایل passwd دریافت می‌شود. در صورت عدم موفقیت تمام روش‌ها، مقدار آن به «unknown» تغییر می‌کند.

HOME

دایرکتوری خانگی کاربر. از متغیر محیطی $HOME دریافت می‌شود.

TWM_TYPE

مشخص می‌کند کدام انشعاب از twm در حال اجرا است. این متغیر در این برنامه همواره روی رشته «ctwm» تنظیم می‌شود. این برای محافظت از بخش‌هایی از فایل .twmrc شما که twm اصلی آن‌ها را نمی‌شناسد (مانند WorkSpaces) کاربرد دارد تا همچنان بتوان از آن در سایر برنامه‌های twm استفاده کرد.

TWM_VERSION

نسخه ctwm در حال اجرا را در قالب یک عدد با ممیز شناور نشان می‌دهد.

CTWM_VERSION_MAJOR, CTWM_VERSION_MINOR, CTWM_VERSION_PATCH, CTWM_VERSION_ADDL

نسخه ctwm را به‌صورت تفکیک‌شده ارائه می‌دهد. به عنوان مثال، برای نسخه‌ای مانند "3.8.2-beta1"، متغیر _MAJOR برابر با "3"، _MINOR برابر با "8"، _PATCH برابر با "2" و _ADDL برابر با "-beta1" خواهد بود. نسخه‌های نهایی عموماً مقدار خالی برای CTWM_VERSION_ADDL خواهند داشت؛ این متغیر بیشتر در نسخه‌های توسعه و بتا کاربرد دارد. برای مقایسه، در این وضعیت، TWM_VERSION برابر با "3.8.2" خواهد بود.

متغیرهای CTWM_VERSION_* نخستین بار در نسخه 4.0.0 ارائه شدند.

VERSION

نسخه اصلی پروتکل X. همان‌طور که توسط ProtocolVersion(3) گزارش می‌شود.

REVISION

بازنگری فرعی پروتکل X. همان‌طور که توسط ProtocolRevision(3) گزارش می‌شود.

VENDOR

تأمین‌کننده یا سازنده کارساز X شما. به عنوان مثال: MIT X Consortium.

RELEASE

شماره انتشار کارساز X شما. برای سامانه MIT X11R5، این مقدار برابر با 5 است.

WIDTH

عرض نمایشگر شما بر حسب پیکسل.

HEIGHT

ارتفاع نمایشگر شما بر حسب پیکسل.

X_RESOLUTION

تفکیک‌پذیری افقی (X) نمایشگر شما بر حسب پیکسل در هر متر.

Y_RESOLUTION

تفکیک‌پذیری عمودی (Y) نمایشگر شما بر حسب پیکسل در هر متر.

PLANES

تعداد صفحات بیتی که نمایشگر شما در پنجره ریشه پیش‌فرض پشتیبانی می‌کند.

BITS_PER_RGB

تعداد بیت‌های بااهمیت در یک رنگ RGB (لگاریتم پایه ۲ از تعداد رنگ‌های متمایزی که می‌توان ایجاد کرد. این مقدار اغلب با تعداد رنگ‌هایی که می‌توان به‌طور همزمان نمایش داد تفاوت دارد).

CLASS

کلاس بصری شما. یکی از مقادیر StaticGray، GrayScale، StaticColor، PseudoColor، TrueColor، DirectColor یا اگر قادر به تشخیص نباشد، NonStandard را برمی‌گرداند.

COLOR

این متغیر برابر با «Yes» یا «No» خواهد بود. این صرفاً یک لفاف روی تعریف فوق است. برای *Color مقدار «Yes» و برای StaticGray و GrayScale مقدار «No» برمی‌گرداند.

XPM

تنها در صورتی تعریف می‌شود که ctwm با پشتیبانی از XPM کامپایل شده باشد.

PIXMAP_DIRECTORY

دایرکتوری محل نصب تصاویر ctwm.

JPEG

تنها در صورتی تعریف می‌شود که ctwm با پشتیبانی از JPEG کامپایل شده باشد.

SOUNDS

تنها در صورتی تعریف می‌شود که ctwm با پشتیبانی از صدا (SOUND) کامپایل شده باشد.

EWMH

تنها در صورتی تعریف می‌شود که ctwm با پشتیبانی از EWMH کامپایل شده باشد. نخستین بار در نسخه 4.0.0 ارائه شد.

I18N

در صورتی تعریف می‌شود که ctwm با پشتیبانی از بومی‌سازی و بین‌المللی‌سازی (I18N) کامپایل شده باشد. این قابلیت از نسخه 3.8 به بعد دیگر اختیاری نیست و همیشه کامپایل می‌شود. این تعریف در نسخه‌های بعدی حذف خواهد شد.

GNOME

زمانی تعریف می‌شد که ctwm با پشتیبانی از GNOME1 کامپایل شده بود. پس از نسخه 3.8.2 حذف گردید.

TWM_CAPTIVE

این مقدار برابر با «Yes» یا «No» بود. اگر ctwm فعلی اسیر (با پرچم -w) بود مقدار «Yes» و در غیر این صورت مقدار «No». در نسخه 4.1.0 حذف شد.

TWM_CAPTIVE_NAME

تنها در صورتی تعریف می‌شد که TWM_CAPTIVE نیز تعریف شده باشد. حاوی نام ctwm اسیر (پرچم --name). در نسخه 4.1.0 حذف شد.

بسیاری از جنبه‌های رابط کاربری ctwm توسط متغیرهایی کنترل می‌شوند که می‌توان آن‌ها را در فایل راه‌اندازی کاربر تنظیم کرد. برخی از گزینه‌ها صرفاً با حضور یک کلیدواژه خاص فعال یا غیرفعال می‌شوند. گزینه‌های دیگر نیازمند کلیدواژه‌ها، اعداد، رشته‌ها یا فهرست‌هایی از تمام این موارد هستند.

فهرست‌ها درون آکولاد محصور می‌شوند و معمولاً با فاصله خالی یا خط جدید از یکدیگر جدا می‌گردند. برای مثال:

AutoRaise { "emacs" "XTerm" "Xmh" }

یا

AutoRaise
{
    "emacs"
    "XTerm"
    "Xmh"
}

هنگامی که متغیری حاوی فهرستی از رشته‌های نشان‌دهنده پنجره‌ها جستجو می‌شود (برای نمونه جهت تعیین فعال بودن یا نبودن بالا آمدن خودکار پنجره همان‌طور که در بالا نشان داده شد)، رشته باید تطابق دقیق و حساس به حروف کوچک و بزرگ با نام پنجره (که توسط مشخصه‌های گوناگون پنجره، مانند WM_NAME تعیین می‌شود)، نام منبع یا نام کلاس (هر دو توسط مشخصه پنجره WM_CLASS تعیین می‌شوند) داشته باشد. مثال پیشین، بالا آمدن خودکار را برای پنجره‌هایی با نام “emacs” و همچنین هر پنجره xterm (از آنجا که از کلاس “XTerm” هستند) یا پنجره‌های xmh (که از کلاس “Xmh” هستند) فعال می‌کند.

آرگومان‌های رشته‌ای که به عنوان نام فایل تفسیر می‌شوند (متغیرهای Pixmaps، Cursors و IconDirectory را در ادامه ببینید)، در صورتی که کاراکتر اول آن‌ها یک مدک (~) باشد، دایرکتوری کاربر (مشخص‌شده توسط متغیر محیطی HOME) را به ابتدای مسیر اضافه می‌کنند. اگر در عوض، کاراکتر اول یک دونقطه (:) باشد، نام به عنوان ارجاع به یکی از بیت‌مپ‌های داخلی که برای ایجاد نمادهای پیش‌فرض نوار عنوان استفاده می‌شوند، در نظر گرفته می‌شود: :xlogo یا :iconify (هر دو به X مورد استفاده برای دکمه آیکون‌سازی اشاره دارند)، :resize (مربع‌های تودرتو که توسط دکمه تغییر اندازه استفاده می‌شوند) و :question (علامت سوال مورد استفاده برای فایل‌های بیت‌مپ ناموجود).

متغیرهای زیر را می‌توان در ابتدای فایل راه‌اندازی ctwm مشخص کرد. فهرست رشته‌های پیشوند نام پنجره با win-list نشان داده شده‌اند. آرگومان‌های اختیاری درون کروشه نمایش داده شده‌اند:

AlwaysOnTop { win-list }

این متغیر فهرستی از پنجره‌ها را مشخص می‌کند (در صورت عدم تعیین فهرست، شامل همه پنجره‌ها خواهد بود) که ctwm تمام تلاش خود را برای نگه داشتن آن‌ها در بالای سایر پنجره‌ها به کار می‌گیرد. این قابلیت در همه شرایط کار نمی‌کند.

AlwaysShowWindowWhenMovingFromWorkspaceManager

هنگامی که ReallyMoveInWorkspaceManager وجود داشته باشد و کاربر در حال جابجایی یک پنجره از WorkSpaceMap باشد، ctwm پنجره واقعی را تنها در صورتی نمایش می‌دهد که از فضای کاری فعال جاری عبور کند. اگر AlwaysShowWindowWhenMovingFromWorkspaceManager وجود داشته باشد، پنجره واقعی همیشه در طول جابجایی قابل مشاهده است، صرف‌نظر از اینکه از فضای کاری جاری عبور کند یا خیر. کلید Shift این رفتار را تغییر وضعیت می‌دهد.

AlwaysSqueezeToGravity [{ win-list }]

این متغیر نشان می‌دهد که ctwm هنگام جمع کردن پنجره، حتی زمانی که پنجره نوار عنوان دارد، باید از گرانش (gravity) پنجره پیروی کند. در حالت عادی، ctwm همواره پنجره‌ای را که دارای نوار عنوان است به سمت شمال (بالا) جمع می‌کند. از win-list اختیاری می‌توان برای کنترل این موضوع استفاده کرد که این رفتار برای کدام پنجره‌ها اعمال شود.

AnimationSpeed speed

آرگومان speed یک عدد صحیح غیرمنفی است. این آرگومان تعداد دفعاتی در ثانیه را که پویانمایی‌ها (در صورت وجود) به‌روزرسانی می‌شوند، تعیین می‌کند. اگر speed برابر با 0 باشد، پویانمایی‌ها متوقف (فریز) می‌شوند. مقدار پیش‌فرض 0 است.

AutoFocusToTransients

پنجره‌های گذرا هنگام ایجاد شدن، به صورت خودکار فوکوس را دریافت می‌کنند. برای برنامه‌هایی که میانبرهای صفحه‌کلید جهت باز کردن پنجره‌های بالاپران دارند کاربردی است.

AutoLower [{ win-list }]

این متغیر فهرستی از پنجره‌ها را مشخص می‌کند (در صورت عدم تعیین فهرست، شامل همه پنجره‌ها خواهد بود) که هرگاه اشاره‌گر از پنجره خارج شود، به صورت خودکار به پایین فرستاده شوند. این عمل را می‌توان به صورت تعاملی روی پنجره‌های تکی با استفاده از تابع f.autolower فعال یا غیرفعال کرد.

AutoOccupy

این متغیر مشخص می‌کند که کلاینت‌ها هنگام تغییر نام یا نام آیکون خود، اشغال فضای کاری خود را به صورت خودکار تغییر می‌دهند. اشغال جدید بر اساس فیلدهای Occupy و OccupyAll در فایل .ctwmrc مجدداً محاسبه خواهد شد.

AutoPopup [{ win-list }]

این متغیر فهرستی از پنجره‌ها را مشخص می‌کند که هرگاه نام آن‌ها تغییر کند، از حالت آیکون خارج می‌شوند. برای نمونه، این متغیر می‌تواند برای xconsole استفاده شود که هر زمان پیامی روی کنسول نمایش داده می‌شود یک "*" به نام خود اضافه می‌کند، یا برای برنامه‌های مختلف خواندن ایمیل که آیکون خود را بسته به وجود نامه‌های خوانده‌نشده تغییر می‌دهند.

اولین بار در نسخه 4.0.0 معرفی شد.

AutoPriority

این متغیر مشخص می‌کند که ctwm باید هنگام تغییر نام یک پنجره، اولویت آن پنجره (و آیکون مرتبط با آن) را به صورت خودکار مجدداً محاسبه کند. OnTopPriority را نیز ببینید.

اولین بار در نسخه 4.0.0 معرفی شد.

AutoRaise [{ win-list }]

این متغیر فهرستی از پنجره‌ها را مشخص می‌کند (در صورت عدم تعیین فهرست، شامل همه پنجره‌ها خواهد بود) که هرگاه اشاره‌گر به مدت زمان مشخص‌شده توسط متغیر RaiseDelay درون یک پنجره ساکن بماند، به صورت خودکار به بالا آورده شوند. این عمل را می‌توان به صورت تعاملی روی پنجره‌های تکی با استفاده از تابع f.autoraise فعال یا غیرفعال کرد.

AutoRaiseIcons

هنگامی که نشانگر وارد آیکون می‌شود، آیکون‌ها به بالا آورده می‌شوند. همراه با ShrinkIconTitles کاربردی است.

AutoRelativeResize

این متغیر نشان می‌دهد که کشیدن برای تعیین اندازه پنجره (چه در زمان اندازه تعیین اولیه پنجره با Button2 ماوس یا هنگام تغییر اندازه آن) نباید منتظر عبور اشاره‌گر از لبه‌های پنجره بماند. در عوض، حرکت دادن اشاره‌گر به طور خودکار باعث می‌شود نزدیک‌ترین لبه یا لبه‌ها به همان اندازه حرکت کنند. این قابلیت اجازه تغییر اندازه پنجره‌هایی را می‌دهد که به خارج از لبه صفحه نمایش امتداد یافته‌اند. اگر اشاره‌گر در مرکز پنجره باشد، یا اگر تغییر اندازه با فشردن دکمه نوار عنوان آغاز شده باشد، ctwm همچنان منتظر عبور اشاره‌گر از لبه پنجره می‌ماند (برای جلوگیری از خطاهای تصادفی). این گزینه به ویژه برای افرادی کاربرد دارد که روش فشردن-کشیدن-رها کردن (press-drag-release) را برای تغییر اندازه پنجره‌ها می‌پسندند.

AutoSqueeze { win-list }

این پنجره‌ها به صورت خودکار جمع/فشرده می‌شوند (f.squeeze را ببینید)؛ یعنی هنگام دریافت فوکوس به صورت خودکار از حالت جمع‌شده خارج شده و هنگام از دست دادن آن جمع می‌شوند. برای مدیر فضای کاری مفید است. برای مدیران آیکون مجاز نیست.

BackingStore

استفاده از حافظه پشتیبان (backing store) را روی منوها و پنجره‌های نقشه فضای کاری فعال می‌کند. NoBackingStore را نیز ببینید. در نسخه 4.0.0 اضافه شد؛ در نسخه‌های پیشین این حالت پیش‌فرض بود.

BeNiceToColormap

به طور پیش‌فرض هنگام استفاده از ظاهر سه‌بعدی، رنگ‌های جدیدی برای سایه‌ها تخصیص داده می‌شود، اما زمانی که BeNiceToColormap را مشخص می‌کنید، ctwm به جای رنگ‌های جدید از الگوهای نقطه‌چینی (stippling) استفاده می‌کند؛ جلوه حاصل کمتر زیبا است، اما قابل قبول است. در این حالت ClearShadowContrast و DarkShadowContrast هیچ تاثیری ندارند.

BorderBottom pixels

این متغیر عرض بر حسب پیکسل یک منطقه ممنوعه را در پایین صفحه نمایش مشخص می‌کند. تمام توابع مقیدسازی پنجره (مانند f.movepack، f.move همراه با DontMoveOff و غیره) این منطقه را خارج از صفحه نمایش در نظر می‌گیرند. مقدار پیش‌فرض 0 است.

BorderColor string [{ wincolorlist }]

این متغیر رنگ پیش‌فرض کادری را مشخص می‌کند که دور تمام پنجره‌های آیکون‌نشده قرار می‌گیرد، و تنها در یک فهرست Color یا Monochrome قابل تعریف است. wincolorlist اختیاری، فهرستی از جفت‌های نام پنجره و نام رنگ را برای تعیین رنگ‌های کادر ویژه برای انواع مختلف پنجره‌ها مشخص می‌کند. برای مثال:
BorderColor "gray50"
{
    "XTerm" "red"
    "xmh"   "green"
}

مقدار پیش‌فرض “black” است.

BorderLeft pixels

این متغیر عرض بر حسب پیکسل یک منطقه ممنوعه را در سمت چپ صفحه نمایش مشخص می‌کند. تمام توابع مقیدسازی پنجره (مانند f.movepack، f.move همراه با DontMoveOff و غیره) این منطقه را خارج از صفحه نمایش در نظر می‌گیرند. مقدار پیش‌فرض 0 است.

BorderResizeCursors

این متغیر مشخص می‌کند که ctwm باید هنگامی که اشاره‌گر روی کادر پنجره قرار دارد، از نشانگرهای تغییر اندازه استفاده کند. ترجیحاً زمانی استفاده شود که دکمه‌ای را به f.resize در زمینه قاب (frame context) اختصاص داده باشید.

BorderRight pixels

این متغیر عرض بر حسب پیکسل یک منطقه ممنوعه را در سمت راست صفحه نمایش مشخص می‌کند. تمام توابع مقیدسازی پنجره (مانند f.movepack، f.move همراه با DontMoveOff و غیره) این منطقه را خارج از صفحه نمایش در نظر می‌گیرند. مقدار پیش‌فرض 0 است.

BorderShadowDepth pixels

این متغیر عمق سایه‌ای را که ctwm برای کادرهای سه‌بعدی پنجره هنگام انتخاب UseThreeDBorders استفاده می‌کند، مشخص می‌نماید.

BorderTileBackground string [{ wincolorlist }]

این متغیر رنگ پس‌زمینه پیش‌فرض در الگوی خاکستری مورد استفاده در کادرهای برجسته‌نشده را مشخص می‌کند (تنها در صورتی که NoHighlight تنظیم نشده باشد)، و تنها در یک فهرست Color یا Monochrome قابل تعریف است. wincolorlist اختیاری امکان تعیین رنگ‌ها به ازای هر پنجره را فراهم می‌سازد. مقدار پیش‌فرض “white” است.

BorderTileForeground string [{ wincolorlist }]

این متغیر رنگ پیش‌زمینه پیش‌فرض در الگوی خاکستری مورد استفاده در کادرهای برجسته‌نشده را مشخص می‌کند (تنها در صورتی که NoHighlight تنظیم نشده باشد)، و تنها در یک فهرست Color یا Monochrome قابل تعریف است. wincolorlist اختیاری امکان تعیین رنگ‌ها به ازای هر پنجره را فراهم می‌سازد. مقدار پیش‌فرض “black” است.

BorderTop pixels

این متغیر عرض بر حسب پیکسل یک منطقه ممنوعه را در بالای صفحه نمایش مشخص می‌کند. تمام توابع مقیدسازی پنجره (مانند f.movepack، f.move همراه با DontMoveOff و غیره) این منطقه را خارج از صفحه نمایش در نظر می‌گیرند. مقدار پیش‌فرض 0 است.

BorderWidth pixels

این متغیر عرض بر حسب پیکسل کادر پیرامون تمام قاب‌های پنجره‌های کلاینت را در صورتی که ClientBorderWidth مشخص نشده باشد، تعیین می‌کند. این مقدار همچنین برای تنظیم اندازه کادر پنجره‌های ایجادشده توسط ctwm (مانند مدیر آیکون) استفاده می‌شود. مقدار پیش‌فرض 2 است.

ButtonIndent pixels

این متغیر میزان فرورفتگی دکمه‌های نوار عنوان را از تمام جهات مشخص می‌کند. مقادیر مثبت باعث می‌شوند دکمه‌ها از متن پنجره و ناحیه برجسته‌سازی کوچک‌تر شوند تا متمایز و برجسته جلوه کنند. تنظیم این متغیر و متغیرهای TitleButtonBorderWidth روی 0 باعث می‌شود دکمه‌های نوار عنوان تا جای ممکن بلند و پهن باشند. در صورتی که UseThreeDTitles تنظیم نشده باشد، مقدار پیش‌فرض 1 و در صورت تنظیم بودن آن، 0 است.

CenterFeedbackWindow

پنجره اطلاعات جابجایی و تغییر اندازه به جای گوشه بالا سمت چپ، در وسط صفحه نمایش قرار می‌گیرد.

ClearShadowContrast contrast

به ctwm نشان می‌دهد که چگونه رنگ سایه روشن (clear shadow) را برای عناصر سه‌بعدی محاسبه کند. این مقدار بین 0 تا 100 است. فرمول مورد استفاده عبارت است از:
clear.{RGB} = (65535 - color.{RGB}) * (contrast / 100).

در صورت فعال بودن BeNiceToColormap تاثیری ندارد.

ClickToFocus

فوکوس کردن روی پنجره‌ها با کلیک روی آن‌ها، به جای بردن صرف نشانگر ماوس روی آن‌ها.

ClientBorderWidth

این متغیر نشان می‌دهد که عرض کادر قاب پنجره باید روی عرض اولیه کادر خود پنجره تنظیم شود، نه روی مقدار BorderWidth. در صورت تنظیم بودن Use3DBorders این متغیر به طور خودکار غیرفعال می‌شود.

Color { colors-list }

این متغیر فهرستی از تخصیص‌های رنگ را مشخص می‌کند که در صورت توانایی نمایشگر پیش‌فرض در نمایش مواردی بیش از سیاه و سفید ساده، اعمال می‌شوند. colors-list از متغیرهای رنگ زیر و مقادیر آن‌ها تشکیل شده است: DefaultBackground، DefaultForeground، MenuBackground، MenuForeground، MenuTitleBackground، MenuTitleForeground و MenuShadowColor. به متغیرهای رنگ زیر نیز می‌توان فهرستی از جفت‌های نام پنجره و نام رنگ را برای تعیین رنگ‌ها به ازای هر پنجره اختصاص داد (برای جزئیات BorderColor را ببینید): BorderColor، IconManagerHighlight، BorderTileBackground، BorderTileForeground، TitleBackground، TitleForeground، IconBackground، IconForeground، IconBorderColor، IconManagerBackground و IconManagerForeground. برای مثال:
Color
{
    MenuBackground      "gray50"
    MenuForeground      "blue"
    BorderColor         "red"    { "XTerm" "yellow" }
    TitleForeground     "yellow"
    TitleBackground     "blue"
}

تمام این متغیرهای رنگ را می‌توان برای متغیر Monochrome نیز مشخص کرد، که امکان استفاده از همان فایل مقداردهی اولیه را در هر دو نمایشگر رنگی و تک‌رنگ فراهم می‌سازد.

ConstrainedMoveTime milliseconds

این متغیر مدت زمان بین کلیک‌های دکمه را که برای شروع یک عملیات جابجایی مقید (constrained move) نیاز است، مشخص می‌کند. دوبار کلیک در این بازه زمانی هنگام فراخوانی f.move یا سایر توابع مشابه جابجایی باعث می‌شود پنجره تنها در جهت افقی یا عمودی حرکت داده شود. تنظیم این مقدار روی 0، جابجایی‌های مقید را غیرفعال می‌کند. مقدار پیش‌فرض 400 میلی‌ثانیه است.

توجه داشته باشید که این گزینه بر دوبار کلیک در f.raiseorsqueeze و احتمالاً مکان‌های دیگر که نیاز به ردیابی دوبار کلیک دارند نیز اثر می‌گذارد. احتمالاً این متغیر باید تغییر نام پیدا کند.

Cursors { cursor-list }

این متغیر گلیف‌هایی (شکل‌هایی) را مشخص می‌کند که ctwm باید برای نشانگرهای مختلف ماوس استفاده کند. هر مکان‌نما می‌تواند یا از قلم cursor یا از دو فایل بیت‌مپ تعریف شود. شکل‌ها از قلم cursor را می‌توان مستقیماً به صورت زیر مشخص کرد:
cursorname "string"

که در آن cursorname یکی از نام‌های مکان‌نمای فهرست‌شده در زیر است، و string نام یک گلیف است همان‌طور که در فایل <X11/cursorfont.h> (بدون پیشوند “XC_”) یافت می‌شود. اگر قرار باشد مکان‌نما از فایل‌های بیت‌مپ تعریف شود، در عوض نحو (syntax) زیر به کار می‌رود:

cursorname "image" "mask"

رشته‌های image و mask نام فایل‌های حاوی تصویر و ماسک گلیف را در قالب bitmap(1) مشخص می‌کنند. مکان‌یابی فایل‌های بیت‌مپ به همان شیوه فایل‌های بیت‌مپ آیکون انجام می‌شود. مثال زیر تعاریف پیش‌فرض مکان‌نما را نشان می‌دهد:

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"
}

DarkShadowContrast contrast

به ctwm نشان می‌دهد که چگونه رنگ سایه تیره (dark shadow) را برای عناصر سه‌بعدی محاسبه کند. این مقدار عددی بین 0 تا 100 است. فرمول مورد استفاده به شرح زیر است:
dark.{RGB}  = color.{RGB} * ((100 - contrast) / 100),

اگر BeNiceToColormap فعال باشد، هیچ تاثیری ندارد.

DecorateTransients

این متغیر مشخص می‌کند که پنجره‌های گذرا (پنجره‌هایی که حاوی مشخصه WM_TRANSIENT_FOR هستند) باید نوار عنوان داشته باشند. از نسخه 4.0.0 این حالت پیش‌فرض است.

DefaultBackground string

این متغیر رنگ پس‌زمینه مورد استفاده برای پنجره‌های اندازه‌گیری و اطلاعاتی را مشخص می‌کند. مقدار پیش‌فرض “white” (سفید) است.

DefaultForeground string

این متغیر رنگ پیش‌زمینه مورد استفاده برای پنجره‌های اندازه‌گیری و اطلاعاتی را مشخص می‌کند. مقدار پیش‌فرض “black” (سیاه) است.

DontIconifyByUnmapping { win-list }

این متغیر فهرستی از پنجره‌هایی را مشخص می‌کند که نباید صرفاً با محو کردن پنجره به آیکون تبدیل شوند (همان‌طور که در صورت تنظیم IconifyByUnmapping اتفاق می‌افتاد). این گزینه معمولاً برای اجبار برخی پنجره‌ها به این‌که به عنوان آیکون رفتار کنند در حالی که پنجره‌های دیگر توسط مدیر آیکون مدیریت می‌شوند، به کار می‌رود.

DontMoveOff

این متغیر مشخص می‌کند که جابه‌جایی پنجره‌ها به خارج از صفحه نمایش نباید مجاز باشد. این رفتار را می‌توان با تابع f.forcemove لغو کرد.

DontNameDecorations

تنظیم مشخصه‌های WM_NAME را روی پنجره‌های مختلف تزییناتی که ctwm در اطراف پنجره‌های تحت مدیریت خود قرار می‌دهد، غیرفعال می‌کند. این مشخصه‌ها برای ردیابی این‌که هنگام بررسی فهرست پنجره‌های روی صفحه نمایش چه چیزی متعلق به چه چیزی است بسیار سودمند هستند، اما ممکن است برخی ابزارهایی را که انتظار یافتن آن‌ها را در آن‌جا ندارند دچار سردرگمی کنند (معروف است که xwit یکی از آن‌هاست). نخستین بار در 4.0.2 ارائه شد.

DontPaintRootWindow

این متغیر به ctwm می‌گوید صرف‌نظر از آنچه در مشخصات Workspaces تعیین کرده‌اید، پنجره ریشه (root window) را رنگ‌آمیزی نکند. این ویژگی برای داشتن نقشه‌های پیکسلی در نقشه فضای کاری (Workspace Map) ولی نه روی پنجره ریشه، مفید است.

DontSave { win-list }

مشخصات این پنجره‌ها برای مدیر نشست (session manager) ذخیره نخواهد شد.

DontSetInactive { win-list }

این پنجره‌ها هنگامی که به دلیل تغییر فضای کاری ناپدید می‌شوند، به وضعیت InactiveState تنظیم نخواهند شد. این گزینه به این دلیل اضافه شده است که برخی کلاینت‌های بدرفتار (Frame5) این حالت را دوست ندارند.

DontShowWelcomeWindow

همانند گزینه -W عمل می‌کند: پنجره خوش‌آمدگویی نمایش داده نمی‌شود.

DontSqueezeTitle [{ win-list }]

این متغیر مشخص می‌کند که نوارهای عنوان نباید به حداقل اندازه خود فشرده شوند، همان‌طور که در زیر بخش SqueezeTitle در ادامه شرح داده شده است. اگر فهرست اختیاری پنجره‌ها ارائه شود، فقط از فشرده شدن همان پنجره‌ها جلوگیری خواهد شد.

DontToggleWorkSpaceManagerState

ویژگی تغییر وضعیت مدیر فضای کاری به/از حالت نقشه/دکمه را هنگامی که ctrl را فشار می‌دهید و پنجره مدیر فضای کاری در حالت فوکوس است، خاموش می‌کند.

DontWarpCursorInWMap

به ctwm می‌گوید هنگامی که روی یک پنجره کوچک در نقشه فضای کاری کلیک می‌کنید، مکان‌نما را به پنجره واقعی متناظر پرش (warp) ندهد.

EWMHIgnore { message-types }

انواع پیام‌های EWMH را که ctwm نادیده خواهد گرفت تعیین می‌کند. این متغیر تنها در صورتی معتبر است که برنامه با USE_EWMH کامپایل شده باشد (که در حال حاضر به‌طور پیش‌فرض فعال است). مثال زیر تمام گزینه‌های معتبر را نشان می‌دهد:
EWMHIgnore
{
    # Window states
    "STATE_MAXIMIZED_VERT"
    "STATE_MAXIMIZED_HORZ"
    "STATE_FULLSCREEN"
    "STATE_SHADED"
    "STATE_ABOVE"
    "STATE_BELOW"
}

نخستین بار در 4.0.0 ارائه شد.

ForceFocus [{ win-list }]

فوکوس را به پنجره‌ها اختصاص می‌دهد چه آن‌ها درخواست کرده باشند و چه نکرده باشند. این قابلیت گاهی برای پنجره‌هایی کاربرد دارد که به ما می‌گویند به آن‌ها فوکوس ندهیم، اما همچنان به آن نیاز دارند و بدون این کار به درستی عمل نمی‌کنند. فهرست اختیاری پنجره‌ها امکان تعیین این‌که کدام پنجره‌ها مشمول چنین رفتاری شوند را فراهم می‌سازد.

نخستین بار در 4.0.0 ارائه شد. در نسخه‌های قبلی، گونه‌ای از این قابلیت به صورت بدون قید و شرط فعال بود.

ForceIcons

این متغیر مشخص می‌کند که نقشه‌های پیکسلی (pixmaps) آیکون تعیین‌شده در متغیر Icons باید بر هر نقشه پیکسلی ارائه‌شده از سوی کلاینت اولویت داشته و جایگزین آن شوند.

FramePadding pixels

این متغیر فاصله بین تزیینات نوار عنوان (دکمه و متن) و کادر پنجره را مشخص می‌کند. در صورت عدم تنظیم UseThreeDTitles مقدار پیش‌فرض 2 پیکسل و در صورت تنظیم آن 0 است.

GrabServer

مشخص می‌کند که ctwm هنگام باز کردن منوها و جابه‌جایی پنجره‌های کدر (opaque)، سرور X را تسخیر کند (مسدود کردن تمام رویدادها به جز رویدادهای متعلق به ما). همچنین NoGrabServer را ببینید. در نسخه 4.0.0 اضافه شد؛ در نسخه‌های پیشین این حالت پیش‌فرض بود.

IconBackground string [{ win-list }]

این متغیر رنگ پس‌زمینه آیکون‌ها را مشخص می‌کند، و فقط می‌تواند درون یک فهرست Color یا Monochrome تعیین شود. مقدار اختیاری win-list فهرستی از نام‌ها و رنگ‌های پنجره‌هاست تا بتوان رنگ‌ها را به ازای هر پنجره مشخص کرد. برای توضیحات کامل درباره win-list به متغیر BorderColor مراجعه کنید. مقدار پیش‌فرض “white” (سفید) است.

IconBorderColor string [{ win-list }]

این متغیر رنگ حاشیه مورد استفاده برای پنجره‌های آیکون را مشخص می‌کند، و فقط می‌تواند درون یک فهرست Color یا Monochrome تعیین شود. مقدار اختیاری win-list فهرستی از نام‌ها و رنگ‌های پنجره‌هاست تا بتوان رنگ‌ها را به ازای هر پنجره مشخص کرد. برای توضیحات کامل درباره win-list به متغیر BorderColor مراجعه کنید. مقدار پیش‌فرض “black” (سیاه) است.

IconBorderWidth pixels

این متغیر عرض حاشیه اطراف پنجره‌های آیکون را بر حسب پیکسل مشخص می‌کند. مقدار پیش‌فرض 2 است.

IconDirectory string

این متغیر پوشه‌ای را مشخص می‌کند که در صورت پیدا نشدن فایل بیت‌مپ در هیچ‌یک از پوشه‌های منبع bitmapFilePath، باید مورد جستجو قرار گیرد.

IconFont string

این متغیر قلم (فونت) مورد استفاده برای نمایش نام آیکون‌ها درون آیکون‌ها را مشخص می‌کند. مقدار پیش‌فرض “variable” است.

IconForeground string [{ win-list }]

این متغیر رنگ پیش‌زمینه مورد استفاده هنگام نمایش آیکون‌ها را مشخص می‌کند، و فقط می‌تواند درون یک فهرست Color یا Monochrome تعیین شود. مقدار اختیاری win-list فهرستی از نام‌ها و رنگ‌های پنجره‌هاست تا بتوان رنگ‌ها را به ازای هر پنجره مشخص کرد. برای توضیحات کامل درباره win-list به متغیر BorderColor مراجعه کنید. مقدار پیش‌فرض “black” (سیاه) است.

IconifyByUnmapping [{ win-list }]

این متغیر مشخص می‌کند که پنجره‌ها باید صرفاً با محو شدن (unmap شدن) بدون تلاش برای نگاشت هیچ آیکونی، آیکون‌سازی شوند. فرض بر این است که کاربر پنجره را مجدداً از طریق مدیر آیکون، تابع f.warpto یا منوی TwmWindows بازنشانی خواهد کرد. اگر مقدار اختیاری win-list ارائه شود، تنها همان پنجره‌ها صرفاً با محو شدن آیکون‌سازی خواهند شد. پنجره‌هایی که هر دو گزینه این مورد و IconManagerDontShow را تنظیم کرده باشند، در صورتی که هیچ اتصالی به منوی TwmWindows در فایل راه‌اندازی کاربر تعریف نشده باشد ممکن است غیرقابل دسترسی شوند.

IconifyStyle string

که در آن string یکی از مقادیر "normal"، "mosaic"، "zoomin"، "zoomout" یا "sweep" است. به ctwm می‌گوید هنگام آیکون‌سازی پنجره‌ها از جلوه‌های گرافیکی تزیینی و جذاب استفاده کند.

IconJustification string

که در آن string یکی از مقادیر "left"، "center" یا "right" است. به ctwm می‌گوید تصویر آیکون را نسبت به عنوان آیکون (در صورت وجود) چگونه تراز کند.

IconManagerBackground string [{ win-list }]

این متغیر رنگ پس‌زمینه مورد استفاده برای مدخل‌های مدیر آیکون را مشخص می‌کند، و فقط می‌تواند درون یک فهرست Color یا Monochrome تعیین شود. مقدار اختیاری win-list فهرستی از نام‌ها و رنگ‌های پنجره‌هاست تا بتوان رنگ‌ها را به ازای هر پنجره مشخص کرد. برای توضیحات کامل درباره win-list به متغیر BorderColor مراجعه کنید. مقدار پیش‌فرض “white” (سفید) است.

IconManagerDontShow [{ win-list }]

این متغیر مشخص می‌کند که مدیر آیکون نباید هیچ پنجره‌ای را نمایش دهد. اگر مقدار اختیاری win-list ارائه شود، فقط آن پنجره‌ها نمایش داده نخواهند شد. این متغیر برای جلوگیری از اشغال فضا در مدیر آیکون توسط پنجره‌هایی که به ندرت آیکون‌سازی می‌شوند (مانند xclock یا xload) به کار می‌رود.

IconManagerFont string

این متغیر قلم (فونت) مورد استفاده هنگام نمایش مدخل‌های مدیر آیکون را مشخص می‌کند. مقدار پیش‌فرض “variable” است.

IconManagerForeground string [{ win-list }]

این متغیر رنگ پیش‌زمینه مورد استفاده هنگام نمایش مدخل‌های مدیر آیکون را مشخص می‌کند، و فقط می‌تواند درون یک فهرست Color یا Monochrome تعیین شود. مقدار اختیاری win-list فهرستی از نام‌ها و رنگ‌های پنجره‌هاست تا بتوان رنگ‌ها را به ازای هر پنجره مشخص کرد. برای توضیحات کامل درباره win-list به متغیر BorderColor مراجعه کنید. مقدار پیش‌فرض “black” (سیاه) است.

IconManagerGeometry string [ columns ]

این متغیر هندسه پنجره مدیر آیکون را مشخص می‌کند. آرگومان string یک مشخصه استاندارد هندسه است که اندازه کامل اولیه مدیر آیکون را نشان می‌دهد. پنجره مدیر آیکون سپس به تعداد columns بخش تقسیم شده و بر اساس تعداد مدخل‌های موجود در مدیر آیکون مقیاس‌بندی می‌شود. مدخل‌های اضافی شکسته شده و سطرهای جدیدی را تشکیل می‌دهند. تعداد پیش‌فرض ستون‌ها 1 است. هنگامی که برنامه با پشتیبانی از XrandR کامپایل شده باشد، می‌توان هندسه را با افزودن پیشوند نام نمایشگر (قابل مشاهده با خط فرمان xrandr(1)) به همراه : نسبت به آن نمایشگر تعیین کرد. این نام در صورت عدم دسترسی به XrandR نادیده گرفته می‌شود.

IconManagerHighlight string [{ win-list }]

این متغیر رنگ حاشیه مورد استفاده هنگام برجسته‌سازی مدخل مدیر آیکون که در حال حاضر دارای فوکوس است را مشخص می‌کند، و فقط می‌تواند درون یک فهرست Color یا Monochrome تعیین شود. مقدار اختیاری win-list فهرستی از نام‌ها و رنگ‌های پنجره‌هاست تا بتوان رنگ‌ها را به ازای هر پنجره مشخص کرد. برای توضیحات کامل درباره win-list به متغیر BorderColor مراجعه کنید. مقدار پیش‌فرض “black” (سیاه) است.

IconManagers { iconmgr-list }

این متغیر فهرستی از مدیران آیکون را برای ایجاد مشخص می‌کند. هر مورد در iconmgr-list دارای قالب زیر است:
"winname" ["iconname"] "geometry" columns

که در آن winname نام پنجره‌هایی است که باید در این مدیر آیکون قرار گیرند، iconname نام آیکونِ پنجره آن مدیر آیکون است، geometry یک مشخصه استاندارد هندسه است، و columns تعداد ستون‌های این مدیر آیکون مطابق توضیحات ارائه شده در IconManagerGeometry است. هنگامی که برنامه با پشتیبانی از XrandR کامپایل شده باشد، می‌توان هندسه را با پیشوند کردن نام نمایشگر (قابل مشاهده با خط فرمان xrandr(1)) به همراه : نسبت به آن نمایشگر تعیین کرد. این نام در صورت عدم دسترسی به XrandR نادیده گرفته می‌شود. برای نمونه:

IconManagers
{
    "XTerm"  "=300x5+800+5"       5
    "myhost" "HDMI2:400x5+100+5"  2
}

کلاینت‌هایی که نام یا کلاس آن‌ها “XTerm” باشد مدخلی ایجادشده در مدیر آیکون “XTerm” خواهند داشت. کلاینت‌هایی که نام آن‌ها “myhost” باشد در مدیر آیکون “myhost” قرار می‌گیرند.

IconManagerShadowDepth pixels

این متغیر عمق سایه‌ای را که ctwm برای مدخل‌های سه‌بعدی مدیر آیکون، در صورت انتخاب UseThreeDIconManagers استفاده می‌کند، مشخص می‌نماید.

IconManagerShow { win-list }

این متغیر فهرستی از پنجره‌هایی را مشخص می‌کند که باید در مدیر آیکون ظاهر شوند. هنگامی که همراه با متغیر IconManagerDontShow استفاده شود، فقط پنجره‌های موجود در این فهرست در مدیر آیکون نمایش داده خواهند شد.

IconMenuDontShow { win-list }

نام این پنجره‌ها را در منوی TwmIcons نمایش نده.

IconRegion geomstring vgrav hgrav gridwidth gridheight [iconjust] [iconregjust] [iconregalign] [{ win-list }]

این متغیر ناحیه‌ای را روی پنجره ریشه مشخص می‌کند که در صورت عدم ارائه محل مشخص برای آیکون توسط کلاینت، آیکون‌ها در آن قرار می‌گیرند. آرگومان geomstring یک رشته درون نقل‌قول حاوی مشخصه استاندارد هندسه است. هنگامی که برنامه با پشتیبانی از XrandR کامپایل شده باشد، می‌توان هندسه را با پیشوند کردن نام نمایشگر (قابل مشاهده با خط فرمان xrandr(1)) به همراه : نسبت به آن نمایشگر تعیین کرد. این نام در صورت عدم دسترسی به XrandR نادیده گرفته می‌شود. اگر بیش از یک سطر IconRegion داده شود، آیکون‌ها پس از پر شدن ناحیه اول در نواحی آیکون بعدی قرار خواهند گرفت. آرگومان vgrav باید یکی از مقادیر North یا South باشد و برای کنترل این‌که آیا آیکون‌ها ابتدا از بالا یا از پایین ناحیه آیکون پر شوند، به کار می‌رود. به همین ترتیب، آرگومان hgrav باید East یا West باشد و برای کنترل پر شدن آیکون‌ها از چپ یا از راست استفاده می‌شود. آیکون‌ها درون این ناحیه در یک شبکه با سلول‌هایی به عرض gridwidth پیکسل و ارتفاع gridheight پیکسل چیده می‌شوند. آرگومان اختیاری win-list به ctwm می‌گوید چنانچه چنین پنجره‌ای آیکون‌سازی شود و فضای کافی در این ناحیه آیکون برای آیکون آن وجود داشته باشد، آن را در این‌جا قرار دهد. آرگومان‌های اختیاری iconjust، iconregjust و iconregalign می‌توانند برای تعیین مقادیر اختصاصی IconJustification، IconRegionJustification و IconRegionAlignement برای این IconRegion مورد استفاده قرار گیرند.

IconRegionAlignement string

که در آن string یکی از مقادیر "top"، "center"، "bottom" یا "border" است. به ctwm می‌گوید آیکون‌ها را چگونه در جای خود درون IconRegion تراز کند. اگر “border” داده شود، در صورتی که جاذبه ناحیه آیکون “north” باشد تراز برابر با “top” و در صورتی که جاذبه ناحیه آیکون “south” باشد تراز برابر با “bottom” خواهد بود.

IconRegionJustification string

که در آن string یکی از مقادیر "left"، "center"، "right" یا "border" است. به ctwm می‌گوید آیکون‌ها را چگونه در جای خود درون IconRegion تراز کند. اگر “border” داده شود، در صورتی که جاذبه ناحیه آیکون “west” باشد تراز برابر با “left” و در صورتی که جاذبه ناحیه آیکون “east” باشد تراز برابر با “right” خواهد بود.

Icons { win-list }

این متغیر فهرستی از نام‌های پنجره و نام فایل‌های بیت‌مپ که باید به عنوان آیکون آن‌ها استفاده شود را مشخص می‌کند. برای نمونه:
Icons
{
    "XTerm"  "xterm.icon"
    "xfd"    "xfd_icon"
}

پنجره‌هایی که با “XTerm” تطابق دارند و با محو شدن آیکون‌سازی نمی‌شوند، سعی خواهند کرد از بیت‌مپ آیکون در فایل “xterm.icon” استفاده کنند. اگر ForceIcons تعیین شده باشد، این بیت‌مپ حتی در صورتی که کلاینت نقشه پیکسلی آیکون مخصوص به خود را درخواست کرده باشد، استفاده خواهد شد.

IconSize string

(تنها در صورت ساخته شدن با USE_EWMH) رشته به شکل "<width>x<height>" یا "size" برای اندازه مربعی است. این متغیر اندازه ترجیحی آیکون‌های انتخاب‌شده از ویژگی پنجره EWMH یعنی _NET_WM_ICON را مشخص می‌کند. اگر آیکونی با اندازه دقیق موجود نباشد، گزینه‌ای با نزدیک‌ترین اندازه (از لحاظ مساحت) انتخاب خواهد شد.

نخستین بار در 4.0.0 ارائه شد.

IgnoreCaseInMenuSelection

هنگام حرکت دادن اشاره‌گر درون یک منو با صفحه‌کلید استفاده می‌شود. هنگامی که حرفی را تایپ می‌کنید، اشاره‌گر به مدخل بعدی که با این حرف آغاز می‌شود حرکت می‌کند. اگر IgnoreCaseInMenuSelection وجود داشته باشد، این انتخاب بزرگی و کوچکی این حرف اول را نادیده می‌گیرد.

IgnoreLockModifier

در صورت حضور، تمامی اتصالات (دکمه‌ها و کلیدها) مقدار LockMask را نادیده می‌گیرند. اگر غالباً از کلید caps lock استفاده می‌کنید و مایل نیستید تمامی اتصالات خود را دو بار تعریف نمایید، مفید خواهد بود.

IgnoreModifier

تمامی اتصالات (دکمه‌ها و کلیدها) کلیدهای تبدیل (modifiers) مشخص‌شده توسط شما را نادیده می‌گیرند. این گزینه زمانی که از کلیدهای caps lock یا num lock استفاده می‌کنید کاربرد دارد. با استفاده از این گزینه دیگر نیازی به IgnoreLockModifier ندارید.
IgnoreModifier { lock m2 }

IgnoreTransient

فهرست پنجره‌هایی که پنجره‌های گذرا (transients) برای آن‌ها نادیده گرفته می‌شود.
IgnoreTransient { "Wine" }

InterpolateMenuColors

این متغیر مشخص می‌کند که رنگ‌های ورودی منو باید بین رنگ‌های مشخص‌شده برای هر ورودی درون‌یابی شوند. در مثال زیر:
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
}

رنگ‌های پیش‌زمینه برای “entry1” و “entry2” بین سیاه و سفید، و رنگ‌های پس‌زمینه بین قرمز و سبز درون‌یابی خواهند شد. به طور مشابه، رنگ پیش‌زمینه برای “entry4” در نیمه‌راه بین سفید و قرمز، و رنگ پس‌زمینه در نیمه‌راه بین سبز و سفید خواهد بود.

MakeTitle { win-list }

این متغیر فهرستی از پنجره‌ها را مشخص می‌کند که باید نوار عنوان روی آن‌ها قرار گیرد، و برای درخواست نوار عنوان روی پنجره‌های مشخص در حالتی که NoTitle تنظیم شده است به کار می‌رود.

MapWindowBackground color [{ win-list }]

این متغیر رنگ‌های پس‌زمینه را برای پنجره‌های کوچک در پنجره نقشه فضای کاری مشخص می‌کند و فقط می‌تواند در داخل یک فهرست Color یا Monochrome مشخص شود. گزینه اختیاری win-list فهرستی از نام‌ها و رنگ‌های پنجره‌ها است تا بتوان رنگ‌ها را به تفکیک هر پنجره مشخص کرد. اگر نه MapWindowBackground و نه MapWindowForeground مشخص نشده باشند، از رنگ‌های عنوان پنجره استفاده می‌شود.

MapWindowCurrentWorkSpace { border_color [background] [foreground] [bitmap] }

ظاهر پنجره نقشه مربوط به فضای کاری فعلی را مشخص می‌کند.

MapWindowDefaultWorkSpace { border_color [background] [foreground] [bitmap] }

ظاهر پنجره نقشه مربوط به فضاهای کاری غیر از فضای کاری فعلی را در حالتی که هیچ اطلاعات پس‌زمینه ریشه‌ای در دستور WorkSpace به ctwm داده نشده باشد، مشخص می‌کند. در موارد دیگر استفاده نمی‌شود.

MapWindowForeground color [{ win-list }]

این متغیر رنگ‌های پیش‌زمینه را برای پنجره‌های کوچک در پنجره نقشه فضای کاری مشخص می‌کند و فقط می‌تواند در داخل یک فهرست Color یا Monochrome مشخص شود. گزینه اختیاری win-list فهرستی از نام‌ها و رنگ‌های پنجره‌ها است تا بتوان رنگ‌ها را به تفکیک هر پنجره مشخص کرد. اگر نه MapWindowBackground و نه MapWindowForeground مشخص نشده باشند، از رنگ‌های عنوان پنجره استفاده می‌شود.

MaxIconTitleWidth width

آرگومان عدد صحیح به ctwm حداکثر عرض مورد استفاده برای عنوان آیکون را اعلام می‌کند. اگر عنوان آیکون بزرگ‌تر از width باشد، بریده (کوتاه) می‌شود.

MaxWindowSize string

این متغیر ابعاد هندسی‌ای را مشخص می‌کند که در آن عرض و ارتفاع، حداکثر اندازه را برای یک پنجره مشخص می‌کنند. این ویژگی معمولاً برای محدود کردن پنجره‌ها به اندازه صفحه نمایش به کار می‌رود. مقدار پیش‌فرض “30000x30000” است.

MenuBackground string

این متغیر رنگ پس‌زمینه مورد استفاده برای منوها را مشخص می‌کند و فقط می‌تواند در داخل یک فهرست Color یا Monochrome مشخص شود. مقدار پیش‌فرض “white” است.

MenuFont string

این متغیر قلم مورد استفاده هنگام نمایش منوها را مشخص می‌کند. مقدار پیش‌فرض “variable” است.

MenuForeground string

این متغیر رنگ پیش‌زمینه مورد استفاده برای منوها را مشخص می‌کند و فقط می‌تواند در داخل یک فهرست Color یا Monochrome مشخص شود. مقدار پیش‌فرض “black” است.

MenuShadowColor string

این متغیر رنگ سایه پشت منوهای افتادنی (pull-down) را مشخص می‌کند و فقط می‌تواند در داخل یک فهرست Color یا Monochrome مشخص شود. مقدار پیش‌فرض “black” است.

MenuShadowDepth pixels

این متغیر عمق سایه‌ای را که ctwm برای منوهای سه‌بعدی استفاده می‌کند، در هنگام فعال بودن UseThreeDMenus مشخص می‌نماید.

MenuTitleBackground string

این متغیر رنگ پس‌زمینه را برای ورودی‌های f.title در منوها مشخص می‌کند و فقط می‌تواند در داخل یک فهرست Color یا Monochrome مشخص شود. مقدار پیش‌فرض “white” است.

MenuTitleForeground string

این متغیر رنگ پیش‌زمینه را برای ورودی‌های f.title در منوها مشخص می‌کند و فقط می‌تواند در داخل یک فهرست Color یا Monochrome مشخص شود. مقدار پیش‌فرض “black” است.

MonitorLayout { monitor-list }

این گزینه امکان پیکربندی دستی مواردی را که ctwm به عنوان فهرست مانیتورها در نظر می‌گیرد، فراهم می‌کند. اگر پشتیبانی از XRANDR کامپایل شده باشد (از نسخه 4.1.0 به بعد به عنوان پیش‌فرض) و افزونه RANDR روی کارساز شما موجود باشد، آن‌گاه ctwm از آن برای تعیین اندازه و چیدمان مانیتورهای شما استفاده خواهد کرد.

اما اگر هیچ‌یک از این دو برقرار نباشد، یا بخواهید نتایجی را که بازمی‌گرداند بازنویسی کنید، می‌توانید نام‌ها و چیدمان‌های “مانیتورهای” دلخواه خود را با این متغیر مشخص نمایید. برای نمونه، اگر مانیتور بسیار عریضی دارید و ترجیح می‌دهید به عنوان چند مانیتور باریک‌تر در کنار هم در نظر گرفته شود، می‌توانید از این گزینه استفاده کنید تا به ctwm بگویید با آن به همین صورت رفتار کند.

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"
}

با پشتیبانی از m4، حتی می‌توانید کاری کنید که صفحه نمایش کامل شما به صورت خودکار به ۲ “مانیتور” تقسیم شود:

define(LeftWidth, eval(WIDTH / 2))dnl
define(RightWidth, eval(WIDTH - LeftWidth))dnl
MonitorLayout
{
    "`AutoL:'LeftWidth`x'HEIGHT`+0+0'"
    "`AutoR:'RightWidth`x'HEIGHT`+'LeftWidth`+0'"
}

Monochrome { colors }

این متغیر فهرستی از تخصیص‌های رنگ را مشخص می‌کند که در صورت داشتن عمق رنگ ۱ برای صفحه نمایش، باید اعمال شوند. به توضیحات Color مراجعه کنید.

MoveDelta pixels

این متغیر تعداد پیکسل‌هایی را مشخص می‌کند که اشاره‌گر باید جابجا شود تا تابع f.move شروع به کار کند. همچنین تابع f.deltastop را ببینید. مقدار پیش‌فرض صفر پیکسل است.

MovePackResistance pixels

این متغیر میزان مقاومت movepack و movepush را بر حسب پیکسل مشخص می‌کند. توابع f.movepack و f.movepush را ببینید.

MoveOffResistance pixels

این متغیر میزان مقاومت moveoff (خروج از لبه) را بر حسب پیکسل مشخص می‌کند. اگر pixels مثبت باشد، DontMoveOff تنها در صورتی از خارج شدن شما از لبه جلوگیری می‌کند که در فاصله n پیکسل از لبه باشید. اگر دورتر بروید، DontMoveOff متوقف شده و اجازه می‌دهد تا هر چقدر که می‌خواهید پیش بروید. تابع f.forcemove همچنان امکان نادیده گرفتن کامل DontMoveOff را فراهم می‌کند. مقدار منفی شما را به حالت “هرگز از لبه خارج نشو” بازمی‌گرداند (که حالت پیش‌فرض است).

MWMIgnore

راهنمایی‌های (hints) مدیر پنجره Motif را که ctwm نادیده خواهد گرفت، مشخص می‌کند. مثال زیر تمامی گزینه‌های معتبر را نشان می‌دهد:
MWMIgnore
{
    # en/disable window borders
    "DECOR_BORDER"
    # en/disable titlebars
    "DECOR_TITLE"
}

نخستین بار در نسخه 4.0.0 ظاهر شد.

NoBackingStore

این متغیر نشان می‌دهد که منوهای ctwm نباید به منظور به حداقل رساندن بازترسیم منوها، درخواست backing store کنند. این گزینه معمولاً با کارسازهایی به کار می‌رود که بازترسیم را سریع‌تر از مدیریت backing store انجام می‌دهند. همچنین BackingStore را ببینید. از نسخه 4.0.0 به بعد، این حالت پیش‌فرض است.

NoBorder { win-list }

این پنجره‌ها کادر (حاشیه) نخواهند داشت. اگر می‌خواهید هیچ پنجره‌ای کادر نداشته باشد، از کلیدواژه BorderWidth استفاده کنید.

NoCaseSensitive

این متغیر نشان می‌دهد که هنگام مرتب‌سازی نام آیکون‌ها در یک مدیر آیکون، بزرگی و کوچکی حروف نادیده گرفته شود. این گزینه معمولاً برای برنامه‌هایی استفاده می‌شود که حرف نخست نام آیکون خود را بزرگ می‌نویسند.

NoDecorateTransients

مشخص می‌کند پنجره‌های گذرا (یعنی پنجره‌هایی که ویژگی WM_TRANSIENT_FOR برای آن‌ها تنظیم شده است) توسط ctwm نادیده گرفته شوند (تزئینات پنجره به آن‌ها تعلق نگیرد). همچنین DecorateTransients را ببینید. در نسخه 4.0.0 اضافه شد؛ در نسخه‌های قبلی این حالت پیش‌فرض بود.

NoDefaults

این متغیر نشان می‌دهد که ctwm نباید دکمه‌های نوار عنوان و میانبرهای پیش‌فرض را ارائه دهد. این گزینه تنها زمانی باید استفاده شود که فایل راه‌اندازی شامل مجموعه کاملاً جدیدی از میانبرها و تعاریف باشد.

NoGrabServer

این متغیر نشان می‌دهد که ctwm نباید هنگام بالا آوردن منوها و جابجایی پنجره‌های کدر (opaque)، کارساز را تسخیر (grab) کند. از نسخه 4.0.0 به بعد این حالت پیش‌فرض است.

NoHighlight [{ win-list }]

این متغیر نشان می‌دهد که حاشیه‌ها نباید برای دنبال کردن موقعیت اشاره‌گر برجسته (highlight) شوند. اگر مقدار اختیاری win-list مشخص شود، برجسته‌سازی فقط برای آن پنجره‌ها غیرفعال خواهد شد. زمانی که حاشیه برجسته است، با رنگ کنونی BorderColor ترسیم می‌شود. هنگامی که حاشیه برجسته نیست، با یک الگوی خاکستری مشبک با استفاده از رنگ‌های فعلی BorderTileForeground و BorderTileBackground سایه‌زنی (stippled) خواهد شد.

NoIconTitle [{ win-list }]

این متغیر نشان می‌دهد که آیکون‌ها نباید نام آیکون کلاینت را نمایش دهند. اگر مقدار اختیاری win-list مشخص شود، فقط آیکون آن کلاینت‌ها عنوان نخواهند داشت.

NoIconManagerFocus

این متغیر نشان می‌دهد که وقتی اشاره‌گر در یک IconManager است، ctwm فوکوس را روی پنجره متناظر قرار نخواهد داد.

NoIconManagers

این متغیر مشخص می‌کند که هیچ مدیر آیکونی نباید ساخته شود.

NoImagesInWorkSpaceManager

این متغیر نمایش تصاویر پس‌زمینه را در WorkSpaceMap غیرفعال می‌کند. در عوض تنها رنگ‌های تعریف‌شده در WorkSpaces به عنوان پس‌زمینه در WorkSpaceMap به کار خواهند رفت.

NoMenuShadows

این متغیر نشان می‌دهد که برای منوها نباید سایه در پشت آن‌ها ترسیم شود. این گزینه معمولاً با کارسازهای کندتر استفاده می‌شود، زیرا ترسیم منو را سریع‌تر می‌کند، هرچند خواندن منو را کمی دشوارتر می‌سازد.

NoOpaqueMove [{ window-list }]

همتای OpaqueMove است. به OpaqueMove مراجعه کنید.

NoOpaqueResize [{ window-list }]

همتای OpaqueResize است. به OpaqueResize مراجعه کنید.

NoRaiseOnDeiconify

این متغیر نشان می‌دهد پنجره‌هایی که از حالت آیکون خارج می‌شوند (deiconified) نباید به جلو آورده شوند.

NoRaiseOnMove

این متغیر نشان می‌دهد که پنجره‌ها هنگام جابجایی نباید به جلو آورده شوند. این گزینه معمولاً برای این به کار می‌رود که پنجره‌ها بتوانند زیر یکدیگر بلغزند.

NoRaiseOnResize

این متغیر نشان می‌دهد که پنجره‌ها هنگام تغییر اندازه نباید به جلو آورده شوند. این گزینه معمولاً برای این به کار می‌رود که پنجره‌ها بتوانند زیر یکدیگر تغییر اندازه دهند.

NoRaiseOnWarp

این متغیر نشان می‌دهد زمانی که اشاره‌گر با تابع f.warpto به داخل پنجره‌ها جهش داده می‌شود (warped)، نباید پنجره‌ها به جلو آورده شوند. اگر این گزینه تنظیم شده باشد، جهش به یک پنجره پوشانده‌شده ممکن است منجر به قرار گرفتن اشاره‌گر در پنجره پوشاننده به جای پنجره مورد نظر شود (که این امر باعث رفتار غیرمنتظره در f.warpring می‌گردد).

NoRestartPreviousState

تلاشی برای بازتولید وضعیتی که صفحه نمایش قبل از خاموش شدن مدیر پنجره پیشین در آن بود، انجام نمی‌دهد. برای جزئیات به RestartPreviousState مراجعه کنید. در نسخه 4.0.0 اضافه شد؛ در نسخه‌های قبلی این حالت پیش‌فرض بود.

NoSaveUnders

این متغیر نشان می‌دهد که منوها نباید برای به حداقل رساندن بازترسیم پنجره به دنبال انتخاب منو، درخواست save-unders کنند. این گزینه معمولاً در نمایشگرهایی به کار می‌رود که می‌توانند سریع‌تر از مدیریت save-unders بازترسیم را انجام دهند.

NoShowOccupyAll

این متغیر مشخص می‌کند که پنجره‌های OccupyAll (حاضر در همه فضاها) در پنجره WorkSpaceMap نمایش داده نشوند.

NoSortIconManager

مشخص می‌کند که ورودی‌ها در مدیر آیکون به همان ترتیبی که ظاهر می‌شوند اضافه شوند. همچنین SortIconManager را ببینید. در نسخه 4.0.0 اضافه شد؛ در نسخه‌های قبلی این حالت پیش‌فرض بود.

NoStackMode [{ win-list }]

این متغیر نشان می‌دهد که درخواست‌های پنجره کلاینت برای تغییر ترتیب پشته پنجره‌ها (stacking order) باید نادیده گرفته شوند. اگر مقدار اختیاری win-list مشخص شود، تنها درخواست‌های مربوط به آن پنجره‌ها نادیده گرفته خواهند شد. این گزینه معمولاً برای جلوگیری از پرتاب مداوم پنجره برنامه‌ها به جلوی پشته پنجره‌ها به کار می‌رود.

NoTitle [{ win-list }]

این متغیر نشان می‌دهد که پنجره‌ها نباید نوار عنوان داشته باشند. اگر مقدار اختیاری win-list مشخص شود، تنها آن پنجره‌ها نوار عنوان نخواهند داشت. می‌توان از MakeTitle به همراه این گزینه استفاده کرد تا وجود نوار عنوان روی پنجره‌های مشخصی اجباری شود.

NoTitleFocus

این متغیر نشان می‌دهد که ctwm نباید با ورود اشاره‌گر به هر پنجره، فوکوس ورودی صفحه‌کلید را روی آن تنظیم کند. در حالت عادی، ctwm فوکوس را به گونه‌ای تنظیم می‌کند که رویدادهای فوکوس و کلید از نوار عنوان و مدیران آیکون به برنامه ارسال شوند. اگر اشاره‌گر سریع حرکت داده شود و ctwm در پاسخگویی کند باشد، ورودی ممکن است به جای پنجره جدید به پنجره قبلی هدایت شود. این گزینه معمولاً برای جلوگیری از این “تأخیر در ورودی” (input lag) و برای رفع اشکالات برنامه‌های قدیمی‌تر که با رویدادهای فوکوس مشکل دارند استفاده می‌شود.

NoTitleHighlight [{ win-list }]

این متغیر نشان می‌دهد که ناحیه برجسته (highlight) نوار عنوان، که برای مشخص کردن پنجره دارای فوکوس ورودی فعلی استفاده می‌شود، نباید نمایش داده شود. اگر مقدار اختیاری win-list مشخص شود، تنها آن پنجره‌ها فاقد ناحیه برجسته خواهند بود. این گزینه و گزینه SqueezeTitle را می‌توان طوری تنظیم کرد که فضای اشغال‌شده روی صفحه توسط نوارهای عنوان به میزان قابل توجهی کاهش یابد.

NoWarpToMenuTitle

این متغیر نشان می‌دهد که مکان‌نما نباید به عنوان منویی که فضای کافی برای باز شدن در زیر موقعیت فعلی مکان‌نما ندارد، جهش (warp) پیدا کند.
این متغیر مشخص می‌کند که در زمان راه‌اندازی، کدام پنجره‌ها کدام فضاهای کاری را اشغال کنند.

occupy-list شامل مدخل‌هایی به شکل زیر است:

        [Window]   win-name  { wspc1 wspc2 ... }
or      Workspace  wspc-name { win1  win2 ...  }

مثال:

Occupy
{
               "xload"   {"all"}
    Window     "xterm"   {"here" "there" "elsewhere"}
               "xv"      {"images"}
    WorkSpace  "images"  {"xloadimage"}
}

اگر all برای نام فضای کاری (در هر یک از دو حالت) مشخص شود، پنجره یا پنجره‌های نام‌برده در همه فضاهای کاری قرار خواهند گرفت، درست همانند اینکه در OccupyAll فهرست شده باشند. اگر نام فضای کاری با ws: آغاز شود، نام فضای کاری ابتدا بدون این پیشوند جستجو خواهد شد؛ یعنی اگر نام داده‌شده ws:abc باشد، ابتدا به دنبال فضای کاری با نام abc می‌گردد و در صورت پیدا شدن، به آن اختصاص می‌یابد؛ در غیر این صورت به جستجوی نام ws:abc بازمی‌گردد.

نکته: اعلان Occupy باید پس از اعلان WorkSpaces قرار گیرد.

OccupyAll { window-list }

این متغیر فهرستی از پنجره‌هایی را مشخص می‌کند که در زمان راه‌اندازی، همه فضاهای کاری را اشغال خواهند کرد.

window-list فهرستی از نام‌های پنجره‌ها است.

مثال:

OccupyAll
{
    "xload"
    "xbiff"
    "xconsole"
}

نکته: اعلان OccupyAll باید پس از اعلان WorkSpaces قرار گیرد.

OnTopPriority [Icons] priority [ { win-list } ]

مدیر پنجره ctwm به شما امکان می‌دهد پنجره‌ها را در چندین صفحه اولویت همپوشان از -8 تا +8 قرار دهید، که این کار داشتن پنجره‌هایی که همیشه در رو قرار می‌گیرند یا در پس‌زمینه نگه داشته می‌شوند را ممکن می‌سازد. اگر win-list مشخص شده باشد، تعیین می‌کند کدام پنجره‌ها باید در صفحه priority قرار گیرند. در غیر این صورت، priority مقدار پیش‌فرض مورد استفاده را تعیین می‌کند (پیش‌فرضِ پیش‌فرض 0 است). پارامتر Icons در صورت وجود، نشان می‌دهد که اولویت شرح‌داده‌شده به جای پنجره‌ها برای آیکون‌ها اعمال می‌شود.

مثال:

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"
}

نخستین بار در نگارش 4.0.0 ارائه شد.

OpaqueMove [{ window-list }]

این متغیر نشان می‌دهد که تابع f.move باید به جای نمایش صرف یک خط دور (outline)، پنجره واقعی را جابه‌جا کند تا کاربر بتواند بلافاصله ظاهر پنجره را در موقعیت جدید مشاهده کند. این گزینه معمولاً در نمایشگرهای سریع استفاده می‌شود (به‌ویژه اگر NoGrabServer تنظیم شده باشد). پارامتر اختیاری فهرست پنجره‌ها مشخص می‌کند که فقط پنجره‌های این فهرست باید به صورت کدر جابه‌جا شوند. گزینه متناظر NoOpaqueMove نیز در دسترس است.

از نگارش 4.0.0 این قابلیت به طور پیش‌فرض فعال است.

OpaqueMoveThreshold threshold

این پارامتر عدد صحیح، یک درصد است و مشخص می‌کند تنها پنجره‌هایی (واجد شرایط جابه‌جایی کدر) که مساحتی کوچک‌تر از این درصد از مساحت صفحه نمایش دارند، باید به صورت کدر جابه‌جا شوند. مقدار پیش‌فرض 200 است. از نگارش 4.0.0 به بعد، مقادیر بیشتر یا مساوی 200 به عنوان بی‌نهایت در نظر گرفته می‌شوند و باعث می‌شوند پنجره‌های واجد شرایط همیشه با OpaqueMove جابه‌جا شوند.

OpaqueResize [{ window-list }]

نسخه تغییر اندازه به صورت کدر (Opaque). این حالت به شدت منابع سیستم را مصرف می‌کند، اما با سرور/کلاینت/شبکه سریع بسیار چشم‌نواز است. به OpaqueMove مراجعه کنید. گزینه متناظر NoOpaqueResize نیز موجود است. از نگارش 4.0.0 این ویژگی به طور پیش‌فرض فعال است.

OpaqueResizeThreshold threshold

نسخه تغییر اندازه متغیر OpaqueMoveThreshold. مقدار پیش‌فرض 1000 است. از نگارش 3.8.1 به بعد، مقادیر بزرگ‌تر یا مساوی 1000 به عنوان بی‌نهایت تلقی شده و باعث می‌شوند پنجره‌ها در صورت واجد شرایط بودن، همیشه با OpaqueResize تغییر اندازه داده شوند.

OpenWindowTimeout seconds

پارامتر seconds یک عدد صحیح است که تعداد ثانیه‌ها را نشان می‌دهد. هنگامی که یک پنجره تلاش می‌کند روی یک نمایشگر بدون نظارت (unattended) باز شود، پس از این تعداد ثانیه به طور خودکار نگاشت (نمایش داده) خواهد شد.

PackNewWindows

استفاده از الگوریتم f.movepack به جای f.move در هنگام باز کردن یک پنجره جدید.

Pixmaps { pixmaps }

این متغیر فهرستی از نگاشت‌های پیکسلی (pixmap) را مشخص می‌کند که ظاهر تصاویر مختلف را تعیین می‌کنند. هر مدخل شامل یک کلمه کلیدی است که پیکس‌مپ مورد نظر را مشخص کرده و پس از آن رشته‌ای حاوی نام فایل بیت‌مپ می‌آید. پیکس‌مپ‌های زیر را می‌توان تعیین کرد:
Pixmaps
{
        TitleHighlight  "gray1"
#       TitleHighlight  "supman%.xbm"
}

حالت پیش‌فرض برای TitleHighlight استفاده از یک الگوی نقطه‌چین یکنواخت (stipple) است.

PixmapDirectory path

این متغیر مسیری را مشخص می‌کند که ctwm در آن برای یافتن فایل‌های بیت‌مپ غیر از X11 جستجو می‌کند. هر زمان که بخواهید از یک فایل تصویری استفاده کنید که بیت‌مپ X11 نیست، مشخص کنید: xpm:filename برای فایل‌های xpm، xwd:filename برای فایل‌های xwd، jpeg:file برای فایل‌های jpeg، یا |command برای یک فایل xwd که به صورت پویا (در لحظه) تولید می‌شود. از نویسه % برای مشخص کردن یک انیمیشن (پویانمایی) استفاده کنید. path می‌تواند فهرستی از دایرکتوری‌ها باشد که با دونقطه (:) از یکدیگر جدا شده‌اند. مثال:
PixmapDirectory  "/usr/lib/X11/twm"
Icons
{
    "Axe"    "xpm:edit.xpm"
    "xterm"  "xpm:ball%.xpm"
}

توجه: این ویژگی تنها در صورتی معتبر است که نسخه ctwm شما با افزونه مناسب (XPM یا JPEG) کامپایل شده باشد.

PrioritySwitching [Icons] { win-list }

مشخص می‌کند که پنجره‌های موجود در win-list می‌توانند اولویت خود را تغییر دهند. این بدان معناست که آن‌ها بسته به موقعیت می‌توانند در صفحه priority یا -priority قرار گیرند. به عنوان مثال، پنجره‌ای با اولویت priority برابر ۲، هنگام بالا کشیده شدن در صفحه ۲ و هنگام پایین فرستاده شدن در صفحه -2 قرار خواهد گرفت؛ یعنی اگر پنجره دیگری را بالا بکشید معمولاً در رو می‌ماند، اما اگر اولویت آن موقتاً بیش از حد دلخواه شما بالا باشد همچنان می‌توان آن را پایین فرستاد. اگر Icons مشخص شده باشد، بدین معنی است که ترجیح شرح‌داده‌شده به جای پنجره‌ها روی آیکون‌ها اعمال می‌شود. همچنین برای افزودن/حذف پویای پنجره‌ها در زمان اجرا به تابع f.priorityswitching مراجعه کنید.

نخستین بار در نگارش 4.0.0 ارائه شد.

PriorityNotSwitching [Icons] { win-list }

همانند بالا، با این تفاوت که تعیین می‌کند حالت پیش‌فرض باید توانایی پنجره‌ها در تغییر اولویت باشد، به جز پنجره‌های موجود در win-list که این امکان را ندارند.

نخستین بار در نگارش 4.0.0 ارائه شد.

RaiseDelay milliseconds

برای پنجره‌هایی که قرار است با ورود نشانگر ماوس به طور خودکار بالا کشیده شوند (متغیر AutoRaise و تابع f.autoraise را ببینید)، این متغیر مدت زمانی را مشخص می‌کند که نشانگر باید پیش از بالا آمدن پنجره در آن مکث کند. مقدار پیش‌فرض 0 میلی‌ثانیه است.

RaiseOnClick

در صورت وجود، پنجره با کلیک بر روی آن روی دیگر پنجره‌ها بالا کشیده می‌شود و رویداد ButtonPress به درستی به کلاینت صاحب پنجره (در صورتی که درخواست کرده باشد) ارسال می‌شود. به RaiseOnClickButton مراجعه کنید.

RaiseOnClickButton button_number

که در آن button_number یک شماره دکمه معتبر است (در حال حاضر ۱ تا ۱۱). دکمه مورد استفاده برای RaiseOnClick را مشخص می‌کند.

RaiseWhenAutoUnSqueeze

پنجره‌ها هنگام خروج خودکار از حالت فشرده (Auto-Unsqueeze) بالا کشیده می‌شوند (به AutoSqueeze مراجعه کنید).

RandomPlacement [ string1 [ string2 ]]

این متغیر مشخص می‌کند پنجره‌هایی که هندسه (geometry) مشخصی ندارند، باید به جای اینکه کاربر کادر دور آن‌ها را بکشد، در یک موقعیت شبه‌تصادفی قرار گیرند. اگر هیچ آرگومانی داده نشود، به عنوان RandomPlacement "on" تفسیر می‌شود.

string1 می‌تواند “on”، “off”، “all” یا “unmapped” باشد و string2 میزان جابه‌جایی پنجره در موقعیت شبه‌تصادفی را نسبت به پنجره پیشین تعیین می‌کند. آرگومان‌های “on” یا “all” معادل هم هستند و به ctwm می‌گویند این کار را برای همه این پنجره‌ها انجام دهد؛ “off” می‌گوید این کار را انجام ندهد، و “unmapped” فقط برای پنجره‌های نگاشت‌نشده مانند پنجره‌های آیکون‌شده یا پنجره‌هایی که در فضای کاری جاری قابل مشاهده نیستند اعمال می‌شود. اگر آرگومان دوم داده نشود، جابه‌جایی +30+30 (۳۰ پیکسل به راست و پایین) استفاده می‌شود.

از نگارش 4.0.0، در صورتی که RandomPlacement در پیکربندی مشخص نشده باشد، مقدار پیش‌فرض “on” است. پیش‌تر مقدار پیش‌فرض “off” بود.

ReallyMoveInWorkspaceManager

این کلمه کلیدی به ctwm دستور می‌دهد زمانی که کاربر پنجره‌های کوچک را در پنجره WorkSpaceMap جابه‌جا می‌کند، پنجره واقعی را حرکت دهد. در صورت عدم وجود این گزینه، از WorkSpaceMap تنها می‌توان برای تغییر اشغال فضای کاری یک پنجره استفاده کرد. فشردن کلید shift هنگام کشیدن پنجره در مدیر فضای کاری، این گزینه را موقتاً تغییر وضعیت می‌دهد.

ResizeFont string

این متغیر قلم مورد استفاده در پنجره ابعاد را هنگام تغییر اندازه پنجره‌ها مشخص می‌کند. مقدار پیش‌فرض “fixed” است.

RestartPreviousState

این متغیر نشان می‌دهد که از مشخصه‌های پنجره‌های کلاینت برای تلاش در جهت بازسازی وضعیتی که صفحه نمایش پیش از خاموش شدن مدیر پنجره قبلی داشت، استفاده شود. این فرایند شامل استفاده از مشخصه WM_STATE برای تشخیص اینکه کدام پنجره‌ها باید آیکون شده و کدام یک باید نمایان بمانند، و مشخصه WM_OCCUPATION برای تعیین اینکه یک پنجره در کدام فضاهای کاری باید نمایان باشد، می‌شود. از نگارش 4.0.0 این رفتار پیش‌فرض است.

ReverseCurrentWorkspace

این متغیر به ctwm می‌گوید رنگ‌های پس‌زمینه و پیش‌زمینه را در پنجره‌های کوچک نقشه فضای کاری (Workspace Map) برای فضای کاری جاری معکوس کند.

RplaySoundHost string

میزبانی که صداها باید روی آن پخش شوند. این گزینه تنها زمانی معنادار است که ctwm با USE_SOUND ساخته شده باشد؛ در غیر این صورت یک هشدار صادر می‌کند. به بخش SOUNDS مراجعه کنید. در نگارش 4.0.0 اضافه شد؛ نگارش‌های پیشین به جای آن از پارامتر SoundHost استفاده می‌کردند.

RplaySounds { sounds-list }

تعیین می‌کند که در رویدادهای مختلف چه صداهایی از طریق rplayd پخش شوند. این متغیر شامل مدخل‌هایی به شکل زیر است:
"EventName"   "/file/to/play.wav"

تنها زمانی معنادار است که ctwm با USE_SOUND ساخته شده باشد؛ در غیر این صورت یک هشدار صادر می‌کند. به بخش SOUNDS مراجعه کنید. توجه داشته باشید که اگر این بخش در ctwmrc داده شود، فایل ~/.ctwm-sounds تجزیه نخواهد شد. نخستین بار در نگارش 4.0.0 ارائه شد.

SaveColor { colors-list }

این متغیر فهرستی از تخصیص‌های رنگی را مشخص می‌کند که باید به صورت مقادیر پیکسلی در مشخصه پنجره ریشه _MIT_PRIORITY_COLORS ذخیره شوند. کلاینت‌ها می‌توانند هنگام نصب جدول رنگ (colormap) خود، این مقادیر را حفظ کنند. توجه داشته باشید که استفاده از این سازوکار روشی است تا برنامه‌ها از مشکل «تکنیکالر» (“technicolor”) جلوگیری کنند؛ مشکلی که به موجب آن اشیاء مفید صفحه نمایش مانند کادرها و نوارهای عنوان پنجره‌ها با نصب رنگ‌های سفارشی یک برنامه توسط مدیر پنجره ناپدید می‌شوند. برای مثال:
SaveColor
{
    BorderColor
    TitleBackground
    TitleForeground
    "red"
    "green"
    "blue"
}

این کار ۳ مقدار پیکسلی برای کادرها و نوارهای عنوان و همچنین سه رشته رنگ را روی پنجره ریشه قرار می‌دهد که همگی از جدول رنگ پیش‌فرض گرفته شده‌اند.

ShrinkIconTitles

کوچک‌سازی عنوان آیکون‌ها به سبک موتیف (Motif)، و بزرگ‌نمایی آن‌ها هنگامی که ماوس درون آیکون قرار می‌گیرد. املای نادرست قدیمی SchrinkIconTitles نیز همچنان پذیرفته می‌شود.

ShortAllWindowsMenus

عدم نمایش WorkSpaceManager و IconManagers در منوهای TwmWindows و TwmAllWindows.

ShowIconManager

این متغیر مشخص می‌کند که پنجره مدیر آیکون باید در زمان راه‌اندازی ctwm نمایش داده شود. این پنجره را همیشه می‌توان با استفاده از تابع f.showiconmgr باز کرد.

ShowWorkSpaceManager

این متغیر مشخص می‌کند که WorkSpaceManager باید قابل مشاهده باشد.

SloppyFocus

استفاده از حالت تمرکز سهل‌گیرانه (Sloppy Focus).

SaveWorkspaceFocus

هنگام جابه‌جایی به یک فضای کاری، تمرکز را به آخرین پنجره‌ای که پیش از ترک آن فضای کاری دارای تمرکز بود، با پرش نشانگر ماوس به داخل آن، بازمی‌گرداند. این کار اساساً پنجره دارای تمرکز را به همراه فضای کاری ذخیره کرده و هنگام تعویض فضا، آن را به طور خودکار بازیابی می‌کند. در بسیاری از موارد، این قابلیت مانع از نیاز به حرکت دادن ماوس پس از جابه‌جایی به یک فضای کاری جدید می‌شود.

SortIconManager

این متغیر مشخص می‌کند که مدخل‌ها در مدیر آیکون باید به ترتیب الفبایی مرتب شوند، به جای اینکه صرفاً پنجره‌های جدید به انتها افزوده شوند. از نگارش 4.0.0 این رفتار پیش‌فرض است.

SoundHost string

نام مستعار برای RplaySoundHost که در نسخه‌های پیش از 4.0.0 استفاده می‌شد. مگر اینکه به سازگاری عقب‌رو با آن‌ها نیاز داشته باشید، به جای آن از RplaySoundHost استفاده کنید. این نام مستعار در نگارش‌های آینده حذف خواهد شد.

SqueezeTitle [{ squeeze-list }]

این متغیر نشان می‌دهد که ctwm باید تلاش کند از افزونه SHAPE استفاده کند تا نوارهای عنوان تنها به اندازه فضای مورد نیاز خود فضا اشغال کنند، به جای اینکه در سراسر بخش بالایی پنجره امتداد یابند. فهرست اختیاری squeeze-list می‌تواند برای کنترل موقعیت نوار عنوان فشرده‌شده در بالای پنجره استفاده شود. این فهرست شامل مدخل‌هایی به شکل زیر است:
"name"  justification num denom

که در آن name نام پنجره است، justification یکی از مقادیر left، center، یا right است، و num و denom اعدادی هستند که نسبتی را برای تعیین موقعیت نسبی تراز شدن نوار عنوان مشخص می‌کنند. این نسبت اگر صورت کسر مثبت باشد از چپ به راست و اگر منفی باشد از راست به چپ سنجیده می‌شود. مخرج 0 نشان می‌دهد که صورت کسر باید به عنوان مقدار برحسب پیکسل تفسیر شود. برای حفظ سازگاری، موقعیت پیکسلی 0/0 همان میانه نسبی پنجره (1/2) برای center و سمت راست نسبی پنجره (2/2) برای right است، اما این نوع کاربرد توصیه نمی‌شود. از "right 2 2" برای موقعیت‌یابی نسبی یا "right -1 0"; برای موقعیت‌یابی مطلق استفاده کنید؛ این مورد هنگام کشیدن نوار عنوان تفاوت ایجاد می‌کند (به f.movetitlebar مراجعه کنید). برای مثال:

SqueezeTitle
{
    "XTerm"   left    0  0
    "xterm1"  left    1  3
    "xterm2"  left    2  3
    "oclock"  center  1  2
    "emacs"   right   2  2
}

موقعیت‌یابی پیش‌فرض، تراز چپ (left-justified) و مطلق در 0 پیکسل است. فهرست DontSqueezeTitle می‌تواند برای غیرفعال کردن فشرده‌سازی در برخی عنوان‌های خاص استفاده شود.

StartIconified { win-list }

این متغیر مشخص می‌کند که پنجره‌های کلاینت باید در ابتدا به‌صورت آیکون باقی بمانند تا زمانی که کاربر صراحتاً آن‌ها را از حالت آیکون خارج کند. اگر win-list اختیاری مشخص شده باشد، تنها همان پنجره‌ها در حالت آیکون راه‌اندازی می‌شوند. این ویژگی برای برنامه‌هایی که از گزینه خط فرمان یا منبع -iconic پشتیبانی نمی‌کنند، مفید است.

StartInButtonState

راه‌اندازی مدیر فضای کاری (WorkSpaceManager) در قالب دکمه‌ای. همچنین StartInMapState را ببینید. در نگارش 4.0.0 اضافه شد.

StartInMapState

این متغیر مشخص می‌کند که WorkSpaceManager هنگام ایجاد باید در قالب نقشه‌ای خود راه‌اندازی شود. همچنین StartInButtonState را ببینید. از نگارش 4.0.0 به بعد، این حالت پیش‌فرض است.

StartSqueezed { win-list }

این پنجره‌ها در ابتدا به‌صورت فشرده‌شده نمایش داده خواهند شد (تابع f.squeeze را ببینید).

StayUpMenus

به ctwm می‌گوید از منوهای ماندگار (StayUp) استفاده کند. این منوها هنگام رها شدن دکمه ماوس (ButtonUp) روی صفحه باقی می‌مانند، مشروط بر اینکه یا نشانگر هنوز وارد منو نشده باشد، یا آیتم فعلی از نوع f.title باشد.

StrictWinNameEncoding

سخت‌گیرانه عمل کردن در مورد کدگذاری‌های مجاز برای مشخصه‌های نام‌گذاری پنجره. در نگارش 4.0.2 اضافه شد.

این متغیر هنگام پردازش و تبدیل مشخصه‌های مربوط به نام پنجره‌ها، مانند WM_NAME استفاده می‌شود. برای نمونه، طبق استاندارد ICCCM، مشخصه WM_NAME فقط می‌تواند از نوع STRING یا COMPOUND_TEXT باشد. با این حال، برنامه‌های سهل‌انگار مانند کروم (Chrome) ممکن است آن را روی UTF8_STRING تنظیم کنند. اگر این متغیر تنظیم شود، ctwm آن را رد خواهد کرد؛ رفتاری که پیش از نگارش 4.0.2 استاندارد بود.

SunkFocusWindowTitle

این متغیر مشخص می‌کند که عنوان پنجره دارای فوکوس (در صورت وجود) به جای برجسته بودن، باید فرورفته باشد. تنها در صورتی معتبر است که UseThreeDTitles تنظیم شده باشد.

ThreeDBorderWidth pixels

عرض کادر سه‌بعدی به پیکسل، در صورت وجود.

TitleBackground string [{ win-list }]

این متغیر رنگ پس‌زمینه مورد استفاده در نوار عنوان را مشخص می‌کند و فقط می‌تواند درون یک فهرست Color یا Monochrome تعیین شود. مقدار اختیاری win-list فهرستی از نام‌های پنجره و رنگ‌ها است تا بتوان رنگ‌ها را برای هر پنجره به‌طور جداگانه تعیین کرد. مقدار پیش‌فرض “white” است.

TitleButtonBorderWidth pixels

این متغیر عرض کادر دور دکمه‌های نوار عنوان را به پیکسل مشخص می‌کند. این متغیر معمولاً روی 0 تنظیم می‌شود تا به دکمه‌های نوار عنوان اجازه دهد بیشترین فضای ممکن را اشغال کنند و کادری نداشته باشند. مقدار پیش‌فرض در صورت تنظیم نبودن UseThreeDTitles برابر 1 و در صورت تنظیم بودن آن برابر 0 است.

TitleButtonShadowDepth pixels

این متغیر عمق سایه‌ای را که ctwm برای دکمه‌های سه‌بعدی نوار عنوان استفاده می‌کند، در هنگام انتخاب UseThreeDTitles مشخص می‌سازد.

TitleFont string

این متغیر قلم (فونت) مورد استفاده برای نمایش نام پنجره‌ها در نوار عنوان را مشخص می‌کند. مقدار پیش‌فرض “variable” است.

TitleForeground string [{ win-list }]

این متغیر رنگ پیش‌زمینه مورد استفاده در نوار عنوان را مشخص می‌کند و فقط می‌تواند درون یک فهرست Color یا Monochrome تعیین شود. مقدار اختیاری win-list فهرستی از نام‌های پنجره و رنگ‌ها است تا بتوان رنگ‌ها را برای هر پنجره به‌طور جداگانه تعیین کرد. مقدار پیش‌فرض “black” است.

TitleJustification string

این کلمه کلیدی به یک مقدار رشته‌ای نیاز دارد. مقادیر پذیرفته‌شده عبارتند از: “left” (چپ‌چین)، “center” (وسط‌چین) و “right” (راست‌چین). عنوان پنجره‌ها بر اساس این تنظیم در پنجره عنوان تراز خواهند شد.

TitlePadding pixels

این متغیر فاصله بین دکمه‌های مختلف، متن و نواحی هایلایت در نوار عنوان را مشخص می‌کند. مقدار پیش‌فرض در صورت تنظیم نبودن UseThreeDTitles برابر 8 پیکسل و در صورت تنظیم بودن آن برابر 0 است.

TitleShadowDepth pixels

این متغیر عمق سایه‌ای را که ctwm برای عنوان‌های سه‌بعدی استفاده می‌کند، در هنگام انتخاب UseThreeDTitles مشخص می‌سازد.

TransientHasOccupation

این متغیر مشخص می‌کند که پنجره‌های وابسته (transient-for) و پنجره‌های غیرسرگروه می‌توانند اشتغال فضای کاری (occupation) اختصاصی خود را داشته باشند که بالقوه با پنجره سرگروه آن‌ها متفاوت باشد. در حالت پیش‌فرض این پنجره‌ها از سرگروه خود پیروی می‌کنند؛ اگر رفتار پیش‌فرض مطابق میلتان نیست، از این کلمه کلیدی استفاده کنید.

TransientOnTop percentage

این پارامتر (الزامی) یک مقدار درصدی است و به ctwm می‌گوید پنجره‌های موقت (و غیرسرگروه) را همیشه روی پنجره سرگروه خود قرار دهد، تنها در صورتی که مساحت آن‌ها کوچک‌تر از این کسر از مساحت پنجره سرگروه‌شان باشد. مساحت یک پنجره برابر با حاصل‌ضرب عرض در ارتفاع آن است. مقدار پیش‌فرض 30% است. در نگارش 3.0 اضافه شد.

UnknownIcon string

این متغیر نام فایل یک تصویر بیت‌مپ (bitmap) را برای استفاده به‌عنوان آیکون پیش‌فرض مشخص می‌کند. این بیت‌مپ به‌عنوان آیکون تمام کلاینت‌هایی که تصویر بیت‌مپ برای آیکون ارائه نمی‌دهند و در فهرست Icons نیز ذکر نشده‌اند، استفاده خواهد شد.

UnmapByMovingFarAway { win-list }

این پنجره‌ها هنگامی که به دلیل تغییر فضای کاری ناپدید می‌شوند، به جای برداشته شدن نگاشت (unmapped)، به خارج از صفحه منتقل می‌شوند. این ویژگی به این دلیل اضافه شده است که برخی کلاینت‌های بدرفتار (مانند Frame5) لغو نگاشت شدن را نمی‌پذیرند.

UsePPosition string

این متغیر مشخص می‌کند که آیا ctwm در صورت عدم وجود موقعیت مشخص‌شده توسط کاربر، باید به موقعیت‌های درخواست‌شده توسط برنامه (مشخص‌شده با پرچم PPosition در مشخصه WM_NORMAL_HINTS) احترام بگذارد یا خیر. آرگومان string می‌تواند یکی از سه مقدار زیر را داشته باشد: "off" (پیش‌فرض) که نشان می‌دهد ctwm باید موقعیت ارائه‌شده توسط برنامه را نادیده بگیرد، "on" که نشان می‌دهد این موقعیت باید اعمال شود، و "non-zero" که نشان می‌دهد در صورتی که موقعیت مقداری به غیر از (0,0) داشته باشد باید اعمال گردد. گزینه اخیر برای رفع اشکالی در جعبه‌ابزارهای قدیمی‌تر (Toolkits) است.

UseSunkTitlePixmap

این متغیر موجب می‌شود که هنگام از دست رفتن فوکوس، سایه‌های تصویر پیکسلی (pixmap) نوار عنوان معکوس شوند. این رفتار مشابه فعال بودن SunkFocusWindowTitle است، اما باعث فرورفتن فایل xbm یا XPM سه‌بعدی شما (در صورت وجود) می‌شود، نه کل نوار عنوان.

UseThreeDBorders

به ctwm می‌گوید از کادرهای پنجره با ظاهر سه‌بعدی استفاده کند. عرض کادرهای سه‌بعدی ThreeDBorderWidth است. رنگ کادر سه‌بعدی BorderTileBackground است، و اگر NoHighlight انتخاب نشده باشد، کادر پنجره دارای فوکوس BorderColor خواهد بود. تنظیم این گزینه به‌طور خودکار ClientBorderWidth را لغو می‌کند.

UseThreeDIconManagers

به ctwm می‌گوید در صورت وجود، از مدیرهای آیکون (IconManagers) با ظاهر سه‌بعدی استفاده کند.

UseThreeDMenus

به ctwm می‌گوید از منوهایی با ظاهر سه‌بعدی استفاده کند.

UseThreeDTitles

به ctwm می‌گوید از عنوان‌های پنجره با ظاهر سه‌بعدی استفاده کند. در این صورت، مقادیر پیش‌فرض TitleButtonBorderWidth، FramePadding، TitlePadding و ButtonIndent روی 0 تنظیم می‌شوند. تصاویر پیکسلی (pixmap) مقیاس‌پذیر داخلی متعددی برای دکمه‌ها وجود دارند: :xpm:menu، :xpm:dot، :xpm:cross، :xpm:bar، :xpm:vbar، :xpm:iconify، :xpm:resize، :xmp:sunkresize و :xpm:box. چندین پویانمایی (انیمیشن) مقیاس‌پذیر داخلی نیز برای دکمه‌ها موجود است: %xpm:resize، %xpm:menu-up، %xpm:menu-down، %xpm:resize-out-top، %xpm:resize-in-top، %xpm:resize-out-bot، %xpm:resize-in-bot، %xpm:maze-out، %xpm:maze-in، %xpm:zoom-out، %xpm:zoom-in و %xpm:zoom-inout. آن‌ها را امتحان کنید تا ظاهرشان را ببینید.

UseThreeDWMap

به ctwm می‌گوید برای پنجره‌های کوچک در نقشه فضای کاری از حالت سه‌بعدی استفاده کند.

WarpCursor [{ win-list }]

این متغیر مشخص می‌کند که نشانگر ماوس هنگام خارج شدن پنجره‌ها از حالت آیکون، باید به داخل آن‌ها هدایت (Warp) شود. اگر win-list اختیاری مشخص شده باشد، نشانگر تنها هنگام خروج همان پنجره‌ها از حالت آیکون منتقل خواهد شد.

WarpOnDeIconify { win-list }

هنگامی که ctwm درخواستی برای نگاشت یک پنجره دریافت می‌کند، معمولاً فقط آن را از حالت آیکون خارج می‌سازد؛ اما اگر پنجره در win-list باشد، در صورت نیاز آن را به فضای کاری جاری نیز منتقل می‌کند. برای مثال:
WarpOnDeIconify { "Emacs" }

اطمینان حاصل خواهد کرد که پنجره‌های emacs در صورت لزوم همیشه در فضای کاری جاری باز شوند (معمولاً زمانی که مینی‌بافر یا فریم Help در فضای کاری دیگری قرار دارد).

اولین بار در نگارش 4.0.0 معرفی شد.

WarpRingOnScreen

به ctwm می‌گوید تابع f.warpring نشانگر ماوس را تنها به پنجره‌های قابل مشاهده در فضای کاری جاری هدایت کند.

WarpToDefaultMenuEntry

(فقط همراه با StayUpMenus کاربرد دارد) هنگام استفاده از StayUpMenus، اگر منویی باز بماند، نشانگر ماوس به ورودی پیش‌فرض آن منو هدایت می‌شود.

WarpUnmapped

این متغیر مشخص می‌کند که تابع f.warpto باید هر پنجره آیکون‌شده‌ای را که با آن مواجه می‌شود از حالت آیکون خارج کند. این متغیر معمولاً برای ایجاد یک کلید میانبر استفاده می‌شود که پنجره خاصی (مانند xmh) را صرف‌نظر از مکانی که قرار دارد، به نمایش درآورد. رفتار پیش‌فرض تابع f.warpto نادیده گرفتن پنجره‌های آیکون‌شده است.

WindowGeometries { win-list }

برای تعیین ابعاد و موقعیت (geometry) پیش‌فرض برای برخی کلاینت‌ها استفاده می‌شود. هنگامی که پشتیبانی از XrandR کامپایل شده باشد، موقعیت می‌تواند نسبت به یک نمایشگر تعیین شود؛ با افزودن نام آن نمایشگر (قابل مشاهده با خط فرمان xrandr(1)) همراه با پیشوند :. در صورت عدم دسترسی به XrandR، این نام نادیده گرفته می‌شود:
WindowGeometries {
    "Mozilla*"       "1000x800+10+10"
    "jpilot*"        "HDMI1:800x600-0-0"
}

WindowRegion geomstring vgrav hgrav { win-list }

مشابه IconRegion، اما برای پنجره‌ها. توجه داشته باشید که win-list اختیاری نیست.

WindowRing [{ win-list }]

این متغیر فهرستی از پنجره‌ها را مشخص می‌کند که تابع f.warpring در میان آن‌ها می‌چرخد. اگر هیچ آرگومانی داده نشود، تمام پنجره‌ها در این حلقه قرار می‌گیرند.

WindowRingExclude [{ win-list }]

تمام پنجره‌های فهرست‌شده از WarpRing مستثنی خواهند شد.

WMgrButtonShadowDepth depth

کنترل عمق سایه دکمه‌های مدیر فضای کاری.

WMgrButtonStyle string

سبک دکمه‌های مدیر فضای کاری (هنگامی که در حالت دکمه‌ای است نه نقشه‌ای) و همچنین دکمه‌های پنجره Occupy را تنظیم می‌کند. گزینه‌های موجود عبارتند از normal (ظاهر سه‌بعدی پیش‌فرض)، style1، style2 و style3 (که ظاهرهای دوبعدی اندکی متفاوت هستند).

WMgrHorizButtonIndent nb_pixels

فاصله افقی بین دکمه‌های مدیر فضای کاری (در حالت دکمه‌ای) را به پیکسل مشخص می‌کند.

WMgrVertButtonIndent nb_pixels

فاصله عمودی بین دکمه‌های مدیر فضای کاری (در حالت دکمه‌ای) را به پیکسل مشخص می‌کند.

WorkSpaceFont string

به شما امکان می‌دهد قلم (فونت) مورد استفاده برای پنجره‌های کوچک در نقشه مدیر فضای کاری را مشخص کنید (-adobe-times-*-r-*--10-*-*-*-*-*-*-* را امتحان کنید).

WorkSpaceManagerGeometry string [ columns ]

این متغیر ابعاد و موقعیت (geometry) پنجره مدیر فضای کاری را مشخص می‌کند. آرگومان string یک قالب استاندارد مشخصات هندسی است که اندازه اولیه کامل مدیر فضای کاری را تعیین می‌کند. هنگامی که پشتیبانی از XrandR کامپایل شده باشد، موقعیت می‌تواند نسبت به یک نمایشگر تعیین شود؛ با افزودن نام آن نمایشگر (قابل مشاهده با خط فرمان xrandr(1)) همراه با پیشوند :. در صورت عدم دسترسی به XrandR، این نام نادیده گرفته می‌شود. آرگومان columns تعداد ستون‌های مورد استفاده برای پنجره مدیر فضای کاری را مشخص می‌کند.
WorkSpaceManagerGeometry        "360x60+60-0" 8
WorkSpaceManagerGeometry        "HDMI1:600x30+1235+0" 12

WorkSpaces { workspace-list }

این متغیر فهرستی از فضاهای کاری ایجادشونده هنگام راه‌اندازی را مشخص می‌کند، که در آن workspace-list به‌صورت زیر است:
name [{bg-button [fg-button] [bg-root] [fg-root] [pixmap-root]}]

همراه با:

bg-button

رنگ پس‌زمینه دکمه متناظر در مدیر فضای کاری.

fg-button

رنگ پیش‌زمینه دکمه متناظر در مدیر فضای کاری.

bg-root

رنگ پس‌زمینه صفحه ریشه متناظر.

fg-root

رنگ پیش‌زمینه صفحه ریشه متناظر.

pixmap-root

تصویر پیکسلی (pixmap) برای نمایش در صفحه ریشه متناظر؛ یا نام یک فایل بیت‌مپ، xpm:xpmfile، xwd:xwdfile، jpeg:jpgfile، یا |command_that generates_xwd.

مثال:

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"}
}

تعریف WorkSpaces باید قبل از تعاریف Occupy یا OccupyAll قرار گیرد. حداکثر تعداد فضاهای کاری ۳۲ است.

هر فضای کاری همچنین یک برچسب (label) دارد که هنگام قرار داشتن WorkSpaceManager در حالت دکمه‌ای نمایش داده می‌شود. با بردن نشانگر ماوس روی یک دکمه و تایپ حروف و/یا کلید پس‌بر (backspace)، می‌توانید برچسب را ویرایش کنید. نام فضای کاری بدون تغییر باقی می‌ماند. توابعی که فضاهای کاری را بر اساس نام جستجو می‌کنند، برچسب را نیز بررسی می‌نمایند.

XMoveGrid number

این متغیر مقداری را برای محدود کردن حرکت پنجره مشخص می‌کند. هنگام جابجایی پنجره‌ها، مختصات x همیشه مضربی از این متغیر خواهد بود. مقدار پیش‌فرض 1 است. تابع f.forcemove این متغیر را نادیده می‌گیرد.

XorValue number

این متغیر مقداری را برای استفاده هنگام ترسیم خطوط پیرامونی پنجره جهت جابجایی و تغییر اندازه مشخص می‌کند. این مقدار باید روی مقداری تنظیم شود که در صورت اعمال عملیات XOR (یا مانعه‌الجمع) با محتویات صفحه نمایش معمول کاربر، رنگ‌های متمایز گوناگونی حاصل شود. تنظیم این متغیر روی 1 در صورتی که رنگ‌های مجاور در جدول رنگ (colormap) پیش‌فرض متمایز باشند، اغلب نتایج خوبی به همراه دارد. به‌طور پیش‌فرض، ctwm تلاش می‌کند خطوط موقت در انتهای مخالف جدول رنگ نسبت به گرافیک ظاهر شوند.

YMoveGrid number

این متغیر مقداری را برای محدود کردن حرکت پنجره مشخص می‌کند. هنگام جابجایی پنجره‌ها، مختصات y همیشه مضربی از این متغیر خواهد بود. مقدار پیش‌فرض 1 است. تابع f.forcemove این متغیر را نادیده می‌گیرد.

Zoom [ count ]

این متغیر مشخص می‌کند هر زمان که پنجره‌ای به آیکون تبدیل شده یا از حالت آیکون خارج می‌شود، باید خطوط پیرامونی متحرکی که حرکت پنجره را به/از حالت آیکون نشان می‌دهند، نمایش داده شوند. آرگومان اختیاری count تعداد خطوط پیرامونی رسم‌شونده را مشخص می‌کند. مقدار پیش‌فرض 8 است.

متغیرهای زیر باید پس از تخصیص قلم‌ها تنظیم شوند، بنابراین معمولاً بهتر است آن‌ها را در انتهای بخش متغیرها یا ابتدای بخش مقیدسازی‌ها (bindings) قرار دهید:

ChangeWorkspaceFunction function

این متغیر تابعی را مشخص می‌کند که باید هنگام تغییر فضای کاری جاری توسط کاربر (zap) اجرا شود.

DefaultFunction function

این متغیر تابعی را مشخص می‌کند که باید هنگام دریافت رویداد کلید یا دکمه‌ای که هیچ مقیدسازی (binding) برای آن تعریف نشده است، اجرا شود. این متغیر معمولاً به f.nop، f.beep یا منویی شامل عملیات پنجره مقید می‌شود.

DeIconifyFunction function

این متغیر تابعی را مشخص می‌کند که باید هنگام خروج یک پنجره از حالت آیکون اجرا شود.

IconifyFunction function

این متغیر تابعی را مشخص می‌کند که باید هنگام تبدیل یک پنجره به آیکون اجرا شود.

WindowFunction function

این متغیر تابعی را مشخص می‌کند که باید هنگام انتخاب یک پنجره از منوی TwmWindows اجرا شود. اگر این متغیر تنظیم نشود، پنجره از حالت آیکون خارج شده و به بالا آورده می‌شود (raised).

پس از تنظیم متغیرهای مورد نظر، می‌توان توابع را به دکمه‌های نوار عنوان (titlebuttons) و دکمه‌های کلید و اشاره‌گر متصل کرد. دکمه‌های نوار عنوان را می‌توان از سمت چپ یا راست اضافه کرد و آن‌ها بر اساس ترتیبی که مشخص شده‌اند، از چپ به راست در نوار عنوان ظاهر می‌شوند. اتصالات دکمه‌های کلید و اشاره‌گر را می‌توان به هر ترتیبی تعیین کرد.

مشخصات دکمه‌های نوار عنوان باید شامل نام پیکس‌مپ مورد استفاده در جعبه دکمه و تابعی باشد که هنگام فشردن دکمه اشاره‌گر در داخل آن‌ها فراخوانی می‌شود:

LeftTitleButton "bitmapname" = function

یا

LeftTitleButton "bitmapname" {
    Buttoni = modlist : function
    ...
    Buttonj = function
}

یا

RightTitleButton "bitmapname" = function

یا

RightTitleButton "bitmapname" {
    Buttoni = modlist : function
    ...
    Buttonj = function
}

مقدار bitmapname می‌تواند با استفاده از نام مناسب با پیشوند دونقطه که در بالا توضیح داده شد، به یکی از بیت‌مپ‌های داخلی (که متناسب با TitleFont مقیاس‌بندی می‌شوند) ارجاع دهد.

مشخصات دکمه‌های اشاره‌گر به دو صورت ارائه می‌شوند: همراه با فهرستی از کلیدهای تغییردهنده (modifier) یا بدون آن. هنگامی که مشخصات بدون فهرست کلیدهای تغییردهنده ارائه می‌شود، برای حالتی به کار می‌رود که از هیچ کلید تغییردهنده‌ای استفاده نشده باشد. به عبارت دیگر، دو خط زیر معادل یکدیگرند:

Buttoni = function
Buttoni = : function

مشخصات دکمه‌های کلید و اشاره‌گر باید تعیین کنند که کدام کلیدهای تغییردهنده باید فشرده شوند، اشاره‌گر باید روی کدام بخش‌های صفحه قرار داشته باشد و چه تابعی باید فراخوانی شود. کلیدها به صورت رشته‌هایی شامل نام مناسب keysym ارائه می‌شوند؛ دکمه‌ها با کلمات کلیدی Button1-Button11 مشخص می‌گردند:

"FP1"   = modlist : context : function
Button1 = modlist : context : function

کاربری که می‌خواهد بتواند پنجره‌ها را از طریق صفحه‌کلید کنترل کند، می‌تواند از اتصالات زیر استفاده نماید:

"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

مدیر پنجره ctwm دستورات پایه بسیار بیشتری برای مدیریت پنجره‌ها نسبت به آنچه بتوان به راحتی در نوار عنوان، منو یا مجموعه‌ای از اتصالات کلید جا داد، فراهم می‌کند. اگرچه مجموعه‌ای کوچک از پیش‌فرض‌ها ارائه شده است (مگر اینکه NoDefaults مشخص شده باشد)، بیشتر کاربران مایلند پرکاربردترین عملیات خود را به فشردن کلیدها و دکمه‌ها متصل کنند. برای این کار، ctwm نام‌هایی را به هر یک از این دستورات پایه اختصاص می‌دهد و توابع تعریف‌شده توسط کاربر را برای ساخت دستورات سطح بالاتر و منوهایی جهت انتخاب تعاملی بین گروه‌هایی از توابع فراهم می‌سازد.

مقدار modlist امکان مشخص کردن اتصالات متفاوت برای یک دکمه یا کلید را در زمان اعمال کلیدهای تغییردهنده فراهم می‌کند. فهرست نام‌های شناخته‌شده تغییردهنده‌ها (همراه با اختصار آن‌ها) عبارتند از: shift (s)، control (c)، lock (l)، alter1 (a1)، alter2 (a2)، alter3 (a3)، alter4 (a4)، alter5 (a5)، meta (m)، mod1 (m1)، mod2 (m2)، mod3 (m3)، mod4 (m4) و mod5 (m5). می‌توان با ترکیب چندین تغییردهنده با استفاده از خط عمودی (|)، آن‌ها را در یک خط اعمال کرد. برای مثال:

# 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"

تغییردهنده lock به کلید CapsLock اشاره دارد. meta عموماً همان کلید Alt شماست. mod1 همان meta است. mod2..5 می‌توانند معانی خاص مختلفی داشته باشند؛ اجرای xmodmap -pm را امتحان کنید تا ببینید کارساز X شما چگونه موارد را نگاشت می‌کند (برنامه xkeycaps نیز ممکن است مفید باشد). تغییردهنده‌های alter1..5 به نقشه‌های کلید جایگزین ctwm اشاره دارند؛ برای جزئیات به توضیحات f.altkeymap در زیر مراجعه کنید.

توجه داشته باشید که اگر از پیش‌پردازنده m4 استفاده می‌کنید، بیشتر پیاده‌سازی‌ها یک ماکروی shift را به صورت داخلی تعریف می‌کنند، بنابراین استفاده از آن به عنوان یک تغییردهنده بدون هیچ پیامی به درستی کار نخواهد کرد. برای دور زدن این مشکل، باید آن را درون کوتیشن قرار دهید تا m4 آن را به صورت یک رشته متنی عیناً عبور دهد: `shift'.

گزینه context به شما امکان می‌دهد مشخص کنید کدام نگاشت‌ها بر اساس موقعیت فعلی اشاره‌گر روی صفحه اعمال شوند. گزینه‌های موجود عبارتند از: window (w)، title (t)، icon (i)، root (r)، frame (f)، workspace (بدون اختصار)، iconmgr (m) و alter (a). همانند تغییردهنده‌های بالا، این موارد نیز می‌توانند با یک خط عمودی ترکیب شوند که به شما اجازه می‌دهد یک عمل را به طور همزمان در چندین زمینه متصل کنید. به عنوان روش دیگر، می‌توان all را برای زمینه تعیین کرد تا مشخص شود اتصال باید در همه جا رخ دهد. این مقدار معادل ترکیب تمام انتخاب‌هاست (به جز alter که خاص است).

زمینه alter اجازه اتصال تابع را هنگام قرار داشتن در زمینه جایگزین فراهم می‌کند؛ برای جزئیات به تابع f.altcontext در زیر مراجعه کنید.

یک مقدار جادویی احتمالی دیگر نیز برای context وجود دارد؛ اگر یک رشته درون کوتیشن (به عنوان مثال، "MyXterm") برای زمینه یک اتصال کلید (اما نه دکمه) مشخص کنید، آن اتصال تابع مربوطه را در زمینه پنجره برای تمام پنجره‌هایی که با آن نام مطابقت دارند فعال می‌کند. به عنوان مثال:

# Pressing "F1" anywhere on the screen will cause all windows with name
# "xterm" to raise themselves.
"F1" = : "xterm" : f.raise

توجه داشته باشید که اگر چندین پنجره با نام مطابقت داشته باشند، این کار می‌تواند اثرات جانبی عجیبی به همراه داشته باشد، به ویژه اگر تابع باعث تداخل پنجره‌ها با یکدیگر شود (به عنوان مثال در نمونه بالا، اگر دو پنجره "xterm" روی یکدیگر همپوشانی داشته باشند).

مقدار function در یک اتصال، هر یک از کلمات کلیدی f. است که در زیر شرح داده شده‌اند. برای مثال، فایل راه‌اندازی پیش‌فرض شامل اتصالات زیر است:

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

توابع تعریف‌شده توسط کاربر شامل نامی هستند که با آن در فراخوانی‌های f.function به آن‌ها ارجاع داده می‌شود و فهرستی از توابع دیگر برای اجرا. برای مثال:

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 }

نام تابع باید در f.function دقیقاً همان‌گونه که در مشخصات تابع آمده است استفاده شود.

در توضیحات زیر، اگر گفته شود تابعی روی پنجره انتخاب‌شده عمل می‌کند، اما از یک منوی ریشه (root menu) فراخوانی شده باشد، مکان‌نما به مکان‌نمای Select تغییر می‌یابد و پنجره بعدی که کلیک دکمه را دریافت کند، انتخاب خواهد شد:

! string

این یک علامت اختصاری برای f.exec string است.

f.addtoworkspace string

این تابع پنجره انتخاب‌شده را به فضای کاری با نام string اضافه می‌کند.

f.altcontext

زمینه جایگزین را تنظیم می‌کند. رویداد کلید یا دکمه بعدی که ctwm دریافت می‌کند، با استفاده از زمینه جایگزین تفسیر خواهد شد. برای تعریف اتصالات در زمینه جایگزین، از کلمه کلیدی alter در فیلد زمینه دستور اتصال استفاده کنید. برای مثال:
"Return" = m : all   : f.altcontext
"n" =        : alter : f.nextworkspace
"p" =        : alter : f.prevworkspace

f.altkeymap number

نقشه کلید جایگزین number را تنظیم می‌کند که در آن number یک عدد صحیح بین ۱ تا ۵ (شامل خود آن‌ها) است. رویداد کلید یا دکمه بعدی که ctwm دریافت می‌کند، با استفاده از این نقشه کلید جایگزین تفسیر خواهد شد. برای تعریف اتصالات در یک نقشه کلید جایگزین، از کلمه کلیدی a و به دنبال آن number در فیلد تغییردهنده دستور اتصال استفاده کنید. برای مثال:
"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

هنگام استفاده از نقشه‌های کلید جایگزین، فقط زمینه‌های root، window، icon و iconmgr مجاز هستند.

f.autolower

این تابع وضعیت پایین رفتن خودکار پنجره انتخاب‌شده هنگام خروج اشاره‌گر از آن را تغییر می‌دهد (فعال/غیرفعال). به توضیحات متغیر AutoLower مراجعه کنید.

f.autoraise

این تابع وضعیت بالا آمدن خودکار پنجره انتخاب‌شده هنگام ورود اشاره‌گر به آن را تغییر می‌دهد (فعال/غیرفعال). به توضیحات متغیر AutoRaise مراجعه کنید.

f.backiconmgr

این تابع اشاره‌گر را به ستون قبلی در مدیر آیکون فعلی پرش (warp) می‌دهد و در صورت لزوم به سطر قبلی بازمی‌گردد.

f.backmapiconmgr

این تابع اشاره‌گر را همانند f.backiconmgr پرش می‌دهد، اما فقط روی پنجره‌هایی توقف می‌کند که نگاشت (mapped) شده باشند.

f.beep

این تابع زنگ صفحه‌کلید را به صدا درمی‌آورد.

f.bottomzoom

این تابع لبه پایینی پنجره را تا لبه پایینی نمایشگر فعلی گسترش می‌دهد، یا در صورتی که پنجره قبلاً bottomzoom شده باشد، اندازه اصلی آن را بازمی‌گرداند.

f.changepriority rel-value

اولویت یک پنجره را به اندازه rel-value (محصور در جفت‌گیومه) تغییر می‌دهد. برای مثال، جهت فرستادن یک پنجره به یک سطح پایین‌تر، از f.changepriority "-1" استفاده می‌کنید. به متغیر OnTopPriority مراجعه کنید.

نخستین بار در نسخه 4.0.0 ارائه شد.

f.changesize string

این تابع به شما اجازه می‌دهد اندازه پنجره دارای فوکوس را تغییر دهید. قالب رشته باید به صورت "<border> <+|-><sizechange>" (که در آن <border> باید یکی از top، bottom، left یا right باشد) یا "<x size>x<y size>" (که در آن اندازه، اندازه جدید درخواستی برای پنجره است) باشد. ارتفاع پنجره هرگز نمی‌تواند به کمتر از ارتفاع عنوان + ۱ (یا ۱ اگر پنجره بدون نوار عنوان باشد) تنظیم/تغییر داده شود و پهنای پنجره نیز هرگز نمی‌تواند به کمتر از ۱ تنظیم/تغییر یابد.
"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"

f.circledown

این تابع بالاترین پنجره‌ای را که پنجره دیگری را پوشانده است، به پایین می‌برد.

f.circleup

این تابع پایین‌ترین پنجره‌ای را که توسط پنجره دیگری پوشانده شده است، بالا می‌آورد.

f.colormap string

این تابع نقشه‌های رنگی (به‌دست‌آمده از ویژگی WM_COLORMAP_WINDOWS روی پنجره) را که ctwm هنگام قرار گرفتن اشاره‌گر در این پنجره نمایش می‌دهد، جابه‌جا می‌کند. آرگومان string می‌تواند یکی از مقادیر زیر را داشته باشد: "next"، "prev" و "default". در اینجا باید توجه داشت که به طور کلی، نقشه رنگی نصب‌شده توسط فوکوس صفحه‌کلید تعیین می‌شود. فوکوس صفحه‌کلید مبتنی بر اشاره‌گر، به محض ورود به پنجره صاحب نقشه رنگی، یک نقشه رنگی اختصاصی را نصب می‌کند. در مدل کلیک برای تایپ (click to type)، نقشه‌های رنگی اختصاصی تا زمانی که کاربر دکمه ماوس را روی پنجره هدف فشار ندهد، نصب نخواهند شد.

f.deiconify

این تابع پنجره انتخاب‌شده را از حالت آیکون خارج می‌کند. اگر پنجره آیکون نباشد، این تابع کاری انجام نمی‌دهد.

f.delete

اگر برنامه کلاینت از طریق ویژگی پنجره WM_PROTOCOLS درخواست کرده باشد، این تابع پیام WM_DELETE_WINDOW را به پنجره انتخاب‌شده ارسال می‌کند. از برنامه انتظار می‌رود با بستن پنجره مشخص‌شده به این پیام پاسخ دهد. اگر پنجره پیام‌های WM_DELETE_WINDOW را درخواست نکرده باشد، زنگ صفحه‌کلید به صدا درمی‌آید که نشان می‌دهد کاربر باید از روش دیگری استفاده کند. توجه داشته باشید که این تابع با f.destroy بسیار متفاوت است؛ هدف در اینجا حذف یک پنجره منفرد است، نه لزوماً کل برنامه.

f.deleteordestroy

ابتدا سعی می‌کند پنجره را حذف کند (پیام WM_DELETE_WINDOW را به آن ارسال کند)، یا اگر کلاینت چنین پیامی را نمی‌پذیرد، آن را می‌کشد (kill می‌کند).

f.deltastop

این تابع امکان متوقف کردن یک تابع تعریف‌شده توسط کاربر را در صورتی که اشاره‌گر بیش از MoveDelta پیکسل حرکت کرده باشد، فراهم می‌کند. به مثال تعریف‌شده برای Function "move-or-raise" در ابتدای این بخش مراجعه کنید.

f.destroy

این تابع به کارساز X دستور می‌دهد تا اتصال نمایش کلاینتی را که پنجره انتخاب‌شده را ایجاد کرده است، ببندد. این عمل فقط باید به عنوان آخرین راه‌حل برای متوقف کردن کلاینت‌های سرکش استفاده شود. همچنین به f.delete مراجعه کنید.

f.downiconmgr

این تابع اشاره‌گر را به سطر بعدی در مدیر آیکون فعلی پرش می‌دهد و در صورت لزوم به ابتدای ستون بعدی می‌رود.

f.downworkspace

به فضای کاری دقیقاً زیر فضای کاری فعلی در مدیر فضای کاری می‌رود. اگر فضای کاری فعلی پایین‌ترین مورد باشد، به بالاترین فضای کاری در همان ستون می‌رود. نتیجه به چیدمان مدیر فضای کاری بستگی دارد.

f.exec string

این تابع آرگومان string را جهت اجرا به /bin/sh ارسال می‌کند. در حالت چندصفحه‌ای، اگر string یک کلاینت جدید X را بدون ارائه آرگومان display راه‌اندازی کند، کلاینت در همان صفحه‌ای که این تابع از آن فراخوانی شده است ظاهر خواهد شد. اگر رشته “$currentworkspace” در داخل آرگومان متنی وجود داشته باشد، با نام فضای کاری فعلی جایگزین می‌شود.

f.fill string

که در آن string یکی از موارد: “right”، “left”، “top”، “bottom” یا “vertical” است. پنجره فعلی در جهت مشخص‌شده تا رسیدن به یک مانع (پنجره‌ای دیگر یا لبه صفحه) تغییر اندازه می‌دهد. دستور f.fill “vertical” وضعیت پنجره را به “zoomed” تغییر داده و به صورت کلید دوحالته عمل می‌کند؛ یعنی فراخوانی مجدد آن، اندازه قبلی پنجره را بازمی‌گرداند.

f.focus

این تابع فوکوس صفحه‌کلید کارساز را روی پنجره انتخاب‌شده فعال یا غیرفعال می‌کند و در صورت لزوم قاعده فوکوس را از حالت مبتنی بر اشاره‌گر تغییر می‌دهد. اگر پنجره انتخاب‌شده از قبل فوکوس داشته باشد، این تابع یک f.unfocus را اجرا می‌کند.

f.forcemove

این تابع شبیه f.move است، با این تفاوت که متغیر DontMoveOff را نادیده می‌گیرد.

f.forwiconmgr

این تابع اشاره‌گر را به ستون بعدی در مدیر آیکون فعلی پرش می‌دهد و در صورت لزوم به ابتدای سطر بعدی بازمی‌گردد.

f.forwmapiconmgr

این تابع اشاره‌گر را به همان روش f.forwiconmgr پرش می‌دهد، اما فقط روی پنجره‌هایی توقف می‌کند که نگاشت (mapped) شده باشند.

f.fullscreenzoom

این تابع شبیه تابع f.fullzoom است، با این تفاوت که اندازه پنجره کلاینت (بخش درون قاب) را به اندازه نمایشگر فعلی درمی‌آورد، به طوری که تزئینات پنجره خارج از صفحه قرار می‌گیرند. این کار همان جلوه بصری پوشاندن کل صفحه توسط پنجره بدون هیچ تزئیناتی را ایجاد می‌کند. اگر پنجره از قبل fullscreenzoom شده باشد، اندازه اصلی آن را بازمی‌گرداند.

f.fullzoom

این تابع اندازه پنجره انتخاب‌شده را به اندازه کامل نمایشگر فعلی تغییر می‌دهد، یا اگر پنجره از قبل fullzoom شده باشد، اندازه اصلی آن را بازمی‌گرداند.

f.function string

این تابع، تابع تعریف‌شده توسط کاربر را که نام آن با آرگومان string مشخص شده است اجرا می‌کند.

f.gotoworkspace workspace_name

این تابع شما را به فضای کاری با نام workspace_name منتقل (warp) می‌کند.

f.hbzoom

این تابع مترادفی برای f.bottomzoom است.

f.hideiconmgr

این تابع مدیر آیکون فعلی را پنهان (unmap) می‌کند.

f.hideworkspacemgr

مدیر فضای کاری را پنهان (unmap) می‌کند.

f.horizoom

این تابع پنجره را طوری گسترش می‌دهد که تمام عرض نمایشگر فعلی را بپوشاند، یا در صورتی که پنجره از قبل horizoom شده باشد، اندازه اصلی آن را بازمی‌گرداند.

f.htzoom

این تابع مترادفی برای f.topzoom است.

f.hzoom

این تابع مترادفی برای f.horizoom است.

f.iconify

این تابع پنجره یا آیکون انتخاب‌شده را به ترتیب به آیکون تبدیل یا از حالت آیکون خارج می‌کند.

f.identify

این تابع خلاصه‌ای از نام و ابعاد هندسی پنجره انتخاب‌شده را نمایش می‌دهد. کلیک کردن با اشاره‌گر یا فشردن یک کلید در پنجره، آن را می‌بندد.

f.initsize

این تابع پنجره را به اندازه اولیه خود که توسط مشخصه‌های WM_NORMAL_HINTS تعیین شده است بازنشانی می‌کند.

f.jumpdown step

این تابع برای اتصال به یک کلید طراحی شده است و پنجره فعلی را به اندازه (step * {X,Y}MoveGrid) پیکسل به سمت پایین جابه‌جا می‌کند و در صورت برخورد پنجره با پنجره‌ای دیگر یا لبه صفحه متوقف می‌شود (مشابه f.pack).

f.jumpleft step

معادل حرکت به سمت چپ برای f.jumpdown.

f.jumpright step

معادل حرکت به سمت راست برای f.jumpdown.

f.jumpup step

معادل حرکت به سمت بالا برای f.jumpdown.

f.lefticonmgr

این تابع شبیه به f.backiconmgr است، با این تفاوت که بازگشت به ابتدا (wrapping) سطرها را تغییر نمی‌دهد.

f.leftworkspace

به فضای کاری دقیقاً در سمت چپ فضای کاری فعلی در مدیر فضای کاری می‌رود. اگر فضای کاری فعلی چپ‌ترین مورد باشد، به راست‌ترین فضای کاری در همان سطر می‌رود. نتیجه به چیدمان مدیر فضای کاری بستگی دارد.

f.leftzoom

این تابع لبه سمت چپ پنجره را تا لبه چپ نمایشگر فعلی گسترش می‌دهد، یا در صورتی که پنجره قبلاً leftzoom شده باشد، اندازه اصلی آن را بازمی‌گرداند.

f.lower

این تابع پنجره انتخاب‌شده را پایین می‌برد.

f.menu string

این تابع منوی مشخص‌شده توسط آرگومان string را فراخوانی می‌کند. منوهای آبشاری را می‌توان با تودرتو کردن فراخوانی‌های f.menu ساخت. هنگامی که یک منو باز می‌شود، می‌توانید از کلیدهای جهت‌نما برای حرکت مکان‌نما در آن استفاده کنید؛ کلید «Down» یا فاصله به پایین می‌رود، «Up» به بالا می‌رود، «Left» منو را می‌بندد و «Right» ورودی فعلی را فعال می‌کند. حرف اول نام یک ورودی، آن ورودی را فعال می‌کند (اگر چند ورودی مطابقت داشته باشند، اولین مورد). اگر حرف اول ~ باشد، ترکیب کلید مِتا با حرف دوم آن را فعال می‌کند، اگر این حرف اول ^ باشد، ترکیب کلید کنترل با حرف دوم آن را فعال می‌کند، و اگر این حرف اول فاصله باشد، حرف دوم آن را فعال خواهد کرد.

f.move

این تابع طرح کلی پنجره انتخاب‌شده (یا خود پنجره را در صورت تنظیم متغیر OpaqueMove) تا زمان رها شدن دکمه فراخواننده اشاره‌گر می‌کشد (drag می‌کند). دوبار کلیک کردن در بازه زمانی میلی‌ثانیه‌ای تعیین‌شده توسط ConstrainedMoveTime، اشاره‌گر را به مرکز پنجره پرش می‌دهد و بسته به اینکه از کدام خط شبکه عبور شود، حرکت را به افقی یا عمودی محدود می‌کند. برای لغو حرکت، قبل از رها کردن دکمه اول، دکمه دیگری را فشار دهید.

f.movepack

این تابع شبیه به f.move است، با این تفاوت که سعی می‌کند از همپوشانی پنجره‌ها جلوگیری کند. هنگامی که پنجره در حال حرکت شروع به همپوشانی با پنجره دیگری می‌کند، حرکت متوقف می‌شود. اگر بیش از حد روی پنجره دیگر بروید (بیش از MovePackResistance پیکسل)، حرکت از سر گرفته می‌شود و پنجره در حال حرکت می‌تواند با پنجره دیگر همپوشانی داشته باشد. برای چیدمان فشرده پنجره‌ها در کنار یکدیگر مفید است.

f.movepush

این تابع شبیه f.move است، با این تفاوت که تلاش می‌کند از هم‌پوشانی پنجره‌ها جلوگیری کند. هنگامی که پنجرهٔ در حال جابه‌جایی شروع به هم‌پوشانی با پنجرهٔ دیگری می‌کند، پنجرهٔ دیگر هل داده می‌شود. اگر بیش از حد بر روی پنجرهٔ دیگر بروید (بیشتر از MovePackResistance پیکسل)، هیچ هل‌دادنی رخ نمی‌دهد و پنجرهٔ در حال جابه‌جایی می‌تواند روی پنجرهٔ دیگر هم‌پوشانی داشته باشد. تنها زمانی در دسترس است که OpaqueMove فعال باشد.

f.moveresize geometry

یک آرگومان رشته‌ای می‌گیرد که یک موقعیت و ابعاد هندسی با نحو استاندارد هندسهٔ X است (مانند 200x300+150-0). پنجرهٔ فعلی را روی ابعاد هندسی مشخص‌شده تنظیم می‌کند. پهنا و ارتفاع باید بر حسب پیکسل داده شوند، هیچ اندازهٔ پایه یا گام تغییر اندازه‌ای به کار برده نمی‌شود. هنگامی که پشتیبانی از XrandR کامپایل شده باشد، موقعیت هندسی می‌تواند نسبت به یک مانیتور باشد، با قرار دادن نام آن (که با خط فرمان xrandr(1) قابل مشاهده است) به عنوان پیشوند به همراه : (مانند HDMI1:200x300+150-0). این نام در صورت در دسترس نبودن XrandR نادیده گرفته می‌شود.

f.movetitlebar

اگر بر روی یک نوار عنوان جمع‌شده (squeezed، بخش SqueezeTitle را ببینید) اعمال شود، می‌توانید آن را در طول بالای پنجره بکشید (قابلیتی که نخستین بار در BeOS دیده شد). نوع تراز موجود و همچنین موقعیت‌دهی (نسبی یا مطلق) حفظ می‌شود. این بدان معناست که یک نوار عنوان با موقعیت نسبی با تغییر پهنای پنجره حرکت خواهد کرد، در حالی که عنوان با موقعیت مطلق حرکتی نخواهد داشت. موقعیت‌دهی پیش‌فرض به صورت چپ‌چین، مطلق در ۰ پیکسل است.
Button1 = m1 : title : f.movetitlebar

اگر پنجره عنوانی نداشته باشد، پنجره جمع‌شده باشد (f.squeeze را ببینید)، یا عنوان جمع نشده باشد (SqueezeTitle را ببینید)، f.movetitlebar هیچ کاری انجام نمی‌دهد.

f.movetonextworkspace, f.movetonextworkspaceandfollow

پنجره را به فضای کاری بعدی منتقل می‌کند، و در صورت تمایل نمای دید را نیز به آن فضای کاری تغییر می‌دهد.

f.movetoprevworkspace, f.movetoprevworkspaceandfollow

پنجره را به فضای کاری قبلی منتقل می‌کند، و در صورت تمایل نمای دید را به آن فضای کاری تغییر می‌دهد.

f.nexticonmgr

این تابع اشاره‌گر را به مدیر آیکون بعدی که حاوی هرگونه پنجره‌ای در صفحهٔ فعلی یا هر صفحهٔ بعدی باشد، پرش می‌دهد.

f.nextworkspace

رفتن به فضای کاری بعدی در فهرست، با استفاده از ترتیبی که در فایل .ctwmrc آمده است.

f.nop

این تابع هیچ کاری انجام نمی‌دهد و معمولاً با متغیرهای DefaultFunction یا WindowFunction یا برای ایجاد خطوط خالی در منوها استفاده می‌شود.

f.occupy

این تابع پنجره‌ای باز می‌کند تا کاربر بتواند انتخاب کند پنجره متعلق به کدام فضاهای کاری باشد.

f.occupyall

این تابع باعث می‌شود پنجرهٔ مشخص‌شده تمامی فضاهای کاری را اشغال کند.

f.pack string

که در آن string یکی از موارد زیر است: “right”،‏ “left”،‏ “top” یا “bottom”. پنجرهٔ فعلی در جهت مشخص‌شده حرکت داده می‌شود تا به یک مانع برسد (خواه پنجره‌ای دیگر یا لبهٔ صفحه نمایش). اشاره‌گر به دنبال پنجره حرکت می‌کند.

f.pin

تنها در یک منوی ریشه معتبر است. یک منو را بر روی صفحه نمایش دائمی می‌کند. این یک تابع تعویض وضعیت (toggle) است؛ اگر هنگامی که منو از قبل دائمی است آن را انتخاب کنید، به حالت غیردائمی تبدیل می‌شود.

f.previconmgr

این تابع اشاره‌گر را به مدیر آیکون قبلی که حاوی هرگونه پنجره‌ای در صفحهٔ فعلی یا صفحه‌های قبلی باشد پرش می‌دهد.

f.prevworkspace

رفتن به فضای کاری قبلی در فهرست، با استفاده از ترتیبی که در فایل .ctwmrc آمده است.

f.priorityswitching

قابلیت تعویض پنجره را تغییر وضعیت می‌دهد (toggle می‌کند). ارجاع متقابل به متغیرهای PrioritySwitching و OnTopPriority.

نخستین بار در نسخهٔ 4.0.0 ارائه شد.

f.quit

این تابع باعث می‌شود ctwm حاشیه‌های پنجره را بازیابی کرده و خارج شود. اگر ctwm نخستین کلاینتی باشد که از xdm فراخوانی شده است، این کار منجر به بازنشانی کارساز خواهد شد.

f.raise

این تابع پنجرهٔ انتخاب‌شده را بالا می‌آورد.

f.raiseicons

این تابع تمامی آیکون‌های موجود در فضای کاری فعلی را به بالاترین سطح می‌آورد.

f.raiselower

این تابع در صورتی که پنجرهٔ انتخاب‌شده توسط هر پنجره‌ای پوشانده شده باشد، آن را به بالای ترتیب پشته‌سازی می‌آورد؛ در غیر این صورت پنجره به پایین فرستاده خواهد شد.

f.raiseorsqueeze

پنجره را بالا می‌آورد، یا در صورتی که دوبار کلیک باشد آن را جمع (squeeze) می‌کند. زمانی که دوبار کلیک را تعریف می‌کند با متغیر ConstrainedMoveTime مشخص می‌شود.

نخستین بار در نسخهٔ 4.0.0 ارائه شد.

f.refresh

این تابع باعث بازآوری تمامی پنجره‌ها می‌شود.

f.removefromworkspace string

این تابع پنجرهٔ انتخاب‌شده را از فضای کاری که نام آن string است حذف می‌کند.

f.rereadsounds

این تابع باعث می‌شود فایل .ctwm-sounds دوباره خوانده شود. توجه داشته باشید که این تابع صداهای تعیین‌شده در RplaySounds در فایل پیکربندی را دوباره نمی‌خواند. در نتیجه، با حذف پشتیبانی از .ctwm-sounds در آینده، این تابع احتمالاً حذف خواهد شد. بخش SOUNDS را ببینید.

f.rescuewindows

اگر به هر طریقی پنجره‌ای را از محدودهٔ دید خارج کرده‌اید، فراخوانی این تابع تمامی پنجره‌ها و آیکون‌های موجود در صفحه‌های مجازی قابل‌مشاهدهٔ فعلی را بررسی می‌کند، و مواردی را که (تقریباً) از محدودهٔ صفحهٔ مجازی خود خارج شده‌اند کاملاً به داخل بازمی‌گرداند (در صورتی که جا شود).

نخستین بار در نسخهٔ 4.0.0 ارائه شد.

f.resize

این تابع خطوط پیرامونی پنجرهٔ انتخاب‌شده را نمایش می‌دهد. عبور از یک حاشیه (یا تنظیم AutoRelativeResize) باعث می‌شود خطوط پیرامونی حالت کشسانی (rubber band) به خود بگیرد تا زمانی که دکمهٔ فراخواننده رها شود. برای لغو تغییر اندازه، پیش از رها کردن دکمهٔ اول، دکمهٔ دیگری را فشار دهید.

f.restart

این تابع ctwm را متوقف کرده و مجدداً راه‌اندازی می‌کند.

f.restoregeometry

ابعاد و موقعیت هندسی پنجرهٔ فعلی را به آنچه در آخرین فراخوانی f.savegeometry ذخیره شده بود بازیابی می‌کند.

f.righticonmgr

این تابع شبیه f.nexticonmgr است، با این تفاوت که چرخش به ابتدا سطرها را تغییر نمی‌دهد.

f.rightworkspace

رفتن به فضای کاری بلافاصله در سمت راست فضای کاری فعلی در مدیر فضای کاری. اگر فضای کاری فعلی راست‌ترین مورد باشد، به چپ‌ترین مورد در همان ردیف می‌رود. نتیجه به چیدمان مدیر فضای کاری بستگی دارد.

f.rightzoom

این تابع سمت راست پنجره را تا لبهٔ راست مانیتور فعلی می‌کشد، یا در صورتی که پنجره از قبل rightzoom شده باشد اندازهٔ اصلی را بازیابی می‌کند.

f.ring

پنجره‌ای را انتخاب کرده و آن را به WarpRing اضافه می‌کند، یا اگر از قبل در حلقه بوده باشد آن را حذف می‌کند. این دستور با پویا ساختن پیکربندی f.warpring، آن را بسیار کاربردی‌تر می‌سازد.

f.savegeometry

ابعاد و موقعیت هندسی پنجرهٔ فعلی ذخیره می‌شود. فراخوانی بعدی f.restoregeometry این پنجره را به این مشخصات هندسی بازیابی خواهد کرد.

f.saveyourself

این تابع در صورتی که پنجرهٔ انتخاب‌شده در مشخصهٔ پنجره‌ای WM_PROTOCOLS خود پیام WM_SAVEYOURSELF را درخواست کرده باشد، آن را ارسال می‌کند. کلاینت‌هایی که این پیام را می‌پذیرند موظفند تمام وضعیت مرتبط با پنجره را در یک نقطهٔ بازرسی ثبت کرده و مشخصهٔ WM_COMMAND را همان‌طور که در ICCCM مشخص شده است به‌روزرسانی کنند. اگر پنجرهٔ انتخاب‌شده برای این پیام تنظیم نشده باشد، زنگ صفحه‌کلید به صدا درخواهد آمد.

f.separator

تنها در منوها معتبر است. اثر آن افزودن یک خط جداکننده میان ورودی قبلی و بعدی است. بخش انتخاب‌گر نام در منو استفاده نمی‌شود (اما باید وجود داشته باشد).

f.setbuttonsstate

تنظیم مدیر فضای کاری در حالت دکمه‌ای.

f.setmapstate

تنظیم مدیر فضای کاری در حالت نقشه‌ای.

f.setpriority "value"

اولویت پنجره را روی value (محصور میان دو گیومه) تنظیم می‌کند. اگر پس از value بلافاصله < یا b بیاید، پنجره در زیر سایر پنجره‌های دارای این اولویت قرار می‌گیرد؛ در غیر این صورت در بالای آن‌ها قرار خواهد گرفت. برای جزئیات به متغیر OnTopPriority مراجعه کنید.

نخستین بار در نسخهٔ 4.0.0 ارائه شد.

f.showbackground

این تابع نگاشت تمامی پنجره‌ها را در فضای کاری فعلی لغو می‌کند (پنهان می‌سازد). این یک تابع تعویض وضعیت است؛ اگر تمام پنجره‌ها پنهان شده باشند، همگی مجدداً نگاشت می‌شوند (نمایش داده می‌شوند). بهتر است این تابع در بافت ریشه مقید شود.

f.showiconmgr

این تابع مدیر آیکون فعلی را نگاشت می‌کند (نمایش می‌دهد).

f.showworkspacemgr

نگاشت (نمایش) مدیر فضای کاری.

f.slowdownanimation

کاهش مقدار AnimationSpeed به اندازهٔ ۱ واحد.

f.sorticonmgr

این تابع مدخل‌های مدیر آیکون فعلی را به ترتیب الفبایی مرتب می‌کند. متغیر SortIconManager را ببینید.

f.speedupanimation

افزایش مقدار AnimationSpeed به اندازهٔ ۱ واحد.

f.squeeze

تابع f.squeeze پنجره را به اندازهٔ عمودی صفر جمع (فشرده) می‌کند. تنها برای پنجره‌هایی کار می‌کند که دارای عنوان یا حاشیهٔ سه‌بعدی باشند (تا چیزی بر روی صفحه باقی بماند). اگر پنجره از قبل جمع شده باشد، باز (unsqueeze) می‌شود.

f.startanimation

شروع مجدد پویانمایی‌های متوقف‌شده (در صورت وجود).

f.stopanimation

متوقف کردن پویانمایی‌ها (در صورت وجود).

f.switchpriority

تعویض اولویت پنجره، مستقل از توانایی آن در تعویض خودکار. ارجاع متقابل به متغیرهای OnTopPriority و PrioritySwitching.

نخستین بار در نسخهٔ 4.0.0 ارائه شد.

f.tinylower, f.tinyraise

این دو تابع به شما امکان می‌دهند پنجره را «یک گام» در هر بار بالا بیاورید/پایین ببرید. برای نمونه، f.tinyraise پنجرهٔ فعلی را دقیقاً بالای پایین‌ترین پنجره‌ای که آن را پوشانده است قرار می‌دهد. این دو تابع مشمول تعویض اولویت (priority-switching) نیستند.

نخستین بار در نسخهٔ 4.0.0 ارائه شد.

f.title

این تابع یک آیتم وسط‌چین و غیرقابل‌انتخاب در تعریف منو فراهم می‌کند. نباید در هیچ بافت دیگری استفاده شود.

f.toggleoccupation string

این تابع پنجرهٔ انتخاب‌شده را به فضای کاری با نام string در صورتی که از قبل متعلق به آن نباشد اضافه کرده، و در غیر این صورت آن را از این فضای کاری حذف می‌کند.

f.togglesound

تغییر وضعیت صدا (روشن/خاموش). بخش SOUNDS را ببینید.

f.togglestate

تغییر وضعیت حالت مدیر فضای کاری.

f.toggleworkspacemgr

تغییر وضعیت حضور مدیر فضای کاری (WorkSpaceManager). اگر نگاشت شده باشد، پنهان می‌شود و بالعکس.

f.topzoom

این تابع لبهٔ بالای پنجره را تا لبهٔ بالای مانیتور فعلی می‌کشد، یا در صورتی که پنجره از قبل topzoom شده باشد اندازهٔ اصلی را بازیابی می‌کند.

f.trace string

برای مدیریت تخلیهٔ خروجی اشکال‌زدایی (debug) استفاده می‌شود. اگر نام فایلی در string داده شود، شروع به نوشتن خروجی در آن فایل می‌کند؛ اگر string برابر با "stderr" باشد در stderr می‌نویسد. اگر فایل اشکال‌زدایی از قبل باز باشد، فراخوانی مجدد f.trace آن را می‌بندد.

این احتمالاً تنها در صورتی مفید است که در حال توسعهٔ ctwm باشید.

f.twmrc

نام مستعار برای f.restart.

f.unfocus

این تابع تمرکز (فوکوس) را به حالت اشاره‌گر‌محور بازنشانی می‌کند. زمانی باید استفاده شود که فوکوس بر روی پنجره دیگر مورد نظر نباشد.

f.unsqueeze

نسبت به f.squeeze همان نقشی را دارد که f.deiconify نسبت به f.iconify دارد.

نخستین بار در نسخهٔ 4.0.0 ارائه شد.

f.upiconmgr

این تابع اشاره‌گر را به سطر قبلی در مدیر آیکون فعلی پرش می‌دهد، و در صورت لزوم به آخرین سطر در همان ستون می‌چرخد.

f.upworkspace

رفتن به فضای کاری بلافاصله بالای فضای کاری فعلی در مدیر فضای کاری. اگر فضای کاری فعلی بالاترین مورد باشد، به پایین‌ترین مورد در همان ستون می‌رود. نتیجه به چیدمان مدیر فضای کاری بستگی دارد.

f.vanish

پنجرهٔ مشخص‌شده از فضای کاری فعلی ناپدید می‌شود اگر دست‌کم یک فضای کاری دیگر را اشغال کرده باشد. در سایر موارد هیچ کاری انجام نمی‌دهد.

f.version

این تابع باعث نمایش پنجرهٔ نگارش ctwm می‌شود. این پنجره تا زمانی که یکی از دکمه‌های اشاره‌گر فشرده شود یا اشاره‌گر از یک پنجره به پنجرهٔ دیگری جابه‌جا شود، نمایش داده خواهد شد.

f.vlzoom

این تابع مترادفی برای f.leftzoom است.

f.vrzoom

این تابع مترادفی برای f.rightzoom است.

f.warphere win_name

این تابع پنجره‌ای را که نام یا کلاس آن با رشته مطابقت دارد به فضای کاری فعلی اضافه کرده و اشاره‌گر را به آن منتقل می‌کند. اگر پنجره به آیکون تبدیل شده باشد، در صورتی که متغیر WarpUnmapped تنظیم شده باشد از حالت آیکون خارج می‌شود وگرنه نادیده گرفته خواهد شد.

f.warpring string

این تابع اشاره‌گر را به پنجرهٔ بعدی یا قبلی (همان‌طور که با آرگومان string مشخص شده و می‌تواند "next" یا "prev" باشد) تعیین‌شده در متغیر WindowRing پرش می‌دهد.

f.warpto string

این تابع اشاره‌گر را به پنجره‌ای که نام یا کلاس آن با string مطابقت دارد منتقل می‌کند. اگر پنجره به آیکون تبدیل شده باشد، در صورتی که متغیر WarpUnmapped تنظیم شده باشد از حالت آیکون خارج می‌شود وگرنه نادیده گرفته خواهد شد.

f.warptoiconmgr string

این تابع اشاره‌گر را به مدخل مدیر آیکون مرتبط با پنجره‌ای که اشاره‌گر در آن قرار دارد، در مدیر آیکون مشخص‌شده با آرگومان string منتقل می‌کند. اگر string خالی باشد (یعنی "")، مدیر آیکون فعلی انتخاب می‌شود.

f.warptoscreen string

این تابع اشاره‌گر را به صفحهٔ مشخص‌شده توسط آرگومان string پرش می‌دهد. آرگومان می‌تواند یک عدد (مانند "0" یا "1")، کلمهٔ "next" (نشان‌دهندهٔ صفحهٔ فعلی به اضافهٔ ۱، با صرف‌نظر کردن از هر صفحهٔ مدیریت‌نشده)، کلمهٔ "back" (نشان‌دهندهٔ صفحهٔ فعلی منهای ۱، با صرف‌نظر کردن از هر صفحهٔ مدیریت‌نشده)، یا کلمهٔ "prev" (نشان‌دهندهٔ آخرین صفحهٔ بازدیدشده) باشد.

f.winrefresh

این تابع شبیه تابع f.refresh است با این تفاوت که تنها پنجرهٔ انتخاب‌شده بازآوری می‌شود.

f.xbottomzoom

این تابع شبیه تابع f.bottomzoom است، اما از مرز مانیتورها عبور خواهد کرد.

f.xfullscreenzoom

این تابع شبیه تابع f.fullscreenzoom است، اما از مرز مانیتورها عبور خواهد کرد.

f.xfullzoom

این تابع شبیه تابع f.fullzoom است، اما از مرز مانیتورها عبور خواهد کرد.

f.xhorizoom

این تابع شبیه تابع f.horizoom است، اما از مرز مانیتورها عبور خواهد کرد.

f.xleftzoom

این تابع شبیه تابع f.leftzoom است، اما از مرز مانیتورها عبور خواهد کرد.

f.xrightzoom

این تابع شبیه تابع f.rightzoom است، اما از مرز مانیتورها عبور خواهد کرد.

f.xtopzoom

این تابع شبیه تابع f.topzoom است، اما از مرز مانیتورها عبور خواهد کرد.

f.xzoom

این تابع شبیه تابع f.zoom است، اما از مرز مانیتورها عبور خواهد کرد.

f.zoom

این تابع پنجره را طوری می‌کشد که تمام ارتفاع مانیتور فعلی را بپوشاند، یا در صورتی که پنجره از قبل با zoom بزرگ شده باشد، اندازهٔ اصلی را بازیابی می‌کند. این معادل عمودی f.horizoom است؛ شاید f.vertzoom نام بهتری می‌بود...

توابع را می‌توان با استفاده از منوهای بالاپر (pop-up، هنگامی که به یکی از کلیدهای اشاره‌گر مقید شده باشد) یا کشویی (pull-down، هنگامی که به دکمه نوار عنوان متصل باشد) گروه‌بندی کرد و به صورت تعاملی انتخاب نمود. هر مشخصه منو شامل نام منو آن‌گونه که با f.menu به آن ارجاع داده خواهد شد، رنگ‌های پیش‌فرض و اختیاری پیش‌زمینه و پس‌زمینه، فهرستی از نام آیتم‌ها و توابعی که باید فراخوانی شوند، و رنگ‌های اختیاری پیش‌زمینه و پس‌زمینه برای تک‌تک آیتم‌ها است:

Menu "menuname" [ ("deffg":"defbg") ]
{
    string1  [ ("fg1":"bg1") ]  function1
    string2  [ ("fg2":"bg2") ]  function2
        .
        .
        .
    stringN  [ ("fgN":"bgN") ]  functionN
}

نام menuname به بزرگ و کوچک بودن حروف حساس است. آرگومان‌های اختیاری deffg و defbg رنگ‌های پیش‌زمینه و پس‌زمینه مورد استفاده در نمایشگرهای رنگی را برای برجسته‌سازی آیتم‌های منو مشخص می‌کنند. بخش string هر ورودی منو، متنی خواهد بود که در منو نمایش داده می‌شود. آرگومان‌های اختیاری fgN و bgN رنگ‌های پیش‌زمینه و پس‌زمینه ورودی منو را زمانی که اشاره‌گر روی آن ورودی قرار ندارد، تعیین می‌کنند. این رنگ‌ها فقط در نمایشگرهای رنگی استفاده خواهند شد. حالت پیش‌فرض، استفاده از رنگ‌های تعیین‌شده توسط متغیرهای MenuForeground و MenuBackground است. بخش function ورودی منو یکی از توابع، از جمله هر تابع تعریف‌شده توسط کاربر، یا منوهای تکمیلی است.

اگر نام یک ورودی با یک “*” (ستاره) آغاز شود، این ستاره نمایش داده نخواهد شد و ورودی مربوطه، ورودی پیش‌فرض این منو خواهد بود. هنگامی که یک منو دارای ورودی پیش‌فرض باشد و به عنوان زیرمنوی یک منوی دیگر به کار رود، کنش این ورودی پیش‌فرض هنگامی که این زیرمنو بدون نمایش داده شدن انتخاب شود، به صورت خودکار اجرا خواهد شد. توضیح آن دشوار است، اما درکش ساده است.

چندین منوی ویژه وجود دارد.

منوی TwmWindows شامل نام تمامی پنجره‌های کلاینت و پنجره‌های ارائه‌شده توسط ctwm در فضای کاری فعلی است. انتخاب یک ورودی باعث می‌شود که WindowFunction روی آن پنجره اجرا گردد. اگر WindowFunction تنظیم نشده باشد، پنجره از حالت آیکون خارج شده و بالا آورده می‌شود.

منوی TwmVisible پنجره‌هایی را فهرست می‌کند که در حال حاضر از حالت آیکون خارج هستند (اولین بار در نسخه 3.7 ارائه شد). منوی TwmIcons فقط پنجره‌هایی را فهرست می‌کند که در حال حاضر آیکون شده‌اند.

منوهای TwmAllWindows و TwmAllIcons مشابه با نسخه‌های بدون All توصیف‌شده در بالا عمل می‌کنند، با این تفاوت که پنجره‌ها را در تمامی فضاهای کاری نمایش می‌دهند، نه فقط در فضای کاری فعلی.

منوی TwmWorkspaces حاوی نام‌های فضاهای کاری شما است که با انتخاب یک ورودی، به آن فضای کاری منتقل می‌شوید. علاوه بر این، این ورودی‌ها دارای زیرمنوهایی شامل نام تمامی پنجره‌های مستقر در آن فضای کاری هستند؛ با انتخاب چنین ورودی‌ای، f.warpto روی آن پنجره اجرا می‌شود.

منوی TwmKeys تمامی کلیدهای مقیدشده در بستر ریشه (root context) را که f.exec را فراخوانی می‌کنند، فهرست می‌کند. اولین بار در نسخه 3.7 ارائه شد.

برنامه ctwm از چندین روش مختلف برای مدیریت پنجره‌های آیکون‌شده پشتیبانی می‌کند. سبک متداول نگاشت پیکسلی-و-متن (pixmap-and-text) می‌تواند به صورت دستی چیده شود یا به صورت خودکار همان‌طور که در متغیر IconRegion شرح داده شده است، مرتب گردد. علاوه بر این، یک شبکه فشرده از نام آیکون‌ها به نام مدیر آیکون (icon manager)، استفاده بهینه‌تری از فضای صفحه نمایش و همچنین امکان پیمایش بین پنجره‌ها از طریق صفحه‌کلید را فراهم می‌سازد.

مدیر آیکون پنجره‌ای است که شامل نام پنجره‌های انتخاب‌شده یا تمامی پنجره‌های موجود روی صفحه نمایش است. علاوه بر نام پنجره، هنگامی که پنجره آیکون می‌شود، یک دکمه کوچک با نماد پیش‌فرض آیکون در سمت چپ نام نمایش داده خواهد شد. به طور پیش‌فرض، کلیک کردن روی یک ورودی در مدیر آیکون، تابع f.iconify را اجرا می‌کند. برای تغییر کنش‌های انجام‌شده در مدیر آیکون، هنگام تعیین مقیدسازی‌های دکمه و صفحه‌کلید از بستر iconmgr استفاده کنید.

حرکت دادن اشاره‌گر به داخل مدیر آیکون، تمرکز صفحه‌کلید را نیز به پنجره مربوطه هدایت می‌کند (تنظیم مستقیم تمرکز، یا در صورتی که NoTitleFocus تنظیم شده باشد، ارسال رویدادهای مصنوعی). با استفاده از توابع f.upiconmgr، f.downiconmgr، f.lefticonmgr و f.righticonmgr، تمرکز ورودی را می‌توان مستقیماً از طریق صفحه‌کلید میان پنجره‌ها جابه‌جا کرد.

به عنوان یک مدیر پنجره، ctwm دامنه گسترده‌ای از ویژگی‌ها را روی پنجره‌هایی که مدیریت می‌کند و پنجره‌هایی که می‌سازد، می‌خواند و تنظیم می‌نماید. بیشتر این موارد فراتر از حیطه راهنمای کاربری است. با این حال، چند نکته ارزش ذکر کردن دارد.

پنجره‌ها نام خود را از طریق ویژگی‌های X به دست می‌آورند. دو نوع نام وجود دارد؛ نام پنجره (که در نوار عنوان، پنجره f.identify و غیره نمایش می‌یابد)، و نام آیکون (که روی آیکون و روی مدیر آیکون نشان داده می‌شود).

پیش از نسخه 4.0.2، ctwm فقط از ویژگی‌های استاندارد ICCCM برای تنظیم نام پنجره و آیکون پشتیبانی می‌کرد. این‌ها WM_NAME برای نام پنجره، و WM_ICON_NAME برای نام آیکون هستند. از نسخه 4.0.2، ctwm همچنین از نسخه‌های EWMH این ویژگی‌ها، یعنی _NET_WM_NAME و _NET_WM_ICON_NAME پشتیبانی می‌کند. اگر متغیرهای EWMH موجود باشند، در اولویت نسبت به سبک قدیمی‌تر ICCCM استفاده می‌شوند.

از نسخه 4.0.2، ctwm همچنین از یک جفت ویژگی اضافی پشتیبانی می‌کند: CTWM_WM_NAME و CTWM_WM_ICON_NAME، که بر تمامی موارد دیگر ارجحیت دارند. این ویژگی‌ها مشخصاً برای تنظیم دستی توسط کاربر در نظر گرفته شده‌اند، نه برای این‌که برنامه‌ها خودشان آن‌ها را تنظیم کنند. این قابلیت به کاربر امکان می‌دهد تا نام برنامه‌هایی را که نام‌گذاری نامناسبی دارند لغو کند، یا موارد را مطابق میل خود برچسب‌گذاری نماید.

شما می‌توانید این ویژگی‌ها را با هر روشی که برای تنظیم ویژگی‌های پنجره به کار می‌برید، مشخص کنید. از طریق خط فرمان، ابزار xprop(1) اگرچه کمی زمخت است، اما به طور گسترده در دسترس است. بنابراین، برای نمونه، برای تنظیم نام آیکون یک پنجره (تغییر نحوه نمایش آن در مدیر آیکون)، اما دست‌نخورده گذاشتن نام پنجره به همان شکلی که خود برنامه به طور معمول تنظیم می‌کند (عادی ماندن نوار عنوان)، می‌توانید دستوری مانند زیر را اجرا کنید:

xprop -f CTWM_WM_ICON_NAME 8u -set CTWM_WM_ICON_NAME "I hate this window"

و سپس روی پنجره‌ای که می‌خواهید ویژگی روی آن تنظیم شود کلیک کنید. متأسفانه، xprop(1) شما را ملزم می‌کند که هنگام تعریف قالب و همچنین هنگام تنظیم آن، نام ویژگی را مشخص کنید، بنابراین کمی ناخوشایند است. 8u به این معنی است که شما یک رشته UTF-8 ارائه می‌دهید. قالب‌های احتمالی دیگر عبارتند از 8s برای یک STRING ساده ۷ بیتی (یعنی ASCII معمولی)، و 8t برای COMPOUND_TEXT “بین‌المللی‌شده” به سبک ICCCM. با این حال، معمولاً فقط از UTF-8 استفاده خواهید کرد. دستور xprop -remove CTWM_WM_ICON_NAME و کلیک کردن به شما اجازه می‌دهد آن را لغو کنید و به نام‌گذاری عادی بازگردید. برای اطلاعات بیشتر، راهنمای xprop(1) را ببینید.

اگر با گزینه USE_SOUND کامپایل شده باشد، ctwm قادر است برای هر رویداد X صدایی پخش کند. این کار را می‌توان به دو روش پیکربندی کرد.

از نسخه 4.0.0، صداها را می‌توان در ctwmrc با پارامتر پیکربندی RplaySounds تنظیم کرد. برای جزئیات بخش‌های بالا را ببینید.

اگر آن پارامتر یافت نشود، یا در نسخه‌های قدیمی‌تر، ctwm به دنبال فایل .ctwm-sounds در دایرکتوری خانگی کاربر می‌گردد تا هر رویداد X را به یک فایل صوتی برای پخش پیوند دهد. هر خط در .ctwm-sounds دارای ساختار نحوی زیر است:

{X event}: {sound file}

اگر RplaySounds در فایل پیکربندی داده شده باشد و .ctwm-sounds موجود باشد، یک هشدار صادر خواهد شد و محتویات .ctwm-sounds نادیده گرفته می‌شود. تمام پشتیبانی از .ctwm-sounds در نسخه‌های آینده حذف خواهد شد و تنها روش پیکربندی ctwmrc در دسترس باقی خواهد ماند.

صرف‌نظر از نحوه پیکربندی، رویدادهای شناخته‌شده فعلی X که می‌توان تعیین کرد عبارتند از:

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

علاوه بر این، دو مورد زیر نیز شناخته می‌شوند و نمایانگر زمانی هستند که ctwm راه‌اندازی یا خاموش می‌شود:

Startup
Shutdown

به جای تمامی فهرست‌های پنجره، می‌بایست از مدیر منابع (resource manager) استفاده می‌شد.

دوبار کلیک بسیار سریع برای دستیابی به تابع جابه‌جایی مقید (constrained move)، گاهی اوقات حتی با اینکه اشاره‌گر حرکت داده نشده است، باعث جابه‌جایی پنجره می‌شود.

اگر IconifyByUnmapping فعال باشد و پنجره‌ها در IconManagerDontShow فهرست شده باشند ولی در DontIconifyByUnmapping نباشند، در صورتی که آیکون شوند و هیچ مقیدسازی به f.menu "TwmWindows" یا f.warpto تنظیم نشده باشد، ممکن است ناپدید یا گم شوند.

بخش قبلی سفارشی‌سازی را ببینید.

DISPLAY

این متغیر برای تعیین این که از کدام سرور X استفاده شود به کار می‌رود. همچنین در طول f.exec تنظیم می‌شود تا برنامه‌ها روی صفحه نمایش مناسب باز شوند.

HOME

این متغیر به عنوان پیشوند برای فایل‌هایی که با علامت مد (~) شروع می‌شوند و برای مکان‌یابی فایل راه‌اندازی ctwm استفاده می‌شود.

X(1), Xserver(1), xdm(1), xrdb(1)

بخش‌هایی از حق نشر ۱۹۸۸ متعلق به Evans & Sutherland Computer Corporation؛ بخش‌هایی از حق نشر ۱۹۸۹ متعلق به Hewlett-Packard Company و Massachusetts Institute of Technology است. برای بیانیه کامل حقوق و مجوزها راهنمای X(1) را ببینید.

برای اطلاعات بیشتر فایل COPYRIGHT را در بسته توزیع بررسی کنید.

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.

Claude Lecommandeur, Swiss Polytechnical Institute of Lausanne ( <lecom@sic.epfl.ch>); Richard Levitte ( <richard@levitte.org>); Matthew Fuller ( <fullermd@over-yonder.net>); و بسیاری از مشارکت‌کنندگان دیگر.

این راهنما برای ctwm نسخه 4.1.0 تهیه شده است.

2023-03-26