FLUXBOX-APPS(5) Fluxbox Manual FLUXBOX-APPS(5)

fluxbox-apps - پیکربندی مشخصه‌های هر پنجره برای fluxbox(1)

~/.fluxbox/apps

پارامترهای متغیر به صورت تأکیدی نشان داده شده‌اند: argument

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

می‌توان یک برنامه را مجبور کرد که هنگام اجرای اولیه همیشه ابعاد، موقعیت و سایر تنظیمات یکسانی داشته باشد. این تنظیمات در فایل ‘apps’ ذخیره می‌شوند.

بیشتر تنظیمات ساده را می‌توان با استفاده از زیرمنوی “Remember...” در منوی پنجره (که معمولاً با راست‌کلیک روی نوار عنوان باز می‌شود) ذخیره کرد. قابلیت‌های پیشرفته‌تر نیازمند ویرایش دستی فایل ‘apps’ هستند. این موارد می‌تواند شامل استفاده از بخش‌های گروه (GROUP SECTIONS) برای راه‌اندازی گروه‌های زبانه‌ای خودکار پنجره‌ها باشد.

پس از ویرایش فایل apps نیازی به بارگذاری مجدد (“reload”) در fluxbox ندارید؛ تغییرات هنگام باز شدن پنجرهٔ بعدی مجدداً بررسی خواهند شد.

این فایل از دو نوع بخش اصلی تشکیل شده است: برنامه‌ها (apps) و گروه‌ها (groups)، که جزئیات آن‌ها در ادامه آمده است.

بخش‌های [app] تنظیماتی را برای پنجره‌های مجزای برنامه‌ها فراهم می‌کنند.

این بخش‌ها با خطی در قالب زیر آغاز می‌شوند:

[app](pattern){count}

مؤلفهٔ pattern می‌تواند یک یا چند الگو باشد که با پنجره‌ها مطابقت داده می‌شوند. برای جزئیات بیشتر، الگوهای کلاینت (CLIENT PATTERNS) را ببینید. اگر بیش از یک pattern تعیین کنید، برای اعمال تنظیمات باید همگی مطابقت داشته باشند.

مقدار {count} اختیاری است. اگر تعیین شود، این مدخل در هر لحظه حداکثر با همان تعداد پنجره مطابقت داده می‌شود. در صورت حذف، پیش‌فرض اعمال تنظیمات روی همهٔ پنجره‌های منطبق است.

پس از این خطِ آغازینِ [apps]، می‌توان هر تعداد تنظیمی را برای برنامه مشخص کرد. برای جزئیات بیشتر تنظیمات (SETTINGS) را ببینید.

هر یک از این بخش‌ها با تک‌خط زیر به پایان می‌رسد:

[end]

بخش‌های [transient] تنظیماتی را برای «کادرهای محاوره» (dialogs) فراهم می‌کنند.

این بخش مشابه بخش [app] است، اما برای پنجره‌های گذرا (transient) اعمال می‌شود. پنجره‌های گذرا دارای مشخصهٔ WM_TRANSIENT_FOR هستند. این مورد برای همهٔ پنجره‌های مودال و چندین محاورهٔ دیگر که دارای یک پنجرهٔ والد هستند و در بالای آن می‌مانند اعمال می‌شود. به ویژه، کادرهای محاوره‌ای باز کردن/ذخیره کردن (open/save) در این دسته قرار می‌گیرند.

هدف اصلی بخش‌های [group] گروه‌بندی پنجره‌ها با یکدیگر است. تمام پنجره‌های موجود در یک گروه به طور خودکار به صورت زبانه (تب) در کنار هم قرار می‌گیرند.

این بخش‌ها با خطی در قالب زیر آغاز می‌شوند:

[group](pattern)

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

در ادامه هر تعداد خطِ [app] قرار می‌گیرد. این خطوط قالبی مشابه بخش [app] دارند که در بالا در بخش‌های برنامه (APP SECTIONS) توضیح داده شد، اما حاوی هیچ تنظیمی نیستند و خط [end] مربوطه را نیز ندارند.

مانند این:

[app](pattern)

این بخش همچنین می‌تواند شامل تنظیماتی باشد که روی تک‌تک پنجره‌های گروه اعمال می‌شوند. برای جزئیات، بخش تنظیمات (SETTINGS) را ببینید.

مانند بخش‌های [app]، هر یک از این بخش‌ها با تک‌خط زیر به پایان می‌رسد:

