BSPWM(1) Bspwm Manual BSPWM(1)

bspwm - مدیر پنجره افراز فضای دودویی

bspwm [-h|-v|-c CONFIG_PATH]

bspc --print-socket-path

bspc DOMAIN [SELECTOR] COMMANDS

bspc COMMAND [OPTIONS] [ARGUMENTS]

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

کنترل و پیکربندی آن از طریق bspc انجام می‌گیرد.

-h

چاپ خلاصه دستور و خروج.

-v

چاپ نسخه و خروج.

-c CONFIG_PATH

استفاده از فایل پیکربندی داده‌شده.

--print-socket-path

چاپ مسیر سوکت bspwm و خروج.

DIR         := north | west | south | east
CYCLE_DIR   := next | prev

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

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

[REFERENCE#]DESCRIPTOR(.MODIFIER)*

اهداف نسبی با توجه به مرجع داده‌شده محاسبه می‌شوند (مقدار مرجع پیش‌فرض focused است).

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

نویسه‌های روبرو را نمی‌توان در نام‌های نمایشگر یا میزکار به کار برد: #، :، ..

گزینش‌گر ویژه %<name> می‌تواند برای انتخاب یک نمایشگر یا میزکار با نام نامعتبر استفاده شود.

انتخاب یک گره.

NODE_SEL := [NODE_SEL#](DIR|CYCLE_DIR|PATH|any|first_ancestor|last|newest|
                        older|newer|focused|pointed|biggest|smallest|
                        <node_id>)[.[!]focused][.[!]active][.[!]automatic][.[!]local]
                                  [.[!]leaf][.[!]window][.[!]STATE][.[!]FLAG][.[!]LAYER][.[!]SPLIT_TYPE]
                                  [.[!]same_class][.[!]descendant_of][.[!]ancestor_of]
STATE := tiled|pseudo_tiled|floating|fullscreen
FLAG := hidden|sticky|private|locked|marked|urgent
LAYER := below|normal|above
SPLIT_TYPE := horizontal|vertical
PATH := @[DESKTOP_SEL:][[/]JUMP](/JUMP)*
JUMP := first|1|second|2|brother|parent|DIR

توصیف‌کننده‌ها (Descriptors)

DIR

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

CYCLE_DIR

گره را در جهت (چرخشی) داده‌شده نسبت به گره مرجع در پیمایش میان‌ترتیب عمق‌اول درخت انتخاب می‌کند.

PATH

گره را در مسیر داده‌شده انتخاب می‌کند.

any

نخستین گره منطبق با گزینش‌گرهای داده‌شده را انتخاب می‌کند.

first_ancestor

نخستین نیای گره مرجع را که با گزینش‌گرهای داده‌شده مطابقت دارد انتخاب می‌کند.

last

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

newest

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

older

گره قدیمی‌تر از گره مرجع را در تاریخچه انتخاب می‌کند.

newer

گره جدیدتر از گره مرجع را در تاریخچه انتخاب می‌کند.

focused

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

pointed

برگ زیر اشاره‌گر را انتخاب می‌کند.

biggest

بزرگ‌ترین برگ را انتخاب می‌کند.

smallest

کوچک‌ترین برگ را انتخاب می‌کند.

<node_id>

گره با شناسه داده‌شده را انتخاب می‌کند.

جهش‌های مسیر (Path Jumps)

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

1|first

به فرزند نخست می‌جهد.

2|second

به فرزند دوم می‌جهد.

brother

به گره برادر (هم‌نیا) می‌جهد.

parent

به گره والد می‌جهد.

DIR

به گره دارنده لبه در جهت داده‌شده می‌جهد.

تعدیل‌کننده‌ها (Modifiers)

[!]focused

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

[!]active

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

[!]automatic

تنها گره‌ها در حالت درج خودکار را در نظر می‌گیرد. همچنین --presel-dir زیر Node در بخش DOMAINS در ادامه را ببینید.

[!]local

تنها گره‌های موجود در میزکار مرجع را در نظر می‌گیرد.

[!]leaf

تنها گره‌های برگ را در نظر می‌گیرد.

[!]window

تنها گره‌های حاوی یک پنجره را در نظر می‌گیرد.

[!](tiled|pseudo_tiled|floating|fullscreen)

تنها پنجره‌ها در وضعیت داده‌شده را در نظر می‌گیرد.

[!]same_class

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

[!]descendant_of

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

[!]ancestor_of

تنها گره‌هایی را در نظر می‌گیرد که از نیاکان گره مرجع هستند.

[!](hidden|sticky|private|locked|marked|urgent)

تنها پنجره‌هایی را در نظر می‌گیرد که پرچم داده‌شده برای آن‌ها فعال است.

[!](below|normal|above)

تنها پنجره‌ها در لایه داده‌شده را در نظر می‌گیرد.

[!](horizontal|vertical)

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

یک میزکار را برمی‌گزیند.

DESKTOP_SEL := [DESKTOP_SEL#](CYCLE_DIR|any|last|newest|older|newer|
                              [MONITOR_SEL:](focused|^<n>)|
                              <desktop_id>|<desktop_name>)[.[!]focused][.[!]active]
                                                          [.[!]occupied][.[!]urgent][.[!]local]
                                                          [.[!]LAYOUT][.[!]user_LAYOUT]
LAYOUT := tiled|monocle

توصیف‌کننده‌ها / Descriptors

CYCLE_DIR

میزکار را در جهت داده‌شده نسبت به میزکار مرجع برمی‌گزیند.

any

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

last

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

newest

تازه‌ترین میزکار در تاریخچهٔ میزکارهای کانون‌یافته را برمی‌گزیند.

older

میزکار قدیمی‌تر از میزکار مرجع در تاریخچه را برمی‌گزیند.

newer

میزکار تازه‌تر از میزکار مرجع در تاریخچه را برمی‌گزیند.

focused

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

^<n>

n-امین میزکار را برمی‌گزیند. اگر MONITOR_SEL داده شود، n-امین میزکار روی نمایشگر برگزیده را برمی‌گزیند.

<desktop_id>

میزکار با شناسهٔ داده‌شده را برمی‌گزیند.

<desktop_name>

میزکار با نام داده‌شده را برمی‌گزیند.

دگرگون‌سازها / Modifiers

[!]focused

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

[!]active

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

[!]occupied

تنها میزکارهای اشغال‌شده را در نظر می‌گیرد.

[!]urgent

تنها میزکارهای اضطراری را در نظر می‌گیرد.

[!]local

تنها میزکارهای درون نمایشگر مرجع را در نظر می‌گیرد.

[!](tiled|monocle)

تنها میزکارهای با چیدمان داده‌شده را در نظر می‌گیرد.

[!](user_tiled|user_monocle)

تنها میزکارهایی را در نظر می‌گیرد که چیدمان داده‌شده را به عنوان userLayout دارند.

یک نمایشگر را برمی‌گزیند.

MONITOR_SEL := [MONITOR_SEL#](DIR|CYCLE_DIR|any|last|newest|older|newer|
                              focused|pointed|primary|^<n>|
                              <monitor_id>|<monitor_name>)[.[!]focused][.[!]occupied]

توصیف‌کننده‌ها / Descriptors

DIR

نمایشگر را در جهت (مکانی) داده‌شده نسبت به نمایشگر مرجع برمی‌گزیند.

CYCLE_DIR

نمایشگر را در جهت (دوره‌ای) داده‌شده نسبت به نمایشگر مرجع برمی‌گزیند.

any

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

last

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

newest

تازه‌ترین نمایشگر در تاریخچهٔ نمایشگرهای کانون‌یافته را برمی‌گزیند.

older

نمایشگر قدیمی‌تر از نمایشگر مرجع در تاریخچه را برمی‌گزیند.

newer

نمایشگر تازه‌تر از نمایشگر مرجع در تاریخچه را برمی‌گزیند.

focused

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

pointed

نمایشگر زیر نشانگر موش‌واره را برمی‌گزیند.

primary

نمایشگر اصلی را برمی‌گزیند.

^<n>

n-امین نمایشگر را برمی‌گزیند.

<monitor_id>

نمایشگر با شناسهٔ داده‌شده را برمی‌گزیند.

<monitor_name>

نمایشگر با نام داده‌شده را برمی‌گزیند.

دگرگون‌سازها / Modifiers

[!]focused

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

[!]occupied

تنها نمایشگرهایی را در نظر می‌گیرد که میزکار کانون‌یافتهٔ آن‌ها اشغال شده است.

tiled

اندازه و موقعیت آن توسط درخت پنجره تعیین می‌شود.

pseudo_tiled

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

floating

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

fullscreen

مستطیل نمایشگر خود را پر می‌کند و هیچ حاشیه‌ای ندارد.

hidden

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

sticky

در میزکار دارای تمرکز از نمایشگر خود باقی می‌ماند.

private

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

locked

پیام node --close را نادیده می‌گیرد.

marked

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

urgent

نشانه اضطرار آن فعال است. این پرچم از بیرون تنظیم می‌شود.

سه لایه پشته‌سازی وجود دارد: BELOW، NORMAL و ABOVE.

در هر لایه، پنجره‌ها به این ترتیب قرار می‌گیرند: tiled & pseudo-tiled < floating < fullscreen.

یک گره برگ که هیچ پنجره‌ای را نگه نمی‌دارد، جایگاه (receptacle) نامیده می‌شود. هنگامی که در حالت خودکار گره‌ای روی یک جایگاه درج می‌شود، جایگزین آن جایگاه خواهد شد. یک جایگاه می‌تواند روی یک گره درج شود، از پیش برگزیده شود یا نابود گردد. بنابراین می‌توان از جایگاه‌ها برای ساخت درختی استفاده کرد که برگ‌های آن جایگاه‌ها هستند. با استفاده از قواعد مناسب، می‌توان پنجره‌ها را روی برگ‌های این درخت فرستاد. این قابلیت در examples/receptacles برای ذخیره و بازسازی چینش‌ها به کار رفته است.

نحو عمومی (General Syntax)

node [NODE_SEL] COMMANDS

اگر NODE_SEL حذف شود، focused فرض می‌گردد.

فرمان‌ها (Commands)

-f, --focus [NODE_SEL]

تمرکز بر روی گره برگزیده یا داده‌شده.

-a, --activate [NODE_SEL]

فعال‌سازی گره برگزیده یا داده‌شده.

-d, --to-desktop DESKTOP_SEL [--follow]

فرستادن گره برگزیده به میزکار داده‌شده. در صورت درج --follow گره دارای تمرکز، تمرکز خود را حفظ خواهد کرد.

-m, --to-monitor MONITOR_SEL [--follow]

فرستادن گره برگزیده به نمایشگر داده‌شده. در صورت درج --follow گره دارای تمرکز، تمرکز خود را حفظ خواهد کرد.

-n, --to-node NODE_SEL [--follow]

فرستادن گره برگزیده روی گره داده‌شده. در صورت درج --follow گره دارای تمرکز، تمرکز خود را حفظ خواهد کرد.

-s, --swap NODE_SEL [--follow]

جابه‌جایی (معاوضه) گره برگزیده با گره داده‌شده. در صورت درج --follow گره دارای تمرکز، تمرکز خود را حفظ خواهد کرد.

-p, --presel-dir [~]DIR|cancel

پیش‌گزینش ناحیه تقسیم گره برگزیده (یا لغو پیش‌گزینش). اگر ~ پیش از DIR بیاید و جهت پیش‌گزینش فعلی با DIR مطابقت کند، آرگومان به عنوان cancel تعبیر می‌شود. گره دارای ناحیه پیش‌گزیده در وضعیت "حالت درج دستی" (manual insertion mode) در نظر گرفته می‌شود.

-o, --presel-ratio RATIO

تنظیم نسبت تقسیم ناحیه پیش‌گزینش.

-v, --move dx dy

جابه‌جایی پنجره برگزیده به میزان dx پیکسل افقی و dy پیکسل عمودی.

-z, --resize top|left|bottom|right|top_left|top_right|bottom_right|bottom_left dx dy

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

-y, --type CYCLE_DIR|horizontal|vertical

تنظیم یا چرخش نوع تقسیم گره برگزیده.

-r, --ratio RATIO|(+|-)(PIXELS|FRACTION)

تنظیم نسبت تقسیم گره برگزیده (0 < RATIO < 1).

-R, --rotate 90|270|180

چرخش درخت ریشه‌دار در گره برگزیده.

-F, --flip horizontal|vertical

وارونه کردن درخت ریشه‌دار در گره برگزیده.

-E, --equalize

بازنشانی نسبت‌های تقسیم درخت ریشه‌دار در گره برگزیده به مقدار پیش‌فرض آنها.

-B, --balance

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

-C, --circulate forward|backward

چرخش نوبتی پنجره‌های درخت ریشه‌دار در گره برگزیده.

-t, --state ~|[~]STATE

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

-g, --flag hidden|sticky|private|locked|marked[=on|off]

تنظیم یا تغییر وضعیت (toggle) پرچم داده‌شده برای گره برگزیده.

-l, --layer below|normal|above

تنظیم لایه پشته‌سازی پنجره برگزیده.

-i, --insert-receptacle

درج یک گره جایگاه در گره برگزیده.

-c, --close

بستن پنجره‌های ریشه‌دار در گره برگزیده.

-k, --kill

کشتن (اجبار به بستن) پنجره‌های ریشه‌دار در گره برگزیده.

نحو کلی (General Syntax)

desktop [DESKTOP_SEL] COMMANDS

اگر DESKTOP_SEL نادیده گرفته شود، focused فرض می‌شود.

فرمان‌ها (COMMANDS)

-f, --focus [DESKTOP_SEL]

تمرکز بر روی میزکار انتخاب‌شده یا داده‌شده.

-a, --activate [DESKTOP_SEL]

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

-m, --to-monitor MONITOR_SEL [--follow]

ارسال میزکار انتخاب‌شده به نمایشگر داده‌شده. اگر --follow داده شود، میزکار متمرکز همچنان متمرکز باقی خواهد ماند.

-s, --swap DESKTOP_SEL [--follow]

معاوضه میزکار انتخاب‌شده با میزکار داده‌شده. اگر --follow داده شود، میزکار متمرکز همچنان متمرکز باقی خواهد ماند.

-l, --layout CYCLE_DIR|monocle|tiled

تنظیم یا گردش چیدمان میزکار انتخاب‌شده.

-n, --rename <new_name>

تغییر نام میزکار انتخاب‌شده.

-b, --bubble CYCLE_DIR

حرکت حبابی میزکار انتخاب‌شده در جهت مشخص‌شده.

-r, --remove

حذف میزکار انتخاب‌شده.

نحو کلی (General Syntax)

monitor [MONITOR_SEL] COMMANDS

اگر MONITOR_SEL نادیده گرفته شود، focused فرض می‌شود.

فرمان‌ها (Commands)

-f, --focus [MONITOR_SEL]

تمرکز بر روی نمایشگر انتخاب‌شده یا داده‌شده.

-s, --swap MONITOR_SEL

معاوضه نمایشگر انتخاب‌شده با نمایشگر داده‌شده.

-a, --add-desktops <name>...

ایجاد میزکارها با نام‌های داده‌شده در نمایشگر انتخاب‌شده.

-o, --reorder-desktops <name>...

مرتب‌سازی مجدد میزکارهای نمایشگر انتخاب‌شده مطابق با ترتیب داده‌شده.

-d, --reset-desktops <name>...

تغییر نام، افزودن یا حذف میزکارها بسته به اینکه تعداد نام‌های داده‌شده برابر، بیشتر یا کمتر از تعداد میزکارهای موجود باشد.

-g, --rectangle WxH+X+Y

تنظیم مستطیل ابعاد و مختصات نمایشگر انتخاب‌شده.

-n, --rename <new_name>

تغییر نام نمایشگر انتخاب‌شده.

-r, --remove

حذف نمایشگر انتخاب‌شده.

نحو کلی (General Syntax)

query COMMANDS [OPTIONS]

فرمان‌ها (Commands)

انتخاب‌گرهای اختیاری از نوع مرجع هستند.

-N, --nodes [NODE_SEL]

فهرست کردن شناسه‌های گره‌های منطبق.

-D, --desktops [DESKTOP_SEL]

فهرست کردن شناسه‌ها (یا نام‌های) میزکارهای منطبق.

-M, --monitors [MONITOR_SEL]

فهرست کردن شناسه‌ها (یا نام‌های) نمایشگرهای منطبق.

-T, --tree

چاپ نمایش JSON از مورد منطبق.

گزینه‌ها (Options)

-m,--monitor [MONITOR_SEL|MONITOR_MODIFIERS], -d,--desktop [DESKTOP_SEL|DESKTOP_MODIFIERS], -n,--node [NODE_SEL|NODE_MODIFIERS]

محدود کردن موارد منطبق به نمایشگرها، میزکارها یا گره‌های انتخاب‌شده.

--names

چاپ نام‌ها به جای شناسه‌ها. تنها می‌تواند همراه با -M و -D استفاده شود.

نحو کلی (General Syntax)

wm COMMANDS

فرمان‌ها (Commands)

-d, --dump-state

تخلیه وضعیت کنونی جهان در خروجی استاندارد.

-l, --load-state <file_path>

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

-a, --add-monitor <name> WxH+X+Y

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

-O, --reorder-monitors <name>...

بازآرایی فهرست نمایشگرها جهت تطابق با ترتیب داده‌شده.

-o, --adopt-orphans

مدیریت تمامی پنجره‌های مدیریت‌نشده باقی‌مانده از نشست پیشین.

-h, --record-history on|off

فعال یا غیرفعال‌سازی ضبط تاریخچهٔ تمرکز گره.

-g, --get-status

چاپ اطلاعات وضعیت کنونی.

-r, --restart

راه‌اندازی مجدد مدیر پنجره.

نحو کلی (General Syntax)

rule COMMANDS

فرمان‌ها (Commands)

-a, --add (<class_name>|*)[:(<instance_name>|*)[:(<name>|*)]] [-o|--one-shot] [monitor=MONITOR_SEL|desktop=DESKTOP_SEL|node=NODE_SEL] [state=STATE] [layer=LAYER] [honor_size_hints=(true|false|tiled|floating)] [split_dir=DIR] [split_ratio=RATIO] [(hidden|sticky|private|locked|marked|center|follow|manage|focus|border)=(on|off)] [rectangle=WxH+X+Y]

ساخت یک قانون جدید. دونقطه‌ها در فیلدهای instance_name، class_name یا name می‌توانند با یک بک‌اسلش گریز داده شوند.

-r, --remove ^<n>|head|tail|(<class_name>|*)[:(<instance_name>|*)[:(<name>|*)]]...

حذف قوانین داده‌شده.

-l, --list

فهرست کردن قوانین.

نحو کلی (General Syntax)

config [-m MONITOR_SEL|-d DESKTOP_SEL|-n NODE_SEL] <setting> [<value>]

دریافت یا تنظیم مقدار <setting>.

نحو کلی (General Syntax)

subscribe [OPTIONS] (all|report|monitor|desktop|node|...)*

چاپ پیوسته رویدادها. برای شرح هر رویداد، بخش EVENTS را ببینید.

گزینه‌ها (Options)

-f, --fifo

چاپ مسیری به یک FIFO که رویدادها را می‌توان از آن خواند و بازگشت.

-c, --count COUNT

متوقف کردن فرایند متناظر bspc پس از دریافت COUNT رویداد.

نحو کلی / General Syntax

quit [<status>]

خروج با یک وضعیت خروج اختیاری.

اگر کارساز نتواند پیامی را پردازش کند، bspc با یک کد خروج غیرصفر خارج خواهد شد.

رنگ‌ها در قالب #RRGGBB هستند، متغیرهای بولی برابر با true، on، false یا off می‌باشند.

تمام تنظیمات بولی به‌طور پیش‌فرض false هستند مگر خلاف آن ذکر شده باشد.

normal_border_color

رنگ حاشیهٔ پنجرهٔ فوکوس‌نشده.

active_border_color

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

focused_border_color

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

presel_feedback_color

رنگ ناحیهٔ بازخورد پیام node --presel-{dir,ratio}.

split_ratio

نسبت تقسیم پیش‌فرض.

status_prefix

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

external_rules_command

مسیر مطلق به دستوری که برای دریافت پیامدهای قاعده استفاده می‌شود. این دستور آرگومان‌های زیر را دریافت خواهد کرد: شناسهٔ پنجره، نام کلاس، نام نمونه، و پیامدهای میانی. خروجی این دستور باید قالب زیر را داشته باشد: key1=value1 key2=value2 ... (جفت‌های کلید/مقدار معتبر در توضیحات دستور rule آورده شده‌اند).

automatic_scheme

طرح درج مورد استفاده هنگامی که نقطهٔ درج در حالت خودکار است. مقادیر زیر را می‌پذیرد: longest_side، alternate، spiral.

initial_polarity

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

directional_focus_tightness

دقت و سخت‌گیری الگوریتم مورد استفاده برای تعیین اینکه آیا یک پنجره در جهت DIR پنجره‌ای دیگر قرار دارد یا خیر. مقادیر زیر را می‌پذیرد: high، low.

removal_adjustment

تنظیم گره هم‌نیا هنگام جدا کردن یک گره از درخت، مطابق با طرح درج خودکار.

presel_feedback

ترسیم ناحیهٔ بازخورد پیش‌گزینش. پیش‌فرض true است.

borderless_monocle

حذف حاشیه‌های پنجره‌های کاشی‌شده برای چیدمان میزکار monocle.

gapless_monocle

حذف فواصل پنجره‌های کاشی‌شده برای چیدمان میزکار monocle.

top_monocle_padding, right_monocle_padding, bottom_monocle_padding, left_monocle_padding

فضای حاشیه‌گذاری اضافه‌شده به کناره‌های صفحه برای چیدمان میزکار monocle.

single_monocle

تنظیم چیدمان میزکار به monocle در صورتی که تنها یک پنجرهٔ کاشی‌شده در درخت وجود داشته باشد.

borderless_singleton

حذف حاشیه‌های تک‌پنجرهٔ موجود روی تک‌نمایشگر بدون در نظر گرفتن چیدمان آن.

pointer_motion_interval

حداقل فاصلهٔ زمانی (به میلی‌ثانیه) میان دو رویداد اعلان حرکت.

pointer_modifier

کلید تبدیل‌گر صفحه‌کلید برای جابه‌جایی یا تغییر اندازهٔ پنجره‌ها. مقادیر زیر را می‌پذیرد: shift، control، lock، mod1، mod2، mod3، mod4، mod5.

pointer_action1, pointer_action2, pointer_action3

عملیاتی که هنگام فشردن pointer_modifier + button<n> انجام می‌شود. مقادیر زیر را می‌پذیرد: move، resize_side، resize_corner، focus، none.

click_to_focus

دکمهٔ مورد استفاده برای فوکوس کردن یک پنجره (یا یک نمایشگر). مقادیر ممکن عبارتند از: button1، button2، button3، any، none. پیش‌فرض button1 است.

swallow_first_click

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

focus_follows_pointer

فوکوس کردن پنجرهٔ زیر نشانگر موشی.

pointer_follows_focus

هنگام فوکوس کردن یک پنجره، نشانگر موشی در مرکز آن قرار گیرد.

pointer_follows_monitor

هنگام فوکوس کردن یک نمایشگر، نشانگر موشی در مرکز آن قرار گیرد.

mapping_events_count

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

ignore_ewmh_focus

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

ignore_ewmh_fullscreen

مسدود کردن تغییر وضعیت‌های تمام‌صفحه که از یک درخواست EWMH سرچشمه می‌گیرند. مقادیر ممکن عبارتند از: none، all، یا فهرستی جداشده با کاما از مقادیر زیر: enter، exit.

ignore_ewmh_struts

نادیده گرفتن سرنخ‌های strut از برنامه‌هایی که درخواست رزرو فضا دارند (مانند نوار وظایف).

center_pseudo_tiled

قرار دادن پنجره‌های شبه‌کاشی‌شده در مرکز مستطیل‌های کاشی‌کاری‌شان. پیش‌فرض true است.

remove_disabled_monitors

نمایشگرهای غیرفعال‌شده به عنوان قطع‌شده در نظر گرفته شوند.

remove_unplugged_monitors

حذف نمایشگرهای جداشده.

merge_overlapping_monitors

ادغام نمایشگرهای هم‌پوشان (نمایشگر بزرگ‌تر باقی می‌ماند).

top_padding, right_padding, bottom_padding, left_padding

فضای فاصله‌گذاری افزوده‌شده در کناره‌های نمایشگر یا میزکار.

window_gap

اندازه شکافی که پنجره‌ها را از یکدیگر جدا می‌کند.

border_width

پهنای حاشیه پنجره.

honor_size_hints

اگر true باشد، راهنماهای اندازه پنجره ICCCM را بر همه پنجره‌ها اعمال می‌کند. اگر floating باشد، آن‌ها را فقط بر پنجره‌های شناور و شبه‌کاشی اعمال می‌کند. اگر tiled باشد، آن‌ها را فقط بر پنجره‌های کاشی اعمال می‌کند. اگر false باشد، آن‌ها را اعمال نمی‌کند. مقدار پیش‌فرض false است.

click_to_focus

پنجره (یا نمایشگر) زیر اشاره‌گر را متمرکز می‌کند، اگر مقدار برابر با none نباشد.

pointer_modifier + button1

جابجایی پنجره زیر اشاره‌گر.

pointer_modifier + button2

تغییر اندازه پنجره زیر اشاره‌گر با کشیدن نزدیک‌ترین لبه.

pointer_modifier + button3

تغییر اندازه پنجره زیر اشاره‌گر با کشیدن نزدیک‌ترین گوشه.

رفتار pointer_modifier + button<n> را می‌توان از طریق تنظیم pointer_action<n> تغییر داد.

report

برای شرح قالب، بخش بعدی را ببینید.

monitor_add <monitor_id> <monitor_name> <monitor_geometry>

یک نمایشگر افزوده شد.

monitor_rename <monitor_id> <old_name> <new_name>

نام یک نمایشگر تغییر یافت.

monitor_remove <monitor_id>

یک نمایشگر حذف شد.

monitor_swap <src_monitor_id> <dst_monitor_id>

یک نمایشگر مبادله شد.

monitor_focus <monitor_id>

یک نمایشگر متمرکز شد.

monitor_geometry <monitor_id> <monitor_geometry>

هندسه یک نمایشگر تغییر کرد.

desktop_add <monitor_id> <desktop_id> <desktop_name>

یک میزکار افزوده شد.

desktop_rename <monitor_id> <desktop_id> <old_name> <new_name>

نام یک میزکار تغییر یافت.

desktop_remove <monitor_id> <desktop_id>

یک میزکار حذف شد.

desktop_swap <src_monitor_id> <src_desktop_id> <dst_monitor_id> <dst_desktop_id>

یک میزکار مبادله شد.

desktop_transfer <src_monitor_id> <src_desktop_id> <dst_monitor_id>

یک میزکار انتقال یافت.

desktop_focus <monitor_id> <desktop_id>

یک میزکار متمرکز شد.

desktop_activate <monitor_id> <desktop_id>

یک میزکار فعال شد.

desktop_layout <monitor_id> <desktop_id> tiled|monocle

طرح‌بندی یک میزکار تغییر کرد.

node_add <monitor_id> <desktop_id> <ip_id> <node_id>

یک گره افزوده شد.

node_remove <monitor_id> <desktop_id> <node_id>

یک گره حذف شد.

node_swap <src_monitor_id> <src_desktop_id> <src_node_id> <dst_monitor_id> <dst_desktop_id> <dst_node_id>

یک گره مبادله شد.

node_transfer <src_monitor_id> <src_desktop_id> <src_node_id> <dst_monitor_id> <dst_desktop_id> <dst_node_id>

یک گره انتقال یافت.

node_focus <monitor_id> <desktop_id> <node_id>

یک گره متمرکز شد.

node_activate <monitor_id> <desktop_id> <node_id>

یک گره فعال شد.

node_presel <monitor_id> <desktop_id> <node_id> (dir DIR|ratio RATIO|cancel)

یک گره پیش‌گزینش شد.

node_stack <node_id_1> below|above <node_id_2>

یک گره در زیر یا بالای گره دیگر چیده شد.

node_geometry <monitor_id> <desktop_id> <node_id> <node_geometry>

هندسه یک پنجره تغییر کرد.

node_state <monitor_id> <desktop_id> <node_id> tiled|pseudo_tiled|floating|fullscreen on|off

وضعیت یک پنجره تغییر کرد.

node_flag <monitor_id> <desktop_id> <node_id> hidden|sticky|private|locked|marked|urgent on|off

یکی از نشان‌های یک گره تغییر کرد.

node_layer <monitor_id> <desktop_id> <node_id> below|normal|above

لایه یک پنجره تغییر کرد.

pointer_action <monitor_id> <desktop_id> <node_id> move|resize_corner|resize_side begin|end

یک کنش اشاره‌گر رخ داد.

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

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

هر مورد به شکل <type><value> است که در آن <type> نویسهٔ نخست آن مورد است.

M<monitor_name>

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

m<monitor_name>

نمایشگر بدون کانون.

O<desktop_name>

میزکار اشغال‌شدهٔ کانون‌یافته.

o<desktop_name>

میزکار اشغال‌شدهٔ بدون کانون.

F<desktop_name>

میزکار آزاد کانون‌یافته.

f<desktop_name>

میزکار آزاد بدون کانون.

U<desktop_name>

میزکار فوری کانون‌یافته.

u<desktop_name>

میزکار فوری بدون کانون.

L(T|M)

چیدمان میزکار کانون‌یافتهٔ یک نمایشگر.

T(T|P|F|=|@)

وضعیت گره کانون‌یافته در یک میزکار کانون‌یافته.

G(S?P?L?M?)

پرچم‌های فعال گره کانون‌یافته در یک میزکار کانون‌یافته.

BSPWM_SOCKET

مسیر سوکت مورد استفاده برای ارتباط میان bspc و bspwm. اگر تعریف نشده باشد، از این مسیر استفاده می‌شود: /tmp/bspwm<host_name>_<display_number>_<screen_number>-socket.

•Steven Allen <steven at stebalien.com>
•Thomas Adam <thomas at xteddy.org>
•Ivan Kanakarakis <ivan.kanak at gmail.com>

Bastien Dejean <nihilhill at gmail.com>

10/08/2025 Bspwm 0.9.12