WESTON(1) General Commands Manual WESTON(1)

weston - یک کامپوزیتور Wayland

weston

weston یک کامپوزیتور Wayland است که برای صحت عملکرد، قابلیت اطمینان، پیش‌بینی‌پذیری و کارایی طراحی شده است. یک کامپوزیتور Wayland هم‌زمان یک کارساز نمایش (display server)، یک مدیر پنجره و یک کامپوزیتور در قالبی واحد است. Weston دارای چندین بک‌اند به‌صورت ماژول‌های قابل بارگذاری است: می‌تواند روی Linux KMS (تنظیم حالت در هسته از طریق DRM)، به‌صورت یک کلاینت X، یا درون یک نمونهٔ دیگر از کامپوزیتور Wayland اجرا شود.

به‌صورت پیش‌فرض، Weston یک میزکار بسیار ساده یا یک محیط با امکانات کامل برای کاربردهای غیرمیزکاری مانند خودرویی، سیستم‌های تعبیه‌شده، سامانه‌های درون‌پروازی، صنعتی، کیوسک‌ها، گیرنده‌های دیجیتال (set-top box) و تلویزیون‌ها ارائه می‌دهد.

Weston از طریق افزایه‌های پوسته (shell plugins) از الگوهای رابط کاربری گرافیکی بنیادین متفاوتی پشتیبانی می‌کند. چندین افزایه ارائه شده است: پوستهٔ desktop، پوستهٔ kiosk، پوستهٔ lua، پوستهٔ ivi و پوستهٔ منسوخ‌شدهٔ fullscreen.

همچنین کتابخانه‌ای به نام libweston ارائه می‌دهد که به کاربران امکان می‌دهد محیط‌های سفارشی و کامل خود را بر پایهٔ هستهٔ Weston بسازند.

Weston همچنین از طریق Xwayland از کلاینت‌های X پشتیبانی می‌کند؛ به پایین مراجعه کنید.

بک‌اند DRM از Linux KMS برای خروجی و از دستگاه‌های evdev برای ورودی استفاده می‌کند. این بک‌اند از چندین نمایشگر در یک میزکار یکپارچه همراه با DPMS پشتیبانی می‌کند. در صورت نصب بودن، weston-drm(7) را ببینید.
بک‌اند Wayland روی یک کارساز Wayland دیگر اجرا می‌شود؛ برای نمونه، یک نمونهٔ دیگر از Weston. در این حالت Weston به‌صورت یک پنجرهٔ میزکار واحد روی کارساز والد نشان داده می‌شود.
بک‌اند X11 روی یک کارساز X اجرا می‌شود. هر خروجی Weston به یک پنجرهٔ X تبدیل می‌شود. این روشی ساده و کم‌هزینه برای آزمایش پشتیبانی از چند نمایشگر در یک پوسته، میزکار یا برنامه‌های Wayland است.
بک‌اند RDP در حافظه و بدون نیاز به سخت‌افزار گرافیکی اجرا می‌شود. دسترسی به میزکار با استفاده از پروتکل RDP انجام می‌گیرد. هر کلاینت متصل، جایگاه (seat) اختصاصی خود را دارد که آن را به روشی کم‌هزینه برای آزمایش پشتیبانی از چند جایگاهی (multi-seat) تبدیل می‌کند. در صورت نصب بودن، weston-rdp(7) را ببینید.
بک‌اند VNC در حافظه و بدون نیاز به سخت‌افزار گرافیکی اجرا می‌شود. دسترسی به میزکار با استفاده از پروتکل RFB انجام می‌گیرد. در حال حاضر تنها از یک کلاینت متصل پشتیبانی می‌شود. در صورت نصب بودن، weston-vnc(7) را ببینید.
بک‌اند PipeWire در حافظه و بدون نیاز به سخت‌افزار گرافیکی اجرا می‌شود و برای هر خروجی یک گره PipeWire ایجاد می‌کند. می‌توان از آن برای ضبط خروجی‌های Weston جهت پردازش با برنامه‌ای دیگر استفاده کرد.
بک‌اند headless در حافظه اجرا می‌شود. می‌توان از آن برای ضبط خروجی‌های Weston یا آزمایش برنامه‌های کلاینت استفاده کرد.