[end]

این تنظیمات ممکن است در فایل ‘apps’ ذخیره شوند. خط تنظیمات باید درون یک بخش [app] یا [group] قرار گیرد.

قالب کلی به این صورت است:

[setting]{value}

تمامی مقادیر مجاز در زیر شرح داده شده‌اند، به جز bool که می‌تواند مقادیر yes یا no را داشته باشد که به ترتیب تنظیم مربوطه را فعال یا غیرفعال می‌کند.

[Workspace] {number}

برنامه را مجبور می‌کند روی فضای کاری شمارهٔ number مشخص‌شده باز شود. فضاهای کاری بر اساس شماره و با شروع از 0 تنظیم می‌شوند.

[Jump] {bool}

هنگام باز شدن برنامه، فضای کاری فعال را به فضای کاری به‌خاطرسپرده‌شده تغییر می‌دهد. این گزینه تنها زمانی کاربرد دارد که به همراه [Workspace] استفاده شود. مثال‌ها (EXAMPLES) را ببینید.

[Head] {number}

برنامه را مجبور می‌کند روی نمایشگر (head) شمارهٔ number مشخص‌شده باز شود (فقط در Xinerama).

[Layer] {number}

لایه‌ای را که پنجره باید در آن باز شود (با شماره) مشخص می‌کند. هر لایه یک شماره دارد. لایه‌های نام‌گذاری‌شده عبارتند از: 2-AboveDock، 4-Dock، 6-Top، 8-Normal، 10-Bottom، 12-Desktop.

[Dimensions] {width[%] height[%]}

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

[IgnoreSizeHints] {bool}

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

[Position] (anchor) {X[%] Y[%]}

پنجرهٔ برنامه را در یک نقطهٔ خاص قرار می‌دهد. به طور پیش‌فرض، گوشهٔ بالا-چپ در مختصات صفحه (X,Y) قرار می‌گیرد. اگر یک anchor تعیین کنید، مثلاً BottomRight، گوشهٔ پایین-راست پنجره در فاصلهٔ (X,Y) پیکسلی از گوشهٔ پایین-راست صفحه قرار می‌گیرد. اگر مقدار به صورت درصد داده شود، مختصات بر اساس اندازهٔ صفحهٔ فعلی محاسبه خواهد شد.

مقدار anchor می‌تواند یکی از موارد زیر باشد:

TopLeft Left BottomLeft Top Center Bottom TopRight Right BottomRight

[Deco] {value}

وضعیت تزیینات (decorations) را مشخص می‌کند. چندین مجموعه value از پیش تعریف‌شده وجود دارد:

NORMAL

تزیینات استاندارد

NONE

بدون تزیینات

BORDER

مانند NONE به جز اینکه حاشیه پنجرهٔ X حفظ می‌شود

TAB

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

TINY

نوار عنوان تنها با یک دکمهٔ کمینه‌سازی

TOOL

فقط نوار عنوان

مقدار value همچنین می‌تواند یک ماسک بیتی (bitmask) برای کنترل دقیق‌تر باشد. بیت‌ها از (1<<0) تا (1<<10) عبارتند از: Titlebar، Handle/Grips، Border، Iconify Button، Maximize Button، Close Button، Menu Button، Sticky Button، Shade Button، External Tabs، Focus Enabled.

[Shaded] {bool}

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

[Tab] {bool}

آیا پنجره زبانه‌ها (tabs) را فعال داشته باشد یا خیر.

[FocusNewWindow] {bool}

منسوخ شده! لطفاً به جای آن از FocusProtection با مقادیر "Gain" یا "Refuse" استفاده کنید.

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

[FocusProtection] {value [,value [, ...]] }

فهرستی از پرچم‌های کنترل فوکوس که با کاما از هم جدا شده‌اند. value می‌تواند موارد زیر باشد:

None

رفتار عادی

Gain

پنجرهٔ جدید به محض باز شدن فوکوس X را می‌گیرد.

Refuse

پنجرهٔ جدید به محض باز شدن فوکوس X را نمی‌گیرد.

Deny

پنجره مجاز نیست در زمانی که باز است فوکوس را تصاحب کند.

Lock

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

[FocusHidden] {bool}

در صورت فعال بودن، پنجره در فهرست‌های NextWindow/PrevWindow ظاهر نخواهد شد.

[IconHidden] {bool}

