'\" t .\" Title: fvwm3styles .\" Author: [see the "AUTHOR(S)" section] .\" Generator: Asciidoctor 2.0.26 .\" Date: 2026-06-28 .\" Manual: \ \& .\" Source: \ \& .\" Language: Persian .\" .TH "FVWM3STYLES" "1" "2026-06-28" "\ \&" "\ \&" .ie \n(.g .ds Aq \(aq .el .ds Aq ' .ss \n[.ss] 0 .nh .ad l .de URL \fI\\$2\fP <\\$1>\\$3 .. .als MTO URL .if \n[.g] \{\ . mso www.tmac . am URL . ad l . . . am MTO . ad l . . . LINKSTYLE blue R < > .\} .SH "نام (NAME)" fvwm3styles \- سبک‌های پنجره در fvwm .SH "کنترل سبک‌های پنجره (CONTROLLING WINDOW STYLES)" .sp برای خوانایی بیشتر، دستورات این بخش بر اساس الفبا مرتب نشده‌اند. توضیحات دستور \fBStyle\fP در پایان این بخش قرار دارد. .sp دستورات: \fBFocusStyle\fP، \fBStyle\fP و \fBWindowStyle\fP می‌توانند مولفه‌های شرطی اختیاری را برای مطابقت با برخی از ویژگی‌های یک پنجره بپذیرند. .sp برای مثال: .sp .if n .RS 4 .nf .fam C Style (Name mc) Sticky .fam .fi .if n .RE .sp پنجره‌ای را که نام آن با \*(Aqmc\*(Aq مطابقت داشته باشد، چسبان (\fISticky\fP) می‌کند. .sp .if n .RS 4 .nf .fam C Style (Name mc, Class XTerm) StartIconic .fam .fi .if n .RE .sp این مثال پنجره‌ای از xterm(1) را باز می‌کند که WM_CLASS آن با \*(AqXTerm\*(Aq مطابقت داشته و نامش \*(Aqmc\*(Aq باشد. .sp فهرستی معتبر از ویژگی‌ها برای بررسی مطابقت عبارتند از: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ . sp -1 . IP \(bu 2.3 .\} Resource .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ . sp -1 . IP \(bu 2.3 .\} Class .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ . sp -1 . IP \(bu 2.3 .\} Name .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ . sp -1 . IP \(bu 2.3 .\} Icon .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ . sp -1 . IP \(bu 2.3 .\} WindowID .RE .sp تطبیق ویژگی‌های مشخص‌شده برای هر خط \fBStyle\fP با عملگر AND منطقی ترکیب می‌شوند، و برای اعمال سبک‌ها، \fBتمام\fP ویژگی‌ها باید مطابقت داشته باشند. .sp \fBنکته\fP: برای حذف یک خط سبک با ویژگی‌های پنجره، باید از \fBDestroyStyle\fP استفاده شود. برای مثال: .sp .if n .RS 4 .nf .fam C DestroyStyle (Name mc, Class XTerm) .fam .fi .if n .RE .sp هنگام حذف یک سبک، نیازی به مشخص کردن آرگومان‌های سبک نیست، فقط مولفه‌های ویژگی لازم هستند. .sp خطوط موجود \fBStyle\fP در قالب: .sp .if n .RS 4 .nf .fam C Style Application* Sticky, StartIconic .fam .fi .if n .RE .sp همچنان پشتیبانی می‌شوند و رفتار آن‌ها بدون تغییر باقی می‌ماند. .sp .ce \l'\n(.lu*25u/100u\(ap' .sp \fBFocusStyle\fP \fIstylename\fP \fIoptions\fP .RS 4 دقیقاً مانند دستور \fBStyle\fP عمل می‌کند، اما فقط سبک‌های مربوط به سیاست تمرکز را که با «FP» شروع می‌شوند می‌پذیرد. پیشوند را می‌توان حذف کرد، اما به بهای صرف اندکی زمان بیشتر. هدف \fBFocusStyle\fP خواناتر کردن فایل پیکربندی است. مثال: .sp .if n .RS 4 .nf .fam C FocusStyle * EnterToFocus, !LeaveToUnfocus .fam .fi .if n .RE .sp معادل است با .sp .if n .RS 4 .nf .fam C Style * FPEnterToFocus, !FPLeaveToUnfocus .fam .fi .if n .RE .RE .sp \fBDestroyStyle\fP \fIstyle\fP .RS 4 سبک به نام \fIstyle\fP را حذف می‌کند. تغییرات فوراً اعمال می‌شوند. توجه داشته باشید که \fIstyle\fP یک رشته جستجوی دارای نویسه‌های عام (wildcard) نیست، بلکه یک رشته حساس به حروف بزرگ و کوچک است که باید دقیقاً با دستور اولیه \fBStyle\fP مطابقت داشته باشد. .sp حذف سبک «*» امکان‌پذیر است، اما اصلاً توصیه نمی‌شود. برای مثال: .sp .if n .RS 4 .nf .fam C DestroyStyle Application* .fam .fi .if n .RE .sp این کار تمام تنظیمات سبک با نام «Application*» را حذف می‌کند، نه تمام سبک‌هایی را که با «Application» شروع می‌شوند. .RE .sp \fBDestroyWindowStyle\fP .RS 4 سبک‌های تنظیم‌شده توسط دستور \fBWindowStyle\fP را روی پنجره انتخاب‌شده حذف می‌کند. تغییرات فوراً اعمال می‌شوند. .RE .sp \fBUpdateStyles\fP .RS 4 تمام به‌روزرسانی‌های معلق مربوط به سبک‌ها و ظاهر پنجره‌ها فوراً اعمال می‌شوند. مثلاً اگر دستورات \fBStyle\fP، \fIWindowStyle\fP یا \fITitleStyle\fP در داخل یک تابع fvwm صادر شده باشند. .RE .sp \fBStyle\fP \fIstylename\fP \fIoptions\fP .\|.\|. .RS 4 دستور \fBStyle\fP برای تنظیم ویژگی‌های یک پنجره به مقادیری غیر از پیش‌فرض یا تنظیم سبک‌های پیش‌فرض مدیر پنجره استفاده می‌شود. .sp پارامتر \fIstylename\fP می‌تواند نام پنجره، کلاس، نام مرئی، یا رشته منبع (resource) آن باشد. این پارامتر می‌تواند شامل نویسه‌های عام \*(Aq*\*(Aq و \*(Aq?\*(Aq باشد که به شیوه معمول نام فایل‌های یونیکس تطبیق داده می‌شوند. گزینه‌های چندگانه سبک در یک دستور واحد \fBStyle\fP از چپ به راست خوانده می‌شوند، گویی در دستورات جداگانه پشت سر هم صادر شده‌اند. یک سبک معین همیشه تمام سبک‌های متناقضی را که قبلاً (یا در همان خط سبک سمت چپ‌تر) صادر شده‌اند، بازنویسی می‌کند. .sp نکته: پنجره‌هایی که نامی ندارند (WM_NAME) با نام «Untitled» مشخص می‌شوند، و پنجره‌هایی که کلاسی ندارند (WM_CLASS, res_class) کلاس «NoClass» و آن‌هایی که منبعی ندارند (WM_CLASS, res_name) منبع «NoResource» دریافت می‌کنند. .sp اگر پنجره‌ای منبع «fvwmstyle» را تنظیم کرده باشد، مقدار آن منبع علاوه بر هر نام پنجره، هنگام انتخاب سبک استفاده می‌شود. .sp پارامتر \fIoptions\fP فهرستی جداشده با کاما است که شامل یک یا چند کلیدواژه زیر می‌باشد. هر گروه از نام‌های سبک با اسلش (\*(Aq/\*(Aq) از هم جدا شده‌اند. آخرین سبک در این گروه‌ها، حالت پیش‌فرض است. \fIBorderWidth\fP, \fIHandleWidth\fP, \fICornerLength\fP, \fI!Icon\fP / \fIIcon\fP, \fIMiniIcon\fP, \fIIconBox\fP, \fIIconGrid\fP, \fIIconFill\fP, \fIIconSize\fP, \fI!Title\fP / \fITitle\fP, \fITitleAtBottom\fP / \fITitleAtLeft\fP / \fITitleAtRight\fP / \fITitleAtTop\fP, \fILeftTitleRotatedCW\fP / \fILeftTitleRotatedCCW\fP, \fIRightTitleRotatedCCW\fP / \fIRightTitleRotatedCW\fP, \fITopTitleRotated\fP / \fITopTitleNotRotated\fP, \fIBottomTitleRotated\fP / \fIBottomTitleNotRotated\fP, \fI!UseTitleDecorRotation\fP / \fIUseTitleDecorRotation\fP, \fIStippledTitle\fP / \fI!StippledTitle\fP, \fIStippledIconTitle\fP / \fI!StippledIconTitle\fP, \fIIndexedWindowName\fP / \fIExactWindowName\fP, \fIIndexedIconName\fP / \fIExactIconName\fP, \fITitleFormat\fP / \fIIconTitleFormat\fP / \fI!Borders\fP / \fIBorders\fP, \fI!Handles\fP / \fIHandles\fP, \fIWindowListSkip\fP / \fIWindowListHit\fP, \fICirculateSkip\fP / \fICirculateHit\fP, \fICirculateSkipShaded\fP / \fICirculateHitShaded\fP, \fICirculateSkipIcon\fP / \fICirculateHitIcon\fP, \fILayer\fP, \fIStaysOnTop\fP / \fIStaysOnBottom\fP / \fIStaysPut\fP, \fISticky\fP / \fISlippery\fP, \fIStickyAcrossPages\fP / \fI!StickyAcrossPages\fP, \fIStickyAcrossDesks\fP / \fI!StickyAcrossDesks\fP, \fI!StickyStippledTitle\fP / \fIStickyStippledTitle\fP, \fI!StickyStippledIconTitle\fP / \fIStickyStippledIconTitle\fP, \fIStartIconic\fP / \fIStartNormal\fP, \fIColorset\fP, \fIHilightColorset\fP, \fIBorderColorset\fP, \fIHilightBorderColorset\fP, \fIIconTitleColorset\fP, \fIHilightIconTitleColorset\fP, \fIIconBackgroundColorset\fP, \fIIconTitleRelief\fP, \fIIconBackgroundRelief\fP, \fIIconBackgroundPadding\fP, \fIFont\fP, \fIIconFont\fP, \fIStartsOnDesk\fP / \fIStartsOnPage\fP / \fIStartsAnyWhere\fP, \fIStartsOnScreen\fP, \fIStartShaded\fP / \fI!StartShaded\fP, \fIManualPlacementHonorsStartsOnPage\fP / \fIManualPlacementIgnoresStartsOnPage\fP, \fICaptureHonorsStartsOnPage\fP / \fICaptureIgnoresStartsOnPage\fP, \fIRecaptureHonorsStartsOnPage\fP / \fIRecaptureIgnoresStartsOnPage\fP, \fIStartsOnPageIncludesTransients\fP / \fIStartsOnPageIgnoresTransients\fP, \fIIconTitle\fP / \fI!IconTitle\fP, \fIMwmButtons\fP / \fIFvwmButtons\fP, \fIMwmBorder\fP / \fIFvwmBorder\fP, \fIMwmDecor\fP / \fI!MwmDecor\fP, \fIMwmFunctions\fP / \fI!MwmFunctions\fP, \fIHintOverride\fP / \fI!HintOverride\fP, \fI!Button\fP / \fIButton\fP, \fIResizeHintOverride\fP / \fI!ResizeHintOverride\fP, \fIOLDecor\fP / \fI!OLDecor\fP, \fIStickyIcon\fP / \fISlipperyIcon\fP, \fIStickyAcrossPagesIcon\fP / \fI!StickyAcrossPagesIcon\fP, \fIStickyAcrossDesksIcon\fP / \fI!StickyAcrossDesksIcon\fP, \fIManualPlacement\fP / \fICascadePlacement\fP / \fIMinOverlapPlacement\fP / \fIMinOverlapPercentPlacement\fP / \fITileManualPlacement\fP / \fITileCascadePlacement\fP / \fIPositionPlacement\fP, \fIMinOverlapPlacementPenalties\fP, \fIMinOverlapPercentPlacementPenalties\fP, \fIDecorateTransient\fP / \fINakedTransient\fP, \fIDontRaiseTransient\fP / \fIRaiseTransient\fP, \fIDontLowerTransient\fP / \fILowerTransient\fP, \fIDontStackTransientParent\fP / \fIStackTransientParent\fP, \fISkipMapping\fP / \fIShowMapping\fP, \fIScatterWindowGroups\fP / \fIKeepWindowGroupsOnDesk\fP, \fIUseDecor\fP, \fIUseStyle\fP, \fI!UsePPosition\fP / \fINoPPosition\fP / \fIUsePPosition\fP, \fI!UseUSPosition\fP, \fINoUSPosition\fP / \fIUseUSPosition\fP, \fI!UseTransientPPosition\fP, \fINoTransientPPosition\fP / \fIUseTransientPPosition\fP, \fI!UseTransientUSPosition\fP / \fINoTransientUSPosition\fP / \fIUseTransientUSPosition\fP, \fI!UseIconPosition\fP / \fINoIconPosition\fP / \fIUseIconPosition\fP, \fILenience\fP / \fI!Lenience\fP, \fIClickToFocus\fP / \fISloppyFocus\fP / \fIMouseFocus\fP|\fIFocusFollowsMouse\fP / \fINeverFocus\fP, \fIClickToFocusPassesClickOff\fP / \fIClickToFocusPassesClick\fP, \fIClickToFocusRaisesOff\fP / \fIClickToFocusRaises\fP, \fIMouseFocusClickRaises\fP / \fIMouseFocusClickRaisesOff\fP, \fIGrabFocus\fP / \fIGrabFocusOff\fP, \fIGrabFocusTransientOff\fP / \fIGrabFocusTransient\fP, \fIFPFocusClickButtons\fP, \fIFPFocusClickModifiers\fP, \fI!FPSortWindowlistByFocus\fP / \fIFPSortWindowlistByFocus\fP, \fIFPClickRaisesFocused\fP / \fI!FPClickRaisesFocused\fP, \fIFPClickDecorRaisesFocused\fP / \fI!FPClickDecorRaisesFocused\fP, \fIFPClickIconRaisesFocused\fP / \fI!FPClickIconRaisesFocused\fP, \fI!FPClickRaisesUnfocused\fP / \fIFPClickRaisesUnfocused\fP, \fIFPClickDecorRaisesUnfocused\fP / \fI!FPClickDecorRaisesUnfocused\fP, \fIFPClickIconRaisesUnfocused\fP / \fI!FPClickIconRaisesUnfocused\fP, \fIFPClickToFocus\fP / \fI!FPClickToFocus\fP, \fIFPClickDecorToFocus\fP / \fI!FPClickDecorToFocus\fP, \fIFPClickIconToFocus\fP / \fI!FPClickIconToFocus\fP, \fI!FPEnterToFocus\fP / \fIFPEnterToFocus\fP, \fI!FPLeaveToUnfocus\fP / \fIFPLeaveToUnfocus\fP, \fI!FPFocusByProgram\fP / \fIFPFocusByProgram\fP, \fI!FPFocusByFunction\fP / \fIFPFocusByFunction\fP, \fIFPFocusByFunctionWarpPointer\fP / \fI!FPFocusByFunctionWarpPointer\fP, \fIFPLenient\fP / \fI!FPLenient\fP, \fI!FPPassFocusClick\fP / \fIFPPassFocusClick\fP, \fI!FPPassRaiseClick\fP / \fIFPPassRaiseClick\fP, \fIFPIgnoreFocusClickMotion\fP / \fI!FPIgnoreFocusClickMotion\fP, \fIFPIgnoreRaiseClickMotion\fP / \fI!FPIgnoreRaiseClickMotion\fP, \fI!FPAllowFocusClickFunction\fP / \fIFPAllowFocusClickFunction\fP, \fI!FPAllowRaiseClickFunction\fP / \fIFPAllowRaiseClickFunction\fP, \fIFPGrabFocus\fP / \fI!FPGrabFocus\fP, \fI!FPGrabFocusTransient\fP / \fIFPGrabFocusTransient\fP, \fIFPOverrideGrabFocus\fP / \fI!FPOverrideGrabFocus\fP, \fIFPReleaseFocus\fP / \fI!FPReleaseFocus\fP, \fI!FPReleaseFocusTransient\fP / \fIFPReleaseFocusTransient\fP, \fIFPOverrideReleaseFocus\fP / \fI!FPOverrideReleaseFocus\fP, \fIStartsLowered\fP / \fIStartsRaised\fP, \fIIgnoreRestack\fP / \fIAllowRestack\fP, \fIFixedPosition\fP / \fIVariablePosition\fP, \fIFixedUSPosition\fP / \fIVariableUSPosition\fP, \fIFixedPPosition\fP / \fIVariablePPosition\fP, \fIFixedSize\fP / \fIVariableSize\fP, \fIFixedUSSize\fP / \fIVariableUSSize\fP, \fIFixedPSize\fP / \fIVariablePSize\fP, \fI!Closable\fP / \fIClosable\fP, \fI!Iconifiable\fP / \fIIconifiable\fP, \fI!Maximizable\fP / \fIMaximizable\fP, \fI!AllowMaximizeFixedSize\fP / \fIAllowMaximizeFixedSize\fP, \fIIconOverride\fP / \fINoIconOverride\fP / \fINoActiveIconOverride\fP, \fIDepressableBorder\fP / \fIFirmBorder\fP, \fIMinWindowSize\fP, \fIMaxWindowSize\fP, \fIIconifyWindowGroups\fP / \fIIconifyWindowGroupsOff\fP, \fIResizeOpaque\fP / \fIResizeOutline\fP, \fIBackingStore\fP / \fIBackingStoreOff\fP / \fIBackingStoreWindowDefault\fP, \fIOpacity\fP / \fIParentalRelativity\fP, \fISaveUnder\fP / \fISaveUnderOff\fP, \fIWindowShadeShrinks\fP / \fIWindowShadeScrolls\fP, \fIWindowShadeSteps\fP, \fIWindowShadeAlwaysLazy\fP / \fIWindowShadeBusy\fP / \fIWindowShadeLazy,\fP \fIEWMHDonateIcon\fP / \fIEWMHDontDonateIcon\fP, \fIEWMHDonateMiniIcon\fP / \fIEWMHDontDonateMiniIcon\fP, \fIEWMHMiniIconOverride\fP / \fIEWMHNoMiniIconOverride\fP, \fIEWMHUseStackingOrderHints\fP / \fIEWMHIgnoreStackingOrderHints\fP, \fIEWMHIgnoreStateHints\fP / \fIEWMHUseStateHints\fP, \fIEWMHIgnoreStrutHints\fP / \fIEWMHUseStrutHints\fP, \fIEWMHIgnoreWindowType\fP / \fI!EWMHIgnoreWindowType\fP, \fIEWMHMaximizeIgnoreWorkingArea\fP / \fIEWMHMaximizeUseWorkingArea\fP / \fIEWMHMaximizeUseDynamicWorkingArea\fP, \fIEWMHPlacementIgnoreWorkingArea\fP / \fIEWMHPlacementUseWorkingArea\fP / \fIEWMHPlacementUseDynamicWorkingArea\fP, \fIMoveByProgramMethod\fP, \fIUnmanaged\fP, \fIState\fP, \fISnapGrid\fP, \fISnapAttraction\fP, \fIEdgeMoveDelay\fP, \fIEdgeResizeDelay\fP. \fIEdgeMoveResistance\fP, \fIInitialMapCommand\fP .sp در فهرست بالا برخی گزینه‌ها به‌صورت style\-option/opposite\-style\-option فهرست شده‌اند. گزینه مخالف (opposite\-style\-option) برای ورودی‌هایی که آن را دارند، رفتار پیش‌فرض fvwm را توصیف می‌کند و اگر بخواهید رفتار پیش‌فرض fvwm را تغییر دهید، می‌توانید از آن استفاده کنید. .sp \fBسیاست تمرکز (Focus policy)\fP .RS 4 گزینه \fIClickToFocus\fP به fvwm دستور می‌دهد وقتی روی پنجره کلیک شد تمرکز را به آن بدهد. گزینه پیش‌فرض \fIMouseFocus\fP (یا نام مستعار آن \fIFocusFollowsMouse\fP) به fvwm می‌گوید به محض ورود نشانگر به پنجره، تمرکز را به آن بدهد و با خروج نشانگر تمرکز را بگیرد. \fISloppyFocus\fP مشابه است، اما اگر نشانگر پنجره را ترک کرده و روی پنجره ریشه (root) یا پنجره ClickToFocus عبور کند، تمرکز را رها نمی‌کند (مگر اینکه روی آن کلیک کنید)، که این امکان را می‌دهد ماوس را بدون از دست دادن تمرکز جابجا کنید. پنجره‌ای با سبک \fINeverFocus\fP هرگز تمرکز را دریافت نمی‌کند. این ویژگی برای ماژول‌هایی مانند \fBFvwmButtons\fP کاربردی است. نکته: به محض اینکه هر یک از سبک‌های «...\|.\|.FP» استفاده شود، پیش‌فرض‌های همراه با سیاست‌های تمرکز پایه در صورت استفاده مجدد از آن‌ها بازیابی نمی‌شوند. برای مثال، وقتی از !FPGrabFocus استفاده شد، استفاده از ClickToFocus باعث بازیابی FPGrabFocus نمی‌شود. .sp مدل تمرکز می‌تواند با چندین گزینه اضافی تقویت شود. در نسخه fvwm\-2.5.3 و بالاتر، تعداد زیادی گزینه پیشرفته وجود دارد که با «FP» یا «!FP» شروع می‌شوند. این گزینه‌ها روزی جایگزین گزینه‌های قدیمی‌تر خواهند شد و ابتدا شرح داده می‌شوند. استفاده از هر یک از این گزینه‌های جدید ممکن است سازگاری با نسخه‌های قدیمی‌تر را محدود کند. به‌طور کلی، گزینه‌هایی که با «FP» شروع می‌شوند قابلیتی را فعال کرده، در حالی که گزینه‌هایی که با «!FP» شروع می‌شوند آن را غیرفعال می‌کنند. .RE .sp \fBتمرکز روی پنجره\fP .RS 4 با \fIFPEnterToFocus\fP، هنگامی که نشانگر وارد پنجره می‌شود، پنجره تمرکز را دریافت می‌کند. .sp با \fIFPLeaveToUnfocus\fP هنگامی که نشانگر پنجره را ترک می‌کند، پنجره تمرکز را از دست می‌دهد. .sp با \fIFPClickToFocus\fP، \fIFPClickDecorToFocus\fP یا \fIFPClickIconToFocus\fP، پنجره زمانی تمرکز دریافت می‌کند که روی داخل پنجره، تزیینات آن، یا آیکون آن کلیک شود. .sp سبک \fIFPFocusByProgram\fP به پنجره‌ها اجازه می‌دهد خودشان تمرکز را به دست گیرند. .sp سبک !\fIFPFocusByFunction\fP دریافت تمرکز توسط پنجره از طریق دستورات \fBFocus\fP و \fBFlipFocus\fP را ممنوع می‌کند. .sp سبک \fIFPFocusByFunctionWarpPointer\fP کنترل می‌کند که آیا هنگام استفاده از دستور \fBFocus\fP، نشانگر به پنجره انتخاب‌شده منتقل (warp) شود یا خیر. .sp سبک \fIFPLenient\fP اجازه تمرکز روی پنجره‌هایی را می‌دهد که آن را نمی‌خواهند، مانند \fBFvwmPager\fP یا xclock. .sp سبک \fIFPFocusClickButtons\fP فهرستی از دکمه‌های ماوس را می‌گیرد که می‌توان با کلیک روی آن‌ها، در صورت استفاده از سبک مناسب، روی پنجره تمرکز کرد یا آن را بالا آورد. پیش‌فرض استفاده از سه دکمه اول است ("123"). .sp سبک \fIFPFocusClickModifiers\fP درست مانند دستور \fBKey\fP فهرستی از کلیدهای تغییردهنده (modifier) را می‌گیرد. برای اینکه کلیک جهت تمرکز یا بالا آوردن پنجره کار کند، باید ترکیب دقیق کلیدهای تغییردهنده فشرده شود. پیش‌فرض استفاده نکردن از هیچ کلید تغییردهنده‌ای است ("N"). .sp با سبک \fIFPPassFocusClick\fP، کلیکی که برای تمرکز روی پنجره استفاده شده بود به برنامه منتقل می‌شود. .sp با سبک \fIFPAllowFocusClickFunction\fP، کلیکی که برای تمرکز روی پنجره استفاده شده بود همچنین می‌تواند یک کنش عادی را که با دستور \fBMouse\fP به پنجره مقید شده بود، فعال کند. .sp اگر سبک \fIFPIgnoreFocusClickMotion\fP استفاده شود، کلیک در پنجره و سپس کشیدن نشانگر در حالی که دکمه پایین نگه داشته شده است، به عنوان کلیک برای تمرکز روی پنجره به حساب نمی‌آید. در عوض، برنامه این رویدادها را به‌طور عادی پردازش می‌کند. این قابلیت برای انتخاب متن در پنجره ترمینال با ماوس بدون بالا آمدن پنجره مفید است. با این حال، تضمین نمی‌شود که پیوندهای ماوس روی پنجره کلاینت همچنان کار کنند (به دستور \fBMouse\fP مراجعه کنید). این سبک کلیک اولیه را مجبور به ارسال به برنامه می‌کند. مسافتی که نشانگر باید برای فعال‌سازی این حالت حرکت کند توسط دستور \fBMoveThreshold\fP کنترل می‌شود. .sp سبک‌های \fIFPSortWindowlistByFocus\fP و !\fIFPSortWindowlistByFocus\fP کنترل می‌کنند که آیا فهرست داخلی پنجره‌ها به ترتیبی که پنجره‌ها تمرکز یافته‌اند مرتب شود یا به ترتیبی که ایجاد شده‌اند. مورد دوم پیش‌فرض برای \fIClickToFocus\fP و \fISloppyFocus\fP است. .sp \fBکلیک روی پنجره برای بالا آوردن (Raise)\fP .sp سبک‌های \fIFPClickRaisesFocused\fP، \fIFPClickDecorRaisesFocused\fP و \fIFPClickIconRaisesFocused\fP اجازه می‌دهند وقتی داخل پنجره، تزیینات یا آیکون آن در حالی که پنجره از قبل دارای تمرکز است کلیک شد، پنجره بالا آورده شود. .sp سبک‌های \fIFPClickRaisesUnfocused\fP، \fIFPClickDecorRaisesUnfocused\fP و \fIFPClickIconRaisesUnfocused\fP اجازه می‌دهند وقتی داخل پنجره، تزیینات یا آیکون آن در حالی که پنجره هنوز تمرکز ندارد کلیک شد، پنجره بالا آورده شود. .sp با سبک \fIFPPassRaiseClick\fP، کلیکی که برای بالا آوردن پنجره استفاده شده بود به برنامه منتقل می‌شود. .sp با سبک \fIFPAllowRaiseClickFunction\fP، کلیکی که برای بالا آوردن پنجره استفاده شده بود همچنین می‌تواند یک کنش عادی را که با دستور \fBMouse\fP به پنجره مقید شده بود، فعال کند. .sp اگر سبک \fIFPIgnoreRaiseClickMotion\fP استفاده شود، کلیک در پنجره و سپس کشیدن نشانگر در حالی که دکمه پایین نگه داشته شده است، به عنوان کلیک برای بالا آوردن پنجره به حساب نمی‌آید. در عوض، برنامه این رویدادها را به‌طور عادی پردازش می‌کند. این قابلیت برای انتخاب متن در پنجره ترمینال با ماوس بدون بالا آمدن پنجره مفید است. با این حال، تضمین نمی‌شود که پیوندهای ماوس روی پنجره کلاینت همچنان کار کنند (به دستور \fBMouse\fP مراجعه کنید). توجه داشته باشید این سبک کلیک اولیه را مجبور به ارسال به برنامه می‌کند. مسافتی که نشانگر باید برای فعال‌سازی این حالت حرکت کند توسط دستور \fBMoveThreshold\fP کنترل می‌شود. .sp \fBدریافت تمرکز هنگام ایجاد یک پنجره جدید\fP .sp پنجره‌های جدید عادی یا گذرا (transient) با سبک \fIFPGrabFocus\fP یا \fIFPGrabFocusTransient\fP هنگام ایجاد به صورت خودکار تمرکز را دریافت می‌کنند. \fIFPGrabFocus\fP پیش‌فرض برای پنجره‌های دارای سبک \fIClickToFocus\fP است. توجه داشته باشید حتی در صورت غیرفعال بودن این سبک‌ها، ممکن است برنامه خودش تمرکز را در دست بگیرد. fvwm نمی‌تواند از این امر جلوگیری کند. .sp سبک \fIOverrideGrabFocus\fP به fvwm دستور می‌دهد هرگز تمرکز را از چنین پنجره‌ای از طریق سبک‌های \fIGrabFocus\fP یا \fIGrabFocusTransient\fP پس نگیرد. این می‌تواند در صورتی مفید باشد که بخواهید پنجره‌های گذرا فوراً تمرکز را دریافت کنند، مثلاً در یک مرورگر وب، اما نه زمانی که در یک پنجره ترمینال یا واژه‌پرداز کار می‌کنید. .sp سه سبک بالا با \fIFPReleaseFocus\fP، \fIFPReleaseFocusTransient\fP و \fIFPOverrideReleaseFocus\fP همراه هستند. این‌ها کنترل می‌کنند که آیا هنگام بسته شدن پنجره، تمرکز به پنجره دیگری بازگردانده شود یا خیر. در غیر این صورت هیچ پنجره‌ای یا پنجره زیر نشانگر تمرکز را دریافت می‌کند. .sp گزینه‌های \fIClickToFocusPassesClickOff\fP و \fIClickToFocusPassesClick\fP کنترل می‌کنند که آیا کلیک ماوس برای تمرکز روی پنجره به برنامه ارسال شود یا خیر. به همین ترتیب، \fIClickToFocusRaisesOff\fP/\fIMouseFocusClickRaisesOff\fP و \fIClickToFocusRaises\fP/\fIMouseFocusClickRaises\fP کنترل می‌کنند که آیا پنجره بالا آورده شود (اما بسته به مدل تمرکز). .sp نکته: در نسخه‌های fvwm پیش از 2.5.3، گزینه‌های «...\|.\|.Click» فقط برای پنجره‌های دارای \fIClickToFocus\fP اعمال می‌شدند در حالی که گزینه‌های «...\|.\|.Mouse» برای پنجره‌های با سیاست تمرکز متفاوت اعمال می‌شدند. این وضعیت دیگر برقرار نیست. .sp سبک قدیمی \fIGrabFocus\fP معادل استفاده از \fIFPGrabFocus\fP .br \fIFPReleaseFocus\fP است. .sp سبک قدیمی \fIGrabFocusTransient\fP معادل استفاده از \fIFPGrabFocusTransient\fP + \fIFPReleaseFocusTransient\fP است. .sp سبک \fILenience\fP معادل سبک جدید \fIFPLenient\fP است. .RE .RE .sp \fBعنوان پنجره\fP .RS 4 گزینه‌های \fITitle\fP و !Title تعیین می‌کنند که آیا پنجره با نوار عنوان تزیین شود یا خیر. به طور پیش‌فرض تمام پنجره‌ها دارای نوار عنوان هستند. \fINoTitle\fP معادل \fI!Title\fP است اما منسوخ شده است. .sp پنجره‌هایی با سبک \fITitleAtBottom\fP، \fITitleAtLeft\fP یا \fITitleAtRight\fP نوار عنوان را به جای بالای پنجره به صورت معمول، در پایین، سمت چپ یا سمت راست پنجره دارند. سبک \fITitleAtTop\fP جای‌گیری پیش‌فرض را بازیابی می‌کند. حتی اگر پنجره سبک \fI!Title\fP را تنظیم کرده باشد، این امر بر دستور \fBWindowShade\fP تأثیر می‌گذارد. لطفاً برای بررسی تعاملات میان آن دستور و این سبک‌ها به دستور \fBWindowShade\fP مراجعه کنید. عناوین در سمت چپ یا راست پنجره‌ها با سبک‌های زیر تقویت می‌شوند: .sp به طور معمول، متن در عناوین سمت چپ پنجره ۹۰ درجه در خلاف جهت عقربه‌های ساعت از حالت عمودی عادی چرخانده می‌شود و برای عناوین سمت راست ۹۰ درجه در جهت عقربه‌های ساعت می‌چرخد. همچنین می‌توان آن را با \fILeftTitleRotatedCW\fP در صورت استفاده از \fITitleAtLeft\fP، و با \fIRightTitleRotatedCCW\fP در صورت استفاده از \fITitleAtRight\fP در جهت‌های مخالف چرخاند. مقادیر پیش‌فرض را می‌توان با \fILeftTitleRotatedCCW\fP و \fIRightTitleRotatedCW\fP بازیابی کرد. یک متن افقی عادی نیز در صورت استفاده از \fITitleAtTop\fP با \fITopTitleRotated\fP، و در صورت استفاده از \fITitleAtBottom\fP با \fIBottomTitleRotated\fP قابل چرخش است. مقادیر پیش‌فرض با \fITopTitleNotRotated\fP و \fIBottomTitleNotRotated\fP بازگردانده می‌شوند. .sp به‌طور پیش‌فرض، تزیینات نوار عنوان تعریف‌شده با دستور \fBTitleStyle\fP به دنبال چرخش متن عنوان می‌چرخند (پاراگراف قبلی را ببینید). این قابلیت را می‌توان با استفاده از سبک !\fIUseTitleDecorRotation\fP غیرفعال کرد. \fIUseTitleDecorRotation\fP به حالت پیش‌فرض بازمی‌گردد. .sp با سبک \fIStippledTitle\fP، عناوین با همان جلوه‌ای رسم می‌شوند که معمولاً برای پنجره‌های دارای سبک \fISticky\fP، \fIStickyAcrossPages\fP یا \fIStickyAcrossDesks\fP رزرو شده است. \fI!StippledTitle\fP به عناوین عادی بازمی‌گردد. \fIStippledTitleOff\fP معادل \fI!StippledTitle\fP است اما منسوخ شده است. .sp گزینه \fBColorset\fP شماره مجموعه‌رنگ (colorset) را به عنوان تنها آرگومان خود می‌گیرد و رنگ‌های تنظیم‌شده توسط \fIColor\fP را لغو می‌کند. در عوض، رنگ‌های متناظر از مجموعه‌رنگ داده‌شده استفاده می‌شوند. توجه داشته باشید که سایر ویژگی‌های مجموعه‌رنگ استفاده نمی‌شوند. برای آن منظور از سبک تزیینی \fBColorset\fP در دستورات \fBTitleStyle\fP و \fIButtonStyle\fP استفاده کنید. برای توقف استفاده از مجموعه‌رنگ، شماره مجموعه‌رنگ حذف می‌شود. .sp گزینه \fIBorderColorset\fP هشت عدد صحیح مثبت را به عنوان آرگومان می‌گیرد و مجموعه‌رنگ‌های داده‌شده را روی هشت جزء مجزای حاشیه پنجره اعمال می‌کند. .sp جهت سازگاری با گذشته، اگر یک عدد صحیح ارائه شود، آن مقدار روی تمام اجزای حاشیه پنجره اعمال می‌گردد. .sp حاشیه به تعاریف زیر تقسیم می‌شود و همان ترتیبی است که مجموعه‌رنگ‌ها بر حاشیه اعمال خواهند شد. .sp .if n .RS 4 .nf .fam C BorderColorset North, North East, East, South East, South, South West, West, North West .fam .fi .if n .RE .sp گزینه‌های \fINorth\fP، \fIEast\fP، \fISouth\fP و \fIWest\fP به لبه‌های بالا، چپ، پایین و راست حاشیه پنجره اشاره دارند. .sp گزینه‌های \fINE\fP، \fISE\fP، \fISW\fP و \fINW\fP به دستگیره‌های (handles) پنجره اشاره دارند. .sp \fBنکته\fP: با توجه به نحوه رندر دستگیره‌های پنجره، هیچ راهی وجود ندارد که یک لبه کامل پنجره را همرنگ با مقدار تعریف‌شده توسط \fINorth\fP، \fISouth\fP، \fIEast\fP یا \fIWest\fP درآورد. .sp گزینه سبک \fIHilightBorderColorset\fP مشابه \fIBorderColorset\fP کار می‌کند اما زمانی استفاده می‌شود که پنجره تمرکز دارد. .sp سبک !\fIIconTitle\fP نمایش برچسب‌های آیکون را غیرفعال می‌کند در حالی که سبک مخالف \fIIconTitle\fP برچسب‌های آیکون را فعال می‌سازد (رفتار پیش‌فرض). \fINoIconTitle\fP معادل \fI!IconTitle\fP است اما منسوخ شده است. .sp گزینه \fIIconTitleColorset\fP شماره مجموعه‌رنگ را به عنوان تنها آرگومان خود می‌گیرد و رنگ‌های تنظیم‌شده توسط \fIColor\fP یا \fIColorset\fP را لغو می‌کند. برای توقف استفاده از این مجموعه‌رنگ، آرگومان حذف می‌شود. .sp گزینه \fIHilightIconTitleColorset\fP شماره مجموعه‌رنگ را به عنوان تنها آرگومان خود می‌گیرد و رنگ‌های تنظیم‌شده توسط \fIHilightColorset\fP را لغو می‌کند. برای توقف استفاده از این مجموعه‌رنگ، آرگومان حذف می‌شود. .sp گزینه \fIIconBackgroundColorset\fP شماره مجموعه‌رنگ را به عنوان تنها آرگومان خود می‌گیرد و از آن برای تنظیم پس‌زمینه تصویر آیکون استفاده می‌کند. به‌طور پیش‌فرض تصویر آیکون روی تصویر پس‌زمینه رسم نمی‌شود. برای بازگرداندن حالت پیش‌فرض، آرگومان حذف می‌شود. .sp گزینه \fIIconTitleRelief\fP یک آرگومان عددی بین \-50 تا +50 پیکسل می‌گیرد و ضخامت برجستگی سه‌بعدی رسم‌شده در اطراف عنوان آیکون را تعیین می‌کند. با مقادیر منفی، عنوان آیکون ظاهری فرورفته پیدا می‌کند. مقدار پیش‌فرض 2 است و با حذف آرگومان بازگردانده می‌شود. .sp گزینه \fIIconBackgroundRelief\fP یک آرگومان عددی بین \-50 تا +50 پیکسل می‌گیرد و ضخامت برجستگی سه‌بعدی رسم‌شده در اطراف پس‌زمینه تصویر آیکون (در صورت وجود) را تعیین می‌کند. با مقادیر منفی، پس‌زمینه آیکون ظاهری فرورفته پیدا می‌کند. مقدار پیش‌فرض 2 است و در صورت حذف آرگومان بازگردانده می‌شود. .sp گزینه \fIIconBackgroundPadding\fP یک آرگومان عددی بین 0 تا 50 پیکسل می‌گیرد و میزان فضای خالی بین برجستگی تصویر پس‌زمینه آیکون (در صورت وجود) و تصویر آیکون را تعیین می‌کند. مقدار پیش‌فرض 2 است و در صورت حذف آرگومان بازگردانده می‌شود. .sp گزینه‌های \fIFont\fP و \fIIconFont\fP نام یک قلم (فونت) را به عنوان تنها آرگومان خود می‌گیرند. این قلم در عنوان پنجره یا آیکون استفاده می‌شود. به‌طور پیش‌فرض قلم داده‌شده در دستور \fBDefaultFont\fP استفاده می‌شود. برای بازگشت به حالت پیش‌فرض، از این سبک بدون آرگومان نام استفاده کنید. .sp سبک منسوخ‌شده \fIIndexedWindowName\fP باعث می‌شود fvwm از عناوین پنجره در قالب .sp .if n .RS 4 .nf .fam C name (i) .fam .fi .if n .RE .sp استفاده کند که در آن \fIname\fP نام دقیق پنجره و \fIi\fP یک عدد صحیح است که نمایانگر \fIi امین\fP پنجره با \fIname\fP به عنوان نام پنجره است. این سبک با مورد زیر جایگزین شده است: .sp .if n .RS 4 .nf .fam C TitleFormat %n (%t) .fam .fi .if n .RE .sp سبک \fIExactWindowName\fP حالت پیش‌فرض را که استفاده از نام دقیق پنجره است بازمی‌گرداند. این سبک به نفع مورد زیر منسوخ شده است: .sp .if n .RS 4 .nf .fam C TitleFormat %n .fam .fi .if n .RE .sp سبک‌های \fIIndexedIconName\fP و \fIExactIconName\fP همانند سبک‌های \fIIndexedWindowName\fP و \fIExactWindowName\fP اما برای عناوین آیکون عمل می‌کنند. هر دو به نفع موارد زیر منسوخ شده‌اند: .sp .if n .RS 4 .nf .fam C IconTitleFormat %n (%t) IconTitleFormat %n .fam .fi .if n .RE .sp دستور \fITitleFormat\fP توصیف می‌کند که نام مرئی یک پنجره چگونه باید باشد، که متغیرهای جانگهدار (placeholder) زیر برای آن معتبر هستند: .sp \fB%n\fP .RS 4 درج نام پنجره. .RE .sp \fB%i\fP .RS 4 درج نام آیکون پنجره. .RE .sp \fB%c\fP .RS 4 درج نام کلاس پنجره. .RE .sp \fB%r\fP .RS 4 درج نام منبع (resource) پنجره. .RE .sp \fB%t\fP .RS 4 درج تعداد پنجره‌ها. .RE .sp \fB%I\fP .RS 4 درج شناسه پنجره (Window ID). .RE .sp \fB%%\fP .RS 4 درج یک کاراکتر واقعی \*(Aq%\*(Aq. .sp می‌توان از هر مقدار فضای خالی به همراه کاراکترهای دیگر برای ساختن رشته استفاده کرد \(em اما یک رشته \fITitleFormat\fP معتبر باید حداقل شامل یکی از متغیرهای جایگزین ذکر شده باشد. هیچ‌گونه حذف نقل‌قولی روی رشته انجام نمی‌شود، بنابراین برای مثال عبارت زیر دقیقاً به همان صورت چاپ می‌شود: .sp .if n .RS 4 .nf .fam C TitleFormat " %n " \-> [%t] \->\& [%c] .fam .fi .if n .RE .sp نکته: کاملاً امکان‌پذیر است که از یک \fITitleFormat\fP استفاده کنید که منجر به پاک شدن کامل عنوان قابل مشاهده شود. به عنوان مثال: .sp .if n .RS 4 .nf .fam C TitleFormat %z .fam .fi .if n .RE .sp صرفاً به این دلیل که متغیر جایگزین \*(Aq%z\*(Aq پشتیبانی نمی‌شود. این یک باگ نیست بلکه جنبه‌ای از نحوه عملکرد تجزیه‌کننده قالب‌بندی است. .RE .sp \fIIconTitleFormat\fP توصیف می‌کند که نام آیکون قابل مشاهده یک پنجره چگونه باید باشد، که گزینه‌های آن همانند \fITitleFormat\fP است. .RE .sp \fBدکمه‌های عنوان (Title buttons)\fP .RS 4 گزینه‌های \fIButton\fP و !\fIButton\fP یک آرگومان عددی می‌گیرند که شماره دکمه نوار عنوان است که باید نمایش داده شود یا حذف گردد. گزینه \fINoButton\fP معادل \fI!Button\fP است اما منسوخ شده است. .sp گزینه \fIMwmButtons\fP باعث می‌شود دکمه \fBMaximize\fP هنگام بیشینه بودن پنجره، فرورفته به نظر برسد. برای اطلاعات بیشتر، پرچم \fIMwmDecorMax\fP را در \fBButtonStyle\fP ببینید. برای خاموش کردن مجدد این سبک، از سبک \fBFvwmButtons\fP استفاده کنید. .RE .sp \fBکادرها (Borders)\fP .RS 4 سبک !\fIBorders\fP حاشیه پنجره را (اما نه عنوان آن را) به طور کامل حذف می‌کند. سبک \fIBorders\fP آن‌ها را دوباره فعال می‌کند. بدون کادرها، تمام سبک‌های دیگر که روی کادر پنجره تأثیر می‌گذارند بی‌معنی خواهند بود. .sp گزینه \fIMwmBorder\fP باعث می‌شود برجستگی سه‌بعدی بیشتر با سبک Mwm همخوانی داشته باشد. گزینه \fIFvwmBorder\fP گزینه قبلی را خاموش می‌کند. .sp با سبک !\fIHandles\fP، پنجره دستگیره‌های گوشه‌های پنجره را که معمولاً برای تغییر اندازه آن استفاده می‌شوند دریافت نمی‌کند. با \fI!Handles\fP، پهنای مشخص‌شده از سبک \fIBorderWidth\fP استفاده می‌شود. به‌طور پیش‌فرض، یا در صورتی که \fIHandles\fP مشخص شده باشد، پهنای حاصل از سبک \fIHandleWidth\fP استفاده می‌شود. \fINoHandles\fP معادل \fI!Handles\fP است اما منسوخ شده است. .sp گزینه \fIHandleWidth\fP یک آرگومان عددی می‌گیرد که پهنای حاشیه پنجره را در صورتی که دستگیره‌های تغییر اندازه داشته باشد تعیین می‌کند. استفاده از \fIHandleWidth\fP بدون آرگومان، مقدار پیش‌فرض را بازمی‌گرداند. .sp گزینه \fICornerLength\fP یک آرگومان عددی دریافت می‌کند که طول دستگیره‌های گوشه را بر حسب پیکسل مشخص می‌کند. مقدار پیش‌فرض ارتفاع نوار عنوان است. استفاده از \fICornerLength\fP بدون آرگومان، مقدار پیش‌فرض را بازمی‌گرداند. .sp گزینه \fIBorderWidth\fP یک آرگومان عددی می‌گیرد که پهنای حاشیه پنجره را در صورتی که فاقد دستگیره‌های تغییر اندازه باشد تعیین می‌کند. این گزینه تنها در صورتی استفاده می‌شود که سبک \fI!Handles\fP نیز مشخص شده باشد. استفاده از \fIBorderWidth\fP بدون آرگومان، مقدار پیش‌فرض را بازمی‌گرداند. .sp گزینه \fIDepressableBorder\fP باعث می‌شود هنگام فشردن کلید ماوس بر روی بخش‌های کادر تزئینات پنجره، آن‌ها فرورفته به نظر برسند. این قابلیت را می‌توان مجدداً با سبک \fIFirmBorder\fP غیرفعال کرد. .RE .sp \fBآیکون‌ها، جمع‌کردن، بیشینه‌سازی، جابه‌جایی، تغییر اندازه\fP .RS 4 گزینه \fIIcon\fP یک آرگومان رشته‌ای اختیاری (بدون نقل‌قول) می‌گیرد که بیت‌مپ یا پیکس‌مپ آیکون مورد استفاده است. آیکون‌هایی که به این شیوه مشخص می‌شوند، بر آیکون‌های پیکس‌مپ ارائه‌شده توسط کلاینت در برنامه (از طریق ویژگی WM_HINTS یا ویژگی ewmh _NET_WM_ICON) اولویت دارند، اما بر پنجره‌های آیکون یا آیکون ewmh ارجحیت ندارند. سبک \fIIconOverride\fP رفتار را به گونه‌ای تغییر می‌دهد که بر تمام آیکون‌های ارائه‌شده توسط کلاینت برتری یابد؛ سبک \fINoIconOverride\fP رفتار را تغییر می‌دهد تا آیکون‌های ارائه‌شده توسط کلاینت را بازنویسی نکند؛ رفتار بازنویسی پیش‌فرض را می‌توان با سبک \fINoActiveIconOverride\fP فعال کرد. با این سبک، fvwm در صورت تغییر آیکون از آیکون ارائه‌شده توسط برنامه استفاده می‌کند، اما تا آن زمان از آیکون مشخص‌شده در فایل پیکربندی بهره می‌برد. .sp یک استثنا برای این قوانین وجود دارد، به این ترتیب که: .sp .if n .RS 4 .nf .fam C Style * Icon unknown.xpm .fam .fi .if n .RE .sp آیکون unknown.xpm را به تمام پنجره‌ها تحمیل نمی‌کند، بلکه صرفاً آیکون پیش‌فرض را مانند دستور DefaultIcon تنظیم می‌کند. اگر واقعاً می‌خواهید تمام پنجره‌ها دارای آیکون یکسانی باشند، می‌توانید از عبارت زیر استفاده کنید: .sp .if n .RS 4 .nf .fam C Style ** Icon unknown.xpm .fam .fi .if n .RE .sp اگر ویژگی \fINoIcon\fP تنظیم شده باشد، پنجره مشخص‌شده هنگام تبدیل به آیکون صرفاً ناپدید می‌شود. پنجره را می‌توان از طریق لیست پنجره‌ها بازیابی کرد. اگر \fIIcon\fP بدون آرگومان تنظیم شود، ویژگی \fINoIcon\fP پاک می‌شود اما هیچ آیکونی تعیین نمی‌گردد. مثالی که تنها اجازه می‌دهد آیکون ماژول \fBFvwmPager\fP وجود داشته باشد: .sp .if n .RS 4 .nf .fam C Style * NoIcon Style FvwmPager Icon .fam .fi .if n .RE .sp گزینه \fIIconBox\fP می‌تواند بدون آرگومان، با چهار آرگومان عددی (به‌علاوه یک مشخصه صفحه نمایش اختیاری)، یک رشته هندسه X11 یا رشته "none" مقداردهی شود: .sp .if n .RS 4 .nf .fam C IconBox [screen scr\-spec] l t r b .fam .fi .if n .RE .sp یا .sp .if n .RS 4 .nf .fam C IconBox geometry .fam .fi .if n .RE .sp که در آن \fIl\fP مختصات چپ، \fIt\fP بالا، \fIr\fP راست و \fIb\fP پایین است. مختصات منفی نشان‌دهنده فاصله از سمت راست یا پایین صفحه نمایش هستند. اگر آرگومان اول کلمه \fIscreen\fP باشد، آرگومان \fIscr\-spec\fP صفحه RandR را که جعبه آیکون بر روی آن تعریف شده است مشخص می‌کند، یا علامت اختیاری \*(Aqw\*(Aq برای صفحه‌ای که مرکز پنجره در آن قرار دارد. این قابلیت تنها در حالت چند مانیتوره مفید است. تعیین مختصات به صورت "l t r b" انعطاف‌پذیرتر از یک رشته هندسه X11 است. به عنوان مثال: .sp .if n .RS 4 .nf .fam C IconBox \-80 240 \-1 \-1 .fam .fi .if n .RE .sp جعبه‌ای به پهنای ۸۰ پیکسل از لبه راست، ۲۴۰ پیکسل پایین‌تر از بالا، و ادامه‌دار تا پایین صفحه نمایش تعریف می‌کند. .sp شاید استفاده از یک رشته هندسه X11 آسان‌تر باشد: .sp .if n .RS 4 .nf .fam C IconBox 1000x70\-1\-1 .fam .fi .if n .RE .sp یک جعبه آیکون به ابعاد ۱۰۰۰ در ۷۰ پیکسل را در پایین صفحه و از گوشه پایینی سمت راست صفحه قرار می‌دهد. یکی از راه‌های یافتن چنین هندسه‌ای، استفاده از پنجره‌ای است که بر حسب پیکسل تغییر اندازه می‌دهد، مانند xv. سپس پنجره xv را تغییر اندازه داده و در جایی که می‌خواهید جعبه آیکون باشد قرار دهید. سپس از FvwmIdent برای خواندن هندسه پنجره استفاده کنید. جعبه آیکون ناحیه‌ای از صفحه نمایش است که fvwm سعی می‌کند آیکون‌های پنجره‌های منطبق را در آن قرار دهد، تا زمانی که با آیکون‌های دیگر هم‌پوشانی نداشته باشند. چند جعبه آیکون را می‌توان به عنوان نواحی سرریز تعریف کرد. وقتی اولین جعبه آیکون پر شد، دومی پر می‌شود. تمام جعبه‌های آیکون برای یک سبک باید در یک دستور \fBStyle\fP تعریف شوند. به عنوان مثال: .sp .if n .RS 4 .nf .fam C Style * IconBox \-80 240 \-1 \-1, \(rs IconBox 1000x70\-1\-1 .fam .fi .if n .RE .sp یک دستور Style با گزینه IconBox جایگزین هر جعبه آیکونی می‌شود که پیش‌تر توسط دستور Style دیگری برای همان سبک تعریف شده بود. به همین دلیل استفاده از بک‌اسلش در مثال قبلی الزامی است. .sp نکته: در صورت استفاده از RandR، هندسه برای دستور جعبه آیکون مشخصه اضافی "@w" را برای صفحه نمایش می‌پذیرد. این مشخصه صفحه‌ای را تعیین می‌کند که مرکز پنجره در آن قرار دارد. مشخصه صفحه نمایش اضافی در هیچ جای دیگر مجاز نیست. .sp اگر هرگز جعبه آیکونی تعریف نکنید، یا تمام جعبه‌های آیکون را پر کنید، fvwm یک جعبه آیکون پیش‌فرض دارد که کل صفحه را پوشش می‌دهد؛ این جعبه از بالا به پایین و سپس از چپ به راست پر می‌شود و دارای یک شبکه ۸۰ در ۸۰ پیکسلی است. برای غیرفعال کردن همه به جز جعبه آیکون پیش‌فرض، می‌توانید از IconBox بدون آرگومان در یک دستور \fBStyle\fP جداگانه استفاده کنید. برای غیرفعال کردن تمام جعبه‌های آیکون از جمله جعبه آیکون پیش‌فرض، می‌توان آرگومان "none" را مشخص کرد. .sp راهنمایی: می‌توانید آیکون‌های خود را با یک تابع ساده fvwm در جعبه آیکون به‌طور خودکار مرتب کنید. تابع "DeiconifyAndRearrange" زیر را در فایل پیکربندی خود قرار دهید: .sp .if n .RS 4 .nf .fam C AddToFunc DeiconifyAndRearrange + C Iconify off + C All (CurrentPage, Iconic) PlaceAgain Icon .fam .fi .if n .RE .sp سپس تمام جاهایی را که دستور \fBIconify\fP را برای بازگردانی آیکون از حالت کوچک‌شده فرامی‌خوانید، با فراخوانی تابع جدید جایگزین کنید. به عنوان مثال عبارت زیر: .sp .if n .RS 4 .nf .fam C AddToFunc IconFunc + C Iconify off + M Raise + M Move + D Iconify off Mouse 1 I A Iconify off .fam .fi .if n .RE .sp را با کد زیر جایگزین کنید: .sp .if n .RS 4 .nf .fam C AddToFunc IconFunc + C DeiconifyAndRearrange + M Raise + M Move + D DeiconifyAndRearrange Mouse 1 I A DeiconifyAndRearrange .fam .fi .if n .RE .sp گزینه \fIIconGrid\fP دو آرگومان عددی بزرگتر از صفر می‌گیرد. .sp .if n .RS 4 .nf .fam C IconGrid x y .fam .fi .if n .RE .sp آیکون‌ها با حرکت گام‌به‌گام در جعبه آیکون با استفاده از مقادیر \fIx\fP و \fIy\fP شبکه آیکون و جستجو برای فضای خالی در جعبه قرار می‌گیرند. شبکه پیش‌فرض ۳ در ۳ پیکسل است که ظاهری بسیار فشرده ایجاد می‌کند. برای داشتن ظاهری منظم‌تر، از شبکه‌ای بزرگتر از بزرگترین آیکون خود استفاده کنید. از آرگومان \fIIconSize\fP برای برش یا کشیدن آیکون تا حداکثر اندازه استفاده کنید. تعریف \fIIconGrid\fP باید پس از تعریف \fBIconBox\fP مربوط به آن بیاید: .sp .if n .RS 4 .nf .fam C Style * IconBox \-80x240\-1\-1, IconGrid 90 90 .fam .fi .if n .RE .sp گزینه \fIIconFill\fP دو آرگومان می‌گیرد. .sp .if n .RS 4 .nf .fam C IconFill Bottom Right .fam .fi .if n .RE .sp آیکون‌ها با گام برداشتن در جعبه آیکون با استفاده از این آرگومان‌ها برای کنترل جهت پر شدن جعبه، در آن جای‌گذاری می‌شوند. جهت پیش‌فرض از چپ به راست، و سپس از بالا به پایین است. این مورد به صورت زیر بیان می‌شود: .sp .if n .RS 4 .nf .fam C IconFill left top .fam .fi .if n .RE .sp برای پر کردن یک جعبه آیکون به صورت ستونی به جای سطری، ابتدا جهت عمودی (top یا bottom) را مشخص کنید. جهت‌ها را می‌توان به صورت کوتاه یا کامل نوشت: "t"، "top"، "b"، "bot"، "bottom"، "l"، "lft"، "left"، "r"، "rgt"، "right". تعریف \fBIconFill\fP باید پس از تعریف \fBIconBox\fP مربوطه بیاید: .sp .if n .RS 4 .nf .fam C Style * IconBox \-80x240\-1\-1, IconFill b r .fam .fi .if n .RE .sp گزینه \fIIconSize\fP محدودیت‌هایی را برای اندازه تصویر آیکون تعیین می‌کند. هر دو تصویر آیکون ارائه‌شده توسط کاربر و برنامه تحت تأثیر قرار می‌گیرند. .sp .if n .RS 4 .nf .fam C IconSize [ width height [ maxwidth maxheight ] ] .fam .fi .if n .RE .sp تمام آرگومان‌ها بر حسب پیکسل سنجیده می‌شوند. هنگامی که هر چهار آرگومان به \fIIconSize\fP داده می‌شوند، \fIwidth\fP و \fIheight\fP حداقل اندازه یک آیکون را نشان می‌دهند، و \fImaxwidth\fP و \fImaxheight\fP حداکثر اندازه یک آیکون را مشخص می‌کنند. تصاویر آیکونی که کوچکتر از حداقل اندازه باشند فاصله‌گذاری (padding) می‌شوند. تصاویری که بزرگتر از حداکثر اندازه باشند بریده می‌شوند. .sp اگر فقط دو آرگومان به \fIIconSize\fP ارسال شود، \fIwidth\fP و \fIheight\fP اندازه مطلق یک آیکون را نشان می‌دهند. آیکون‌های تحت پوشش این سبک برای رسیدن به اندازه مشخص‌شده فاصله‌گذاری یا بریده می‌شوند. .sp اگر هیچ آرگومانی مشخص نشود، مقادیر پیش‌فرض برای هر بعد استفاده می‌شود. این عمل عملاً هیچ محدودیتی روی اندازه آیکون اعمال نمی‌کند. .sp می‌توان از مقدار "\-1" به جای هر یک از آرگومان‌ها برای تعیین مقدار پیش‌فرض آن بعد استفاده کرد. .sp علاوه بر آرگومان‌های عددی، ۱ آرگومان اضافی می‌تواند "Stretched"، "Adjusted" یا "Shrunk" باشد. .sp توجه داشته باشید که مدیریت‌کننده‌های آیکون ارائه‌شده توسط ماژول‌ها تحت تأثیر این سبک قرار نمی‌گیرند. .sp گزینه \fIMiniIcon\fP یک پیکس‌مپ را برای استفاده به عنوان آیکون مینیاتوری پنجره مشخص می‌کند. این آیکون مینیاتوری را می‌توان در یک دکمه نوار عنوان ترسیم کرد (به \fBButtonStyle\fP مراجعه کنید)، و توسط ماژول‌های مختلف fvwm (\fBFvwmIconMan\fP و \fBFvwmPager\fP) قابل استفاده است. این گزینه نام یک پیکس‌مپ را به عنوان آرگومان می‌گیرد. .sp گزینه‌های \fIWindowShadeShrinks\fP و \fIWindowShadeScrolls\fP کنترل می‌کنند که آیا محتویات پنجره‌ای که با دستور \fBWindowShade\fP لوله (سایه‌دار) می‌شود پیمایش شود (پیش‌فرض) یا در جای خود ثابت بماند. حالت جمع‌شدن اندکی سریع‌تر است. .sp گزینه \fIWindowShadeSteps\fP تعداد مراحل پویانمایی را هنگام سایه‌دار کردن پنجره با \fBWindowShade\fP انتخاب می‌کند. این گزینه یک عدد را به عنوان آرگومان دریافت می‌کند. اگر عدد دارای پسوند \*(Aq\fIp\fP\*(Aq باشد، تعداد پیکسل‌ها را به عنوان اندازه گام به جای تعداد ثابت گام‌ها تنظیم می‌کند. مقدار 0 پویانمایی را غیرفعال می‌کند. این حالت در صورت حذف یا نامعتبر بودن آرگومان نیز رخ می‌دهد. .sp دستور \fBWindowShade\fP دارای دو حالت عملیاتی است: سایه‌زنی مشغول (busy) و تنبل (lazy). سایه‌زنی مشغول می‌تواند ۵۰٪ کندتر از سایه‌زنی تنبل باشد، اما دومی ممکن است در برخی شرایط عجیب به نظر برسد، به عنوان مثال اگر کادرها، دکمه‌ها یا عنوان پنجره با یک پیکس‌مپ کاشی‌کاری‌شده پر شده باشند. همچنین، دستگیره‌های پنجره در حالت تنبل رسم نمی‌شوند و برجستگی کادر ممکن است فقط کمی قبل از رسیدن پنجره به حالت جمع‌شده یا بلافاصله پس از خروج از آن رسم شود. به‌طور پیش‌فرض، fvwm در صورت عدم وجود جلوه‌های بصری نامطلوب (بدون احتساب دستگیره‌های پنجره) از حالت تنبل و در غیر این صورت از حالت مشغول استفاده می‌کند. از \fIWindowShadeAlwaysLazy یا WindowShadeBusy\fP برای اجبار به استفاده از حالت تنبل یا مشغول استفاده کنید. تنظیمات پیش‌فرض با \fIWindowShadeLazy\fP بازگردانده می‌شود. .sp سبک \fIResizeOpaque\fP به fvwm دستور می‌دهد تا اندازه پنجره‌های مربوطه را با محتویات قابل مشاهده تغییر دهد، به جای اینکه از یک طرح کلی (outline) استفاده کند. از آنجا که این کار باعث بازترسیم مکرر برنامه می‌شود، بسته به حجم گرافیکی که برنامه دوباره رسم می‌کند، می‌تواند کاملاً کند باشد و باعث سوسو زدن بیش از حد پنجره شود. سبک \fIResizeOutline\fP (پیش‌فرض) سبک \fIResizeOpaque\fP را خنثی می‌کند. بسیاری از برنامه‌ها دوست ندارند اندازه پنجره‌هایشان به صورت مات (با محتوا) تغییر کند، مانند XEmacs، Netscape یا ترمینال‌هایی با پس‌زمینه پیکس‌مپ. اگر از نتیجه راضی نیستید، از سبک \fIResizeOpaque\fP برای این پنجره‌ها استفاده نکنید. برای مستثنی کردن پنجره‌های خاص از تغییر اندازه مات، می‌توانید از این خطوط در فایل پیکربندی خود استفاده کنید: .sp .if n .RS 4 .nf .fam C Style * ResizeOpaque Style rxvt ResizeOutline Style emacs ResizeOutline .fam .fi .if n .RE .sp گزینه \fISticky\fP پنجره را چسبنده می‌کند، یعنی همیشه در هر صفحه و هر میزکاری قابل مشاهده است. سبک متضاد آن، \fISlippery\fP، به حالت پیش‌فرض بازمی‌گردد. .sp گزینه \fIStickyIcon\fP پنجره را در صورت آیکون شدن چسبنده می‌کند. این پنجره در بالای میزکار فعال از حالت آیکون خارج می‌شود. گزینه \fISlipperyIcon\fP به حالت پیش‌فرض برمی‌گردد. .sp گزینه‌های \fIStickyAcrossPages\fP و \fIStickyAcrossPagesIcon\fP مانند \fISticky\fP و \fIStickyIcon\fP عمل می‌کنند، اما پنجره را فقط در بین صفحات می‌چسبانند نه میزکارها، در حالی که \fIStickyAcrossDesks و StickyAcrossDesksIcon\fP برعکس عمل می‌کنند. .sp پنجره‌هایی که به عنوان \fISticky\fP یا \fIStickyAcrossDesks\fP یا \fIStickyAcrossPages\fP علامت‌گذاری شده‌اند، دارای نقطه‌چین‌هایی (stipples) روی نوار عنوان خواهند بود. این حالت را می‌توان با سبک !\fIStickyStippledTitle\fP خنثی کرد. سبک \fIStickyStippledTitle\fP نقطه‌چین‌ها را در جایی که آن پنجره نیز به عنوان \fISticky\fP علامت‌گذاری شده باشد بازمی‌گرداند. توجه داشته باشید که این سبک پیش‌فرض برای پنجره‌های \fISticky\fP است. آیکون‌های چسبنده روی عنوان آیکون دارای نقطه‌چین خواهند بود. این را می‌توان به همین ترتیب با سبک !\fIStickyStippledIconTitle\fP غیرفعال کرد. .sp پنجره‌های دارای سبک \fIStartIconic\fP در ابتدا به صورت آیکون نمایش داده می‌شوند. توجه داشته باشید که برخی از برنامه‌ها با خارج کردن خود از حالت آیکون با این رفتار مقابله می‌کنند. حالت پیش‌فرض آیکون نکردن پنجره‌ها است و می‌توان آن را با سبک \fIStartNormal\fP تنظیم کرد. .sp گزینه \fIStickyIcon\fP پنجره را در صورت آیکون شدن چسبنده می‌کند. پنجره روی میزکار فعال از حالت آیکون خارج می‌شود. گزینه \fISlipperyIcon\fP به حالت پیش‌فرض بازمی‌گردد. .sp گزینه \fIStickyIconPage\fP مانند \fIStickyIcon\fP عمل می‌کند، اما آیکون را فقط در میان صفحات می‌چسباند نه میزکارها، در حالی که \fIStickyIconDesk\fP برعکس عمل می‌کند. .sp گزینه \fIStippledIconTitle\fP مانند \fIStippledTitle\fP عمل می‌کند به این صورت که روی عنوان آیکون‌ها نقطه‌چین رسم می‌کند اما آیکون را چسبنده نمی‌کند. .sp گزینه \fIIgnoreRestack\fP باعث می‌شود fvwm تلاش‌های کلاینت‌ها برای بالا بردن یا پایین آوردن پنجره‌های خود را نادیده بگیرد. به‌طور پیش‌فرض، سبک متضاد آن، \fIAllowRestack\fP، فعال است. .sp گزینه‌های \fIFixedPosition\fP و \fIFixedUSPosition\fP باعث می‌شوند fvwm تلاش‌های کاربر برای جابه‌جایی پنجره را نادیده بگیرد. همچنان امکان جابه‌جایی پنجره با تغییر اندازه آن وجود دارد. برای اجازه دادن به کاربر جهت جابه‌جایی پنجره‌ها، از سبک \fIVariablePosition\fP یا \fIVariableUSPosition\fP استفاده کنید. .sp گزینه‌های \fIFixedSize\fP و \fIFixedUSSize\fP باعث می‌شوند fvwm تلاش‌های کاربر برای تغییر اندازه پنجره را نادیده بگیرد. برای اجازه دادن به کاربر جهت تغییر اندازه پنجره‌ها، از سبک \fIVariableSize\fP یا \fIVariableUSSize\fP استفاده کنید. .sp گزینه‌های \fIFixedPPosition\fP و \fIFixedPSize\fP باعث می‌شوند fvwm تلاش‌های برنامه برای جابه‌جایی یا تغییر اندازه پنجره‌هایش را نادیده بگیرد. برای مجاز کردن این نوع اقدامات، از سبک \fIVariablePPosition\fP یا \fIVariablePSize\fP استفاده کنید. این سبک‌ها گاهی ممکن است بر جای‌گذاری اولیه و ابعاد پنجره‌های جدید (بسته به برنامه) تأثیر بگذارند. اگر پنجره‌ها در مکان‌های عجیبی ایجاد می‌شوند، سبک‌های \fIVariablePPosition\fP یا \fI!UsePPosition\fP را امتحان کنید. سبک \fIFixedPSize\fP ممکن است ابعاد پنجره را برای برخی از برنامه‌ها به هم بریزد. در این صورت از این سبک استفاده نکنید. .sp گزینه \fIMoveByProgramMethod\fP بر نحوه واکنش fvwm به درخواست‌های برنامه برای جابه‌جایی پنجره‌هایش تأثیر می‌گذارد. به‌طور پیش‌فرض، fvwm سعی می‌کند تشخیص دهد که از کدام روش استفاده کند، اما گاهی اوقات روش اشتباه را تشخیص می‌دهد. ممکن است با پنجره‌ای مواجه شوید که وقتی برنامه اندازه آن را تغییر می‌دهد چند پیکسل روی صفحه جابه‌جا می‌شود، با تزئینات فریم خارج از صفحه به لبه صفحه حرکت می‌کند، موقعیت خود را برای بار بعد که اجرا می‌شود به خاطر می‌آورد اما در موقعیتی با جابه‌جایی جزئی ظاهر می‌شود، یا تلاش می‌کند تمام‌صفحه شود. هر دو گزینه \fIUseGravity\fP و \fIIgnoreGravity\fP را روی آن پنجره (و فقط آن پنجره) امتحان کنید و ببینید آیا کمکی می‌کند یا خیر. به‌طور پیش‌فرض، fvwm از روش \fIAutoDetect\fP استفاده می‌کند. هنگامی که روش تشخیص داده شد، هرگز دوباره تغییر نمی‌کند. تا زمانی که fvwm نتواند روش مناسب را تشخیص دهد، از \fIIgnoreGravity\fP استفاده می‌کند. برای اجبار fvwm به تلاش مجدد برای تشخیص، ابتدا از یکی از دو گزینه دیگر استفاده کنید و سپس دوباره \fIAutoDetect\fP را به کار ببرید. .sp نکته: این گزینه برای کاهش مشکلی در مشخصات ICCCM معرفی شد. ICCCM به وضوح بیان می‌کند که باید از گزینه \fIUseGravity\fP استفاده شود، اما از گذشته برنامه‌ها این قانون را نادیده می‌گرفتند. .sp گزینه \fIClosable\fP امکان اجرای توابع \fBClose\fP، \fBDelete\fP و \fBDestroy\fP را بر روی پنجره‌ها فعال می‌کند. این ویژگی به‌طور پیش‌فرض روشن است. حالت متضاد آن، \fI!Closable\fP، از بسته شدن پنجره جلوگیری می‌کند. .sp گزینه \fIIconifiable\fP امکان اجرای تابع \fBIconify\fP را بر روی پنجره‌ها فعال می‌کند. این ویژگی به‌طور پیش‌فرض فعال است. حالت متضاد آن، \fI!Iconifiable\fP، مانع از آیکون شدن پنجره می‌شود. .sp گزینه \fIMaximizable\fP امکان اجرای تابع \fBMaximize\fP را بر روی پنجره‌ها فعال می‌کند. این ویژگی به‌طور پیش‌فرض فعال است. حالت متضاد آن، \fI!Maximizable\fP، از بیشینه‌سازی پنجره جلوگیری می‌کند. .sp گزینه \fIAllowMaximizeFixedSize\fP امکان اجرای تابع \fBMaximize\fP را روی پنجره‌هایی که اندازه آن‌ها قابل تغییر نیست فعال می‌کند، مگر اینکه بیشینه‌سازی با استفاده از سبک \fI!Maximizable\fP یا از طریق هینت‌های WM غیرفعال شده باشد. این ویژگی به‌طور پیش‌فرض روشن است. حالت متضاد آن، \fI!AllowMaximizeFixedSize\fP، از بیشینه‌سازی تمام پنجره‌هایی که تغییرپذیر نیستند جلوگیری می‌کند. .sp گزینه \fIResizeHintOverride\fP به fvwm دستور می‌دهد تا حداقل و حداکثر اندازه ارائه‌شده توسط برنامه و همچنین اندازه گام تغییر اندازه (اندازه کاراکتر در بسیاری از برنامه‌ها) را نادیده بگیرد. این گزینه می‌تواند برای برنامه‌های معیوبی که از تغییر اندازه خودداری می‌کنند مفید باشد. در صورت عدم نیاز از آن استفاده نکنید. سبک پیش‌فرض (متضاد) \fINoResizeOverride\fP است. .sp عبارت \fIMinWindowSize [ width [ p | c ] height [ p | c ] ]\fP حداقل عرض و ارتفاع یک پنجره را به fvwm اعلام می‌کند. مقادیر درصدی از کل مساحت صفحه نمایش هستند. اگر حرف \*(Aq\fIp\fP\*(Aq به هر یک از مقادیر اضافه شود، اعداد به عنوان پیکسل تفسیر می‌شوند. اگر حرف \*(Aq\fIc\fP\*(Aq اضافه شود، اعداد بر اساس هینت‌های اندازه پنجره کلاینت هستند که می‌تواند برای پنجره‌هایی مانند ترمینال‌ها برای تعیین تعداد سطرها یا ستون‌ها مفید باشد. این دستور برای رسیدگی به پنجره‌هایی که در صورت کوچک شدن بیش از حد دچار اختلال می‌شوند مفید است. اگر پارامترها را حذف کنید یا مقادیر آنها نامعتبر باشد، هر دو حد روی 0 پیکسل (که مقدار پیش‌فرض است) تنظیم می‌شوند. .sp عبارت \fIMaxWindowSize [ width [ p | c ] height [ p | c ] ]\fP حداکثر عرض و ارتفاع یک پنجره را به fvwm اعلام می‌کند. مقادیر درصدی از کل مساحت صفحه نمایش هستند. اگر حرف \*(Aq\fIp\fP\*(Aq به هر یک از مقادیر اضافه شود، اعداد به عنوان پیکسل تفسیر می‌شوند. اگر حرف \*(Aq\fIc\fP\*(Aq اضافه شود، اعداد بر اساس هینت‌های اندازه پنجره کلاینت هستند که می‌تواند برای پنجره‌هایی مانند ترمینال‌ها برای تعیین تعداد سطرها یا ستون‌ها مفید باشد. این دستور برای اجبار پنجره‌های بزرگ برنامه‌ها به نمایش کامل مفید است. هیچ‌یک از مقادیر \fIheight\fP یا \fIwidth\fP نباید کمتر از ۱۰۰ پیکسل باشد. اگر پارامترها را حذف کنید یا مقادیر آنها نامعتبر باشد، هر دو حد روی ۳۲۷۶۷ پیکسل (که مقدار پیش‌فرض است) تنظیم می‌شوند. .sp با \fIIconifyWindowGroups\fP تمام پنجره‌های موجود در یک گروه پنجره یکسان، هنگام آیکون یا باز شدن هر پنجره در گروه، به‌طور همزمان آیکون یا باز می‌شوند. حالت پیش‌فرض \fIIconifyWindowGroupsOff\fP است که این رفتار را غیرفعال می‌کند. اگرچه تعدادی از برنامه‌ها از هینت گروه پنجره استفاده می‌کنند، اما به ندرت به روش درست استفاده می‌شود، بنابراین احتمالاً بهتر است از \fIIconifyWindowGroups\fP فقط برای برنامه‌های منتخب استفاده کنید. .sp گزینه \fISnapAttraction\fP بر جابه‌جایی تعاملی پنجره تأثیر می‌گذارد: اگر در حین جابه‌جایی تعاملی، پنجره یا آیکون در فاصله \fIproximity\fP پیکسلی پنجره یا آیکون دیگری قرار گیرد، برای چسبیدن کادرها جابه‌جا می‌شود. مقدار پیش‌فرض 0 به این معنی است که هیچ چسبندگی رخ نمی‌دهد. فراخوانی این دستور بدون آرگومان، کشش چسبندگی را خاموش کرده و رفتار پیش‌فرض را بازیابی می‌کند. لطفاً به گزینه \fISnapGrid\fP نیز مراجعه کنید. .sp آرگومان دوم اختیاری است و می‌تواند روی یکی از پنج مقدار زیر تنظیم شود: با \fIAll\fP هم آیکون‌ها و هم پنجره‌ها به پنجره‌ها و آیکون‌های دیگر می‌چسبند. \fISameType\fP اجازه می‌دهد پنجره‌ها فقط به پنجره‌ها و آیکون‌ها فقط به آیکون‌ها بچسبند. با \fIWindows\fP پنجره‌ها فقط به سایر پنجره‌ها می‌چسبند. به همین ترتیب با \fIIcons\fP آیکون‌ها فقط به سایر آیکون‌ها می‌چسبند. با \fINone\fP هیچ چسبندگی رخ نمی‌دهد. این گزینه در ترکیب با آرگومان سوم در صورتی که فقط می‌خواهید به لبه‌های صفحه بچسبید می‌تواند مفید باشد. رفتار پیش‌فرض \fIAll\fP است. .sp سومین و آخرین آرگومان اختیاری می‌تواند روی یکی از چهار مقدار زیر تنظیم شود: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ . sp -1 . IP \(bu 2.3 .\} با \fIScreen\fP آیکون‌ها یا پنجره‌هایی که قبلاً چسبندگی دارند (که توسط آرگومان دوم کنترل می‌شود)، اکنون به لبه‌های صفحه نیز می‌چسبند. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ . sp -1 . IP \(bu 2.3 .\} گزینه \fIScreenWindows\fP فقط پنجره‌ها را به لبه‌های صفحه می‌چسباند. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ . sp -1 . IP \(bu 2.3 .\} گزینه \fIScreenIcons\fP فقط آیکون‌ها را به لبه‌های صفحه می‌چسباند. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ . sp -1 . IP \(bu 2.3 .\} گزینه \fIScreenAll\fP پنجره‌ها و آیکون‌ها را به لبه‌های صفحه می‌چسباند. .RE .sp گزینه \fISnapGrid\fP یک شبکه نامرئی روی صفحه تعریف می‌کند. در حین جابه‌جایی تعاملی، یک پنجره یا آیکون طوری قرار می‌گیرد که مکان آن (گوشه بالا سمت چپ) با نزدیک‌ترین نقطه شبکه منطبق شود. تنظیمات پیش‌فرض \fIx\-grid\-size\fP و \fIy\-grid\-size\fP هر دو ۱ هستند که عملاً هیچ شبکه‌ای ایجاد نمی‌کنند. .sp یک جابه‌جایی تعاملی با هر دو گزینه \fISnapGrid\fP و \fISnapAttraction\fP منجر به این می‌شود که پنجره به مجاورت نزدیک‌ترین حاشیه پنجره (اگر در محدوده مجاورت چسبندگی باشد) یا موقعیت شبکه منتقل شود. پنجره کوتاه‌ترین فاصله ممکن را برای برآورده کردن هر دو ویژگی \fISnapGrid\fP و \fISnapAttraction\fP طی می‌کند. توجه داشته باشید که مختصات x و y به هم وابسته نیستند. به عنوان مثال، یک پنجره ممکن است روی محور x به پنجره دیگری بچسبد در حالی که روی محور y به یک نقطه شبکه می‌چسبد. استفاده از این سبک بدون آرگومان، تنظیمات پیش‌فرض را بازیابی می‌کند. .sp سبک‌های \fIEdgeMoveDelay\fP و \fIEdgeResizeDelay\fP تعیین می‌کنند که تغییر درگاه دید میزکار با جابه‌جایی یا تغییر اندازه پنجره روی لبه صفحه چقدر دشوار است. این پارامتر مشخص می‌کند که نشانگر ماوس قبل از اینکه fvwm درگاه دید را جابه‌جا کند، چند میلی‌ثانیه باید روی لبه صفحه باقی بماند. دستور \fBEdgeScroll\fP تعیین می‌کند که درگاه دید تا چه اندازه پیمایش شود. اگر \-1 به عنوان تأخیر داده شود، ورق زدن صفحه کاملاً غیرفعال می‌شود. مقادیر پیش‌فرض بدون تأخیر برای جابه‌جایی (0) و بدون ورق زدن برای تغییر اندازه (\-1) هستند. استفاده از این سبک‌ها بدون هیچ آرگومانی تنظیمات پیش‌فرض را بازیابی می‌کند. توجه داشته باشید که با .sp .if n .RS 4 .nf .fam C EdgeScroll 0 0 .fam .fi .if n .RE .sp همچنان می‌توان پنجره‌ها را در امتداد لبه صفحه فعلی جابه‌جا کرد یا تغییر اندازه داد. همچنین \fBEdgeThickness\fP را ببینید. .sp گزینه \fIEdgeMoveResistance\fP قرار دادن پنجره را دقیقاً در مجاورت لبه صفحه RandR آسان‌تر می‌کند. این گزینه یک یا دو پارامتر دریافت می‌کند. پارامتر اول مشخص می‌کند که لبه یک پنجره قبل از اینکه واقعاً تا حدی به خارج از صفحه منتقل شود، چند پیکسل باید از لبه خارجی صفحه عبور کند. پارامتر دوم اختیاری همان کار پارامتر اول را انجام می‌دهد، اما برای لبه‌های داخلی (لبه مشترک بین دو مانیتور RandR). در صورت حذف، هیچ مقاومتی بین لبه‌های داخلی وجود ندارد. توجه داشته باشید که مرکز پنجره در حال جابه‌جایی تعیین می‌کند که پنجره در کدام صفحه باید نگه داشته شود. هر دو مقدار به‌طور پیش‌فرض 0 (بدون مقاومت) هستند. برای بازیابی مقادیر پیش‌فرض، می‌توان از گزینه \fIEdgeMoveResistance\fP بدون هیچ پارامتری استفاده کرد. .sp گزینه \fIInitialMapCommand\fP امکان اجرای هر دستور یا تابع معتبر fvwm را هنگام ترسیم اولیه پنجره توسط fvwm فراهم می‌کند. مثال: .sp .if n .RS 4 .nf .fam C Style MyWindow StartsOnPage 0 0, InitialMapCommand Iconify .fam .fi .if n .RE .sp این دستور پنجره‌ای به نام \fIMyWindow\fP را در صفحه 0 0 برای میزکار فعلی قرار می‌دهد و بلافاصله دستور \fBIconify\fP را روی آن پنجره اجرا می‌کند. .sp توجه داشته باشید که اگر از \fIInitialMapCommand\fP به عنوان یک گزینه سراسری برای همه پنجره‌ها استفاده شود، اما لازم باشد که برخی از پنجره‌ها این دستور روی آن‌ها اعمال نشود، می‌توان از اقدام \fBNop\fP روی آن پنجره‌ها استفاده کرد، مانند مثال زیر: .sp .if n .RS 4 .nf .fam C Style * InitialMapCommand Iconify Style XTeddy InitialMapCommand Nop .fam .fi .if n .RE .RE .sp \fBجای‌گذاری مدیر پنجره (Window Manager placement)\fP .RS 4 برنامه‌ها می‌توانند پنجره‌ها را در یک نقطه خاص از صفحه از طریق هینت‌های مدیر پنجره یا مشخصات هندسه قرار دهند. هنگامی که هیچ‌کدام را انجام ندهند، مدیر پنجره برای یافتن مکانی برای پنجره وارد عمل می‌شود. Fvwm چندین روش برای رسیدگی به این وضعیت می‌داند. مقدار پیش‌فرض \fITileCascadePlacement\fP است. .sp \fIPositionPlacement\fP [\fICenter\fP|\fIUnderMouse\fP|\fImove\-arguments\fP] هنگامی که بدون آرگومان استفاده شود، پنجره‌های جدید در گوشه بالا-چپ نمایشگر قرار می‌گیرند. با آرگومان \fICenter\fP، تمام پنجره‌های جدید در مرکز صفحه ظاهر می‌شوند، و با \fIUnderMouse\fP، پنجره‌ها در صورت امکان در زیر نشانگر موش قرار می‌گیرند. اگر پنجره به دلیل قرار داشتن نشانگر در لبه صفحه نتواند در صفحه جا شود، با استفاده از این گزینه به درون صفحه رانده می‌شود. اگر هرگونه \fImove\-arguments\fP دیگری داده شود، دقیقاً همانند دستور \fBMove\fP تفسیر می‌شود (با این استثنا که ارجاع به موقعیت فعلی پنجره کار نمی‌کند زیرا پنجره هنوز جای‌گذاری نشده است). .sp \fICascadePlacement\fP پنجره‌های جدید را به صورت خودکار و آبشاری جای‌گذاری می‌کند. .sp \fITileCascadePlacement\fP پنجره‌های جدید را به طور خودکار در مکانی هوشمندانه قرار می‌دهد \- مکانی که در آن با هیچ پنجره دیگری روی صفحه همپوشانی نداشته باشند. اگر چنین موقعیتی یافت نشود، \fICascadePlacement\fP به عنوان روش پشتیبان استفاده می‌شود. .sp \fITileManualPlacement\fP این مورد مشابه \fITileCascadePlacement\fP است، اما از \fIManualPlacement\fP به عنوان روش پشتیبان استفاده می‌کند. .sp \fIMinOverlapPlacement\fP پنجره‌های جدید را به صورت خودکار در مکانی قرار می‌دهد که مساحت همپوشانی (به پیکسل) با سایر پنجره‌ها کمینه باشد. به طور پیش‌فرض این خط‌مشی جای‌گذاری سعی می‌کند از همپوشانی با آیکون‌ها و پنجره‌های لایه‌های بالاتر جلوگیری کند. این رفتار را می‌توان با سبک \fIMinOverlapPlacementPenalties\fP پیکربندی کرد. .sp \fIMinOverlapPercentPlacement\fP شبیه به \fIMinOverlapPlacement\fP است اما سعی می‌کند درصد همپوشانی سایر پنجره‌ها را به جای مساحت همپوشانی به پیکسل کمینه کند. این خط‌مشی جای‌گذاری سعی می‌کند از پوشاندن کامل پنجره‌های دیگر خودداری کند و حتی بیشتر تلاش می‌کند پنجره‌های کوچک را نپوشاند. این مورد با سبک‌های \fIMinOverlapPlacementPenalties\fP و \fIMinOverlapPercentPlacementPenalties\fP قابل پیکربندی است. .sp \fIMinOverlapPlacementPenalties\fP حداکثر ۶ آرگومان اعشاری مثبت یا صفر می‌پذیرد: .sp .if n .RS 4 .nf .fam C normal ontop icon sticky below strut .fam .fi .if n .RE .sp اگر آرگومان‌های انتهایی حذف شوند، از مقادیر پیش‌فرض استفاده می‌شود که عبارتند از: .sp .if n .RS 4 .nf .fam C 1 5 10 1 0.05 50 .fam .fi .if n .RE .sp برای بازنشانی این سبک به مقادیر پیش‌فرض، یک \*(Aq!\*(Aq به ابتدای آن اضافه کنید. این سبک خط‌مشی جای‌گذاری \fIMinOverlapPlacement\fP و \fIMinOverlapPercentPlacement\fP را پیکربندی می‌کند. ضریب \fInormal\fP روی پنجره‌های عادی، ضریب \fIontop\fP روی پنجره‌هایی با لایه بالاتر از پنجره در حال جای‌گذاری، ضریب \fIicon\fP روی آیکون‌ها، ضریب \fIsticky\fP روی پنجره‌های چسبان، ضریب \fIbelow\fP روی پنجره‌هایی با لایه پایین‌تر از پنجره در حال جای‌گذاری، ضریب \fIstrut\fP بر مکمل فضای کاری EWMH (اگر پنجره در حال جای‌گذاری سبک \fIEWMHPlacementUseWorkingArea\fP را داشته باشد) و پنجره‌های دارای راهنمای EWMH strut (یعنی راهنمای "لطفاً مرا نپوشانید") در صورتی که پنجره در حال جای‌گذاری سبک \fIEWMHPlacementUseDynamicWorkingArea\fP را داشته باشد، اعمال می‌شود. این ضرایب نشان‌دهنده میزان مساحتی هستند که این نوع پنجره‌ها (یا نواحی) هنگام قرارگیری پنجره جدید محاسبه می‌شوند. به عنوان مثال، به طور پیش‌فرض مساحت پنجره‌های ontop به اندازه ۵ برابر پنجره‌های عادی شمرده می‌شود. بنابراین \fIMinOverlapPlacement\fP و \fIMinOverlapPercentPlacement\fP قبل از اینکه یک پنجره ontop را بپوشاند، ۵ برابر مساحت بیشتری از یک پنجره دیگر را پوشش می‌دهد. برای رفتار یکسان با پنجره‌های ontop مانند سایر پنجره‌ها، این مقدار را روی 1 بگذارید. برای جلوگیری اکید از قرار دادن پنجره‌ها زیر پنجره‌های ontop، این مقدار را روی عددی بالا، مثلاً 1000 قرار دهید. این سبک روی پنجره‌هایی که قبلاً نگاشت شده‌اند اعمال می‌شود و نه پنجره‌ای که در حال حاضر جای‌گذاری می‌شود. یک استثنا برای این قاعده وجود دارد: در صورتی که پنجره در حال جای‌گذاری دارای سبک \fIEWMHPlacementUseWorkingArea\fP باشد، ضریب \fIstrut\fP روی پنجره جای‌گذاری‌شده اثر می‌گذارد. .sp \fIMinOverlapPercentPlacementPenalties\fP حداکثر ۴ آرگومان عدد صحیح مثبت یا صفر می‌پذیرد: .sp .if n .RS 4 .nf .fam C cover_100 cover_95 cover_85 cover_75 .fam .fi .if n .RE .sp اگر آرگومان‌های انتهایی حذف شوند، از مقادیر پیش‌فرض استفاده می‌شود که عبارتند از: .sp .if n .RS 4 .nf .fam C 12 6 4 1 .fam .fi .if n .RE .sp برای بازنشانی این سبک به مقادیر پیش‌فرض، یک \*(Aq!\*(Aq به ابتدای آن اضافه کنید. این سبک بر خط‌مشی جای‌گذاری \fIMinOverlapPercentPlacement\fP تأثیر می‌گذارد و مشابه سبک \fIMinOverlapPlacementPenalties\fP است. ضریب \fIcover_xx\fP زمانی استفاده می‌شود که پنجره در حال جای‌گذاری حداقل \fIxx\fP درصد از پنجره را بپوشاند. این ضریب به ضریب تعیین‌شده توسط سبک \fIMinOverlapPlacementPenalties\fP اضافه می‌شود. .sp \fIManualPlacement\fP (معروف به جای‌گذاری فعال). کاربر باید هر پنجره جدید را به صورت دستی جای‌گذاری کند. پنجره تا زمانی که مکانی به صورت دستی انتخاب نشود فقط به صورت یک نوار الاستیک نشان داده می‌شود. پنجره زمانی جای‌گذاری می‌شود که یک دکمه موش یا هر کلیدی به جز \fIEscape\fP فشرده شود. کلید Escape جای‌گذاری دستی را لغو کرده و پنجره را در گوشه بالا-چپ صفحه قرار می‌دهد. اگر دکمه ۲ موش در طول جای‌گذاری اولیه پنجره فشرده شود (به ترتیب کلید \fIShift\fP و دکمه ۱ موش در صورتی که شبیه‌سازی Mwm با دستور \fBEmulate\fP فعال شده باشد)، از کاربر خواسته می‌شود اندازه پنجره را نیز تغییر دهد. .sp تعریف دکمه‌های قابل استفاده برای جای‌گذاری پنجره‌ها با دستور \fBMove\fP و زمینه خاص \*(AqP\*(Aq برای جای‌گذاری امکان‌پذیر است (به دستور \fBMove\fP مراجعه کنید). با این حال، نمی‌توانید روش تغییر اندازه پنجره را به شکلی غیر از آنچه تحت تأثیر دستور \fBEmulate\fP است بازتعریف کنید. دکمه استفاده‌شده برای جای‌گذاری پنجره را می‌توان با شرط \fIPlacedByButton\fP بررسی کرد (به دستور \fBCurrent\fP مراجعه کنید). .sp مثال: .sp .if n .RS 4 .nf .fam C Style * ManualPlacement *FvwmEvent: PassID *FvwmEvent: add_window GrowDownFunc AddToFunc StartFunction + I FvwmEvent AddToFunc GrowDownFunc + I windowid $0 (PlacedByButton 3) \(rs Resize bottomright keep \-0p .fam .fi .if n .RE .sp اکنون، هر زمان که پنجره‌ای ایجاد شود و کاربر دکمه ۳ را برای پایان دادن به جای‌گذاری اولیه فشار دهد، پنجره به طور خودکار بزرگ می‌شود تا زمانی که به حاشیه پایینی صفحه برخورد کند. .sp \fIسبک‌های قدیمی جای‌گذاری\fP گزینه‌های DumbPlacement / SmartPlacement / SmartPlacementOff، CleverPlacement / CleverPlacementOff، ActivePlacement / RandomPlacement، ActivePlacementsHonorsStartsOnPage / ActivePlacementsHonorsStartsOnPageOff همچنان پشتیبانی می‌شوند اما در آینده حذف خواهند شد. سبک‌های قدیمی و جدید را می‌توان بر اساس جدول زیر تبدیل کرد: .sp .if n .RS 4 .nf .fam C Style * DumbPlacement, RandomPlacement \-\-> Style * CascadePlacement Style * DumbPlacement, ActivePlacement \-\-> Style * ManualPlacement Style * SmartPlacement, \(rs RandomPlacement, CleverPlacementOff \-\-> Style * TileCascadePlacement Style * SmartPlacement, \(rs ActivePlacement, CleverPlacementOff \-\-> Style * TileManualPlacement Style * SmartPlacement, CleverPlacement \-\-> Style * MinOverlapPlacement Style * SmartPlacement, \(rs ActivePlacement, CleverPlacement \-\-> Style * MinOverlapPercentPlacement Style * ActivePlacementsHonorsStartsOnPage \-\-> Style * ManualPlacementsHonorsStartsOnPage Style * ActivePlacementsHonorsStartsOnPageOff \-\-> Style * ManualPlacementsHonorsStartsOnPageOff .fam .fi .if n .RE .RE .sp \fBگزینه‌های خط‌مشی جای‌گذاری و چینش لایه‌ای پنجره‌ها\fP .RS 4 \fI!UsePPosition\fP به fvwm دستور می‌دهد هنگام افزودن پنجره‌های جدید، موقعیت مشخص‌شده توسط برنامه (راهنمای PPosition) را نادیده بگیرد. استفاده از PPosition برای برخی برنامه‌ها الزامی است، اما اگر چنین برنامه‌ای ندارید، یک دردسر واقعی است. بسیاری از برنامه‌ها PPosition را روی مقادیر نامناسبی مانند 0,0 (گوشه بالا-چپ) تنظیم می‌کنند. نکته: \fI!UsePPosition\fP معادل گزینه منسوخ‌شده \fI!UsePPosition\fP است. .sp \fI!UseUSPosition\fP مانند \fI!UsePPosition\fP عمل می‌کند اما استفاده از موقعیت مشخص‌شده توسط کاربر که توسط برنامه نشان داده شده است (راهنمای USPosition) را نادیده می‌گیرد. به طور کلی نادیده گرفتن انتخاب کاربر کار درستی نیست، اما برخی برنامه‌ها از راهنمای USPosition سوءاستفاده می‌کنند تا پنجره‌های خود را بدون رضایت کاربر به نقطه خاصی از صفحه تحمیل کنند. نکته: \fI!UseUSPosition\fP معادل گزینه منسوخ‌شده \fI!USPosition\fP است. .sp \fINoUseTransientPPosition\fP و \fIUseTransientPPosition\fP مانند \fI!UsePPosition\fP و \fIUsePPosition\fP عمل می‌کنند اما فقط روی پنجره‌های گذرا اعمال می‌شوند. نکته: \fI!UseTransientPPosition\fP معادل گزینه منسوخ‌شده \fI!TransientPPosition\fP است. .sp \fINoUseIconPosition\fP به fvwm دستور می‌دهد هنگام آیکون‌سازی پنجره، موقعیت آیکون مشخص‌شده توسط برنامه (راهنمای IconPosition) را نادیده بگیرد. نکته: \fI!UseIconPosition\fP معادل گزینه منسوخ‌شده \fI!IconPosition\fP است. .sp \fIStartsOnDesk\fP یک آرگومان عددی می‌گیرد که شماره میزکاری است که پنجره باید در ابتدا روی آن قرار گیرد. توجه داشته باشید که برنامه‌های استاندارد Xt نیز می‌توانند این مورد را از طریق منبع مشخص کنند (مثلاً "\-xrm \*(Aq*Desk: 1\*(Aq"). .sp \fIStartsOnPage\fP ۱، ۲ یا ۳ آرگومان عددی می‌گیرد. اگر یک یا سه آرگومان داده شود، آرگومان اول (یا تنها آرگومان) شماره میزکار است. اگر سه آرگومان داده شود، آرگومان‌های دوم و سوم موقعیت صفحه x,y را در پنجره مجازی مشخص می‌کنند. اگر دو آرگومان داده شود، موقعیت صفحه را مشخص کرده و هیچ اولویتی برای میزکار قائل نمی‌شوند. اگر فقط یک آرگومان داده شود، \fIStartsOnPage\fP دقیقاً مانند \fIStartsOnDesk\fP عمل می‌کند. برای برنامه‌های استاندارد Xt که این کاربرد را درک می‌کنند، میزکار/صفحه شروع را می‌توان از طریق منبع نیز مشخص کرد (مثلاً "\-xrm \*(Aq*page: 1 0 2\*(Aq"). استفاده از \fIStartsOnPage\fP همراه با \fISkipMapping\fP تکنیک مفیدی است زمانی که می‌خواهید برنامه‌ای را در صفحه دیگری اجرا کنید و به کار خود ادامه دهید، به جای اینکه منتظر ظاهر شدن آن بمانید. .sp \fIStartsOnScreen\fP یک آرگومان می‌گیرد. این آرگومان باید یک نام معتبر RandR باشد. پنجره جدید روی صفحه مشخص‌شده قرار می‌گیرد. حالت پیش‌فرض قرار دادن پنجره‌ها روی صفحه‌ای است که نشانگر موش در زمان ایجاد پنجره روی آن قرار دارد. با این حال، پنجره‌هایی که توسط fvwm جای‌گذاری نمی‌شوند (یعنی پنجره‌هایی با راهنمای USPosition ناشی از ابعاد مشخص‌شده توسط کاربر) معمولاً در موقعیتی نسبت به همه صفحات شناسایی‌شده قرار می‌گیرند. .sp \fIStartsOnPageIncludesTransients\fP باعث می‌شود سبک \fIStartsOnPage\fP حتی برای پنجره‌های گذرا نیز اعمال شود. این مورد معمولاً مفید نیست، زیرا پنجره‌های گذرا معمولاً پنجره‌های بالاپر هستند که می‌خواهید در دیدگاه نمایان شما ظاهر شوند؛ اما گاهی اوقات یک برنامه از پنجره گذرا برای مواردی مانند پنجره راه‌اندازی استفاده می‌کند که باید به مکان خاصی هدایت شود. .sp \fIManualPlacementIgnoresStartsOnPage\fP در صورتی که هر دو گزینه \fIManualPlacement\fP و \fISkipMapping\fP هنگام ایجاد پنجره فعال باشند، جای‌گذاری \fIStartsOnPage\fP یا \fIStartsOnDesk\fP را غیرفعال می‌کند. این کار مانع از آن می‌شود که پنجره‌ای را به صورت تعاملی جای‌گذاری کنید و سپس متعجب شوید که به کجا ناپدید شده است، زیرا در میزکار یا صفحه دیگری قرار گرفته است. \fIManualPlacementHonorsStartsOnPage\fP اجازه می‌دهد این اتفاق در هر صورت بیفتد. اگر \fISkipMapping\fP فعال نباشد این گزینه تأثیری ندارد، زیرا fvwm برای انجام جای‌گذاری تعاملی به میزکار/صفحه مناسب سوئیچ می‌کند. پیش‌فرض \fIManualPlacementIgnoresStartsOnPage\fP است؛ \fIManualPlacementHonorsStartsOnPage\fP با روشی که سبک قدیمی \fIStartsOnDesk\fP برای مدیریت این وضعیت استفاده می‌کرد، مطابقت دارد. .sp \fICaptureHonorsStartsOnPage\fP باعث می‌شود ضبط اولیه (یک پنجره از قبل موجود) در هنگام راه‌اندازی، پنجره را بر اساس مشخصات میزکار، صفحه و نمایشگر در \fIStartsOnPage\fP و \fIStartsOnScreen\fP قرار دهد. \fICaptureIgnoresStartsOnPage\fP باعث می‌شود fvwm این تنظیمات (شامل \fIStartsOnDesk\fP) را در ضبط اولیه نادیده بگیرد. پیش‌فرض \fICaptureIgnoresStartsOnPage\fP است. .sp \fIRecaptureHonorsStartsOnPage\fP باعث می‌شود پنجره در هنگام \fBRestart\fP بر اساس مشخصات میزکار، صفحه و نمایشگر در \fIStartsOnPage\fP و \fIStartsOnScreen\fP قرار گیرد یا به آن بازگردد. \fIRecaptureIgnoresStartsOnPage\fP باعث می‌شود fvwm در هنگام \fBRestart\fP موقعیت فعلی پنجره را حفظ کند. پیش‌فرض \fIRecaptureIgnoresStartsOnPage\fP است. .sp \fILayer\fP یک آرگومان اختیاری می‌پذیرد: یک عدد صحیح غیرمنفی. این لایه‌ای است که پنجره در آن قرار می‌گیرد. اگر آرگومانی داده نشود، هر مقدار تنظیم‌شده قبلی حذف شده و لایه پیش‌فرض اعمال می‌شود. .sp \fIStaysOnTop\fP پنجره را در بالاترین لایه قرار می‌دهد. این لایه را می‌توان با دستور \fBDefaultLayers\fP تغییر داد؛ پیش‌فرض 6 است. .sp \fIStaysPut\fP پنجره را در لایه میانی (put) قرار می‌دهد. این لایه را می‌توان با دستور \fBDefaultLayers\fP تغییر داد؛ پیش‌فرض 4 است. .sp \fIStaysOnBottom\fP پنجره را در پایین‌ترین لایه قرار می‌دهد. این لایه را می‌توان با دستور \fBDefaultLayers\fP تغییر داد؛ پیش‌فرض 2 است. .sp \fIStartsLowered\fP به fvwm دستور می‌دهد پنجره را در ابتدا در پایین لایه خود قرار دهد، به جای حالت پیش‌فرض \fIStartsRaised\fP. .sp \fIStartShaded\fP به fvwm می‌گوید پنجره را جمع (shade) کند. یک آرگومان جهت اختیاری می‌تواند داده شود که می‌تواند یکی از "\fINorth\fP"، "\fISouth\fP"، "\fIWest\fP"، "\fIEast\fP"، "\fINorthWest\fP"، "\fINorthEast\fP"، "\fISouthWest\fP"، "\fISouthEast\fP" باشد یا اگر جهتی داده نشود، پیش‌فرض جمع شدن به سمت شمال است. .sp \fISkipMapping\fP به fvwm می‌گوید هنگامی که پنجره در ابتدا نگاشت می‌شود به میزکاری که پنجره در آن قرار دارد سوئیچ نکند (همراه با \fIStartsOnDesk\fP یا \fIStartsOnPage\fP مفید است). .sp \fIKeepWindowGroupsOnDesk\fP باعث می‌شود پنجره‌های جدیدی که راهنمای گروه پنجره روی آن‌ها تنظیم شده است، در همان میزکاری ظاهر شوند که سایر پنجره‌های همان گروه قرار دارند. از آنجا که این رفتار ممکن است گیج‌کننده باشد، تنظیم پیش‌فرض \fIScatterWindowGroups\fP است. در این حالت راهنمای گروه پنجره هنگام جای‌گذاری پنجره‌ها نادیده گرفته می‌شود. .RE .sp \fBپنجره‌های گذرا (Transient windows)\fP .RS 4 \fIDecorateTransient\fP باعث می‌شود پنجره‌های گذرا که معمولاً بدون تزئینات رها می‌شوند، تزئینات معمول fvwm (نوار عنوان، دکمه‌ها و غیره) را دریافت کنند. توجه داشته باشید که برخی از پنجره‌های بالاپر، مانند منوهای xterm، توسط مدیر پنجره مدیریت نمی‌شوند و همچنان تزئینات دریافت نمی‌کنند. \fINakedTransient\fP (پیش‌فرض) باعث می‌شود پنجره‌های گذرا تزئینات استاندارد را دریافت نکنند. شما فقط می‌توانید کلیدها یا دکمه‌های موش را به کناره‌ها و بخش کلاینت یک پنجره بدون تزئین متصل کنید (زمینه‌های \*(AqS\*(Aq و \*(AqW\*(Aq در اتصال‌ها، به دستورات \fBMouse\fP و \fIKey\fP مراجعه کنید). .sp پنجره‌ای با سبک \fIRaiseTransient\fP که دارای پنجره‌های گذرا است، هنگام بالا آمدن تمام پنجره‌های گذرای خود را بالا می‌آورد. سبک \fIDontRaiseTransient\fP این رفتار را غیرفعال می‌کند. سپس با همه پنجره‌ها طوری رفتار می‌شود که گویی هیچ پنجره گذرایی ندارند. .sp پنجره‌ای با سبک \fILowerTransient\fP که دارای پنجره‌های گذرا است، هنگام پایین رفتن تمام پنجره‌های گذرای خود را پایین می‌برد. سبک \fIDontLowerTransient\fP این رفتار را غیرفعال می‌کند. سپس با همه پنجره‌ها طوری رفتار می‌شود که گویی هیچ پنجره گذرایی ندارند. .sp سبک \fIStackTransientParent\fP سبک‌های \fIRaiseTransient\fP و \fILowerTransient\fP را تقویت می‌کند. بالا آوردن یک پنجره با سبک \fIStackTransientParent\fP در صورتی که پنجره در حال بالا آمدن یک پنجره گذرا باشد و پنجره اصلی آن سبک \fIRaiseTransient\fP داشته باشد، عمل بالا آمدن را به پنجره اصلی منتقل می‌کند؛ این اثر باعث می‌شود بالا آمدن یک پنجره گذرا دقیقاً مانند بالا آمدن پنجره اصلی آن عمل کند \- کل گروه بالا می‌آید. رفتار مشابهی برای پایین بردن کل گروه پنجره‌های گذرا زمانی که پنجره اصلی سبک \fILowerTransient\fP دارد برقرار است. \fIDontStackTransientParent\fP این رفتار را خاموش می‌کند. در صورتی که از \fIRaiseTransient\fP و \fILowerTransient\fP استفاده نشود، \fI(Dont)StackTransientParent\fP هیچ تأثیری ندارد. .sp یک شبیه‌سازی مناسب از بالا/پایین آوردن موتیف (Motif) روی پنجره‌های گذرا به این صورت امکان‌پذیر است: .sp .if n .RS 4 .nf .fam C Style * RaiseTransient Style * LowerTransient Style * StackTransientParent .fam .fi .if n .RE .RE .sp \fBسبک‌های راهنماهای توسعه‌یافته مدیر پنجره (Extended Window Manager Hints)\fP .RS 4 برای درک اصطلاحات به کار رفته در این زیربخش، لطفاً بخش \fBExtended Window Manager Hints\fP را مطالعه کنید. .sp \fIEWMHDonateIcon\fP به fvwm دستور می‌دهد تا راهنمای آیکون ewmh برنامه را با آیکونی که توسط fvwm استفاده می‌شود تنظیم کند، در صورتی که برنامه چنین راهنمایی ارائه ندهد (و در صورتی که آیکون استفاده شده توسط fvwm پنجره آیکون نباشد). \fIEWMHDonateMiniIcon\fP همین کار را برای مینی‌آیکون‌ها انجام می‌دهد. این امکان را به پیجرها، نوار وظیفه، جعبه آیکون و... سازگار می‌دهد تا همان (مینی) آیکون‌های fvwm را نمایش دهند. توجه داشته باشید که در برخی سخت‌افزارها (مانند نمایشگرهای ۸ بیتی) این سبک‌ها می‌توانند نگاشت پنجره را کند کنند و به طور کلی تنها یکی از این سبک‌ها برای یک برنامه سازگار مورد نیاز است. \fIEWMHDontDonateIcon\fP و \fIEWMHDontDonateMiniIcon\fP حالت پیش‌فرض را که عدم تنظیم هیچ راهنمای آیکون (یا مینی‌آیکون) ewmh است، بازیابی می‌کنند. .sp به طور پیش‌فرض، اگر برنامه‌ای یک راهنمای آیکون ewmh با اندازه کوچک (یعنی ارتفاع و عرض کمتر یا مساوی ۲۲) ارائه دهد، fvwm از این آیکون به عنوان مینی‌آیکون خود استفاده می‌کند. \fIEWMHMiniIconOverride\fP به fvwm دستور می‌دهد آیکون‌های ewmh را نادیده بگیرد و از مینی‌آیکون ارائه‌شده توسط سبک \fIMiniIcon\fP استفاده کند. \fIEWMHNoMiniIconOverride\fP حالت پیش‌فرض را بازیابی می‌کند. .sp \fIEWMHUseStackingOrderHints\fP باعث می‌شود fvwm از راهنماهای EWMH استفاده کرده و راهنماهای EWMH را که لایه پنجره را تغییر می‌دهند رعایت کند. \fIEWMHIgnoreStackingOrderHints\fP باعث می‌شود fvwm راهنماهای لایه EWMH را نادیده بگیرد. .sp یک برنامه می‌تواند با یک راهنما مقداری فضای رزروشده در میزکار درخواست کند. در اصطلاح EWMH به چنین راهنمایی یک strut گفته می‌شود و برای محاسبه فضای کاری استفاده می‌شود و ممکن است برای جای‌گذاری پنجره و در دستور maximize استفاده شود. \fIEWMHIgnoreStrutHints\fP باعث می‌شود fvwm چنین راهنماهایی را نادیده بگیرد، در حالی که \fIEWMHUseStrutHints\fP باعث استفاده fvwm از آن می‌شود که حالت پیش‌فرض است. .sp \fIEWMHIgnoreStateHints\fP باعث می‌شود fvwm هنگام نگاشت یک پنجره جدید، راهنماهای وضعیت اولیه EWMH را نادیده بگیرد. حالت پیش‌فرض \fIEWMHUseStateHints\fP باعث می‌شود fvwm چنین راهنماهایی را بپذیرد. .sp \fIEWMHIgnoreWindowType\fP باعث می‌شود fvwm مشخصات نوع پنجره EWMH را نادیده بگیرد. حالت پیش‌فرض \fI!EWMHIgnoreWindowType\fP باعث می‌شود fvwm پنجره‌های انواع مشخص‌شده را به همان شکل سبک‌دهی کند. .sp \fIEWMHMaximizeIgnoreWorkingArea\fP باعث می‌شود fvwm هنگام اجرای دستور \fBMaximize\fP فضای کاری EWMH را نادیده بگیرد. با \fIEWMHMaximizeUseWorkingArea\fP فضای کاری EWMH استفاده می‌شود و با \fIEWMHMaximizeUseDynamicWorkingArea\fP فضای کاری پویای EWMH استفاده می‌شود (پیش‌فرض). .sp \fIEWMHPlacementIgnoreWorkingArea\fP باعث می‌شود fvwm هنگام جای‌گذاری (یا جای‌گذاری مجدد) یک پنجره، فضای کاری EWMH را نادیده بگیرد. با \fIEWMHPlacementUseWorkingArea\fP فضای کاری EWMH لحاظ می‌شود و با \fIEWMHPlacementUseDynamicWorkingArea\fP فضای کاری پویای EWMH لحاظ می‌شود (پیش‌فرض). توجه داشته باشید که در خط‌مشی‌های جای‌گذاری \fIMinOverlapPlacement\fP و \fIMinOverlapPercentPlacement\fP، نحوه لحاظ شدن فضای کاری (پویای) EWMH با سبک \fIMinOverlapPlacementPenalties\fP قابل پیکربندی است. .RE .sp \fBمتفرقه (Miscellaneous)\fP .RS 4 سبک‌های \fIBackingStore\fP، \fIBackingStoreOff\fP و \fIBackingStoreWindowDefault\fP تعیین می‌کنند که آیا کارساز X از backing store برای پنجره استفاده کند یا خیر. \fIBackingStore\fP به این معنی است که کارساز X تلاش می‌کند بخش‌های پوشانده‌شده یک پنجره را در حافظه نگه دارد. اگر کلاینت روی همان دستگاه کارساز X اجرا شود این کار معمولاً کندتر است، اما در صورت کند بودن اتصال می‌تواند بسیار سریع‌تر باشد (به \fISaveUnder\fP در زیر نیز مراجعه کنید). \fIBackingStoreOff\fP قابلیت backing store را برای پنجره غیرفعال می‌کند. به طور پیش‌فرض، fvwm خودش backing store را فعال یا غیرفعال نمی‌کند بلکه آن را همان‌طور که پنجره درخواست کرده باقی می‌گذارد. برای بازگشت به انتخاب برنامه، از سبک \fIBackingStoreWindowDefault\fP استفاده کنید. .sp نکته: اگر کارساز X اجازه backing store را ندهد، این سبک بی‌فایده است. .sp \fISaveUnder\fP ویژگی متناظر پنجره را در کارساز X فعال می‌کند. برای پنجره‌ای که از این سبک استفاده می‌کند، کارساز X تلاش می‌کند گرافیک زیر آن را در حافظه ذخیره کند که اگر کلاینت روی همان دستگاه کارساز X اجرا شود معمولاً کندتر است. در صورت کند بودن اتصال به کارساز X (مثلاً از طریق مودم)، \fISaveUnder\fP ممکن است سرعت fvwm را افزایش دهد. برای غیرفعال کردن save under از سبک \fISaveUnderOff\fP استفاده کنید. این حالت پیش‌فرض است. به \fIBackingStore\fP در بالا نیز مراجعه کنید. .sp نکته: اگر کارساز X اجازه save under را ندهد، این سبک بی‌فایده است. .sp \fIParentalRelativity\fP به کلاینت‌هایی که از یک پیکس‌مپ پس‌زمینه از نوع \fIParentRelative\fP استفاده می‌کنند امکان دستیابی به شفافیت را می‌دهد. ماژول‌های Fvwm که از مجموعه‌رنگ‌های شفاف پشتیبانی می‌کنند به این تنظیم نیاز دارند. \fIOpacity\fP حالت پیش‌فرض است و برای کارایی بهتر باید برای همه کلاینت‌های غیرشفاف استفاده شود. .sp \fIMwmDecor\fP باعث می‌شود fvwm تلاش کند راهنماهای تزئینات mwm را که برنامه‌ها گاهی استفاده می‌کنند شناسایی و رعایت کند. برای خاموش کردن این سبک، از سبک \fINoDecorHint\fP استفاده کنید. .sp \fIMwmFunctions\fP باعث می‌شود fvwm تلاش کند راهنماهای عملیات ممنوعه mwm را که برنامه‌ها گاهی استفاده می‌کنند شناسایی و رعایت کند. \fIHintOverride\fP باعث می‌شود fvwm عملیاتی را که mwm ممنوع می‌کند کمرنگ کند، اما همچنان به شما اجازه انجام عملیات را می‌دهد. \fINoFuncHint\fP راهنماهای mwm را به طور کامل غیرفعال می‌کند. .sp \fIOLDecor\fP باعث می‌شود fvwm تلاش کند راهنماهای olwm و olvwm را که بسیاری از برنامه‌های قدیمی‌تر XView و OLIT استفاده می‌کنند شناسایی و رعایت کند. این گزینه را با \fINoOLDecor\fP خاموش کنید. .sp \fIUseDecor\fP این سبک منسوخ شده و در آینده حذف خواهد شد. برنامه‌هایی برای جایگزینی آن با راه‌حلی انعطاف‌پذیرتر در fvwm\-3.0 وجود دارد. .sp \fIUseDecor\fP یک آرگومان می‌پذیرد: نام تزئینی که با \fBAddToDecor\fP ایجاد شده است. اگر نام تزئینی مشخص نشود، از تزئین "Default" استفاده می‌شود. پنجره‌ها در واقع حاوی تزئینات نیستند، اما همیشه به یکی اختصاص داده می‌شوند. اگر تزئین بعداً با \fBAddToDecor\fP تغییر یابد، تغییرات برای تمام پنجره‌هایی که به آن اختصاص داده شده‌اند قابل مشاهده خواهد بود. تزئین یک پنجره را می‌توان با \fBChangeDecor\fP مجدداً تعیین کرد. .sp \fIUseStyle\fP این سبک منسوخ شده و در آینده حذف خواهد شد. برنامه‌هایی برای جایگزینی آن با راه‌حلی انعطاف‌پذیرتر در fvwm\-3.0 وجود دارد. .sp \fIUseStyle\fP یک آرگومان می‌گیرد که نام سبک دیگری است. به این ترتیب می‌توانید کاری کنید که نام‌های پنجره‌های نامرتبط بدون نیاز به تایپ مجدد، ویژگی‌های مشابه را به راحتی به ارث ببرند. به عنوان مثال: .sp .if n .RS 4 .nf .fam C Style rxvt UseStyle XTerm .fam .fi .if n .RE .sp هشدار: اگر سبکی از یک یا چند سبک والد ساخته شده باشد و سبک‌های والد تغییر کنند، سبک مشتق‌شده تغییر نمی‌کند. برای دستیابی به این هدف باید خط \fIUseStyle\fP را دوباره صادر کنید. .sp \fIUnmanaged\fP پنجره‌هایی با گزینه سبک \fIUnmanaged\fP توسط fvwm نادیده گرفته می‌شوند. آن‌ها تزئین نمی‌شوند، نمی‌توان آن‌ها را جابجا کرد یا اندازه آن‌ها را تغییر داد و غیره. احتمالاً می‌خواهید از \fBBugopts RaiseOverUnmanaged\fP نیز استفاده کنید. این گزینه را می‌توان با سبک \fI!Unmanaged\fP خاموش کرد. .sp \fIState\fP مقدار اولیه یکی از ۳۲ وضعیت تعریف‌شده توسط کاربر را که به هر پنجره مرتبط هستند، تنظیم می‌کند. شماره وضعیت از ۰ تا ۳۱ متغیر است و باید به عنوان آرگومان داده شود. وضعیت‌ها هیچ معنایی در fvwm ندارند، اما می‌توان آن‌ها را در دستورات شرطی مانند \fBNext\fP با شرط \fIState\fP بررسی کرد و با دستور \fBState\fP دستکاری نمود. .sp .if n .RS 4 .nf .fam C # turn on state 11 for xterms ... Style xterm State 11 # ... but not for rxvts. Style rxvt !State 11 .fam .fi .if n .RE .sp پنجره‌هایی با سبک‌های \fIWindowListSkip\fP در منویی که با دستور \fBWindowList\fP ایجاد می‌شود یا لیست‌های نشان داده شده در ماژول‌هایی مانند \fBFvwmIconMan\fP ظاهر نمی‌شوند. در ماژول‌ها معمولاً می‌توان با یک گزینه این سبک را نادیده گرفت. لطفاً برای اطلاعات بیشتر به صفحه راهنمای ماژول مربوطه مراجعه کنید. برای غیرفعال کردن این ویژگی، از سبک پیش‌فرض \fIWindowListHit\fP استفاده کنید. .sp سبک‌های \fICirculateSkip\fP و \fICirculateHit\fP کنترل می‌کنند که آیا پنجره توسط دستورات شرطی مانند \fBNext\fP، \fIPrev\fP یا \fIAll\fP در نظر گرفته شود یا خیر. پنجره‌هایی با \fICirculateSkip\fP هرگز توسط دستورات شرطی انتخاب نمی‌شوند. با این حال، سبک‌ها را می‌توان به صراحت در شرط با شرط‌های \fICirculateHit\fP، \fICirculateHitIcon\fP یا \fICirculateHitShaded\fP بازنویسی کرد، و برخی از دستورات شرطی، مانند \fBCurrent\fP و \fIAll\fP، به طور پیش‌فرض این کار را انجام می‌دهند. سبک‌های \fICirculateSkipIcon\fP، \fICirculateHitIcon\fP، \fICirculateSkipShaded\fP و \fICirculateHitShaded\fP مانند \fICirculateSkip\fP و \fICirculateHit\fP عمل می‌کنند اما فقط برای پنجره‌های آیکونی یا جمع‌شده اعمال می‌شوند. نکته: اگر چندین گزینه .\|.\|.Skip.\|.\|. ترکیب شوند، پنجره‌ها تنها در صورتی انتخاب می‌شوند که با هیچ‌یک از شرایط داده شده مطابقت نداشته باشند. بنابراین، با .sp .if n .RS 4 .nf .fam C Style * CirculateSkipIcon, CirculateSkipShaded .fam .fi .if n .RE .sp فقط پنجره‌هایی انتخاب می‌شوند که نه آیکونی باشند و نه جمع‌شده. نکته: به دلایل تاریخی، دستورات شرطی نام این سبک‌ها را به عنوان نام شرط درک می‌کنند. مراقب باشید آن‌ها را اشتباه نگیرید. .RE .sp \fBمثال‌ها (EXAMPLES)\fP .RS 4 .sp .if n .RS 4 .nf .fam C # Change default fvwm behavior to no title\- # bars on windows! Also define a default icon. Style *\& !Title,\& \(rs Icon unknown1.xpm,\& \(rs BorderWidth 4,\& \(rs HandleWidth 5 # now, window specific changes: Style Fvwm* !Handles, Sticky,\& \(rs WindowListSkip,\& \(rs BorderWidth 0 Style FvwmPager\& StaysOnTop, BorderWidth 0 Style *lock\& !Handles, Sticky,\& \(rs StaysOnTop, WindowListSkip Style xbiff\& Sticky, WindowListSkip Style FvwmButtons !Handles, Sticky,\& \(rs WindowListSkip Style sxpm\& !Handles # Put title\-bars back on xterms only! Style xterm\& Title, Color black/grey Style rxvt\& Icon term.xpm Style xterm\& Icon rterm.xpm Style xcalc\& Icon xcalc.xpm Style xbiff\& Icon mail1.xpm Style xmh\& Icon mail1.xpm,\& \(rs StartsOnDesk 2 Style xman\& Icon xman.xpm Style matlab\& Icon math4.xpm,\& \(rs StartsOnDesk 3 Style xmag\& Icon magnifying_glass2.xpm Style xgraph\& Icon graphs.xpm Style FvwmButtons Icon toolbox.xpm Style Maker\& StartsOnDesk 1 Style signal\& StartsOnDesk 3 # Fire up Netscape on the second desk, in the # middle of my 3x3 virtual desktop, and do not # bother me with it... Style Netscape* SkipMapping,\& \(rs StartsOnPage 1 1 1 .fam .fi .if n .RE .sp توجه داشته باشید که تمام ویژگی‌های یک پنجره با هم OR می‌شوند. در مثال بالا "FvwmPager" ویژگی \fIStaysOnTop\fP را از طریق تطابق دقیق نام پنجره دریافت می‌کند، اما همچنین \fI!Handles\fP، \fISticky\fP و \fIWindowListSkip\fP را با تطابق با "Fvwm*" به دست می‌آورد. این پنجره به دلیل تطابق با "*" ویژگی \fI!Title\fP را دریافت می‌کند. اگر سبک‌های متناقضی برای یک پنجره مشخص شده باشد، آخرین سبک مشخص‌شده استفاده می‌شود. .RE .sp \fBWindowStyle\fP \fIoptions\fP .RS 4 ویژگی‌ها (سبک‌ها) را روی پنجره انتخاب‌شده تنظیم می‌کند. \fIoptions\fP دقیقاً همانند دستور \fBStyle\fP هستند. .RE .SH "سبک‌های پنجره (WINDOW STYLES)" .sp \fBAddButtonStyle\fP button [\fIstate\fP] [\fIstyle\fP] [\-\- [!]\fIflag\fP .\|.\|.] .RS 4 یک سبک دکمه به \fIbutton\fP اضافه می‌کند. \fIbutton\fP می‌تواند یک شماره دکمه یا یکی از مقادیر «\fIAll\fP»، «\fILeft\fP» یا «\fIRight\fP» باشد. \fIstate\fP می‌تواند «\fIActiveUp\fP»، «\fIActiveDown\fP»، «\fIInactiveUp\fP» یا «\fIInactiveDown\fP»، یا «\fIActive\fP» (معادل هر دو «ActiveUp» و «ActiveDown») یا «\fIInactive\fP» (معادل هر دو «InactiveUp» و «InactiveDown») یا هر یک از این ۶ مورد با پیشوند «\fIToggled\fP» باشد. وضعیت‌های «Active» روی پنجره فوکوس‌شده اعمال می‌شوند و وضعیت‌های «Inactive» روی سایر پنجره‌ها. وضعیت‌های «Up» روی دکمه‌های فشرده‌نشده و وضعیت‌های «Down» روی دکمه‌های فشرده‌شده اعمال می‌شوند. پیشوند «Toggled» به پنجره‌های بیشینه‌شده (maximized)، لوله‌شده (shaded) یا چسبان (sticky) اشاره دارد که سبک دکمه \fIMwmDecor.\|.\|.\fP متناظر برای آن‌ها تنظیم شده است. علاوه بر این، میان‌برهای زیر نیز قابل استفاده هستند: «\fIAllNormal\fP»، «\fIAllToggled\fP»، «\fIAllActive\fP»، «\fIAllInactive\fP»، «\fIAllUp\fP»، «\fIAllDown\fP». این‌ها در واقع ماسک‌های مختلفی برای ۴ وضعیت جداگانه از مجموع ۸ وضعیت هستند. این موارد نیز پشتیبانی می‌شوند: «\fIAllActiveUp\fP»، «\fIAllActiveDown\fP»، «\fIAllInactiveUp\fP»، «\fIAllInactiveDown\fP». .sp اگر \fIstate\fP حذف شود، سبک به تمام وضعیت‌ها اضافه می‌شود. اگر \fIstyle\fP و \fIflags\fP در پرانتز قرار گیرند، می‌توان چندین تعریف \fIstate\fP را در یک خط قرار داد. پرچم‌های (\fIFlags\fP) سبک‌های دکمه اضافی پس از تعریف قابل تغییر نیستند. .sp دکمه‌ها به ترتیب تعریف رسم می‌شوند؛ ابتدا با جدیدترین سبک دکمه آغاز شده و سپس موارد اضافه‌شده با \fBAddButtonStyle\fP رسم می‌شوند. برای پاک کردن پشته سبک دکمه، تغییر پرچم‌های سبک یا مشاهده توضیحات سبک‌ها و پرچم‌های موجود، دستور \fBButtonStyle\fP را ببینید. .sp مثال‌ها: .sp .if n .RS 4 .nf .fam C **ButtonStyle** 1 Pixmap led.xpm \-\- Top Left **ButtonStyle** 1 ActiveDown HGradient 8 grey black **ButtonStyle All** \-\-\& UseTitleStyle AddButtonStyle 1 \(rs ActiveUp (Pixmap a.xpm) \(rs ActiveDown (Pixmap b.xpm \-\- Top) AddButtonStyle 1 Vector 4 50x30@1 70x70@0 30x70@0 50x30@1 .fam .fi .if n .RE .sp در ابتدا برای این مثال، تمام وضعیت‌های دکمه روی یک پیکس‌مپ (pixmap) تنظیم می‌شوند. خط دوم وضعیت «ActiveDown» را با یک گرادیان جایگزین می‌کند (این خط پیکس‌مپ اختصاص‌یافته در خط قبلی را که همان سبک را به تمام وضعیت‌ها داده بود، بازنویسی می‌کند). سپس، پرچم \fIUseTitleStyle\fP برای تمام دکمه‌ها تنظیم می‌شود که باعث می‌شود fvwm قبل از رسم دکمه‌ها، هر سبکی را که با \fBTitleStyle\fP تنظیم شده رسم کند. در نهایت، \fBAddButtonStyle\fP برای قرار دادن پیکس‌مپ‌های اضافی برای هر دو وضعیت «ActiveUp» و «ActiveDown» استفاده می‌شود و یک سبک دکمه برداری روی تمام وضعیت‌ها رسم می‌گردد. .RE .sp \fBAddTitleStyle\fP [\fIstate\fP] [\fIstyle\fP] [\-\- [!]\fIflag\fP .\|.\|.] .RS 4 یک سبک عنوان به نوار عنوان (title\-bar) اضافه می‌کند. \fIstate\fP می‌تواند «\fIActiveUp\fP»، «\fIActiveDown\fP»، «\fIInactiveUp\fP» یا «\fIInactiveDown\fP»، یا «\fIActive\fP» (معادل هر دو «ActiveUp» و «ActiveDown») یا «\fIInactive\fP» (معادل هر دو «InactiveUp» و «InactiveDown») یا هر یک از این ۶ مورد با پیشوند «Toggled» باشد. اگر \fIstate\fP حذف شود، سبک به تمام وضعیت‌ها اضافه می‌شود. اگر \fIstyle\fP و \fIflags\fP در پرانتز قرار گیرند، می‌توان چندین تعریف \fIstate\fP را در یک خط قرار داد. این دستور بسیار شبیه دستور \fBAddButtonStyle\fP است. .sp نوارهای عنوان به ترتیب تعریف رسم می‌شوند؛ ابتدا با جدیدترین \fBTitleStyle\fP آغاز شده و سپس موارد اضافه‌شده با \fBAddTitleStyle\fP رسم می‌شوند. برای پاک کردن پشته سبک عنوان، تغییر پرچم‌های سبک، یا مشاهده توضیحات سبک‌ها و پرچم‌های موجود، دستورات \fBTitleStyle\fP و \fBButtonStyle\fP را ببینید. .RE .sp \fBAddToDecor\fP \fIdecor\fP .RS 4 این دستور منسوخ شده است و در آینده حذف خواهد شد. برنامه‌هایی برای جایگزینی آن با یک راهکار انعطاف‌پذیرتر در fvwm\-3.0 وجود دارد. .sp دستورات را به دکور با نام \fIdecor\fP اضافه یا هدایت می‌کند. دکور (decor) نامی است که به مجموعه‌ای از دستورات تأثیرگذار بر سبک‌های دکمه، سبک‌های نوار عنوان و سبک‌های حاشیه داده می‌شود. اگر \fIdecor\fP وجود نداشته باشد ایجاد می‌شود؛ در غیر این صورت \fIdecor\fP موجود تغییر می‌یابد. .sp دکورهای جدید دقیقاً مانند دکور «default» بدون هیچ تعریف سبکی شروع می‌شوند. یک دکور معین را می‌توان با گزینه \fIUseDecor\fP از دستور \fBStyle\fP روی مجموعه‌ای از پنجره‌ها اعمال کرد. تغییر یک دکور موجود روی تمام پنجره‌هایی که در حال حاضر به آن اختصاص داده شده‌اند تأثیر می‌گذارد. .sp دستور \fBAddToDecor\fP از نظر کاربرد شبیه دستورات \fBAddToMenu\fP و \fBAddToFunc\fP است، با این تفاوت که منوها و توابع با دستورات \fBButtonStyle\fP، \fBAddButtonStyle\fP، \fBTitleStyle\fP، \fBAddTitleStyle\fP و \fBBorderStyle\fP جایگزین شده‌اند. دکورهای ایجادشده با \fBAddToDecor\fP را می‌توان با \fBChangeDecor\fP، \fBDestroyDecor\fP، \fBUpdateDecor\fP و گزینه \fBStyle\fP دستکاری کرد. .sp مثال زیر دکور «FlatDecor» و سبک «FlatStyle» را ایجاد می‌کند. این‌ها موجودیت‌های متمایزی هستند: .sp .if n .RS 4 .nf .fam C AddToDecor FlatDecor + ButtonStyle All Active (\-\- flat) Inactive (\-\- flat) + TitleStyle\& \-\- flat + BorderStyle \-\- HiddenHandles NoInset Style FlatStyle \(rs UseDecor FlatDecor, HandleWidth 4, Colorset 0 Style xterm UseStyle FlatStyle .fam .fi .if n .RE .sp دکور یک پنجره موجود را می‌توان با \fBChangeDecor\fP دوباره تخصیص داد. یک دکور را می‌توان با \fBDestroyDecor\fP حذف کرد. .sp .if n .RS 4 .nf .fam C DestroyDecor FlatDecor AddToDecor FlatDecor ... Style FlatStyle UseDecor FlatDecor .fam .fi .if n .RE .sp و اکنون سبک را دوباره اعمال کنید: .sp .if n .RS 4 .nf .fam C Style xterm UseStyle FlatStyle .fam .fi .if n .RE .RE .sp \fBBorderStyle\fP \fIstate\fP [\fIstyle\fP] [\-\- [!]\fIflag\fP .\|.\|.] .RS 4 یک سبک حاشیه برای پنجره‌ها تعریف می‌کند. \fIstate\fP می‌تواند «\fIActive\fP» یا «\fIInactive\fP» باشد. اگر \fIstate\fP حذف شود، سبک برای هر دو وضعیت تنظیم می‌شود. اگر \fIstyle\fP و \fIflags\fP در پرانتز قرار گیرند، می‌توان چندین تعریف \fIstate\fP را در هر خط مشخص کرد. .sp \fIstyle\fP زیرمجموعه‌ای از سبک‌های دکمه موجود است و فقط می‌تواند \fITiledPixmap\fP (پیکس‌مپ‌های یکنواختی که با رنگ‌های لبه مایل/bevel همخوانی دارند در این حالت بهترین عملکرد را دارند) یا \fIColorset\fP باشد. اگر کاراکتر \*(Aq!\*(Aq پیشوند هر \fIflag\fP قرار گیرد، رفتار آن معکوس می‌شود. اگر \fIstyle\fP مشخص نشود، می‌توان پرچم‌ها را بدون بازنشانی سبک تغییر داد. .sp پرچم \fIHiddenHandles\fP خطوط جداکننده دستگیره گوشه را در پنجره‌های دارای دستگیره پنهان می‌کند (این گزینه هیچ تأثیری روی پنجره‌های !\fIHandles\fP ندارد). به‌طور پیش‌فرض، \fIHiddenHandles\fP غیرفعال است. .sp پرچم \fINoInset\fP مکمل \fIHiddenHandles\fP است. در صورت تعیین، لبه مایل داخلی در اطراف قاب پنجره رسم نمی‌شود. اگر \fIHiddenHandles\fP مشخص نشود، قاب کمی غیرعادی به نظر می‌رسد. .sp \fIRaised\fP باعث رسم الگوی برجسته می‌شود (پیش‌فرض). \fISunk\fP باعث رسم الگوی فرورفته می‌شود. \fIFlat\fP از رسم الگوی برجستگی/فرورفتگی جلوگیری می‌کند. .sp برای تزیین حاشیه‌های پنجره فعال و غیرفعال با یک پیکس‌مپ بافت‌دار، می‌توان این‌گونه مشخص کرد: .sp .if n .RS 4 .nf .fam C BorderStyle Active TiledPixmap marble.xpm BorderStyle Inactive TiledPixmap granite.xpm BorderStyle Active \-\- HiddenHandles NoInset .fam .fi .if n .RE .sp برای پاک کردن سبک برای هر دو وضعیت: .sp .if n .RS 4 .nf .fam C BorderStyle Simple .fam .fi .if n .RE .sp برای پاک کردن برای یک وضعیت تکی: .sp .if n .RS 4 .nf .fam C BorderStyle Active Simple .fam .fi .if n .RE .sp برای لغو تنظیم یک پرچم برای یک وضعیت معین: .sp .if n .RS 4 .nf .fam C BorderStyle Inactive \-\- !NoInset .fam .fi .if n .RE .sp دکمه‌های نوار عنوان می‌توانند با پرچم \fIUseBorderStyle\fP سبک حاشیه را به ارث ببرند (\fBButtonStyle\fP را ببینید). .RE .sp \fBButtonState\fP [ActiveDown \fIbool\fP] [Inactive \fIbool\fP] [InactiveDown \fIbool\fP] .RS 4 دستور \fBButtonState\fP کنترل می‌کند که کدام وضعیت‌های عنوان‌های پنجره و دکمه‌های عنوان استفاده شوند. حالت پیش‌فرض استفاده از هر چهار وضعیت است: «ActiveUp»، «ActiveDown»، «InactiveUp» و «InactiveDown» (دستورات \fBButtonStyle\fP و \fBTitleStyle\fP را ببینید). آرگومان \fIbool\fP پس از کلمه کلیدی کنترل می‌کند که آیا وضعیت مشخص‌شده استفاده شود («True») یا خیر («False»). پرچم \fIbool\fP مانند سایر دستورات است و فقط به «True» یا «False» محدود نمی‌شود؛ «Yes» و «No» نیز می‌توانند استفاده شوند. وضعیت «ActiveUp» را نمی‌توان غیرفعال کرد. اگر هیچ آرگومانی ارائه نشود یا آرگومان‌های داده‌شده نامعتبر باشند، حالت پیش‌فرض بازیابی می‌شود. .sp اگر آرگومان \fIActiveDown\fP برابر «False» باشد، هیچ سبک دکمه متفاوتی برای دکمه‌های فشرده‌شده استفاده نمی‌شود و در عوض حتی هنگام فشرده شدن دکمه، از وضعیت «ActiveUp» استفاده می‌شود. .sp اگر آرگومان \fIInactive\fP برابر «False» باشد، پنجره‌های فوکوس‌شده و غیرفوکوس شبیه هم به نظر می‌رسند و وضعیت‌های متناظر «Active» همیشه استفاده می‌شوند. .sp اگر آرگومان \fIInactiveDown\fP برابر «False» باشد (فقط زمانی اعمال می‌شود که \fIInactive\fP برابر «True» باشد)، عنوان‌ها و دکمه‌های عنوان فشرده‌شده در پنجره‌های غیرفوکوس بسته به مقادیر سایر کلمات کلیدی، با استفاده از وضعیت‌های «InactiveUp» یا «ActiveUp» رسم می‌شوند. .RE .sp \fBButtonStyle\fP button [\fIstate\fP] [\fIstyle\fP] [\-\- [!]\fIflag\fP .\|.\|.] .RS 4 سبک دکمه را برای یک دکمه نوار عنوان تنظیم می‌کند. \fIbutton\fP شماره دکمه نوار عنوان بین 0 تا 9 است، یا یکی از «\fIAll\fP»، «\fILeft\fP»، «\fIRight\fP» یا «\fIReset\fP». شماره‌گذاری دکمه‌ها در بخش دستور \fBMouse\fP شرح داده شده است. اگر \fIstyle\fP و \fIflags\fP در پرانتز قرار گیرند، می‌توان چندین تعریف \fIstate\fP را در هر خط مشخص کرد. .sp \fIstate\fP مشخص می‌کند کدام وضعیت دکمه باید تنظیم شود. وضعیت‌های دکمه به شرح زیر تعریف می‌شوند: «\fIActiveUp\fP» و «\fIActiveDown\fP» به وضعیت‌های فشرده‌نشده و فشرده‌شده برای دکمه‌های پنجره‌های فعال اشاره دارند؛ در حالی که وضعیت‌های «\fIInactiveUp\fP» و «\fIInactiveDown\fP» دکمه‌های پنجره‌های غیرفعال را نشان می‌دهند. میان‌بر «\fIActive\fP» نشان‌دهنده هر دو وضعیت «ActiveUp» و «ActiveDown» است. میان‌بر «\fIInactive\fP» نشان‌دهنده هر دو وضعیت «InactiveUp» و «InactiveDown» است. نام‌های وضعیت مشابه که همین الان شرح داده شد، اما با پیشوند «Toggled»، در عوض برای دکمه‌های عنوانی استفاده می‌شوند که یکی از نشانه‌های \fIMwmDecorMax\fP، \fIMwmDecorShade\fP، \fIMwmDecorStick\fP یا \fIMwmDecorLayer\fP را دارند، در صورتی که پنجره به ترتیب بیشینه‌شده، لوله‌شده، چسبان یا در لایه‌ای خاص قرار گرفته باشد. .sp .if n .RS 4 .nf .fam C AddToDecor Default + ButtonStyle 6\& \(rs Vector 4 50x25@1 85x75@0 15x75@0 50x25@1 + ButtonStyle 6 ToggledActiveUp\& \(rs Vector 4 50x75@0 85x25@1 15x25@0 50x75@0 + ButtonStyle 6 ToggledActiveDown \(rs Vector 4 50x75@0 85x25@1 15x25@0 50x75@0 + ButtonStyle 6 ToggledInactive\& \(rs Vector 4 50x75@0 85x25@1 15x25@0 50x75@0 + ButtonStyle 6 \- MwmDecorShade Mouse 0 6 N WindowShade .fam .fi .if n .RE .sp علاوه بر این، میان‌برهای زیر نیز قابل استفاده هستند: «\fIAllNormal\fP»، «\fIAllToggled\fP»، «\fIAllActive\fP»، «\fIAllInactive\fP»، «\fIAllUp\fP»، «\fIAllDown\fP». این‌ها در واقع ماسک‌های مختلفی برای ۴ وضعیت جداگانه از مجموع ۸ وضعیت هستند. این موارد نیز پشتیبانی می‌شوند: «\fIAllActiveUp\fP»، «\fIAllActiveDown\fP»، «\fIAllInactiveUp\fP»، «\fIAllInactiveDown\fP». .sp اگر \fIstate\fP مشخص شود، آن وضعیت خاص دکمه تنظیم می‌گردد. اگر \fIstate\fP حذف شود، همه وضعیت‌ها تنظیم می‌شوند. مشخص کردن یک سبک، سبک فعلی را از بین می‌برد (برای جلوگیری از این کار از \fBAddButtonStyle\fP استفاده کنید). .sp اگر \fIstyle\fP حذف شود، پرچم‌های وابسته به وضعیت را می‌توان برای سبک اصلی دکمه بدون از بین بردن سبک فعلی تنظیم کرد. مثال‌ها (هر خط باید مستقل در نظر گرفته شود): .sp .if n .RS 4 .nf .fam C ButtonStyle Left \-\- flat ButtonStyle All ActiveUp (\-\- flat) Inactive (\-\- flat) .fam .fi .if n .RE .sp خط اول تمام وضعیت‌های دکمه‌های سمت چپ را روی flat (تخت) تنظیم می‌کند، در حالی که خط دوم فقط وضعیت‌های «ActiveUp» و «Inactive» هر دکمه را روی flat تنظیم می‌کند (فقط پرچم‌ها تغییر می‌کنند؛ سبک‌های مجزای دکمه‌ها تغییر نمی‌کنند). .sp اگر می‌خواهید تمام دکمه‌ها را به حالت پیش‌فرض بازنشانی کنید: .sp .if n .RS 4 .nf .fam C ButtonStyle Reset .fam .fi .if n .RE .sp برای بازنشانی وضعیت دکمه «ActiveUp» دکمه 1 به پیش‌فرض: .sp .if n .RS 4 .nf .fam C ButtonStyle 1 ActiveUp Default .fam .fi .if n .RE .sp برای بازنشانی تمام وضعیت‌های دکمه 1 به پیش‌فرض دکمه شماره 2: .sp .if n .RS 4 .nf .fam C ButtonStyle 1 Default 2 .fam .fi .if n .RE .sp برای هر دکمه، با قرار دادن \fIstyle\fP و \fIflags\fP در پرانتز می‌توان چندین تعریف \fIstate\fP را در یک خط ارائه داد. اگر در هر خط فقط یک تعریف داده شود، می‌توان پرانتزها را حذف کرد. .sp پرچم‌ها (\fIflags\fP) بر \fIstate\fP مشخص‌شده تأثیر می‌گذارند. اگر یک \*(Aq!\*(Aq پیشوند هر \fIflag\fP باشد، رفتار آن معکوس می‌شود. پرچم‌های وابسته به وضعیت موجود برای همه سبک‌ها در اینجا شرح داده شده‌اند (مدخل \fBButtonStyle\fP به پرچم‌های مستقل از وضعیت می‌پردازد). .sp \fIRaised\fP باعث رسم الگوی برجسته می‌شود. .sp \fISunk\fP باعث رسم الگوی فرورفته می‌شود. .sp \fIFlat\fP از رسم الگوی برجستگی/فرورفتگی جلوگیری می‌کند. .sp \fIUseTitleStyle\fP باعث می‌شود وضعیت دکمه داده‌شده قبل از رسم سبک‌های خود دکمه، سبک عنوان فعلی را رندر کند. پرچم‌های \fIRaised\fP، \fIFlat\fP و \fISunk\fP دستور \fBTitleStyle\fP نادیده گرفته می‌شوند زیرا در این زمینه زائد هستند. .sp \fIUseBorderStyle\fP باعث می‌شود دکمه گزینه‌های \fBBorderStyle\fP تزیین‌شده را به ارث ببرد. .sp گزینه‌های \fIRaised\fP، \fISunk\fP و \fIFlat\fP مانعة‌الجمع هستند و فقط برای \fBButtonStyle\fP اولیه قابل تعیین می‌باشند. \fIUseTitleStyle\fP و \fIUseBorderStyle\fP نیز مانعة‌الجمع هستند (اگرچه هر دو می‌توانند خاموش باشند). حالت پیش‌فرض \fIRaised\fP است در حالی که هر دو \fIUseBorderStyle\fP و \fIUseTitleStyle\fP تنظیم‌نشده باقی می‌مانند. .sp \fBمهم\fP .sp برای وضعیت‌های «ActiveDown» و «InactiveDown»: هنگامی که دکمه‌ای فشرده می‌شود، برجستگی/فرورفتگی معکوس می‌شود. به همین دلیل، برای دستیابی به ظاهر برجسته در وضعیت‌های «ActiveDown» یا «InactiveDown» باید معکوس برجستگی مورد نظر را مشخص کنید (یعنی \fISunk\fP برای «ActiveDown» یا «InactiveDown»). این رفتار سازگار است، اما ممکن است در ابتدا گیج‌کننده به نظر برسد. همین موضوع در مورد وضعیت‌های «Toggled» نیز صدق می‌کند. .sp سبک‌های دکمه به سه دسته غیرمخرب (non\-destructive)، تا حدی مخرب (partially destructive) یا کاملاً مخرب (fully destructive) طبقه‌بندی می‌شوند. سبک‌های غیرمخرب بر تصویر تأثیری نمی‌گذارند. سبک‌های تا حدی مخرب می‌توانند برخی یا تمام بخش‌های تصویر زیرین را بپوشانند (مانند \fIPixmap\fP). سبک‌های کاملاً مخرب کل تصویر زیرین را می‌پوشانند (مانند \fISolid\fP یا یکی از سبک‌های \fIgradient\fP). بنابراین، هنگام چیدن چند لایه سبک با \fBAddButtonStyle\fP (یا \fBAddTitleStyle\fP برای نوارهای عنوان)، در ترتیب‌بندی سبک‌ها دقت کنید تا بازرسم به حداقل برسد. .sp سبک‌های موجود عبارتند از: .sp \fISimple\fP، \fIDefault\fP، \fISolid\fP، \fIColorset\fP، \fIVector\fP، \fI?Gradient\fP، \fIPixmap\fP، \fIAdjustedPixmap\fP، \fIShrunkPixmap\fP، \fIStretchedPixmap\fP، \fITiledPixmap\fP، \fIMiniIcon\fP .sp توضیحات این سبک‌ها و آرگومان‌های آن‌ها در ادامه آمده است: .sp سبک \fISimple\fP کاری انجام نمی‌دهد. هیچ آرگومانی ندارد و این سبک نمونه‌ای از یک سبک دکمه غیرمخرب است. .sp سبک \fIDefault\fP به صورت مشروط یک آرگومان می‌پذیرد: عددی که شماره دکمه پیش‌فرض برای بارگیری را مشخص می‌کند. اگر دستور سبک داده‌شده \fBButtonStyle\fP یا \fBAddButtonStyle\fP باشد، آرگومان اختیاری است (در صورت ارائه، دکمه فعلی را بازنویسی می‌کند). اگر دستوری غیر از \fBButtonStyle\fP یا \fBAddButtonStyle\fP استفاده شود، عدد باید مشخص گردد. .sp سبک \fISolid\fP دکمه را با یک رنگ یکدست پر می‌کند. رنگ حاشیه برجسته تحت تأثیر قرار نمی‌گیرد. رنگ به عنوان یک آرگومان تکی مشخص می‌شود. این سبک کاملاً مخرب است. .sp سبک \fIColorset\fP \fIcs\fP [\fIalpha\fP] دکمه را با کالرست \fIcs\fP پر می‌کند. آرگومان اختیاری \fIalpha\fP یک درصد بین 0 و 100 است. این آرگومان باعث می‌شود fvwm پس‌زمینه کالرست را با استفاده از این درصد با دکمه ترکیب کند. اگر درصد 0 باشد پس‌زمینه کالرست پنهان می‌شود و اگر 100 باشد پس‌زمینه کالرست به طور کامل اعمال می‌گردد. مقدار پیش‌فرض 100 است. بنابراین، میزان مخرب بودن به آرگومان \fIalpha\fP بستگی دارد. .sp سبک \fIVector\fP \fInum\fP \fIX\fP\fB[\fP\fIoffset\fP\fBp]x\fP\fIY\fP\fB[\fP\fIoffset\fP\fBp]@C .\|.\|.\fP یک الگوی خطی رسم می‌کند. از آنجا که این یک سبک دکمه استاندارد است، کلمه کلیدی \fIVector\fP اختیاری است، \fInum\fP تعداد مشخصات نقاط به فرم \fIX\fP\fB[\fP\fIoffset\fP\fBp]x\fP\fIY\fP\fB[\fP\fIoffset\fP\fBp]@C .\|.\|.\fP است. \fIX\fP و \fIY\fP مختصات نقطه در داخل دکمه هستند که بر حسب درصد (از 0 تا 100) داده می‌شوند. یک \fIoffset\fP مطلق اختیاری بر حسب پیکسل، می‌تواند به عنوان «+p» برای آفست مثبت یا «\-p» برای آفست منفی داده شود. .sp \fIC\fP رنگ خط را مشخص می‌کند (0 \- رنگ سایه، 1 \- رنگ هایلایت/روشن، 2 \- رنگ پس‌زمینه، 3 \- رنگ پیش‌زمینه، 4 \- فقط نقطه را حرکت بده، چیزی رسم نکن). رنگ نقطه اول استفاده نمی‌شود. می‌توانید تا 10000 نقطه در یک الگوی خطی استفاده کنید. این سبک تا حدی مخرب است. .sp مشخصات آن کمی دشوار است: .sp .if n .RS 4 .nf .fam C ButtonStyle 2 Vector 4 50x30@1 70x70@0 30x70@0 50x30@1 .fam .fi .if n .RE .sp سپس تزیین دکمه 2 از یک الگوی ۴ نقطه‌ای متشکل از یک خط از (x=50,y=30) به (70,70) با رنگ سایه (@0)، و سپس به (30,70) با رنگ سایه، و در نهایت به (50,30) با رنگ هایلایت (@1) استفاده می‌کند. آیا این خیلی گیج‌کننده است؟ صفحات وب fvwm را برای چند مثال همراه با تصویر صفحه ببینید. .sp یک مثال پیچیده‌تر از \fIVector\fP: .sp .if n .RS 4 .nf .fam C ButtonStyle 8 Vector 10 45x65@2 45x75@3 \(rs 20x75@3 20x50@3 35x50@3 35x65@1 35x25@1 \(rs 75x25@1 75x65@0 35x65@0 ButtonStyle 0 Vector 10 45x65@2 45x75@0 \(rs 20x75@0 20x50@1 45x50@1 45x65@0 75x65@3 \(rs 75x25@3 35x25@3 35x47@3 .fam .fi .if n .RE .sp سبک‌های \fIGradient\fP نشان‌دهنده گرادیان‌های رنگی هستند. علامت سوال را با هر یک از انواع گرادیان تعریف‌شده پر کنید. لطفاً برای توضیحات نحو گرادیان به بخش \fBگرادیان‌های رنگی (Color Gradients)\fP مراجعه کنید. سبک‌های گرادیان کاملاً مخرب هستند. .sp سبک \fIPixmap\fP یک پیکس‌مپ را نمایش می‌دهد. پیکس‌مپ باید به عنوان یک آرگومان مشخص شود. به عنوان مثال، دستور زیر به دکمه شماره 2 همان پیکس‌مپ را برای هر ۴ وضعیت (۲ فعال و ۲ غیرفعال) و به دکمه شماره 4 پیکس‌مپ‌های کاملاً متفاوتی اختصاص می‌دهد. .sp .if n .RS 4 .nf .fam C ButtonStyle 2 Pixmap my_pixmap.xpm ButtonStyle 4 \(rs ActiveUp (Pixmap activeup.xpm) \(rs ActiveDown (Pixmap activedown.xpm) \(rs Inactive (Pixmap inactiveup.xpm) ButtonStyle 4 \(rs InactiveDown Pixmap inactivedown.xpm .fam .fi .if n .RE .sp مشخصه پیکس‌مپ می‌تواند به عنوان یک مسیر مطلق یا نسبی داده شود (\fBImagePath\fP را ببینید). اگر پیکس‌مپ پیدا نشود، سبک دکمه به \fISimple\fP بازمی‌گردد. پرچم‌های مخصوص سبک \fIPixmap\fP عبارتند از \fILeft\fP، \fIRight\fP، \fITop\fP و \fIBottom\fP. این‌ها را می‌توان برای تراز کردن پیکس‌مپ استفاده کرد (پیش‌فرض برای هر دو جهت وسط‌چین است). شفافیت پیکس‌مپ برای رنگ «None» استفاده می‌شود. این سبک تا حدی مخرب است. .sp سبک \fIAdjustedPixmap\fP شبیه سبک \fIPixmap\fP است. اما اندازه تصویر به گونه‌ای تغییر می‌کند که دقیقاً با دکمه اندازه شود. .sp سبک \fIShrunkPixmap\fP شبیه سبک \fIPixmap\fP است. اما اگر تصویر از دکمه بزرگ‌تر باشد، اندازه تصویر برای جا شدن در دکمه کوچک می‌شود. .sp سبک \fIStretchedPixmap\fP شبیه سبک \fIPixmap\fP است. اما اگر تصویر از دکمه کوچک‌تر باشد، اندازه تصویر برای پوشاندن دکمه کشیده می‌شود. .sp سبک \fITiledPixmap\fP یک پیکس‌مپ را می‌پذیرد تا به صورت کاشی‌کاری‌شده به عنوان پس‌زمینه دکمه قرار گیرد. یک پیکس‌مپ به عنوان آرگومان مشخص می‌شود. شفافیت پیکس‌مپ استفاده نمی‌شود. این سبک کاملاً مخرب است. .sp سبک \fIMiniIcon\fP آیکون مینیاتوری پنجره را در دکمه رسم می‌کند، که با گزینه \fIMiniIcon\fP از دستور \fBStyle\fP مشخص می‌شود. این سبک دکمه هیچ آرگومانی نمی‌پذیرد. مثال: .sp .if n .RS 4 .nf .fam C Style *\& MiniIcon mini\-bx2.xpm Style xterm MiniIcon mini\-term.xpm Style Emacs MiniIcon mini\-doc.xpm ButtonStyle 1 MiniIcon .fam .fi .if n .RE .RE .sp \fBButtonStyle\fP \fIbutton\fP \- [!]\fIflag\fP .\|.\|. .RS 4 پرچم‌های مستقل از وضعیت را برای \fIbutton\fP مشخص‌شده تنظیم می‌کند. پرچم‌های مستقل از وضعیت بر رفتار دکمه تأثیر می‌گذارند. هر \fIflag\fP با یک فاصله جدا می‌شود. اگر یک \*(Aq!\*(Aq پیشوند پرچم باشد، آنگاه رفتار آن معکوس می‌شود. پرچم ویژه \fIClear\fP هر پرچم موجودی را پاک می‌کند. .sp پرچم‌های زیر معمولاً استفاده می‌شوند تا به fvwm بگویند کدام دکمه‌ها باید تحت تأثیر نشانه‌های توابع mwm قرار گیرند (گزینه \fIMwmFunctions\fP از دستور \fBStyle\fP را ببینید). این کار به طور خودکار انجام نمی‌شود زیرا ممکن است برای مثال دکمه‌هایی داشته باشید که به توابع پیچیده‌ای مقید شده باشند. .sp \fIMwmDecorMenu\fP باید به دکمه‌های نوار عنوانی اختصاص یابد که یک منو را نمایش می‌دهند. تخصیص پیش‌فرض چپ‌ترین دکمه است. وقتی پنجره‌ای با گزینه \fIMwmFunctions\fP دستور \fBStyle\fP درخواست کند که این دکمه نشان داده نشود، پنهان می‌گردد. .sp \fIMwmDecorMin\fP باید به دکمه‌های نوار عنوانی اختصاص یابد که پنجره را کمینه یا آیکونی می‌کنند. تخصیص پیش‌فرض دومین دکمه از سمت راست‌ترین دکمه است. وقتی پنجره‌ای با گزینه \fIMwmFunctions\fP دستور \fBStyle\fP درخواست کند که این دکمه نشان داده نشود، پنهان می‌گردد. .sp \fIMwmDecorMax\fP باید به دکمه‌های نوار عنوانی اختصاص یابد که پنجره را بیشینه می‌کنند. تخصیص پیش‌فرض راست‌ترین دکمه است. وقتی پنجره‌ای با گزینه \fIMwmFunctions\fP دستور \fBStyle\fP درخواست کند که این دکمه نشان داده نشود، پنهان می‌گردد. هنگامی که پنجره بیشینه می‌شود، الگوی برداری روی دکمه به صورت فشرده‌شده به نظر می‌رسد. .sp \fIMwmDecorShade\fP باید به دکمه‌های نوار عنوانی اختصاص یابد که پنجره را لوله (shade) می‌کنند (دستور \fBWindowShade\fP را ببینید). هنگامی که پنجره لوله می‌شود، الگوی برداری روی دکمه به صورت فشرده‌شده به نظر می‌رسد. .sp \fIMwmDecorStick\fP باید به دکمه‌های نوار عنوانی اختصاص یابد که پنجره را چسبان (sticky) می‌کنند. هنگامی که پنجره چسبان است، الگوی برداری روی دکمه به صورت فشرده‌شده به نظر می‌رسد. .sp پرچم \fIMwmDecorLayer\fP \fIlayer\fP باید به دکمه‌های نوار عنوانی اختصاص یابد که پنجره را در لایه شماره \fIlayer\fP قرار می‌دهند. هنگامی که پنجره در آن لایه خاص قرار دارد، الگوی برداری روی دکمه به صورت فشرده‌شده به نظر می‌رسد. .RE .sp \fBChangeDecor\fP \fIdecor\fP .RS 4 این دستور منسوخ شده است و در آینده حذف خواهد شد. برنامه‌هایی برای جایگزینی آن با یک راهکار انعطاف‌پذیرتر در fvwm\-3.0 وجود دارد. .sp دکور یک پنجره را به \fIdecor\fP تغییر می‌دهد. \fIdecor\fP می‌تواند «Default» یا نام دکوری باشد که با \fBAddToDecor\fP تعریف شده است. اگر \fIdecor\fP نامعتبر باشد، هیچ اتفاقی نمی‌افتد. اگر از جایی درون پنجره یا حاشیه آن فراخوانی شود، آن پنجره تحت تأثیر قرار می‌گیرد. اگر از پنجره ریشه فراخوانی شود، کاربر مجاز است پنجره هدف را انتخاب کند. \fBChangeDecor\fP فقط بر ویژگی‌هایی تأثیر می‌گذارد که با استفاده از دستور \fBAddToDecor\fP قابل تنظیم باشند. .sp .if n .RS 4 .nf .fam C ChangeDecor CustomDecor1 .fam .fi .if n .RE .RE .sp \fBDestroyDecor\fP [recreate] \fIdecor\fP .RS 4 این دستور منسوخ شده است و در آینده حذف خواهد شد. برنامه‌هایی برای جایگزینی آن با یک راهکار انعطاف‌پذیرتر در fvwm\-3.0 وجود دارد. .sp دکور تعریف‌شده با \fBAddToDecor\fP را حذف می‌کند، به طوری که ارجاعات بعدی به آن دیگر معتبر نخواهند بود. پنجره‌هایی که از این \fIdecor\fP استفاده می‌کنند به دکور «Default» بازمی‌گردند. پارامتر اختیاری \fIrecreate\fP به fvwm می‌گوید که دکور را به طور کامل دور نیندازد، بلکه فقط محتویات آن را دور بریزد. اگر بعداً دکور دوباره ایجاد شود، پنجره‌ها تا زمانی که سبک \fIUseDecor\fP دوباره اعمال نشود از آن استفاده نمی‌کنند، مگر اینکه دکور با گزینه \fIrecreate\fP نابود شده باشد. دکور با نام «Default» را نمی‌توان نابود کرد. .sp .if n .RS 4 .nf .fam C DestroyDecor CustomDecor1 .fam .fi .if n .RE .RE .sp \fBTitleStyle\fP [\fIjustification\fP] [Height [\fInum\fP]] [MinHeight [\fInum\fP]] .RS 4 ویژگی‌های نوار عنوان را تنظیم می‌کند. ترازها می‌توانند \fICentered\fP، \fIRightJustified\fP یا \fILeftJustified\fP باشند. \fIHeight\fP ارتفاع نوار عنوان را به مقداری بر حسب پیکسل تنظیم می‌کند. \fIMinHeight\fP حداقل ارتفاع نوار عنوان را بر حسب پیکسل تعیین می‌کند. مقادیر پیش‌فرض عبارتند از \fICentered\fP، ارتفاع قلم پنجره و بدون حداقل ارتفاع. برای بازنشانی ارتفاع قلم به مقدار پیش‌فرض، آرگومان \fInum\fP بعد از کلمه کلیدی \fIHeight\fP را حذف کنید. ارتفاع \fIMinHeight\fP با \fIHeight\fP یا در صورت ارائه بدون آرگومان بازنشانی می‌شود. مثال: .sp .if n .RS 4 .nf .fam C TitleStyle LeftJustified Height 24 .fam .fi .if n .RE .RE .sp \fBTitleStyle\fP [\fIstate\fP] [\fIstyle\fP] [\-\- [!]\fIflag\fP .\|.\|.] .RS 4 سبک را برای نوار عنوان تنظیم می‌کند. همچنین دستورات \fBAddTitleStyle\fP و \fBButtonStyle\fP را ببینید. \fIstate\fP می‌تواند یکی از موارد «\fIActiveUp\fP»، «\fIActiveDown\fP»، «\fIInactiveUp\fP» یا «\fIInactiveDown\fP» باشد. میان‌برهایی مانند «\fIActive\fP» و «\fIInactive\fP» مجاز هستند. وضعیت‌های با پیشوند «Toggled» نیز مجاز هستند؛ خود عنوان از وضعیت‌های «Toggled» استفاده نمی‌کند، اما این وضعیت‌ها برای دکمه‌های دارای \fBButtonStyle\fP \fIUseTitleStyle\fP استفاده می‌شوند. اگر \fIstate\fP حذف شود، \fIstyle\fP به همه وضعیت‌ها اضافه می‌شود. اگر پرانتزها در اطراف \fIstyle\fP و \fIflags\fP قرار گیرند، می‌توان چندین تعریف وضعیت را در هر خط ارائه داد. \fIstyle\fP را می‌توان حذف کرد تا پرچم‌ها بدون از بین بردن سبک فعلی تنظیم شوند. .sp اگر یک \*(Aq!\*(Aq پیشوند هر \fIflag\fP باشد، رفتار آن معکوس می‌شود. پرچم‌های معتبر برای هر وضعیت شامل \fIRaised\fP، \fIFlat\fP و \fISunk\fP هستند (این موارد مانعة‌الجمع می‌باشند). مقدار پیش‌فرض \fIRaised\fP است. یادداشت موجود در \fBButtonStyle\fP در رابطه با وضعیت «\fIActiveDown\fP» را ببینید. مثال‌ها: .sp .if n .RS 4 .nf .fam C TitleStyle ActiveUp HGradient 16 navy black TitleStyle \(rs ActiveDown (Solid red \-\- flat) \(rs Inactive (TiledPixmap wood.xpm) TitleStyle \(rs ActiveUp (\-\- Flat) \(rs ActiveDown (\-\- Raised) \(rs InactiveUp (\-\- Flat) \(rs InactiveDown (\-\- Sunk) .fam .fi .if n .RE .sp این دستور وضعیت «ActiveUp» را روی یک گرادیان افقی، وضعیت «ActiveDown» را روی قرمز یکدست و وضعیت‌های «Inactive» را روی یک پیکس‌مپ چوبی کاشی‌کاری‌شده تنظیم می‌کند. در نهایت، «ActiveUp» و «InactiveUp» طوری تنظیم می‌شوند که تخت به نظر برسند، در حالی که «ActiveDown» طوری تنظیم می‌شود که فرورفته باشد (پرچم \fIRaised\fP برای وضعیت «ActiveDown» به دلیل معکوس شدن برجستگی باعث می‌شود فرورفته به نظر برسد)، و «InactiveDown» طوری تنظیم می‌شود که برجسته به نظر برسد. مثالی که پرچم‌ها را برای همه وضعیت‌ها تنظیم می‌کند: .sp .if n .RS 4 .nf .fam C TitleStyle \-\- flat .fam .fi .if n .RE .sp برای داشتن ظاهری تخت: .sp .if n .RS 4 .nf .fam C TitleStyle \-\- flat ButtonStyle All Active (\-\- flat) Inactive (\-\- flat) .fam .fi .if n .RE .sp دستور \fBTitleStyle\fP تمام سبک‌ها و آرگومان‌های \fBButtonStyle\fP را می‌پذیرد: .sp \fISimple\fP، \fIDefault\fP، \fISolid\fP، \fIColorset\fP، \fIVector\fP، \fI?Gradient\fP، \fIPixmap\fP، \fIAdjustedPixmap\fP، \fIShrunkPixmap\fP، \fIStretchedPixmap\fP، \fITiledPixmap\fP، \fIMiniIcon\fP. .sp برای توضیحات تمام این سبک‌ها و آرگومان‌های آن‌ها، دستور \fBButtonStyle\fP را ببینید. .sp علاوه بر این سبک‌ها، \fBTitleStyle\fP یک گزینه قدرتمند \fIMultiPixmap\fP را نیز می‌پذیرد. این گزینه به شما امکان می‌دهد پیکس‌مپ‌ها، کالرست‌ها یا رنگ‌های متفاوتی را برای بخش‌های مختلف نوار عنوان مشخص کنید. برخی از آن‌ها برای متناسب شدن با یک فضای خاص کاشی‌کاری یا کشیده می‌شوند؛ برخی دیگر تصاویر گسسته «انتقال» (transition) هستند. بخش‌های (\fIsections\fP) قابل تعریف عبارتند از: .sp \fIMain\fP .RS 4 کل نوار عنوان .RE .sp \fILeftMain\fP .RS 4 سمت چپ متن عنوان .RE .sp \fIRightMain\fP .RS 4 سمت راست متن عنوان .RE .sp \fIUnderText\fP .RS 4 زیر متن عنوان .RE .sp \fILeftOfText\fP .RS 4 دقیقاً سمت چپ متن عنوان .RE .sp \fIRightOfText\fP .RS 4 دقیقاً سمت راست متن عنوان .RE .sp \fILeftEnd\fP .RS 4 در انتهایی‌ترین بخش سمت چپ نوار عنوان (دقیقاً پس از دکمه‌های سمت چپ در صورت وجود) .RE .sp \fIRightEnd\fP .RS 4 در انتهایی‌ترین بخش سمت راست نوار عنوان (دقیقاً قبل از دکمه‌های سمت راست در صورت وجود) .RE .sp \fIButtons\fP .RS 4 زیر دکمه‌ها در صورت استفاده از \fIUseTitleStyle\fP .RE .sp \fILeftButtons\fP .RS 4 زیر دکمه‌های سمت چپ در صورت استفاده از \fIUseTitleStyle\fP .RE .sp \fIRightButtons\fP .RS 4 زیر دکمه‌های سمت راست در صورت استفاده از \fIUseTitleStyle\fP .RE .sp هیچ‌یک از این موارد اجباری نیستند به جز \fIMain\fP (یا اگر \fIMain\fP را تعریف نکنید باید هر دو \fILeftMain\fP و \fIRightMain\fP را تعریف کنید). اگر هیچ پیکس‌مپی برای \fIButtons\fP تعریف نشده باشد و \fIUseTitleStyle\fP برای یک یا چند دکمه مشخص شده باشد، بر حسب مورد از \fIMain\fP، \fILeftMain\fP یا \fIRightMain\fP استفاده می‌شود. .sp نحو این نوع سبک به این صورت است: .sp .if n .RS 4 .nf .fam C MultiPixmap section style arg, ... .fam .fi .if n .RE .sp و برای هر آنچه می‌خواهید تعریف کنید ادامه می‌یابد. \fIstyle\fP می‌تواند یکی از موارد \fITiledPixmap\fP، \fIAdjustedPixmap\fP، \fIColorset\fP یا \fISolid\fP باشد. دستور \fBButtonStyle\fP را برای توضیحات این سبک‌ها ببینید. در مورد بخش‌های انتقال، \fILeftEnd\fP، \fILeftOfText\fP، \fIRightOfText\fP یا \fIRightEnd\fP، سبک \fIAdjustedPixmap\fP فقط اندازه پیکس‌مپ را در جهت «y» تغییر می‌دهد. برای سبک‌های \fIColorset\fP و \fISolid\fP، عرضی معادل نصف ارتفاع نوار عنوان برای بخش‌های انتقال فرض می‌شود. .sp یک مثال: .sp .if n .RS 4 .nf .fam C MultiPixmap Main AdjustedPixmap foo.xpm, \(rs UnderText TiledPixmap bar.xpm, \(rs Buttons Colorset 2 .fam .fi .if n .RE .sp توجه داشته باشید که نحو قدیمی هنوز پشتیبانی می‌شود: اگر سبک حذف شود، \fITiledPixmap\fP فرض می‌شود و افزودن «(stretched)» بین بخش و نام فایل به معنی \fIAdjustedPixmap\fP است. .RE .sp \fBUpdateDecor\fP [\fIdecor\fP] .RS 4 این دستور منسوخ شده است و در آینده حذف خواهد شد. برنامه‌هایی برای جایگزینی آن با یک راهکار انعطاف‌پذیرتر در fvwm\-3.0 وجود دارد. .sp این دستور عمدتاً برای سازگاری با گذشته حفظ شده است. از آنجا که تمام عناصر یک دکور بلافاصله پس از تغییر به‌روزرسانی می‌شوند، این دستور تا حد زیادی بی‌استفاده است. .sp تزیینات پنجره را به‌روزرسانی می‌کند. \fIdecor\fP یک آرگومان اختیاری است که \fIdecor\fP مورد نظر برای به‌روزرسانی را مشخص می‌کند. در صورت ارائه، فقط پنجره‌هایی که به آن \fIdecor\fP خاص اختصاص یافته‌اند به‌روز می‌شوند. این دستور برای مثال پس از \fBButtonStyle\fP، \fBTitleStyle\fP یا \fBBorderStyle\fP (احتمالاً در ترکیب با \fBAddToDecor\fP) مفید است. مشخص کردن یک دکور نامعتبر منجر به به‌روزرسانی تمام پنجره‌ها می‌شود.