رابط کاربری Weston توسط افزایه‌های مجزای «پوسته» (shell) پیاده‌سازی شده است. چندین پوسته برای کاربردهای گوناگون ارائه شده است.

پوستهٔ desktop حالت پیش‌فرض Weston است. این پوسته نمونه‌ای از یک محیط شبیه به میزکار را با ویژگی‌هایی چون یک پنل شامل اجراکننده‌ها و ساعت، تصویر پس‌زمینه و یک جابه‌جاکنندهٔ تعاملی پنجره‌ها (task switcher) ارائه می‌دهد. اگرچه هدف آن تبدیل شدن به یک محیط میزکار کاملاً مستقل و تمام‌عیار نیست، اما نمونه‌ای از چگونگی ساخت چنین محیطی است.
پوستهٔ kiosk برای محیط‌هایی در نظر گرفته شده است که می‌خواهند در هر لحظه تنها یک برنامه را اجرا کنند. برنامه‌ها تمام‌صفحه شده و هم‌زمان با شروع، فعال می‌شوند.
fullscreen (منسوخ‌شده)
پوستهٔ fullscreen یک پیاده‌سازی منسوخ‌شده از ایده‌های پشت پوستهٔ kiosk است. این پوسته نیازمند پشتیبانی اختصاصی کلاینت از واسط zwp_fullscreen_shell_v1 است.
پوستهٔ IVI یک پوسته با هدف خاص است که یک API سازگار با GENIVI Layer Manager را در دسترس ماژول‌های کنترل‌کنندهٔ HMI ارائه‌شده توسط کاربر قرار می‌دهد. این پوسته برای استفاده در محیط‌های خودروسازی در نظر گرفته شده است.
پوستهٔ lua یک فرآپوسته (meta-shell) است که قابلیت اسکریپت‌نویسی توسط کاربر و پیکربندی را دارد. یک اسکریپت Lua ارائه‌شده توسط Weston تفسیر و اجرا خواهد شد و امکان کنترل کامل بر مدیریت پنجره‌ها در پاسخ به رویدادها را فراهم می‌سازد. Weston می‌تواند از کلاینت‌های X11 در حال اجرا درون یک نشست Weston پشتیبانی کند، به واسطهٔ یک کارساز X به نام Xwayland. ‏Xwayland به عنوان یک فایل اجرایی مستقل ساخته می‌شود که توسط X.Org ارائه شده است. پس از ساخت و نصب، می‌توان آن را با گزینهٔ --xwayland فعال کرد. Weston روی یک سوکت نمایش جدید X11 شنود کرده و آن را از طریق متغیر محیطی DISPLAY صادر می‌کند.

همچنین مدیر پنجرهٔ X اختصاصی خود را دارد که در آن پوسته‌ها و اندازه‌های مکان‌نما را می‌توان با استفاده از متغیرهای محیطی XCURSOR_PATH و XCURSOR_SIZE انتخاب کرد. بخش ENVIRONMENT را ببینید.

بارگذاری فهرست پس‌انجام‌های جداشده با کاما به جای پس‌انجام پیش‌فرض، مراجعه کنید به BACKENDS. ماژول‌های پس‌انجام در مسیر /usr/lib/weston جستجو می‌شوند. پس‌انجام پیش‌فرض drm است، مگر آنکه محیط خلاف آن را نشان دهد؛ مراجعه کنید به DISPLAY و WAYLAND_DISPLAY. نخستین پس‌انجام، پس‌انجام اصلی است و رندرکننده را فراهم می‌کند. همهٔ پس‌انجام‌ها از بارگذاری به عنوان پس‌انجام‌های ثانویه (که از رندرکنندهٔ پس‌انجام اصلی مجدداً استفاده می‌کنند) پشتیبانی نمی‌کنند.
بارگذاری config.ini به جای weston.ini. آرگومان همچنین می‌تواند یک مسیر مطلق باشد که با یک / آغاز می‌شود. اگر مسیر مطلق نباشد، در مسیرهای عادی پیکربندی جستجو خواهد شد؛ مراجعه کنید به weston.ini(5). در صورت ارسال گزینهٔ --no-config این گزینه نادیده گرفته می‌شود.
فعال‌سازی افزونهٔ پروتکل اشکال‌زدایی weston_debug_v1 که هر کلاینتی می‌تواند برای دریافت پیام‌های اشکال‌زدایی از کامپوزیتور از آن استفاده کند.