در صورت فعال بودن، پنجره در ناحیهٔ آیکون نوار ابزار ظاهر نخواهد شد.

[Hidden] {bool}

یک میانبر برای تنظیم همزمان هر دو مورد FocusHidden و IconHidden.

[Sticky] {bool}

مشخص می‌کند که آیا برنامه باید چسبان باشد (در تمام فضاهای کاری نمایش داده شود) یا خیر.

[Minimized] {bool}

برنامه باید به صورت کمینه‌شده (minimized) شروع به کار کند.

[Maximized] {value}

برنامه باید به صورت بیشینه‌شده (maximized) شروع به کار کند. مقدار value می‌تواند یکی از موارد زیر باشد:

yes

کاملاً بیشینه‌شده

horz

بیشینه‌شده به صورت افقی

vert

بیشینه‌شده به صورت عمودی

no

بیشینه‌نشده

[Fullscreen] {bool}

برنامه باید در حالت تمام‌صفحه (کاملاً بیشینه‌شده بدون هیچ تزییناتی) شروع به کار کند.

[Close] {bool}

ذخیرهٔ تنظیمات هنگام بستن. به طور پیش‌فرض، تنظیمات برنامه هنگام بسته شدن پنجره به‌روزرسانی نمی‌شوند.

[Alpha] {value [value]}

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

یک pattern به این شکل است:

([propertyname[!]=]regexp) ...

تعاریف تطابق در پرانتزهای (...) قرار می‌گیرند، و اگر هیچ propertyname داده نشود، مقدار پیش‌فرض Name فرض می‌شود. مؤلفهٔ regexp می‌تواند شامل هر عبارت باقاعده‌ای باشد، یا مقدار ویژهٔ [current] که با مقدار متناظر پنجره‌ای که در حال حاضر دارای فوکوس است مطابقت دارد. برای اطلاعات بیشتر در مورد عبارات باقاعدهٔ قابل قبول، regex(7) را ببینید.

مؤلفهٔ propertyname به حروف بزرگ و کوچک حساس نیست، در حالی که regexp حساس است.

اگر چندین آرگومان (pattern) تعیین کنید، این به معنای شرط AND (و) است؛ یعنی تمام الگوهای مشخص‌شده باید مطابقت داشته باشند.

می‌توانید از = برای بررسی برابری یا از != برای بررسی نابرابری استفاده کنید.

مقادیر زیر برای propertyname پذیرفته می‌شوند:

Name

یک رشته، متناظر با مشخصهٔ CLASSNAME (فیلد اول WM_CLASS در خروجی ابزار xprop(1)).

Class

یک رشته، متناظر با مشخصهٔ CLASSCLASS (فیلد دوم WM_CLASS در خروجی ابزار xprop(1)).

Title

یک رشته، متناظر با عنوان پنجره (WM_NAME از xprop(1)).

Role

یک رشته، متناظر با مشخصهٔ ROLE (مقدار WM_WINDOW_ROLE از xprop(1)).

Transient

مقدار yes یا no، بسته به اینکه پنجره گذرا است (معمولاً یک کادر محاوره‌ای پاپ‌آپ) یا خیر.

Maximized

مقدار yes یا no، بسته به اینکه پنجره بیشینه‌شده است یا خیر.

MaximizedHorizontal

مقدار yes یا no، بسته به اینکه پنجره به صورت افقی بیشینه‌شده است یا خیر.

MaximizedVertical

مقدار yes یا no، بسته به اینکه پنجره به صورت عمودی بیشینه‌شده است یا خیر.

Minimized

مقدار yes یا no، بسته به اینکه پنجره کمینه (آیکون) شده است یا خیر.

Fullscreen

مقدار yes یا no، بسته به اینکه پنجره تمام‌صفحه است یا خیر.

Shaded

مقدار yes یا no، بسته به اینکه پنجره کرکره‌ای (جمع‌شده) است یا خیر.

Stuck

مقدار yes یا no، بسته به اینکه پنجره چسبان (در تمام فضاهای کاری) است یا خیر.

FocusHidden

مقدار yes یا no، بسته به اینکه آیا پنجره درخواست کرده است که از فهرست فوکوس (یا فهرست alt-tab) حذف شود یا خیر.

IconHidden

مقدار yes یا no، بسته به اینکه آیا پنجره درخواست کرده است که از فهرست آیکون‌ها (یا نوار وظیفه) حذف شود یا خیر.

