labwc(1) General Commands Manual labwc(1)

labwc - یک کامپوزیتور پشته‌ای Wayland

labwc [options...]

برنامه Labwc یک کامپوزیتور پشته‌ای (stacking compositor) مبتنی بر wlroots برای Wayland است.

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

کامپوزیتور به ترتیب با دریافت سیگنال‌های SIGTERM و SIGHUP، خارج شده یا پیکربندی خود را مجدداً بارگذاری می‌کند. برای مثال:

kill -s <signal> $LABWC_PID
killall -s <signal> labwc

هر نمونه در حال اجرای labwc، متغیر محیطی `LABWC_PID` را برابر با PID خود قرار می‌دهد. این ویژگی برای ارسال سیگنال به یک نمونه خاص مفید است و گزینه‌های `--exit` و `--reconfigure` از همین سازوکار استفاده می‌کنند.

-c, --config <config-file>

مشخص کردن فایل پیکربندی همراه با مسیر آن

-C, --config-dir <config-directory>

مشخص کردن دایرکتوری پیکربندی

-d, --debug

فعال‌سازی ثبت گزارش (logging) کامل، شامل اطلاعات اشکال‌زدایی. برای گزینه‌های بیشتر بخش متغیرهای محیطی (ENVIRONMENT VARIABLES) در زیر را ببینید.

-e, --exit

خروج از کامپوزیتور با ارسال SIGTERM به `$LABWC_PID`

-h, --help

نمایش پیام راهنما و خروج

-m, --merge-config

ادغام فایل‌های پیکربندی/تم کاربر در تمامی دایرکتوری‌های پایه XDG

-r, --reconfigure

بارگذاری مجدد پیکربندی کامپوزیتور با ارسال SIGHUP به `$LABWC_PID`

-s, --startup <command>

اجرای دستور هنگام راه‌اندازی

-S, --session <command>

اجرای دستور هنگام راه‌اندازی و خاتمه دادن به کامپوزیتور در زمان خروج. این گزینه برای مدیریت نشست مفید است زیرا به کلاینت نشست اجازه می‌دهد با خروج خود به labwc پایان دهد. این یک مورد کاربرد خاص در Wayland است، زیرا تحت X، برنامه xinit کارساز (server) را اجرا کرده و تا زمان اجرای کلاینت نشست آن را زنده نگه می‌دارد. بنابراین یا کلاینت نشست مدیر پنجره (Window Manager) را اجرا می‌کند، یا مدیر پنجره می‌تواند ابتدا به‌طور مستقل اجرا شود. در Wayland، کامپوزیتور هم کارساز نمایش (Display Server) و هم مدیر پنجره است، بنابراین سازوکارهای مدیریت نشست شرح‌داده‌شده عمل نمی‌کنند چون کامپوزیتور باید پیش از شروع به کار نشست اجرا شده باشد. از آنجا که برخی کلاینت‌های نشست هم از X11 و هم از Wayland پشتیبانی می‌کنند، این گزینه خط فرمان از بازنویسی و تکه‌تکه شدن جلوگیری می‌کند.

-t, --title <fmtstr>

تنظیم عنوان پنجره برای labwc زمانی که درون یک پنجره اجرا می‌شود (یعنی به صورت تو در تو یا nested در یک کامپوزیتور دیگر). <fmtstr> یک رشته قالب‌بندی برای استفاده به عنوان عنوان پنجره است که در آن `%o` با نام ناحیه خروجی جایگزین می‌شود. این قابلیت هنگام شبیه‌سازی چند نمایشگر، مانند اجرای labwc با متغیر محیطی `WLR_WL_OUTPUTS=2` مفید است. در این حالت، مقدار `%o` برای هر صفحه شبیه‌سازی‌شده منحصربه‌فرد خواهد بود.

-v, --version

نمایش شماره نسخه و خروج

-V, --verbose

فعال‌سازی ثبت گزارش با جزئیات بیشتر (verbose)

برای فعال‌سازی امکان استفاده از کلاینت‌های گرافیکی که از طریق فعال‌سازی سرویس systemd یا D-Bus راه‌اندازی می‌شوند، labwc می‌تواند هر دو محیط فعال‌سازی را در هنگام راه‌اندازی به‌روزرسانی کند. مشروط بر اینکه labwc از یک نشست کاربری فعال D-Bus آگاه باشد (یعنی متغیر محیطی `DBUS_SESSION_BUS_ADDRESS` تعریف شده باشد)، کامپوزیتور دستورهای

dbus-update-activation-environment
systemctl --user import-environment

را (در صورت در دسترس بودن) برای آگاه‌سازی D-Bus و systemd با مقادیر متغیرهای محیطی زیر فراخوانی می‌کند:

WAYLAND_DISPLAY
DISPLAY
XDG_CURRENT_DESKTOP
XDG_SESSION_TYPE
XCURSOR_SIZE
XCURSOR_THEME
LABWC_PID

این رفتار هر زمان که labwc از بک‌اند wlroots با عنوان "DRM" استفاده کند (که به معنی کامپوزیتور اصلی بودن labwc روی کنسول است)، به‌طور پیش‌فرض فعال است. هنگامی که سایر بک‌اندها به کار گرفته می‌شوند (برای مثال، زمانی که labwc به صورت تو در تو در یک کامپوزیتور Wayland دیگر یا یک سرور X11 اجرا می‌شود)، به‌روزرسانی‌های محیط فعال‌سازی به‌طور پیش‌فرض غیرفعال هستند. با تنظیم متغیر محیطی `LABWC_UPDATE_ACTIVATION_ENV` روی یکی از مقادیر مثبت مانند `1`، `true`، `yes` یا `on` می‌توان به‌روزرسانی محیط فعال‌سازی را اجبار کرد؛ یا با تنظیم این متغیر روی یکی از مقادیر منفی مانند `0`، `false`، `no` یا `off` از آن جلوگیری نمود.

هر زمان که labwc محیط فعال‌سازی را در هنگام راه‌اندازی به‌روز کند، در هنگام خروج نیز تلاش خواهد کرد تا محیط فعال‌سازی را پاکسازی کند. برای D-Bus، که روشی برای لغو تنظیم صحیح متغیرها در محیط فعال‌سازی ارائه نمی‌دهد، این کار با تنظیم متغیرهای نشست روی رشته‌های خالی انجام می‌شود. برای systemd، دستور `systemctl --user unset-environment` برای حذف واقعی متغیرها از محیط فعال‌سازی فراخوانی خواهد شد.

یک واحد کاربری systemd با نام `labwc-session.target` نیز همراه با کامپوزیتور برای کاربرانی که می‌خواهند labwc را با systemd یکپارچه کنند عرضه شده است. این واحد به `graphical-session.target` استاندارد متصل (bind) می‌شود، بنابراین سرویس‌های کاربری systemd که وابستگی WantedBy یا PartOf را به آن هدف اعلام کرده‌اند، می‌توانند همگام با نشست labwc شروع به کار کرده و متوقف شوند. خود labwc این هدف را فعال نمی‌کند؛ کاربران می‌توانند با افزودن خطوطی مانند زیر به فایل‌های autostart و shutdown خود، این سازوکار را فعال کنند:

systemctl --user --no-block start labwc-session.target
systemctl --user stop graphical-session.target

فایل‌های نمونه autostart و shutdown عرضه شده به همراه labwc شامل این خطوط به صورت کامنت‌شده هستند. برای اینکه یک سرویس کاربری به‌طور خودکار همگام با نشست شروع شود، آن را فعال (enable) کنید تا پیوند نمادین (symlink) متناظر با آن در دایرکتوری graphical-session.target.wants وجود داشته باشد؛ به عنوان مثال با اجرای "systemctl --user enable dms.service";.

متغیرهای محیطی ذکرشده در زیر را برای فعال‌سازی گزینه‌های اشکال‌زدایی خاص تنظیم کنید. این کار می‌تواند در فایل environment یا در خط فرمان انجام شود، به عنوان مثال: LABWC_DEBUG_FOO=1 labwc.

LABWC_DEBUG_LIBSFDO

فعال‌سازی ثبت گزارش‌های اشکال‌زدایی (debug) و اطلاعاتی (info) برای libsfdo، به عنوان مثال برای تجزیه فایل‌های دسکتاپ و جستجوی آیکون‌ها. توجه داشته باشید که ثبت خطاهای libsfdo صرف‌نظر از این متغیر محیطی همیشه فعال است، اما تنها با گزینه -V|--version نشان داده خواهد شد.

LABWC_DEBUG_DIR_CONFIG_AND_THEME

افزایش سطح ثبت گزارش مسیرها برای فایل‌های پیکربندی (مانند rc.xml، autostart، environment و menu.xml) و همچنین دکمه‌های نوار عنوان.

LABWC_DEBUG_CONFIG_NODENAMES

فعال‌سازی ثبت گزارش تمامی نام‌های گره‌ها (به عنوان مثال policy.placement: Cascade برای <placement><policy>Cascade</policy></placement>) برای فایل‌های پیکربندی و منو به‌ترتیب.

LABWC_DEBUG_KEY_STATE

فعال‌سازی ثبت رویدادهای فشردن و رها کردن برای کلیدهای مقید شده (عموماً کلیدهای ترکیبی مانند Ctrl-Alt-t).

labwc-actions(5), labwc-config(5), labwc-menu(5), labwc-theme(5)

2026-08-22