هشدار (WARNING): این کار به دو دلیل پرخطر است. نخست، یک کلاینت ممکن است با ارائهٔ یک توصیف‌گر فایل نامناسب، باعث ایجاد انکار سرویس و مسدود شدن کامپوزیتور شود؛ و دوم، پیام‌های اشکال‌زدایی ممکن است اطلاعات حساسی را فاش کنند. علاوه بر این، این کار واسط weston-screenshooter را نمایان می‌سازد که به کاربر اجازه می‌دهد با استفاده از برنامهٔ weston-screenshooter از خروجی‌ها اسکرین‌شات بگیرد، که می‌تواند به نشت خاموش محتویات خروجی منجر شود. از این گزینه نباید در محیط‌های عملیاتی استفاده کرد.

مشخص کردن این‌که کدام دامنه‌های اشکال‌زدایی باید از طریق پروتکل weston-debug اعلان شوند. مشخص نکردن این گزینه اجازهٔ اعلان تمام دامنه‌های اشکال‌زدایی ممکن را می‌دهد. این گزینه به صورت ضمنی --debug را فعال نمی‌کند و برای تأثیرگذاری آن، تنظیم بودن آن گزینه الزامی است.
مشخص کردن این‌که در کدام دامنه‌ها باید اشتراک برقرار شود. برای کنترل این‌که داده‌ها در کدام جریان‌ها درون جعبه‌سیاه پرواز (flight recorder) نوشته شوند مفید است. جعبه‌سیاه پرواز فضای محدودی دارد؛ به محض پر شدن آن، داده‌های جدید روی داده‌های قدیمی بازنویسی خواهند شد. بدون مشخص کردن دامنه‌ها، به صورت پیش‌فرض در دامنه‌های 'log' و 'drm-backend' مشترک می‌شود. ارسال یک مقدار خالی، جعبه‌سیاه پرواز را به طور کامل غیرفعال می‌کند.
چاپ خلاصه‌ای از گزینه‌های خط فرمان و خروج.
تنظیم زمان انقضای بیکاری روی N ثانیه. زمان انقضای پیش‌فرض ۳۰۰ ثانیه است. هنگامی که در طول زمان انقضای بیکاری هیچ ورودی کاربری وجود نداشته باشد، Weston وارد حالت غیرفعال می‌شود. صفحه به سیاهی می‌رود، نمایشگرها ممکن است خاموش شوند و پوسته ممکن است نشست را قفل کند. مقدار 0 عملاً این زمان انقضا را غیرفعال می‌کند.
پیوست کردن پیام‌های گزارش به فایل file.log به جای نوشتن آن‌ها در stderr.
مشخص کردن این‌که در کدام دامنه‌های گزارش باید اشتراک ایجاد شود. هنگامی که هیچ دامنه‌ای مشخص نشود، دامنهٔ "log" به صورت پیش‌فرض مشترک می‌شود. برای کنترل این‌که کدام جریان‌ها داده‌ها را در گزارش‌گیر (logger) بنویسند سودمند است و می‌تواند در عیب‌یابی کدهای ابتدای راه‌اندازی کمک‌کننده باشد.
بارگذاری فهرست ماژول‌های جداشده با کاما. تنها توسط مجموعه آزمون استفاده می‌شود. فایل در مسیر /usr/lib/weston جستجو می‌شود، یا می‌توانید یک مسیر مطلق ارسال کنید.
عدم خواندن weston.ini برای کامپوزیتور. از جمله برای جلوگیری از بارگذاری ماژول‌های کامپوزیتور از طریق فایل پیکربندی که برای آزمون‌های واحد مفید است.
انتخاب رندرکننده‌ای که برای ترکیب‌بندی داخلی Weston استفاده می‌شود. مقدار پیش‌فرض، انتخاب خودکار است.
انتخاب این‌که کدام پوسته برای ارائهٔ رابط کاربری Weston بارگذاری شود؛ مراجعه کنید به ENVIRONMENT.
Weston روی سوکت Wayland به نام name شنود خواهد کرد. Weston متغیر WAYLAND_DISPLAY را با این مقدار در محیط تمام فرایندهای فرزند صادر می‌کند تا به آن‌ها اجازه دهد به صورت خودکار به کارساز مناسب متصل شوند. --version چاپ نسخهٔ برنامه.
پیش از مقداردهی اولیهٔ کامپوزیتور، سیگنال SIGSTOP را ارسال می‌کند. این امکان به کاربر داده می‌شود تا با یک اشکال‌زدا متصل شود و با ارسال SIGCONT به اجرای برنامه ادامه دهد. این قابلیت برای اشکال‌زدایی فروپاشی در زمان راه‌اندازی، هنگامی که اجرای مستقیم weston از طریق اشکال‌زدا دشوار است، سودمند خواهد بود. همچنین گزینه‌ای در weston.ini برای انجام همین کار وجود دارد.
پشتیبانی از کلاینت‌های X11 از طریق کارساز Xwayland. مراجعه کنید به weston-drm(7).