Urgent

مقدار yes یا no، بسته به اینکه آیا پرچم فوریت (urgent hint) پنجره تنظیم شده است یا خیر.

Workspace

شماره‌ای متناظر با شمارهٔ فضای کاری که پنجره به آن متصل است. اولین فضای کاری در اینجا 0 است. همچنین می‌توانید از [current] برای تطابق با فضای کاری فعلیِ قابل مشاهده استفاده کنید.

WorkspaceName

رشته‌ای متناظر با نام فضای کاری که پنجره به آن متصل است.

Head

شمارهٔ نمایشگری (head) که پنجره به آن متصل است. می‌توانید این مورد را با مقدار ویژهٔ [mouse] مطابقت دهید که به نمایشگری که اشاره‌گر ماوس در حال حاضر در آن قرار دارد اشاره می‌کند.

Layer

نام رشته‌ای لایهٔ پنجره که یکی از موارد زیر است: AboveDock، Dock، Top، Normal، Bottom، Desktop

Screen

شمارهٔ صفحهٔ نمایش ( screen ) فعلی مورد استفاده. اگر راه‌اندازی سرور x در حال اجرا شامل صفحه‌های مستقل باشد (not Xinerama)، متغیر محیطی $DISPLAY شامل مقادیری مانند :0.1 یا :1.0 خواهد بود. بخش بعد از نقطه (.) شمارهٔ صفحهٔ نمایش است.

@XPROP

یک رشته، متناظر با هر مشخصهٔ x (برای تنظیم یک مشخصهٔ x روی یک پنجره، از ابزار xprop(1) یا دستور SetXProp استفاده کنید)

تطابق با هر پنجره‌ای که دارای CLASSNAME برابر با "xterm" است.

(xterm)

تطابق با هر پنجره‌ای که دارای CLASSNAME یکسان با پنجرهٔ دارای فوکوس فعلی باشد.

(Name=[current])

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

(Head=[mouse]) (Layer!=[current])

تطابق با هر پنجره‌ای که دارای یک مشخصهٔ x به نام FOO باشد که شامل "bar" است.

(@FOO=.*bar.*)

~/.fluxbox/apps

این مکان پیش‌فرض برای ذخیرهٔ تنظیمات برنامه است.

session.appsFile: location

این مورد می‌تواند برای لغو مکان پیش‌فرض فایل تنظیمات برنامه تنظیم شود.

در اینجا چند مثال جالب و/یا کاربردی آورده شده است که می‌توانید با فایل apps خود انجام دهید.

# قرار دادن دو پنجره اولی که نام آن‌ها با 'term' پایان می‌یابد در فضای کاری 1
[app] (name=.*[tT]erm) {2}
  [Workspace]   {1}
[end]
# در مرکز قرار دادن kate با اندازه‌ای مشخص، و به‌روزرسانی این مقادیر هنگام بسته شدن پنجره.
[app] (name=kate)
  [Dimensions]  {1022 747}
  [Position]    (CENTER) {0 0}
  [Close]       {yes}
[end]
# هنگام اجرای konqueror، ابتدا به فضای کاری 1 برود و آن را در آنجا باز کند.
[app] (name=konqueror)
  [Workspace]   {1}
  [Jump]        {yes}
[end]
# اجرای تمام پنجره‌های aterm بدون تزیینات
[app] (name=aterm)
  [Deco]        {NONE}
[end]
# یک گروه شامل dock و toolbox مربوط به gimp
# در لایه 4 (پایین) نمایش داده می‌شود
[group]
  [app] (name=gimp) (role=gimp-dock)
  [app] (name=gimp) (role=gimp-toolbox)
  [Layer]       {4}
[end]

•Jim Ramsay <i.am at jimramsay com> (>fluxbox-1.0.0)
•Curt Micol <asenchi at asenchi com> (>fluxbox-0.9.11)
•Tobias Klausmann <klausman at users sourceforge net> (⟨fluxbox-0.9.11)
•Grubert <grubert at users sourceforge net> (fluxbox)
•Matthew Hawkins <matt at mh dropbear id au> (blackbox)
•Wilbert Berendsen <wbsoft at xs4all nl> (blackbox)

fluxbox(1) xprop(1) regex(7)

Jim Ramsay <i.am@jimramsay.com>

نویسنده.
08 February 2015 fluxbox-apps.txt