| labwc-actions(5) | File Formats Manual | labwc-actions(5) |
نام (NAME)
labwc-actions - اقدامات و عملیاتهای پیکربندی labwc
اقدامات (ACTIONS)
اقدامات در منوها و کلیدهای میانبر صفحهکلید/ماوس استفاده میشوند.
<action name="Close" />
<action name="Kill" />
<action name="Execute" command="value" />
<action name="Exit" />
<action name="Focus" />
<action name="Unfocus" />
<action name="Raise" />
<action name="Lower" />
<action name="Iconify" />
<action name="Move" />
<action name="MoveToEdge" direction="value" snapWindows="value" />
direction [left|up|right|down] جهتی که پنجره در آن جابهجا میشود.
snapWindows [yes|no] حرکت پنجره تا زمانی که به لبه یک پنجره دیگر یا لبه صفحه برخورد کند. اگر روی "no" تنظیم شود، فقط تا لبه بعدی صفحه حرکت میکند. مقدار پیشفرض yes است.
<action name="Resize" direction="value" />
direction [up|down|left|right|up-left|up-right|down-left|down-right] لبه یا گوشهای که تغییر اندازه از آنجا آغاز میشود. اگر مشخص نشود، جهت با توجه به موقعیت مکاننما تعیین میگردد.
<action name="ResizeRelative" left="" right="" top="" bottom="" />
توجه داشته باشید که برخی برنامهها مانند شبیهسازهای ترمینال ممکن است از بزرگ یا کوچک شدن به مقدار اندک خودداری کنند تا اندازه پنجره با اندازه سلول متنی داخلی آنها تراز باقی بماند.
<action name="GrowToEdge" direction="value" />
direction [left|up|right|down] جهتی که پنجره در آن گسترش مییابد.
<action name="ShrinkToEdge" direction="value" />
direction [left|up|right|down] جهتی که پنجره در آن جمع و کوچک میشود.
<action name="MoveTo" x="" y="" />
<action name="ResizeTo" width="" height="" />
width عرض جدید پنجره بر حسب پیکسل.
height ارتفاع جدید پنجره بر حسب پیکسل.
<action name="MoveToCursor" />
<action name="AutoPlace" policy="cursor">
<action name="MoveRelative" x="" y="" />
<action name="ToggleSnapToEdge"
direction="value" combine="value" />
<action name="SnapToEdge" direction="value"
combine="value" />
direction [up|down|left|right|up-left|up-right|down-left|down-right|center]
combine [yes|no]
دستور ToggleSnapToEdge علاوه بر این، وضعیت پنجره فعال را میان حالت کاشیشده در جهت دادهشده و موقعیت کاشینشده اولیه جابهجا (تغییر وضعیت) میکند.
<action name="ToggleSnapToRegion"
region="value" />
<action name="SnapToRegion" region="value"
/>
دستور ToggleSnapToRegion علاوه بر این، وضعیت پنجره فعال را میان حالت کاشیشده در ناحیه مشخصشده و موقعیت اولیه کاشینشده جابهجا میکند.
برای اطلاعات بیشتر در مورد چگونگی تعریف ناحیهها به labwc-config(5) مراجعه کنید.
<action name="UnSnap" />
<action name="NextWindow"
workspace="current" output="all"
identifier="all" />
<action name="PreviousWindow" workspace="current"
output="all" identifier="all" />
<action name="NextWindowImmediate"
workspace="current" output="all"
identifier="all" />
<action name="PreviousWindowImmediate"
workspace="current" output="all"
identifier="all" />
چرخش فوکوس
به ترتیب به
پنجره بعدی
یا قبلی.
دستورهای NextWindowImmediate و PreviousWindowImmediate رابط جابهجایی پنجره (Window Switcher) و نمایشگر روی صفحه (OSD) را نادیده میگیرند، که برای اتصال به کلیدهای بدون کلید تغییردهنده (modifier) مفید است.
workspace [all|current] تعیین میکند که آیا چرخش میان پنجرههای تمام فضاهای کاری انجام شود یا فقط در فضای کاری فعلی. پیشفرض "current" است.
output [all|focused|cursor] تعیین میکند که چرخش میان پنجرههای تمام خروجیها انجام شود، خروجی دارای فوکوس، یا خروجی زیر مکاننما. پیشفرض "all" است.
identifier [all|current] تعیین میکند که آیا چرخش میان تمام پنجرهها انجام شود یا فقط میان پنجرههای متعلق به همان برنامه پنجره دارای فوکوس فعلی. پیشفرض "all" است.
<action name="Reconfigure" />
<action name="ShowMenu" menu="root-menu" />
<action name="ShowMenu" menu="MENU">
<atCursor>yes|no</atCursor>
<position>
<x>X</x>
<y>Y</y>
</position>
</action>
atCursor [yes|no] هنگام باز کردن یک منو، منو در محل قرارگیری مکاننمای ماوس باز شود. اگر روی no تنظیم شود، منو در گوشه بالا-چپ پنجره مرتبط با آن اقدام یا زیر دکمه پنجرهای که منو را باز کرده ظاهر میشود. مقدار پیشفرض yes است.
position نمایش منو در موقعیت مشخصشده روی مانیتوری که فوکوس مکاننما را در اختیار دارد؛ توضیحات زیر را ببینید.
تگ position دارای دو زیرتگ است. تگهای <x> و <y> یک موقعیت را تعیین میکنند و میتوانند یک مقدار پیکسلی، رشته "center" (که منو را در آن بعد در مرکز قرار میدهد)، یا یک مقدار نسبی به صورت درصد دریافت کنند. مقدار نسبی بر اساس مانیتوری که منو قرار است روی آن نمایش داده شود تفسیر میگردد؛ برای مقادیر مثبت، نسبت به لبه چپ/بالای پنجره منو و مانیتور سنجیده میشود و برای مقادیر منفی، نسبت به لبه راست/پایین.
مثال زیر نشان میدهد که چگونه میتوان 'root-menu' را از یک پنل تراز پایین با استفاده از دستور `wtype -M logo -k Space` باز کرد:
<keybind key="W-Space">
<action name="ShowMenu">
<menu>root-menu</menu>
<position>
<x>0</x>
<y>-0</y>
</position>
</action>
</keybind>
<action name="SetDecorations" decorations="value" forceSSD="no" />
decorations [full|border|none] مقدار full تمام دکوراسیون سمت سرور را فعال میکند. با مقدار border فقط حاشیهها و ناحیه نامرئی تغییر اندازه فعال میشوند. مقدار none همهچیز را غیرفعال میکند.
forceSSD [yes|no] اگر این گزینه روی no باشد، این اقدام برای پنجرههایی که دارای دکوراسیون سمت کلاینت (CSD) هستند، در صورتی که باعث افزایش میزان تزئینات پنجره شود، نادیده گرفته خواهد شد. مقدار پیشفرض no است.
<action name="ToggleDecorations" />
این یک اقدام سهحالته است که میتواند چندین بار اجرا شود:
- فقط نوار عنوان پنهان میشود، حاشیهها و ناحیه تغییر اندازه حفظ میگردند
- باقیمانده دکوراسیون غیرفعال خواهد شد
- دکوراسیون به صورت عادی نمایش داده میشود
با غیرفعال کردن پیکربندی تم 'keepBorder'، مرحله اول حذف شده و اقدام تنها میان روشن و خاموش تغییر وضعیت میدهد.
<action name="ToggleFullscreen" />
<action name="ToggleMaximize" direction="value" />
<action name="Maximize" direction="value" />
<action name="UnMaximize" direction="value" />
<action name="ToggleAlwaysOnTop" />
<action name="ToggleAlwaysOnBottom" />
<action name="ToggleOmnipresent" />
<action name="ToggleKeybinds" />
این اقدام تنها روی پنجرهای تأثیر میگذارد که هنگام اجرای کلید میانبر دارای فوکوس صفحهکلید بوده است. بنابراین با رفتن به پنجرهای دیگر، تمامی کلیدهای میانبر عادی دوباره عمل میکنند تا زمانی که به پنجره اصلی بازگردید. چندین پنجره میتوانند به طور همزمان در این حالت قرار گیرند.
<action name="ToggleTearing" />
نیازمند گزینه پیکربندی 'allowTearing' است. هنگامی که 'allowTearing' روی فعال خواهد شد که پنجره فعال در حالت تمامصفحه باشد.
<action name="FocusOutput" output="HDMI-A-1" direction="value" wrap="no" />
اگر output مشخص شده باشد، فوکوس به خروجی تعیینشده داده میشود و direction نادیده گرفته خواهد شد. اگر output ذکر نشود، direction میتواند یکی از مقادیر "left"، "right"، "up" یا "down" باشد تا نشان دهد فوکوس باید به خروجی بعدی در آن جهت (در صورت وجود) داده شود.
wrap [yes|no] هنگام استفاده از مشخصه direction، چرخش حلقهای از راست به چپ یا بالا به پایین و برعکس انجام شود. مقدار پیشفرض no است.
اگر خروجی مقصد هیچ پنجرهای نداشته باشد، مکاننما در مرکز صفحه خروجی قرار میگیرد.
<action name="MoveToOutput" output="HDMI-A-1" direction="value" wrap="no" />
اگر output مشخص شده باشد، پنجره مستقیماً به خروجی تعیینشده فرستاده میشود و direction نادیده گرفته خواهد شد. اگر output ذکر نشود، direction میتواند یکی از مقادیر "left"، "right"، "up" یا "down" باشد تا نشان دهد پنجره باید به خروجی بعدی در آن جهت (در صورت وجود) منتقل شود.
wrap [yes|no] هنگام استفاده از مشخصه direction، چرخش حلقهای از راست به چپ یا بالا به پایین و برعکس انجام شود. مقدار پیشفرض no است.
<action name="FitToOutput" />
<action name="GoToDesktop" to="value" wrap="yes" toggle="no" />
to فضای کاری مورد نظر برای جابهجایی. مقادیر پشتیبانیشده عبارتند از "current"، "last"، "left"، "right"، "left-occupied"، "right-occupied" یا نام کامل یک فضای کاری یا شماره نمایه آن (شروع از ۱) همانگونه که در rc.xml پیکربندی شده است.
wrap [yes|no] چرخش حلقهای از آخرین میزکار به اولین میزکار و برعکس. مقدار پیشفرض yes است.
toggle [yes|no] در صورتی که هماکنون در همان فضای کاری مقصد باشید، به “last” (آخرین فضای کاری) جابهجا شود. مقدار پیشفرض no است.
<action name="SendToDesktop" to="value" follow="yes" wrap="yes" />
to فضای کاری برای انتقال پنجره. مقادیر پشتیبانیشده مشابه دستور GoToDesktop هستند.
follow [yes|no] همراه با انتقال پنجره، به فضای کاری مشخصشده نیز تغییر وضعیت داده شود. مقدار پیشفرض yes است.
wrap [yes|no] چرخش حلقهای از آخرین میزکار به اولین میزکار و برعکس. مقدار پیشفرض yes است.
<action name="VirtualOutputAdd" output_name="value" />
برای نمونه، میتوان از آن برای پوشش دادن یک خروجی مجازی روی یک خروجی واقعی اما با وضوح تصویر متفاوت استفاده کرد (این کار میتواند با `wlr-randr` یا `wdisplays` انجام شود). پس از آن، خروجی مجازی میتواند برای اشتراکگذاری صفحه (کستینگ) انتخاب شود و عملاً فقط همان ناحیه از صفحه به اشتراک گذاشته شود.
باید توجه داشت که انداختن خروجی مجازی روی خروجی واقعی توسط wlroots به طور رسمی تأیید یا پشتیبانی نمیشود. به عنوان مثال، پس از پیکربندی خروجی مجازی، خروجی واقعی نیز باید مجدداً پیکربندی شود (تا پیکربندی پوششی به درستی کار کند). نمونه این پیکربندی به صورت زیر است:
<keybind key="W-v"> <action name="VirtualOutputAdd" output_name="ScreenCasting" /> <action name="Execute" command='sh -c "wlr-randr --output ScreenCasting --pos 0,0 --scale 2 --custom-mode 3840x2110; wlr-randr --output eDP-1 --pos 0,0 --scale 2 --mode 3840x2160"' /> </keybind> <keybind key="W-c"> <action name="VirtualOutputRemove" /> </keybind>
خروجی مجازی همچنین برای گسترش میزکار به سیستمهای از راه دور (شاید همراه) مانند تبلتها مفید است؛ برای مثال، صرفاً با افزودن یک خروجی مجازی، اتصال wayvnc به آن و اجرای یک کلاینت VNC در سیستم راه دور.
output_name نام خروجی مجازی. تعیین نام خروجی مجازی برای خودکارسازیهای بعدی مفید خواهد بود. مقدار پیشفرض "HEADLESS-X" است.
<action name="VirtualOutputRemove" output_name="value" />
output_name نام خروجی مجازی. در صورت عدم ارائه، آخرین خروجی مجازی اضافهشده حذف خواهد شد.
<action name="AutoPlace" policy="value" />
policy [automatic|cursor|center|cascade] استفاده از سیاست تعیینشده، که همان معنای مقدار متناظر در <placement><policy> را دارد. پیشفرض automatic است.
<action name="Shade" />
<action name="Unshade" />
<action name="ToggleShade" />
<action name="WarpCursor" to="output" x="center" y="center" />
to [output|window] ناحیه هدف پرش مکاننما را تعیین میکند. پیشفرض "output" است
x [center|value] موقعیت افقی پرش درون ناحیه هدف را مشخص میکند. مقدار "center": مکاننما را به مرکز افقی ناحیه هدف میبرد. اعداد صحیح مثبت یا منفی مکاننما را به موقعیتی با افست تعیینشده به تعداد پیکسل از لبه چپ یا راست ناحیه هدف جابهجا میکنند. پیشفرض "center" است
y [center|value] عملکرد مشابه برای موقعیت عمودی پرش در ناحیه هدف. پیشفرض "center" است
<action name="HideCursor" />
<action name="EnableScrollWheelEmulation"
/>
<action name="DisableScrollWheelEmulation" />
<action name="ToggleScrollWheelEmulation">
همچنین برای تنظیم دقیق سرعت اسکرول به <libinput><scrollFactor> در labwc-config(5) مراجعه کنید.
<action name="EnableTabletMouseEmulation"
/>
<action name="DisableTabletMouseEmulation" />
<action name="ToggleTabletMouseEmulation">
<action name="ToggleMagnify">
<action name="ToggleShowDesktop" />
<action name="ZoomIn">
<action name="ZoomOut">
<action name="None" />
<action name="DebugToggleKeyStateIndicator" />
اقدامات شرطی (CONDITIONAL ACTIONS)
اقداماتی که اقدامات دیگر را اجرا میکنند. در کلیدهای میانبر صفحهکلید/ماوس استفاده میشوند.
<action name="If">
آرگومانها به شرح زیر هستند:
<action name="If"> <query /> <prompt message="" /> <then><action /></then> <else><action /></else> </action>
query
تطبیق الگو بر اساس glob(7) انجام میشود و به بزرگی و کوچکی حروف حساس نیست.
شرطها به شرح زیر هستند:
identifier
title
type
shaded [yes|no]
maximized [both|horizontal|vertical|none]
iconified [yes|no]
focused [yes|no]
omnipresent [yes|no]
desktop
tiled [up|right|down|left|up-left|up-right|down-left|down-right|center|any]
tiled_region
decoration [full|border|none]
monitor [current|left|right|<monitor_name>]
این آرگومان اختیاری است.
prompt
<keybind key="W-q">
<action name="If">
<prompt message="Quit?" />
<then>
<action name="Exit" />
</then>
</action>
</keybind>
then
else
<action name="ForEach">
اقدام ForEach دارای یک شاخه اختیاری دیگر به نام none است که زمانی اجرا میشود که هیچ پنجرهای با پرسوجو مطابقت نداشته باشد. این امکان به عنوان مثال برای پیادهسازی قابلیت اجرا یا بالا آوردن (run-or-raise) کاربرد دارد.
همچنین ببینید (SEE ALSO)
labwc(1), labwc-config(5), labwc-theme(5), glob(7)
| 2026-08-22 |