نام نمایشگر Wayland جهت اتصال؛ همچنین متغیر محیطیِ WAYLAND_DISPLAY را ببینید.
ایجاد یک خروجی تمام‌صفحهٔ واحد.
ایجاد N پنجرهٔ Wayland برای شبیه‌سازی همان تعداد خروجی.
تنظیم اندازهٔ تمامی خروجی‌ها بر روی WxH پیکسل.
تنظیم ضریب مقیاس تمامی خروجی‌ها بر روی N.
منسوخ شده و گزینهٔ --renderer جایگزین آن شده است. از رندرکنندهٔ pixman استفاده می‌کند. به‌طور پیش‌فرض weston تلاش می‌کند برای رندر کردن از EGL و GLES2 استفاده کند و در صورت عدم امکان استفاده از EGL، برای کامپوزیت نرم‌افزاری به رندرکنندهٔ مبتنی بر pixman بازمی‌گردد. مشخص کردن این گزینه weston را وادار به استفاده از رندرکنندهٔ pixman می‌کند.

هیچ دستگاه ورودی فراهم نمی‌کند. برای آزمایش Weston بدون ورودی کاربرد دارد.
ایجاد N پنجرهٔ X برای شبیه‌سازی همان تعداد خروجی.
تنظیم اندازهٔ پیش‌فرض هر پنجرهٔ X بر روی WxH پیکسل.
تنظیم ضریب مقیاس تمامی خروجی‌ها بر روی N.
منسوخ شده و گزینهٔ --renderer جایگزین آن شده است. از رندرکنندهٔ pixman استفاده می‌کند. به‌طور پیش‌فرض weston تلاش می‌کند برای رندر کردن از EGL و GLES2 استفاده کند. مشخص کردن این گزینه باعث می‌شود weston از کتابخانهٔ pixman برای کامپوزیت نرم‌افزاری استفاده کند.

مراجعه کنید به weston-rdp(7).

مراجعه کنید به weston-vnc(7).

تنظیم اندازهٔ پیش‌فرض هر خروجی بر روی WxH پیکسل.
تنظیم ضریب مقیاس تمامی خروجی‌ها بر روی N.
تبدیل هندسی برای خروجی، که می‌تواند در گام‌های ۹۰ درجه چرخیده و احیاناً معکوس (flipped) شود. مقادیر ممکن عبارتند از: normal، rotate-90، rotate-180، rotate-270، flipped، flipped-rotate-90، flipped-rotate-180 و flipped-rotate-270.
هیچ خروجی مجازی ایجاد نمی‌کند.
اختصاص نرخ نوسازیِ N میلی‌هرتز (به‌طور پیش‌فرض 60,000 mHz) به تمامی خروجی‌ها. مقادیر پشتیبانی‌شده در بازهٔ 0 mHz تا 1,000,000 mHz قرار دارند. 0 یک مقدار ویژه است که بازرسم را تنها در زمان درخواست‌های ضبط (capture)، و نه بر اثر تغییرات و آسیب‌ها (damages)، در سریع‌ترین زمان ممکن انجام می‌دهد.
--lua-script=script
مقدار lua-script= در weston.ini را با script جایگزین می‌کند. مسیر می‌تواند مطلق یا نسبی با استفاده از دایرکتوری کاری فعلی باشد.

اگر متغیر محیطی تنظیم شده باشد، فایل پیکربندی از مسیر مربوطه خوانده می‌شود.

