sway(5) File Formats Manual sway(5)

sway - فایل پیکربندی و دستورات مدیر پنجره sway

یک فایل پیکربندی sway فهرستی از دستورات sway است که هنگام راه‌اندازی توسط sway اجرا می‌شوند. این دستورات معمولاً شامل تنظیم اولویت‌های شما و تعیین کلیدهای میانبر هستند. یک نمونه پیکربندی احتمالاً در مسیر /etc/sway/config برای بررسی شما وجود دارد.

خطوط در فایل پیکربندی ممکن است با افزودن یک نویسه '\' در انتهای خط، در چندین خط امتداد یابند. به عنوان نمونه:

bindsym Shift+XF86AudioRaiseVolume exec \
	pactl set-sink-volume @DEFAULT_SINK@ -1%

دستورات همچنین می‌توانند به عنوان یک بلوک به شکل command { <subcommands...> } داده شوند. هر چیزی قبل از { آغازین به خطوط درون بلوک اضافه خواهد شد. برای نمونه:

output eDP-1 {
	background ~/wallpaper.png fill
	resolution 1920x1080
}

دقیقاً معادل است با:

output eDP-1 background ~/wallpaper.png fill
output eDP-1 resolution 1920x1080

این دستورات می‌توانند در فایل پیکربندی شما، از طریق swaymsg(1)، یا از طریق دستور bindsym اجرا شوند.

دستورات با استفاده از فاصله‌ها به چندین آرگومان تقسیم می‌شوند. می‌توانید آرگومان‌ها را درون علامت‌های نقل‌قول ("..." یا '...') محصور کنید تا فاصله‌ها را به یک آرگومان منفرد اضافه نمایید. همچنین می‌توانید چندین دستور را به ترتیب با جدا کردن هر یک با , یا ; اجرا کنید. معیارها (Criteria) در میان دستوراتی که با , جدا شده‌اند حفظ می‌شوند، اما برای دستوراتی که با ; جدا شده‌اند بازنشانی خواهند شد (و در صورت تمایل، امکان معیارهای جدید را فراهم می‌کنند).

در سرتاسر مستندات، | برای تمایز میان آرگومان‌هایی استفاده می‌شود که تنها می‌توانید یکی از آن‌ها را انتخاب کنید. [...] برای آرگومان‌های اختیاری، و <...> برای آرگومان‌هایی که انتظار می‌رود مقداری برای آن‌ها ارائه دهید استفاده می‌شود.

این بخش تنها دستورات عمومی را فهرست می‌کند. برای دستورات ورودی و خروجی، به sway-input(5) و sway-output(5) مراجعه فرمایید.

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

bar [<bar-id>] <bar-subcommands...>

برای جزئیات درباره زیردستورات نوار وضعیت (bar)، به sway-bar(5) مراجعه کنید.

default_orientation horizontal|vertical|auto

چیدمان ظرف پیش‌فرض را برای ظرف‌های کاشی‌کاری‌شده (tiled) تنظیم می‌کند.

include <paths...>

فایل‌ها را از paths وارد می‌کند. paths می‌تواند شامل یک مسیر کامل یا یک مسیر نسبت به پیکربندی والد باشد، و نحو شل را گسترش می‌دهد (برای جزئیات به wordexp(3) مراجعه کنید). یک فایل یکسان تنها یک بار می‌تواند وارد شود؛ تلاش‌های بعدی نادیده گرفته خواهند شد.

swaybg_command <command>

دستور سفارشی پس‌زمینه command را اجرا می‌کند. پیش‌فرض swaybg است. برای اطلاعات بیشتر به sway-output(5) مراجعه فرمایید.

می‌توان آن را با تنظیم دستور روی یک خط تیره منفرد غیرفعال کرد: swaybg_command -

swaynag_command <command>

دستور سفارشی را برای swaynag اجرا می‌کند. پیش‌فرض swaynag است. آرگومان‌های اضافی ممکن است به انتها اضافه شوند. این دستور تنها باید برای هدایت sway به فراخوانی swaynag از یک مسیر سفارشی یا برای ارائه آرگومان‌های اضافی استفاده شود. این دستور برای دستیابی به بهترین نتیجه باید در بالای فایل پیکربندی قرار گیرد.

می‌توان آن را با تنظیم دستور روی یک خط تیره منفرد غیرفعال کرد: swaynag_command -

workspace_layout default|stacking|tabbed

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

xwayland enable|disable|force

پشتیبانی از Xwayland را فعال یا غیرفعال می‌کند، که امکان استفاده از برنامه‌های X11 را فراهم می‌سازد. مقدار enable برنامه Xwayland را به صورت تنبلانه (lazy) بارگذاری می‌کند تا Xwayland تا زمانی که نخستین کلاینت تلاش برای اتصال نکند اجرا نشود. در برخی موارد، مانند ماشین‌های کندتر، ممکن است مطلوب باشد که Xwayland با استفاده از force به جای enable بلافاصله راه‌اندازی شود.

دستورات زیر نمی‌توانند مستقیماً در فایل پیکربندی استفاده شوند. انتظار می‌رود آن‌ها با bindsym یا در زمان اجرا از طریق swaymsg(1) استفاده شوند.

border none|normal|csd|pixel [<n>]

سبک حاشیه را برای پنجره فوکوس‌شده تنظیم می‌کند. مقدار normal شامل حاشیه‌ای به ضخامت n و یک نوار عنوان است. مقدار pixel حاشیه‌ای بدون نوار عنوان به ضخامت n پیکسل است. نوار عنوان همواره در چیدمان‌های انباشته (stacking) یا زبانه‌ای (tabbed) نمایش داده می‌شود. مقدار csd کوتاه‌شده تزیینات سمت کلاینت (client-side-decorations) است که به کلاینت اجازه می‌دهد تزیینات خود را ترسیم کند. پیش‌فرض normal با ضخامت حاشیه ۲ است.

border toggle

میان سبک‌های حاشیه موجود جابه‌جا می‌شود (چرخش می‌کند).

exit

از sway خارج می‌شود و نشست ویلند (Wayland) شما را خاتمه می‌دهد.

floating enable|disable|toggle

پنجره فوکوس‌شده را شناور، غیرشناور، یا برعکس وضعیت کنونی آن می‌کند.

<criteria> focus

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

focus up|right|down|left

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

focus prev|next [sibling]

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

focus child

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

focus parent

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

focus output up|right|down|left

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

focus output <name>

فوکوس را به خروجی نام‌برده‌شده منتقل می‌کند.

focus tiling

فوکوس را روی آخرین ظرف کاشی‌کاری‌شده فوکوس‌شده قرار می‌دهد.

focus floating

فوکوس را روی آخرین ظرف شناور فوکوس‌شده قرار می‌دهد.

focus mode_toggle

فوکوس را میان لایه‌های شناور و کاشی‌کاری‌شده جابه‌جا می‌کند.

fullscreen [enable|disable|toggle] [global]

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

gaps inner|outer|horizontal|vertical|top|right|bottom|left all|current set|plus|minus|toggle <amount>

شکاف‌های inner (درونی) یا outer (بیرونی) را برای all (همه) فضاهای کاری یا فضای کاری current (کنونی) تغییر می‌دهد. شکاف‌های outer می‌توانند برای هر ضلع با top، right، bottom، و left یا در هر جهت با horizontal و vertical تغییر یابند.

inhibit_idle focus|fullscreen|open|none|visible

یک مهارکننده بیکاری (idle inhibitor) را برای پنجره تنظیم یا لغو می‌کند. مقدار focus هنگامی که پنجره توسط هر نشستی فوکوس شود بیکاری را مهار می‌کند. مقدار fullscreen هنگامی که نما تمام‌صفحه باشد (یا فرزندی از یک ظرف تمام‌صفحه باشد) و مرئی باشد بیکاری را مهار می‌کند. مقدار open تا زمان بسته شدن پنجره (یا لغو/تغییر مهارکننده) بیکاری را مهار می‌کند. مقدار visible هنگامی که پنجره در هر خروجی مرئی باشد بیکاری را مهار می‌کند. مقدار none هر مهارکننده بیکاری موجود را برای پنجره حذف می‌نماید.

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

layout default|splith|splitv|stacking|tabbed

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

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

چیدمان tabbed (زبانه) شبیه به stacking است، اما فهرست پنجره‌ها به صورت عمودی تقسیم می‌شود.

layout toggle [split|all]

حالت چیدمان ظرف فوکوس‌شده را میان فهرستی از پیش تنظیم‌شده از چیدمان‌ها جابه‌جا می‌کند. اگر هیچ آرگومانی داده نشود، میان چیدمان‌های انباشته، زبانه و آخرین چیدمان تقسیم گردش می‌کند. اگر split داده شود، میان splith و splitv جابه‌جا می‌شود. اگر all داده شود، میان تمام چیدمان‌ها گردش می‌کند.

layout toggle [split|tabbed|stacking|splitv|splith] [split|tabbed|stacking|splitv|splith]...

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

max_render_time off|<msec>

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

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

برای راه‌اندازی این مورد جهت دستیابی به تاخیر بهینه:

1.
تنظیم output max_render_time را انجام دهید (به sway-output(5) مراجعه کنید).
2.
برنامه هدف را در حالت full-screen قرار دهید و از آن بخواهید به طور مداوم چیزی را رندر کند.
3.
با تنظیم max_render_time 1 شروع کنید. اگر برنامه فریم‌ها را از دست داد، به مقدار 1 اضافه کنید.

این تنظیم تنها زمانی اثر دارد که یک max_render_time به ازای هر خروجی در خروجی که پنجره در حال حاضر روی آن قرار دارد موثر باشد. برای جزئیات بیشتر به sway-output(5) مراجعه فرمایید.

allow_tearing yes|no

پارگی تصویر (screen tearing) ناشی از چرخش فوری صفحه (immediate page flips) را برای یک برنامه تمام‌صفحه مجاز یا غیرمجاز می‌کند.

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

این تنظیم تنها زمانی اثر دارد که پارگی در خروجی از طریق تنظیم allow_tearing به ازای خروجی مجاز باشد. برای جزئیات بیشتر به sway-output(5) مراجعه کنید.

move left|right|up|down [<px> px]

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

move [absolute] position <pos_x> [px|ppt] <pos_y> [px|ppt]

ظرف فوکوس‌شده را به موقعیت مشخص‌شده در فضای کاری جابه‌جا می‌کند. موقعیت می‌تواند بر حسب پیکسل یا درصد مشخص شود؛ با حذف واحد، پیش‌فرض پیکسل است. اگر absolute استفاده شود، موقعیت نسبت به تمام خروجی‌ها است. absolute نمی‌تواند با درصد استفاده شود.

move [absolute] position center

ظرف فوکوس‌شده را در مرکز فضای کاری قرار می‌دهد. اگر absolute استفاده شود، به مرکز تمام خروجی‌ها جابه‌جا می‌شود.

move position cursor|mouse|pointer

ظرف فوکوس‌شده را در مرکز مکان‌نما (کرسر) قرار می‌دهد.

move [container|window] [to] mark <mark>

ظرف فوکوس‌شده را به نشانه‌گذاری (mark) مشخص‌شده جابه‌جا می‌کند.

move [--no-auto-back-and-forth] [container|window] [to] workspace [number] <name>

ظرف فوکوس‌شده را به فضای کاری مشخص‌شده منتقل می‌کند. رشته number اختیاری است و برای تطبیق فضای کاری با همان شماره استفاده می‌شود، حتی اگر نام متفاوتی داشته باشد.

move [container|window] [to] workspace prev|next|current

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

move [container|window] [to] workspace prev_on_output|next_on_output

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

move [container|window] [to] workspace back_and_forth

ظرف فوکوس‌شده را به فضای کاری که قبلاً فوکوس شده بود منتقل می‌کند.

move [container|window] [to] output <name-or-id>|current

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

move [container|window] [to] output up|right|down|left

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

move [container|window] [to] scratchpad

ظرف فوکوس‌شده را به چک‌نویس (scratchpad) منتقل می‌کند.

move workspace [to] output <name-or-id>|current

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

move workspace to [output] <name-or-id>|current

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

move workspace [to] output up|right|down|left

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

move workspace to [output] up|right|down|left

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

nop <comment>

دستور بدون عملیات (no-op) که می‌تواند برای بازنویسی رفتار پیش‌فرض استفاده شود. آرگومان اختیاری comment نادیده گرفته می‌شود، اما برای اهداف اشکال‌زدایی ثبت می‌گردد.

reload

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

rename workspace [<old_name>] to <new_name>

یا <old_name> یا فضای کاری فوکوس‌شده را به <new_name> تغییر نام می‌دهد.

resize shrink|grow up|right|down|left|width|height [<amount> [px|ppt]]

اندازه ظرف در حال حاضر فوکوس‌شده را به مقدار amount، مشخص‌شده بر حسب پیکسل یا درصد، تغییر می‌دهد. اگر واحدها حذف شوند، ظرف‌های شناور بر حسب px و ظرف‌های کاشی‌کاری‌شده بر حسب ppt تغییر اندازه می‌یابند. در صورت حذف، پیش‌فرض amount برابر با ۱۰ خواهد بود. برای ظرف‌های کاشی‌کاری‌شده، فضا از ظرف در جهت مشخص‌شده گرفته یا به آن داده می‌شود. اگر width یا height مشخص شود، فضا از تمام ظرف‌های دیگر گرفته یا به آن‌ها داده خواهد شد.

resize set height <height> [px|ppt]

ارتفاع ظرف را به height، مشخص‌شده بر حسب پیکسل یا درصد، تنظیم می‌کند. اگر واحدها حذف شوند، ظرف‌های شناور بر حسب px و ظرف‌های کاشی‌کاری‌شده بر حسب ppt تغییر اندازه می‌یابند. اگر height برابر با ۰ باشد، اندازه ظرف تغییر نخواهد کرد. برای ظرف‌های کاشی‌کاری‌شده، فضا از تمام ظرف‌های دیگر گرفته یا به آن‌ها داده می‌شود.

resize set [width] <width> [px|ppt]

عرض ظرف را به width، مشخص‌شده بر حسب پیکسل یا درصد، تنظیم می‌کند. اگر واحدها حذف شوند، ظرف‌های شناور بر حسب px و ظرف‌های کاشی‌کاری‌شده بر حسب ppt تغییر اندازه می‌یابند. اگر width برابر با ۰ باشد، اندازه ظرف تغییر نخواهد کرد. برای ظرف‌های کاشی‌کاری‌شده، فضا از تمام ظرف‌های دیگر گرفته یا به آن‌ها داده می‌شود.

resize set [width] <width> [px|ppt] [height] <height> [px|ppt]

عرض و ارتفاع ظرف را به width و height، مشخص‌شده بر حسب پیکسل یا درصد، تنظیم می‌کند. اگر واحدها حذف شوند، ظرف‌های شناور بر حسب px و ظرف‌های کاشی‌کاری‌شده بر حسب ppt تغییر اندازه می‌یابند. اگر width یا height برابر با ۰ باشد، اندازه ظرف روی آن محور تغییر نخواهد کرد. برای ظرف‌های کاشی‌کاری‌شده، فضا از تمام ظرف‌های دیگر گرفته یا به آن‌ها داده می‌شود.

scratchpad show

پنجره‌ای را از چک‌نویس (scratchpad) نشان می‌دهد. استفاده مکرر از این دستور میان پنجره‌های موجود در چک‌نویس چرخش ایجاد می‌کند.

shortcuts_inhibitor enable|disable

توانایی کلاینت‌ها را برای مهار کلیدهای میانبر صفحه‌کلید برای یک پنجره فعال یا غیرفعال می‌کند. این در درجه اول برای نرم‌افزارهای مجازی‌سازی و دسکتاپ راه دور مفید است. بر پنجره در حال حاضر فوکوس‌شده یا مجموعه‌ای از پنجره‌های انتخاب‌شده با معیارها تاثیر می‌گذارد. زیردستور disable علاوه بر این، هرگونه مهارکننده فعال را برای پنجره(های) داده‌شده غیرفعال می‌سازد. معیارها به ویژه با دستور for_window برای پیکربندی دسته‌ای از پنجره‌ها به صورت متفاوت از پیش‌فرض‌های هر نشست ایجاد شده توسط زیردستور seat با همین نام مفید هستند. برای روش‌های بیشتر برای تاثیر بر مهارکننده‌ها به sway-input(5) مراجعه فرمایید.

split vertical|v|horizontal|h|none|n|toggle|t

ظرف کنونی را به صورت عمودی یا افقی تقسیم می‌کند. هنگامی که none مشخص شود، اثر یک تقسیم قبلی در صورتی که ظرف کنونی تنها فرزند یک والد تقسیم‌شده باشد خنثی می‌شود. هنگامی که toggle مشخص شود، ظرف کنونی برعکس چیدمان ظرف والد تقسیم می‌گردد.

splith

معادل با split horizontal

splitv

معادل با split vertical

splitt

معادل با split toggle

sticky enable|disable|toggle

یک پنجره شناور را به خروجی کنونی «سنجاق» (stick) می‌کند تا در تمام فضاهای کاری نمایش داده شود.

swap container with id|con_id|mark <arg>

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

title_format <format>

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

%title

عنوان ارائه‌شده توسط پنجره

%app_id

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

%class

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

%instance

نمونه (instance) در X11 (تنها برای پنجره‌های xwayland کاربرد دارد)

%shell

پروتکلی که پنجره استفاده می‌کند (معمولاً xwayland یا xdg_shell)

%sandbox_engine

موتور ایزوله‌سازی (sandbox) مرتبط

%sandbox_app_id

شناسه برنامه ارائه‌شده توسط موتور ایزوله‌سازی مرتبط

%sandbox_instance_id

شناسه نمونه ارائه‌شده توسط موتور ایزوله‌سازی مرتبط

این دستور معمولاً با معیارهای for_window استفاده می‌شود. برای نمونه:

for_window [title="."] title_format "<b>%title</b> (%app_id)"

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

قالب پیش‌فرض "%title" است.

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

assign <criteria> [→] [workspace] [number] <workspace>

پنجره‌های منطبق با criteria (برای جزئیات به CRITERIA مراجعه کنید) را به workspace اختصاص می‌دهد. علامت → (U+2192) اختیاری و صرفاً تزیینی است. این دستور معادل است با:
for_window <criteria> move container to workspace <workspace>

assign <criteria> [→] output left|right|up|down|<name>

پنجره‌های منطبق با criteria (برای جزئیات به CRITERIA مراجعه کنید) را به خروجی مشخص‌شده اختصاص می‌دهد. علامت → (U+2192) اختیاری و صرفاً تزیینی است. این دستور معادل است با:
for_window <criteria> move container to output <output>

bindsym [--whole-window] [--border] [--exclude-titlebar] [--release] [--locked] [--to-code] [--input-device=<device>] [--no-warn] [--no-repeat] [--inhibited] [Group<1-4>+]<key combo> <command>

ترکیب کلیدی key combo را برای اجرای دستور sway با نام command هنگام فشرده شدن مقید می‌سازد. می‌توانید از نام‌های کلید XKB در اینجا استفاده کنید (wev(1) ابزار خوبی برای کشف این موارد است). با پرچم --release، دستور هنگام رها شدن ترکیب کلید اجرا می‌شود. اگر input-device داده شود، کلید تنها برای آن دستگاه ورودی اجرا خواهد شد و به جای هر اتصالی که برای همه دستگاه‌ها عمومی است اجرا می‌گردد. اگر شماره گروه داده شود، پیوند تنها برای آن گروه در دسترس خواهد بود. به طور پیش‌فرض، اگر یک اتصال را بازنویسی کنید، swaynag به شما هشدار می‌دهد. برای خاموش کردن این هشدار، از پرچم --no-warn استفاده کنید.

برای مشخص کردن کلیدهای تغییردهنده، می‌توانید از نام‌های تغییردهنده XKB شامل Shift، Lock (برای Caps Lock)، Control، Mod1 (برای Alt)، Mod2 (برای Num Lock)، Mod3 (برای تغییردهنده Mod3 در XKB)، Mod4 (برای کلید لوگو/ویندوز)، و Mod5 (برای AltGr) استفاده کنید. علاوه بر این، می‌توانید از نام‌های مستعار Ctrl (برای Control)، Alt (برای Alt)، و Super (برای کلید لوگو) استفاده نمایید.

مگر اینکه پرچم --locked تنظیم شده باشد، دستور هنگام فعال بودن برنامه قفل صفحه اجرا نخواهد شد. اگر یک پیوند منطبق با و بدون --locked وجود داشته باشد، موردی که دارای پرچم است هنگام قفل بودن ترجیح داده می‌شود و موردی که ندارد هنگام باز بودن ترجیح داده خواهد شد. اگر پیوندهای منطبق وجود داشته باشند و یکی هم --input-device و هم --locked داشته باشد و دیگری هیچ‌کدام را نداشته باشد، اولی حتی هنگام باز بودن قفل ترجیح داده می‌شود.

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

مگر اینکه پرچم --no-repeat تنظیم شده باشد، هنگامی که کلید نگه داشته شود، دستور بر اساس تنظیمات تکرار مشخص‌شده در پیکربندی ورودی، مکرراً اجرا خواهد شد.

اتصالات به keysymها وابسته به چیدمان صفحه‌کلید هستند. این می‌تواند با پرچم --to-code تغییر یابد. در این صورت، keysymها به کدهای کلید مربوطه در نخستین چیدمان پیکربندی‌شده ترجمه خواهند شد.

اتصالات ماوس روی ظرف زیر مکان‌نما به جای ظرفی که فوکوس دارد عمل می‌کنند. دکمه‌های ماوس می‌توانند به صورت button[1-9] یا با استفاده از نام کد رویداد (مانند BTN_LEFT یا BTN_RIGHT) مشخص شوند. برای گزینه نخست، دکمه‌ها به مقادیر آن‌ها در X11 نگاشت می‌شوند (۱=چپ، ۲=وسط، ۳=راست، ۴=پیمایش بالا، ۵=پیمایش پایین، ۶=پیمایش چپ، ۷=پیمایش راست، ۸=عقب، ۹=جلو). برای گزینه دوم، می‌توانید نام رویدادها را با استفاده از libinput debug-events بیابید.

اولویت برای پیوندهای منطبق به این صورت است: دستگاه ورودی، گروه، و وضعیت قفل.

گزینه‌های --whole-window، --border، و --exclude-titlebar گزینه‌های ویژه‌ی ماوس هستند که بر ناحیه‌ای که اتصالات ماوس در آن می‌توانند فعال شوند تاثیر می‌گذارند. به طور پیش‌فرض، اتصالات ماوس تنها زمانی فعال می‌شوند که روی نوار عنوان باشند. با گزینه --border، حاشیه پنجره در این ناحیه گنجانده خواهد شد. با گزینه --whole-window، مکان‌نما می‌تواند در هر نقطه روی یک پنجره از جمله عنوان، حاشیه و محتوا باشد. گزینه --exclude-titlebar می‌تواند همراه با هر گزینه دیگری استفاده شود تا مشخص کند نوار عنوان باید از ناحیه مورد نظر مستثنی شود.

اگر --whole-window داده شود، دستور می‌تواند زمانی که مکان‌نما روی یک فضای کاری خالی است تحریک شود. استفاده از اتصال ماوس روی ناحیه اختصاصی سطح لایه (layer surface) در حال حاضر امکان‌پذیر نیست.

نمونه:

# اجرای فایرفاکس هنگامی که alt، shift و f با هم فشرده شوند
bindsym Mod1+Shift+f exec firefox
bindcode [--whole-window] [--border] [--exclude-titlebar] [--release] [--locked] [--input-device=<device>] [--no-warn] [--no-repeat] [--inhibited] [Group<1-4>+]<code> <command> نیز برای اتصال با کدهای کلید/دکمه به جای نام‌های کلید/دکمه در دسترس است.

bindswitch [--locked] [--no-warn] [--reload] <switch>:<state> <command>

سوییچ <switch> را برای اجرای دستور sway با نام command در هنگام تغییر وضعیت مقید می‌سازد. سوییچ‌های پشتیبانی‌شده عبارتند از سوییچ‌های lid (درب لپ‌تاپ)، tablet (حالت تبلت) و keypad_slide (آیا صفحه کلید دستگاه نمایان است یا خیر). مقادیر معتبر برای state عبارتند از on، off و toggle. این سوییچ‌ها به ترتیب زمانی که درب دستگاه بسته است، زمانی که حالت تبلت فعال است و زمانی که صفحه کلید نمایان است روشن هستند. مقدار toggle نیز برای اجرای یک دستور هم هنگام روشن شدن و هم خاموش شدن سوییچ پشتیبانی می‌شود.

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

اگر پرچم --reload داده شود، پیوند هنگام بازخوانی پیکربندی نیز اجرا خواهد شد. اتصالات toggle هنگام بارگذاری مجدد اجرا نخواهند شد. پرچم --locked طبق معمول عمل خواهد کرد بنابراین اگر پیکربندی در حین قفل بودن دوباره بارگذاری شود و --locked داده نشده باشد، پیوند اجرا نخواهد شد.

به طور پیش‌فرض، اگر یک اتصال را بازنویسی کنید، swaynag به شما هشدار می‌دهد. برای خاموش کردن این هشدار، از پرچم --no-warn استفاده کنید.

نمونه:

# نمایش صفحه کلید مجازی هنگام ورود به حالت تبلت
bindswitch tablet:on busctl call --user sm.puri.OSK0 /sm/puri/OSK0 sm.puri.OSK0 SetVisible b true
# ثبت یک پیام در لاگ هنگام باز یا بسته شدن درب لپ‌تاپ
bindswitch lid:toggle exec echo "Lid moved"

bindgesture [--exact] [--input-device=<device>] [--no-warn] <gesture>[:<fingers>][:directions] <command>

ژست حرکتی gesture را برای اجرای دستور sway با نام command هنگام شناسایی مقید می‌سازد. در حال حاضر از ژست‌های hold، pinch یا swipe پشتیبانی می‌کند. به صورت اختیاری می‌تواند به تعداد معینی از fingers (انگشتان) یا، برای ژست pinch یا swipe، به جهت‌های خاصی (directions) محدود شود.
type fingers direction
hold 1 - 5 none
swipe 3 - 5 up, down, left, right
pinch 2 - 5 all above + inward, outward, clockwise, counterclockwise
تعداد fingers می‌تواند به هر تعداد معقولی محدود شود یا خالی رها شود تا هر تعداد انگشتی را بپذیرد. جهت‌های معتبر عبارتند از up، down، left و right، و همچنین inward، outward، clockwise، counterclockwise برای ژست pinch. جهت‌های متعدد می‌توانند با یک علامت مثبت ترکیب شوند.

اگر یک input-device داده شود، پیوند تنها برای آن دستگاه ورودی اجرا خواهد شد و به جای هر اتصالی که برای همه دستگاه‌ها عمومی است اجرا می‌شود. به طور پیش‌فرض، اگر یک اتصال را بازنویسی کنید، swaynag به شما هشدار می‌دهد. برای خاموش کردن این هشدار، از پرچم --no-warn استفاده کنید.

پرچم --exact می‌تواند برای اطمینان از اینکه یک پیوند تنها زمانی مطابقت دارد که دقیقاً تمام جهت‌های مشخص‌شده تطابق داشته باشند و نه بیشتر استفاده شود. اگر پیوند منطبقی با --exact وجود داشته باشد، ترجیح داده خواهد شد.

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

ژست‌هایی که در حالی که اشاره‌گر بالای یک نوار وضعیت است اجرا می‌شوند توسط sway مدیریت نمی‌شوند. به مستندات مربوطه مراجعه کنید، به عنوان نمونه bindgesture در sway-bar(5).

نمونه:

# اجازه جابه‌جایی میان فضاهای کاری با کشیدن انگشت به چپ و راست
bindgesture swipe:right workspace prev
bindgesture swipe:left workspace next
# اجازه جابه‌جایی ظرف با نیشگون گرفتن (pinch) آن‌ها
bindgesture pinch:inward+up move up
bindgesture pinch:inward+down move down
bindgesture pinch:inward+left move left
bindgesture pinch:inward+right move right

client.background <color>

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

client.<class> <border> <background> <text> [<indicator> [<child_border>]]

رنگ حاشیه‌های پنجره و نوارهای عنوان را پیکربندی می‌کند. سه رنگ نخست الزامی هستند. در صورت حذف، indicator از یک پیش‌فرض مناسب استفاده خواهد کرد و child_border از رنگ تنظیم‌شده برای background استفاده می‌کند. رنگ‌ها ممکن است به صورت هگزادسیمال، یا به صورت #RRGGBB یا #RRGGBBAA مشخص شوند.

کلاس‌های موجود عبارتند از:

client.focused

پنجره‌ای که فوکوس دارد.

client.focused_inactive

پنجره‌ای که اخیراً در یک ظرف غیرفوکوس‌شده فوکوس شده است.

client.focused_tab_title

پنجره‌ای که دارای ظرف فرزند فوکوس‌شده است. عنوان ظرف زبانه یا انباشته که والد ظرف فوکوس‌شده است اما مستقیماً فوکوس نشده است. در صورت عدم تعیین، به طور پیش‌فرض روی focused_inactive تنظیم می‌شود و از رنگ‌های indicator و child_border استفاده نمی‌کند.

client.placeholder

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

client.unfocused

پنجره‌ای که فوکوس ندارد.

client.urgent

پنجره‌ای با راهنمای اضطراری (urgency hint). توجه: پنجره‌های بومی ویلند از وضعیت اضطراری پشتیبانی نمی‌کنند. وضعیت اضطراری تنها برای پنجره‌های Xwayland کار می‌کند.

معنای هر رنگ به شرح زیر است:

border

حاشیه دور نوار عنوان.

background

پس‌زمینه نوار عنوان.

text

رنگ متن نوار عنوان.

indicator

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

child_border

حاشیه دور خود پنجره.

رنگ‌های پیش‌فرض عبارتند از:

class border background text indicator child_border
background n/a #ffffff n/a n/a n/a
focused #4c7899 #285577 #ffffff #2e9ef4 #285577
focused_inactive #333333 #5f676a #ffffff #484e50 #5f676a
focused_tab_title #333333 #5f676a #ffffff n/a n/a
unfocused #333333 #222222 #888888 #292d2e #222222
urgent #2f343a #900000 #ffffff #900000 #900000
placeholder #000000 #0c0c0c #ffffff #000000 #0c0c0c

default_border normal|none|pixel [<n>]

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

default_floating_border normal|none|pixel [<n>]

سبک حاشیه پیش‌فرض را برای پنجره‌های شناور جدید تنظیم می‌کند. این تنها بر پنجره‌هایی که در حالت شناور ایجاد می‌شوند اعمال می‌شود، نه پنجره‌هایی که بعداً شناور می‌شوند.

exec <shell command>

دستور شل shell command را با sh اجرا می‌کند.

exec_always <shell command>

مشابه با exec، اما دستور شل دوباره پس از reload اجرا خواهد شد.

floating_maximum_size <width> x <height>

حداکثر اندازه پنجره‌های شناور را مشخص می‌کند. مقدار -1 x -1 حد بالا را حذف می‌کند. پیش‌فرض 0 x 0 است که از عرض و ارتفاع کل چیدمان خروجی به عنوان حداکثر استفاده می‌کند.

floating_minimum_size <width> x <height>

حداقل اندازه پنجره‌های شناور را مشخص می‌کند. پیش‌فرض 75 x 50 است.

floating_modifier <modifier> [normal|inverse]

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

focus_follows_mouse yes|no|always

اگر روی yes تنظیم شود، حرکت ماوس روی یک پنجره آن پنجره را فوکوس می‌کند. اگر روی always تنظیم شود، پنجره زیر مکان‌نما همیشه فوکوس خواهد شد، حتی پس از جابه‌جایی میان فضاهای کاری.

focus_on_window_activation smart|urgent|focus|none

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

focus_wrapping yes|no|force|workspace

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

font [pango:]<font>

قلم مورد استفاده برای نوارهای عنوان را تنظیم می‌کند. برای فعال‌سازی پشتیبانی از نشانه‌گذاری pango، نام قلم را با pango: پیشوندگذاری کنید. برای نمونه، monospace 10 قلم پیش‌فرض است. برای فعال‌سازی پشتیبانی از نشانه‌گذاری pango، باید به جای آن از pango:monospace 10 استفاده شود. صرف‌نظر از اینکه نشانه‌گذاری pango فعال است یا خیر، font باید به عنوان توصیف قلم pango مشخص شود. برای اطلاعات بیشتر درباره توصیف‌های قلم pango، نشانی زیر را ببینید: https://docs.gtk.org/Pango/type_func.FontDescription.from_string.html#description

force_display_urgency_hint <timeout> [ms]

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

titlebar_border_thickness <thickness>

ضخامت حاشیه نوار عنوان بر حسب پیکسل

titlebar_padding <horizontal> [<vertical>]

فاصله‌گذاری درونی (padding) متن در نوار عنوان. مقدار horizontal بر فاصله‌گذاری افقی متن تاثیر می‌گذارد در حالی که مقدار vertical بر فاصله‌گذاری عمودی (فضای بالا و پایین متن) اثر می‌گذارد. فاصله‌گذاری شامل حاشیه‌های نوار عنوان است بنابراین مقدار آن‌ها باید بیشتر از titlebar_border_thickness باشد. اگر مقدار vertical مشخص نشود، برابر با مقدار horizontal تنظیم می‌شود.

for_window <criteria> <command>

هر زمان پنجره‌ای که با criteria مطابقت دارد ظاهر شود، فهرستی از دستورات را اجرا می‌کند. برای جزئیات بیشتر به CRITERIA مراجعه کنید.

gaps inner|outer|horizontal|vertical|top|right|bottom|left <amount>

مقدار پیش‌فرض amount پیکسل از شکاف inner یا outer را تنظیم می‌کند، که در آن شکاف درونی بر فاصله دور هر پنجره و شکاف بیرونی بر فاصله دور هر فضای کاری تاثیر می‌گذارد. شکاف‌های بیرونی علاوه بر شکاف‌های درونی اعمال می‌شوند. برای کاهش یا حذف شکاف‌های بیرونی، می‌توان شکاف‌های بیرونی را روی یک مقدار منفی تنظیم کرد. شکاف‌های outer همچنین می‌توانند به ازای هر ضلع با top، right، bottom، و left یا در هر جهت با horizontal و vertical مشخص شوند.

این تنها بر فضاهای کاری جدید تاثیر می‌گذارد، و زمانی استفاده می‌شود که فضای کاری تنظیمات شکاف‌های اختصاصی خود را نداشته باشد (ببینید: workspace <ws> gaps ...).

hide_edge_borders [--i3] none|vertical|horizontal|both|smart|smart_no_gaps

حاشیه‌های پنجره مجاور لبه‌های صفحه را پنهان می‌کند. پیش‌فرض none است. گزینه --i3 رفتار سازگار با i3 را برای پنهان کردن نوار عنوان در ظرف‌های زبانه‌ای و انباشته با یک فرزند فعال می‌کند. گزینه‌های smart|smart_no_gaps معادل با تنظیم smart_borders smart|no_gaps و hide_edge_borders none هستند.

input <input_device> <input-subcommands...>

برای جزئیات درباره زیردستورات ورودی، به sway-input(5) مراجعه کنید.

می‌توان از * به جای یک نام دستگاه خاص برای پیکربندی تمام دستگاه‌های ورودی استفاده کرد. فهرستی از نام‌های دستگاه‌های ورودی ممکن است از طریق swaymsg -t get_inputs به دست آید.

seat <seat> <seat-subcommands...>

برای جزئیات درباره زیردستورات نشست، به sway-input(5) مراجعه فرمایید.

kill

ظرف در حال حاضر فوکوس‌شده و تمام فرزندان آن را می‌بندد (می‌کشد).

smart_borders on|no_gaps|off

اگر smart_borders برابر با on باشد، حاشیه‌ها تنها در صورتی فعال می‌شوند که فضای کاری بیش از یک فرزند مرئی داشته باشد. اگر smart_borders روی no_gaps تنظیم شود، حاشیه‌ها تنها در صورتی فعال خواهند شد که فضای کاری بیش از یک فرزند مرئی داشته باشد و شکاف‌ها برابر با صفر باشند.

smart_gaps on|off|toggle|inverse_outer

اگر smart_gaps روی on باشد، شکاف‌ها تنها در صورتی فعال می‌شوند که یک فضای کاری بیش از یک فرزند داشته باشد. اگر smart_gaps روی inverse_outer باشد، شکاف‌های بیرونی تنها در صورتی فعال می‌شوند که یک فضای کاری دقیقاً یک فرزند داشته باشد.

mark --add|--replace [--toggle] <identifier>

نشانه‌ها (Marks) برچسب‌های دلخواهی هستند که می‌توانند برای شناسایی پنجره‌های خاص و سپس پرش به آن‌ها در زمانی دیگر استفاده شوند. هر identifier تنها می‌تواند روی یک پنجره واحد در یک زمان تنظیم شود زیرا به عنوان یک شناسه یکتا عمل می‌کند. به طور پیش‌فرض، mark مقدار identifier را به عنوان تنها نشانه روی یک پنجره تنظیم می‌کند. پرچم --add در عوض identifier را به فهرست نشانه‌های کنونی برای آن پنجره می‌افزاید. اگر --toggle مشخص شود، دستور در صورتی که پنجره از قبل نشانه‌گذاری شده باشد، identifier را حذف می‌کند.

mode <mode>

به حالت مشخص‌شده تغییر وضعیت می‌دهد. حالت پیش‌فرض default است.

mode [--pango_markup] <mode> <mode-subcommands...>

تنها زیردستورات معتبر عبارتند از bindsym، bindcode، bindswitch، و set. اگر --pango_markup داده شود، آنگاه mode به عنوان نشانه‌گذاری pango تفسیر خواهد شد.

mouse_warping output|container|none

اگر output مشخص شود، هنگامی که فوکوس را میان خروجی‌ها جابه‌جا می‌کنید، ماوس به خروجی‌های جدید منتقل می‌شود. اگر container مشخص شود، ماوس هنگام جابه‌جایی به وسط ظرف منتقل می‌گردد. پیش‌فرض output است.

no_focus <criteria>

از فوکوس خودکار پنجره‌های منطبق با <criteria> در زمان ایجاد آن‌ها جلوگیری می‌کند. این بر نخستین پنجره در یک فضای کاری تاثیری ندارد.

output <output_name> <output-subcommands...>

برای جزئیات درباره زیردستورات خروجی، به sway-output(5) مراجعه کنید.

می‌توان از * به جای یک نام خروجی خاص برای پیکربندی تمام خروجی‌ها استفاده کرد. فهرستی از نام‌های خروجی ممکن است از طریق swaymsg -t get_outputs به دست آید.

popup_during_fullscreen smart|ignore|leave_fullscreen

تعیین می‌کند هنگامی که یک پنجره تمام‌صفحه یک کادر محاوره‌ای (dialog) باز می‌کند چه کاری انجام شود. اگر smart باشد (پیش‌فرض)، کادر محاوره‌ای نمایش داده خواهد شد. اگر ignore باشد، کادر محاوره‌ای رندر نخواهد شد. اگر leave_fullscreen باشد، پنجره از حالت تمام‌صفحه خارج می‌شود و کادر محاوره‌ای رندر خواهد شد.

primary_selection enabled|disabled

کلیپ‌بورد انتخاب اولیه (primary selection) را فعال یا غیرفعال می‌کند. تنها در زمان راه‌اندازی قابل پیکربندی است. پیش‌فرض enabled است.

set $<name> <value>

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

show_marks yes|no

اگر show_marks روی yes باشد، نشانه‌ها در حاشیه‌های پنجره نمایش داده خواهند شد. هر نشانه‌ای که با خط زیرین (_) آغاز شود حتی اگر show_marks روی yes باشد رسم نخواهد شد. پیش‌فرض yes است.

opacity [set|plus|minus] <value>

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

tiling_drag enable|disable|toggle

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

tiling_drag_threshold <threshold>

آستانه‌ای را تعیین می‌کند که برای کشیده شدن یک ظرف از طریق نوار عنوان آن باید از آن فراتر رفت. اگر floating_mod استفاده شود یا اگر tiling_drag روی disable تنظیم شده باشد، این مورد هیچ تاثیری ندارد. هنگامی که یک بار از آستانه فراتر رفت، کشیدن آغاز می‌شود و مکان‌نما می‌تواند بدون توقف کشیدن به داخل آستانه بازگردد. threshold در مقیاس خروجی که مکان‌نما روی آن قرار دارد ضرب می‌شود. پیش‌فرض ۹ است.

title_align left|center|right

تراز عنوان را تنظیم می‌کند. اگر right انتخاب شود و show_marks روی yes تنظیم شده باشد، نشانه‌ها به جای سمت راست در سمت چپ نشان داده خواهند شد.

unbindswitch <switch>:<state>

یک اتصال را برای زمانی که <switch> به <state> تغییر می‌کند حذف می‌نماید.

unbindgesture [--exact] [--input-device=<device>] <gesture>[:<fingers>][:directions]

یک اتصال را برای ترکیب مشخص‌شده از gesture، fingers و directions حذف می‌کند.

unbindsym [--whole-window] [--border] [--exclude-titlebar] [--release] [--locked] [--to-code] [--input-device=<device>] <key combo>

اتصال برای key combo را که پیش‌تر با پرچم‌های داده‌شده متصل شده بود حذف می‌کند. اگر input-device داده شود، تنها اتصال برای آن دستگاه ورودی لغو خواهد شد.

unbindcode [--whole-window] [--border] [--exclude-titlebar] [--release] [--locked] [--input-device=<device>] <code> نیز برای لغو اتصال با کدهای کلید/دکمه به جای نام‌های کلید/دکمه در دسترس است.

unmark [<identifier>]

دستور unmark شناسه identifier را از فهرست نشانه‌های کنونی روی یک پنجره حذف می‌کند. اگر identifier حذف شود، تمام نشانه‌ها حذف می‌گردند.

urgent enable|disable|allow|deny

استفاده از enable یا disable به صورت دستی وضعیت اضطراری پنجره را تنظیم یا لغو می‌کند. استفاده از allow یا deny توانایی پنجره را برای اضطراری قرار دادن خود کنترل می‌کند. به طور پیش‌فرض، پنجره‌ها مجاز به تنظیم وضعیت اضطراری خود هستند.

workspace [--no-auto-back-and-forth] [number] <[num:]name>

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

اگر گزینه no-auto-back-and-forth داده شود، در صورتی که فضای کاری از قبل فوکوس شده باشد و workspace_auto_back_and_forth فعال باشد، این دستور عملیات بازگشت و رفت را انجام نخواهد داد.

اگر کلیدواژه number مشخص شود و یک فضای کاری با آن شماره از قبل وجود داشته باشد، آنگاه فضای کاری با آن شماره استفاده خواهد شد. اگر فضای کاری با آن شماره وجود نداشته باشد، یک فضای کاری جدید با نام name ایجاد می‌شود.

workspace prev|next

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

workspace prev_on_output|next_on_output

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

workspace back_and_forth

به فضای کاری که پیش‌تر فوکوس شده بود جابه‌جا می‌شود.

workspace <name> gaps inner|outer|horizontal|vertical|top|right|bottom|left <amount>

مشخص می‌کند که فضای کاری name هنگام ایجاد باید تنظیمات شکاف‌های داده‌شده را داشته باشد.

این دستور بر فضاهای کاری موجود تاثیری ندارد. برای تغییر شکاف‌های یک فضای کاری موجود، از دستور gaps استفاده کنید.

workspace <name> output <outputs...>

مشخص می‌کند که فضای کاری name باید روی خروجی‌های مشخص‌شده (outputs) نمایش داده شود. چندین خروجی می‌توانند فهرست شوند و نخستین خروجی در دسترس استفاده خواهد شد. اگر فضای کاری روی خروجی پایین‌تری در فهرست قرار گیرد و خروجی با اولویت بالاتری در دسترس قرار گیرد، فضای کاری به خروجی با اولویت بالاتر منتقل خواهد شد.

این دستور بر فضاهای کاری موجود تاثیری ندارد. برای جابه‌جایی یک فضای کاری موجود، از دستور move در ترکیب با معیارهای workspace (تنها فضاهای کاری غیرخالی) یا دستور workspace (برای تغییر به فضای کاری قبل از جابه‌جایی) استفاده کنید.

workspace_auto_back_and_forth yes|no

هنگامی که yes باشد، تکرار یک دستور تعویض فضای کاری به فضای کاری قبلی بازمی‌گردد. برای نمونه، اگر در حال حاضر در فضای کاری ۱ هستید، به فضای کاری ۲ بروید، سپس دستور workspace 2 را دوباره اجرا کنید، به فضای کاری ۱ بازگردانده خواهید شد. پیش‌فرض no است.

یک معیار رشته‌ای است به عنوان نمونه به فرم:

[app_id="some-application" title="[Rr]egex.*"]

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

معیارها ممکن است با دستورات for_window یا assign برای تعیین عملیات قابل انجام روی پنجره‌های جدید استفاده شوند. یک معیار همچنین ممکن است برای انجام دستورات خاص (دستوراتی که معمولاً روی یک پنجره عمل می‌کنند) روی تمام پنجره‌هایی که با آن معیار مطابقت دارند استفاده شود. برای نمونه:

فوکوس روی پنجره‌ای با نشانه‌گذاری "IRC":

[con_mark="IRC"] focus

بستن تمام پنجره‌هایی که عنوان آن‌ها حاوی "Emacs" است:

[title="Emacs"] kill

چندین صفت امکان استفاده از عبارت‌های باقاعده (Regular Expressions) را فراهم می‌سازند. این‌ها از عبارت‌های باقاعده سازگار با پرل (PCRE2) استفاده می‌کنند که در pcre2pattern(3) مستندسازی شده و در pcre2syntax(3) خلاصه شده‌اند. برای مثال، این دستور تمام پنجره‌هایی را که عنوان آن‌ها به "sway" یا "Sway" ختم می‌شود به فضای کاری ۱ منتقل می‌کند:

[title="[Ss]way$"] move workspace 1

ممکن است بخواهید از دستور swaymsg -t get_tree برای یافتن مقادیر این ویژگی‌ها در عمل برای برنامه‌های خود استفاده کنید.

ویژگی‌های زیر می‌توانند برای تطبیق استفاده شوند:

all

با تمام پنجره‌ها مطابقت دارد.

app_id

مقدار را با شناسه برنامه (app id) مقایسه می‌کند. می‌تواند یک عبارت باقاعده باشد. اگر مقدار __focused__ باشد، شناسه برنامه باید همانند پنجره در حال حاضر فوکوس‌شده باشد. ویژگی app_id مخصوص برنامه‌های ویلند است.

class

مقدار را با کلاس پنجره مقایسه می‌کند. می‌تواند یک عبارت باقاعده باشد. اگر مقدار __focused__ باشد، کلاس پنجره باید همانند پنجره در حال حاضر فوکوس‌شده باشد. ویژگی class مخصوص برنامه‌های X11 است و نیازمند XWayland است.

con_id

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

con_mark

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

floating

با پنجره‌های شناور مطابقت دارد.

id

مقدار را با شناسه پنجره X11 مقایسه می‌کند. باید عددی باشد. شناسه id مخصوص برنامه‌های X11 است و نیازمند XWayland است.

instance

مقدار را با نمونه پنجره (window instance) مقایسه می‌کند. می‌تواند یک عبارت باقاعده باشد. اگر مقدار __focused__ باشد، نمونه پنجره باید همانند پنجره در حال حاضر فوکوس‌شده باشد. ویژگی instance مخصوص برنامه‌های X11 است و نیازمند XWayland است.

pid

مقدار را با شناسه فرآیند (PID) پنجره مقایسه می‌کند. باید عددی باشد.

shell

مقدار را با شل پنجره مقایسه می‌کند، مانند "xdg_shell" یا "xwayland". می‌تواند یک عبارت باقاعده باشد. اگر مقدار __focused__ باشد، شل باید همانند پنجره در حال حاضر فوکوس‌شده باشد.

tag

مقدار را با برچسب (tag) مقایسه می‌کند. ویژگی tag مخصوص برنامه‌های ویلند است.

tiling

با پنجره‌های کاشی‌کاری‌شده مطابقت دارد.

title

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

urgent

وضعیت اضطراری پنجره را مقایسه می‌کند. می‌تواند first، last، latest، newest، oldest یا recent باشد.

window_role

با نقش پنجره (WM_WINDOW_ROLE) مقایسه می‌کند. می‌تواند یک عبارت باقاعده باشد. اگر مقدار __focused__ باشد، نقش پنجره باید همانند پنجره در حال حاضر فوکوس‌شده باشد. ویژگی window_role مخصوص برنامه‌های X11 است و نیازمند XWayland است.

window_type

با نوع پنجره (_NET_WM_WINDOW_TYPE) مقایسه می‌کند. مقادیر ممکن عبارتند از normal، dialog، utility، toolbar، splash، menu، dropdown_menu، popup_menu، tooltip و notification. ویژگی window_type مخصوص برنامه‌های X11 است و نیازمند XWayland است.

workspace

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

sandbox_engine

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

sandbox_app_id

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

sandbox_instance_id

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

sway(1) sway-input(5) sway-output(5) sway-bar(5) sway-ipc(7) pcre2pattern(3) pcre2syntax(3)

2026-06-23