$XDG_CONFIG_HOME/weston.ini
$HOME/.config/weston.ini

نمایشگر X. اگر DISPLAY تنظیم شده باشد و WAYLAND_DISPLAY تنظیم نشده باشد، بک‌اند پیش‌فرض x11 خواهد بود.
در صورت تنظیم با هر مقداری، باعث می‌شود libwayland پروتکل زنده را در stderr چاپ کند.
نام نمایشگر (سوکت) یک سرور Wayland که از قبل در حال اجراست، بدون مسیر. مسیر دایرکتوری همیشه از XDG_RUNTIME_DIR گرفته می‌شود. اگر WAYLAND_DISPLAY تنظیم نشده باشد، نام سوکت "wayland-0" خواهد بود.

اگر WAYLAND_DISPLAY از قبل تنظیم شده باشد، بک‌اند پیش‌فرض wayland می‌شود. این امکان راه‌اندازی Weston را به عنوان یک سرور تودرتو (nested) فراهم می‌کند.

برای کلاینت‌های Wayland، توصیف‌گر فایل یک سوکت محلی باز به یک سرور Wayland را نگه می‌دارد.
برنامهٔ Weston این متغیر را به مسیر مطلق فایل پیکربندی‌ای که بارگذاری می‌کند، یا در صورت عدم استفاده از فایل به یک رشتهٔ خالی تنظیم می‌کند. برنامه‌هایی که از weston.ini استفاده می‌کنند، به جای آن فایل مشخص‌شده توسط این متغیر را می‌خوانند، یا در صورت خالی بودن، هیچ فایلی را نخواهند خواند. در صورت عدم تنظیم این متغیر، به نام پیش‌فرض weston.ini رجوع می‌شود.
فهرستی از مسیرها برای جستجوی مکان‌نماها را تعیین می‌کند. این متغیر هم libwayland-cursor و هم libXcursor را تغییر می‌دهد، بنابراین بر هر دو کلاینت‌های مبتنی بر Wayland و X11 اثر می‌گذارد. ببینید: xcursor (3).
این متغیر می‌تواند برای انتخاب اندازهٔ مشخصی از مکان‌نما تنظیم شود. کلاینت‌های Wayland و X11 را تحت تأثیر قرار می‌دهد. ببینید: xcursor (3).
در صورت تنظیم، دایرکتوری‌ای که باید در آن به دنبال weston.ini گشت را مشخص می‌کند.
دایرکتوری مربوط به فایل‌های سوکت و قفل Weston. کلاینت‌های Wayland به‌طور خودکار از این متغیر استفاده خواهند کرد. اجرای برنامه‌ای که توسط Weston اجرا شود امکان‌پذیر است.
با استفاده از این نحو:
weston [options] -- [program [arguments]]

استفاده از '--' در اینجا برای اجرای برنامه الزامی است. مثال‌هایی در بخش مثال‌ها (EXAMPLES) وجود دارد.

باگ‌ها باید به https://gitlab.freedesktop.org/wayland/weston گزارش شوند.

https://wayland.freedesktop.org

راه‌اندازی Weston با بک‌اند DRM روی یک VT
weston
راه‌اندازی Weston با بک‌اند DRM و پشتیبانی از XWayland
weston --xwayland
راه‌اندازی Weston به‌صورت تودرتو (wayland-1) در نمونه دیگری از Weston (wayland-0)
WAYLAND_DISPLAY=wayland-0 weston -Swayland-1
راه‌اندازی Weston با بک‌اند x11 از طریق یک ترمینال X
weston
راه‌اندازی Weston و اجرای weston-terminal توسط آن
weston -- /usr/local/bin/weston-terminal
راه‌اندازی Weston با kiosk shell و اجرای weston-simple-egl توسط آن
weston --shell=kiosk-shell.so -- /usr/local/bin/weston-simple-egl
راه‌اندازی Weston با kiosk shell و باز کردن یک سند pdf با mupdf
weston --shell=kiosk-shell.so -- mupdf /home/user/Documents/krh/wayland.pdf

weston-bindings(7), weston-debug(1), weston-drm(7), weston-rdp(7), weston-vnc(7), weston.ini(5)

2026-01-30 Weston 15.0.1