.\" Generated by scdoc 1.11.5 .\" Complete documentation for this program is not available as a GNU info page .ie \n(.g .ds Aq \(aq .el .ds Aq ' .nh .ad l .\" Begin generated content: .TH "UWSM" "1" "2026\-08\-24" .PP .SH "نام (NAME)" .PP \fBUWSM\fR \- مدیر نشست جامع ویلند (Wayland).\& .PP .SH "خلاصه دستور (SYNOPSIS)" .PP \fBuwsm\fR [\-h|\-v] {\fIsubcommand\fR} [\fIoptions\fR .\&.\&.\&] .PP .SH "توضیحات (DESCRIPTION)" .PP کامپوزیتور دلخواه Wayland را از طریق مجموعه‌ای از واحدهای کاربری systemd راه‌اندازی می‌کند تا یک نشست کاربری گرافیکی همراه با مدیریت محیط، پشتیبانی از شروع خودکار (autostart) استاندارد XDG و خاتمه پاکیزه فراهم سازد.\& همچنین ابزارهای کمکی برای راه‌اندازی برنامه‌ها در قالب scopeها یا serviceها ارائه می‌دهد.\& .PP .SH "زیردستورها (SUBCOMMANDS)" .PP .TS l lx l lx l lx l lx l lx l lx l lx. T{ \fBselect\fR T} T{ انتخاب مدخل (Entry) پیش‌فرض کامپوزیتور.\& T} T{ \fBstart\fR T} T{ شروع کامپوزیتور و نشست گرافیکی.\& T} T{ \fBfinalize\fR T} T{ ارسال متغیرهای تنظیم‌شده توسط کامپوزیتور و اعلان راه‌اندازی واحد به مدیر کاربری systemd.\& T} T{ \fBstop\fR T} T{ توقف نشست گرافیکی و کامپوزیتور.\& T} T{ \fBapp\fR T} T{ راه‌انداز واحدهای برنامه‌ها (با پشتیبانی از Desktop Entry).\& T} T{ \fBcheck\fR T} T{ انجام بررسی‌های وضعیت (برای اسکریپت‌نویسی و دریافت اطلاعات).\& T} T{ \fBaux\fR T} T{ توابع فنی برای استفاده درون واحدها.\& T} .TE .sp 1 برای اطلاعات بیشتر، زیربخش‌های مربوط به \fISUBCOMMANDS\fR را در ادامه مشاهده کنید.\& .PP راهنمای هر زیردستور با اجرای «\fBuwsm\fR {\fIsubcommand\fR} \fB\-h\fR» قابل دسترسی است.\& .PP .SH "پیکربندی (CONFIGURATION)" .PP .SS "فایل‌ها (FILES)" .PP در سلسله‌مراتب پیکربندی XDG: .TS l lx l lx l lx l lx l lx. T{ \fBuwsm/env\fR T} T{ T} T{ \fBuwsm/env.\&d/\fR* T} T{ T} T{ \fBuwsm/env\-\fR\fI${compositor}\fR T} T{ T} T{ \fBuwsm/env\-\fR\fI${compositor}\fR\fB.\&d/\fR* T} T{ محیط (shell) که باید برای نشست گرافیکی فراخوانی (source) شود.\& از دایرکتوری‌هایی با اولویت افزایشی فراخوانی می‌شود؛ در هر دایرکتوری ابتدا فایل مشترک خوانده می‌شود، سپس فایل‌های پسونددار به ترتیب موارد ذکر شده در متغیر \fBXDG_CURRENT_SESSION\fR (با حروف کوچک).\& T} T{ \fBuwsm/default\-id\fR T} T{ شناسه Desktop Entry کامپوزیتور پیش‌فرض را ذخیره می‌کند.\& T} .TE .sp 1 حالت جایگزین (Fallback) همچنین به بخش سیستمی سلسله‌مراتب داده‌ای XDG گسترش یافته است، که می‌تواند برای مقادیر پیش‌فرض در سطح توزیع استفاده شود.\& .PP.SS متغیرهای محیطی .PP .TS l lx l lx l lx l lx l lx l lx l lx l lx l lx l lx l lx l lx l lx l lx l lx l lx l lx l lx. T{ \fBUWSM_UNIT_RUNG\fR T} T{ (\fBrun\fR|\fBhome\fR) T} T{ T} T{ کدام سطح از سلسله‌مراتب systemd/user/ برای مدیریت فایل‌های unit و drop\-in تولیدشده استفاده شود: $XDG_RUNTIME_DIR یا $XDG_CONFIG_HOME.\& T} T{ \fBUWSM_TWEAKS\fR T} T{ (مقدار بولی) T} T{ T} T{ برای حذف و تولید نکردن drop\-inهای بهینه‌ساز (tweak) برای سایر نرم‌افزارها، روی \fIFalse\fR تنظیم شود.\& T} T{ \fBUWSM_FINALIZE_VARNAMES\fR T} T{ (نام متغیرهای محیطی جداشده با فاصله) T} T{ T} T{ متغیرهای اضافی برای «\fBuwsm finalize\fR».\& T} T{ \fBUWSM_WAIT_VARNAMES\fR T} T{ (نام متغیرهای محیطی جداشده با فاصله) T} T{ T} T{ متغیرهایی که پیش از رفتن به نشست گرافیکی، باید در محیط فعال‌سازی منتظر آن‌ها ماند (علاوه بر \fBWAYLAND_DISPLAY\fR).\& T} T{ \fBUWSM_WAIT_VARNAMES_TIMEOUT\fR T} T{ (مقدار صحیح) T} T{ T} T{ مدت‌زمان (به ثانیه) برای انتظار جهت ظاهر شدن متغیرها در محیط فعال‌سازی.\& در اصل، مهلت زمانی راه‌اندازی (پیش‌فرض: 10).\& T} T{ \fBUWSM_WAIT_VARNAMES_SETTLETIME\fR T} T{ (مقدار اعشاری) T} T{ T} T{ مدت‌زمان توقف (به ثانیه) پس از پیدا شدن تمام متغیرهای مورد انتظار در محیط فعال‌سازی (پیش‌فرض: 0.\&2).\& T} T{ \fBUWSM_APP_UNIT_TYPE\fR T} T{ (\fBscope\fR|\fBservice\fR) T} T{ T} T{ نوع unit پیش‌فرض برای اجرای برنامه‌ها (پیش‌فرض: \fBscope\fR).\& T} T{ \fBUWSM_SILENT_START\fR T} T{ (مقدار صحیح یا بولی) T} T{ T} T{ مقدار \fITrue\fR یا \fB1\fR برای جلوگیری از پیام‌های stdout حاصل از «\fBuwsm start\fR».\& مقدار \fB2\fR برای مهار هشدارها نیز به‌کار می‌رود.\& T} T{ \fBDEBUG\fR T} T{ (مقدار صحیح یا بولی) T} T{ T} T{ مقدار \fITrue\fR یا یک عدد مثبت برای ارسال اطلاعات اشکال‌زدایی به stderr.\& T} .TE .sp 1.SH "مرور عملکرد (OPERATION OVERVIEW)" .PP .SS "یکپارچه‌سازی با توالی ورود (Login Sequence Integration)" .PP \fBuwsm\fR می‌تواند با استفاده از دستور شرطی \fBexec\fR در نمایه شل (shell profile) به منظور جایگزین شدن با شل ورود راه‌اندازی شود (بخش \fIShell Profile Integration\fR را ببینید).\& .PP همچنین می‌توان دستور «\fBuwsm start\fR .\&.\&.\&» را در Desktop Entry نشست Wayland قرار داد تا توسط یک مدیر نمایش (display manager) راه‌اندازی شود (بخش \fIUse Inside Desktop Entry\fR را ببینید).\& .PP .SS "انتخاب کامپوزیتور (Compositor Selection)" .PP \fBuwsm\fR می‌تواند خط فرمان دلخواهی از کامپوزیتور یا یک Desktop Entry را بر اساس شناسه (ID) اجرا کند (مشخص کردن Action ID نیز پشتیبانی می‌شود).\& .PP همچنین Desktop Entry را می‌توان از طریق یک منوی \fBwhiptail\fR انتخاب کرد (بخش زیرفرمان \fIselect\fR را ببینید).\& .PP .SS "راه‌اندازی (Startup)" .PP برای ساختار دستوری، بخش زیرفرمان \fIstart\fR را ببینید.\& .PP ابزار UWSM از مجموعه‌ای از واحدها استفاده می‌کند که به تارگت‌های استاندارد نشست کاربر مقید شده‌اند: .PP .PD 0 .IP \(bu 4 \fBwayland\-session\-pre@.\&target\fR (متصل به \fBgraphical\-session\-pre.\&target\fR) .RS 4 .IP \(bu 4 \fBwayland\-wm\-env@.\&service\fR (سرویس پیش‌بارگذار محیط) .RE .IP \(bu 4 \fBwayland\-session@.\&target\fR (متصل به \fBgraphical\-session.\&target\fR) .RS 4 .IP \(bu 4 \fBwayland\-wm@.\&service\fR (سرویس کامپوزیتور انتخاب‌شده) .RE .IP \(bu 4 \fBwayland\-session\-xdg\-autostart@.\&target\fR (متصل به \fBxdg\-desktop\-autostart.\&target\fR) .IP \(bu 4 \fBwayland\-session\-envelope@.\&target\fR (در تمام طول چرخه حیات فعال می‌ماند) .IP \(bu 4 \fBwayland\-session\-shutdown.\&target\fR (برای خاموش‌سازی، با تارگت‌های بالا در تداخل است) .IP \(bu 4 \fBwayland\-session\-bindpid@.\&service\fR (کلید قطع اضطراری نشست با ردگیری PID) .IP \(bu 4 \fBwayland\-session\-waitenv.\&service\fR (نشست گرافیکی را تا زمان پدیدار شدن متغیرها به تأخیر می‌اندازد) .PD .PP شناسه کامپوزیتور (شناسه Desktop Entry یا نام فایل اجرایی) به مشخص‌کننده (specifier) برای تمام واحدهای قالب‌بندی‌شده تبدیل می‌شود.\& .PP در مرحلهٔ \fBgraphical\-session\-pre.\&target\fR، متغیرهای محیطی ذخیره‌شده از زمینهٔ «\fBuwsm start\fR» بارگذاری می‌شوند (یا نمایه شل POSIX با دستور source فراخوانی می‌شود)، و \fIفایل‌های\fR محیطی uwsm نیز سورس می‌شوند.\& تفاضل ایجادشده (delta) توسط سرویس پیش‌بارگذار محیط به محیط‌های فعال‌سازی systemd و D\-Bus صادر شده و برای پاک‌سازی در مرحلهٔ خاموش‌سازی نشانه‌گذاری می‌شود.\& در زمینه شل پیش‌بارگذار جهت سهولت، متغیر \fBIN_UWSM_ENV_PRELOADER\fR بر روی \fBtrue\fR تنظیم شده است.\& .PP در مرحلهٔ \fBgraphical\-session.\&target\fR (پیش از آن)، واحد اصلی کامپوزیتور \fBwayland\-wm@\fR\fI${ID}\fR\fB.\&service\fR و \fBwayland\-session\-waitenv.\&service\fR راه‌اندازی می‌شوند.\& .PP کامپوزیتور باید دست‌کم متغیر \fBWAYLAND_DISPLAY\fR را در محیط فعال‌سازی systemd قرار دهد.\& این کار منطق نهایی‌سازی خودکار uwsm را فعال می‌کند.\& بدون وجود \fBWAYLAND_DISPLAY\fR در محیط فعال‌سازی، فرایند راه‌اندازی پس از ۱۰ ثانیه با اتمام مهلت زمانی (timeout) مواجه خواهد شد.\& .PP نهایی‌سازی دستی با اجرای دستور «\fBuwsm finalize\fR» امکان‌پذیر است (بخش زیرفرمان \fIfinalize\fR را ببینید)، و همچنین می‌توان آن را با دستکاری متغیرهای \fBUWSM_WAIT_VARNAMES\fR و \fBUWSM_WAIT_VARNAMES_SETTLETIME\fR ترکیب کرد (بخش \fIEnvironment vars\fR را ببینید).\& .PP فعال‌سازی موفق واحد کامپوزیتور و وجود \fBWAYLAND_DISPLAY\fR در محیط فعال‌سازی به \fBgraphical\-session.\&target\fR اجازه می‌دهد تا به‌عنوان محقق‌شده اعلام شود.\& .PP در نهایت، \fBxdg\-desktop\-autostart.\&target\fR فعال می‌شود.\& .PP .SS "درون نشست (Inside session)" .PP اکیداً توصیه می‌شود که کامپوزیتور یا راه‌انداز برنامه (app launcher) را طوری پیکربندی کنید که برنامه‌ها را به‌صورت scope یا service در اسلایس‌های ویژهٔ نشست کاربر (\fBapp.\&slice\fR، \fBbackground.\&slice\fR، \fBsession.\&slice\fR) اجرا کند.\& \fBuwsm\fR اسلایس‌های تودرتوی سفارشی را فراهم می‌کند تا برنامه‌ها درون آن‌ها قرار گیرند و با پایان نشست متوقف شوند: .PD 0 .IP \(bu 4 \fBapp\-graphical.\&slice\fR .IP \(bu 4 \fBbackground\-graphical.\&slice\fR .IP \(bu 4 \fBsession\-graphical.\&slice\fR .PD .PP یک زیرفرمان کمکی \fBapp\fR برای مدیریت تمام فراخوانی‌های systemd\-run برای شما در نظر گرفته شده است (بخش زیرفرمان \fIapp\fR را ببینید).\& .PP کامپوزیتور به‌طور پیش‌فرض در \fBsession.\&slice\fR اجرا می‌شود (همان‌طور که توسط \fBsystemd.\&special\fR(7) توصیه شده است).\& .PP.SS "خاموش‌سازی (Shutdown)" .PP می‌تواند با هر یک از موارد زیر آغاز شود: .PD 0 .IP \(bu 4 اجرای \fBuwsm stop\fR .IP \(bu 4 متوقف کردن \fBwayland\-wm@*.\&service\fR یا \fBwayland\-session\-envelope@*.\&target\fR .IP \(bu 4 شروع \fBwayland\-session\-shutdown.\&target\fR .PD .PP Systemd طبق معمول تمام واحدهای کاربری را به ترتیب معکوس متوقف می‌کند.\& در حین غیرفعال‌سازی \fBgraphical\-session\-pre.\&target\fR، سرویس پیش‌بارگذار محیط با لغو مقدار (unset کردن) تمام متغیرهایی که در مراحل راه‌اندازی و نهایی‌سازی برای حذف علامت‌گذاری شده بودند، محیط‌های فعال‌سازی را پاک‌سازی می‌کند.\& .PP از سازوکار خروج بومی کامپوزیتور استفاده نکنید و فرایند آن را مستقیماً خاتمه ندهید (kill نکنید).\& .PP .SH "زیردستورها (SUBCOMMANDS)" .PP .SS select .PP مدخل دسکتاپ (Desktop Entry) پیش‌فرض کامپوزیتور نشست wayland را انتخاب می‌کند.\& .PP .RS 4 \fBuwsm\fR select .PP .RE یک منوی whiptail را برای انتخاب نشست پیش‌فرض از میان Desktop Entryها در سلسله‌مراتب داده‌های XDG در \fBwayland\-sessions\fR فراخوانی می‌کند.\& مقدار انتخابی را در \fB${XDG_CONFIG_HOME}/uwsm/default\-id\fR می‌نویسد.\& اقدام دیگری انجام نمی‌شود.\& در صورت لغو انتخاب، مقدار \fB1\fR را برمی‌گرداند.\& می‌تواند برای اسکریپت‌نویسیِ شرط اجرا در پروفایل شل (shell profile) استفاده شود.\& .PP .SS check .PP آزمون‌هایی را انجام می‌دهد؛ در صورت موفقیت \fB0\fR و در صورت شکست \fB1\fR را برمی‌گرداند.\& .PP \fBis\-active\fR: .PP .RS 4 \fBuwsm\fR check is\-active [\-h] [\-v] [\fIcompositor\fR] .PP .RE .TS l lx l lx. T{ \fB\-v\fR T} T{ نمایش اطلاعات اضافی T} T{ \fIcompositor\fR T} T{ بررسی برای کامپوزیتور مشخص T} .TE .sp 1 .PP بررسی می‌کند که آیا واحد مربوط به \fBcompositor\fR مشخص یا به‌طور کلی \fBgraphical\-session*.\&target\fR در وضعیت فعال (active) یا در حال فعال‌سازی (activating) است یا خیر.\& .PP \fBmay\-start\fR: .PP .RS 4 \fBuwsm\fR check may\-start [\-h] [\-g [\fIS\fR]] [\-v|\-q] [\fIN\fR .\&.\&.\&] .PP .RE .TS l lx l lx l lx l lx l lx l lx. T{ \fIN\fR .\&.\&.\& T} T{ شماره‌های مجاز VT (پیش‌فرض: 1) T} T{ \fB\-g\fR \fIS\fR T} T{ به مدت \fIS\fR ثانیه در صف منتظر graphical.\&target می‌ماند (پیش‌فرض: 60؛ 0 یا کمتر بررسی را غیرفعال می‌کند).\& T} T{ \fB\-i\fR T} T{ عدم بررسی برای شل ورود (login shell) T} T{ \fB\-r\fR T} T{ عدم بررسی برای نشست محلی (مجاز دانستن نشست از راه دور) T} T{ \fB\-v\fR T} T{ نمایش تمام آزمون‌های ناموفق T} T{ \fB\-q\fR T} T{ حالت بی‌صدا T} .TE .sp 1 .PP بررسی می‌کند که آیا راه‌اندازی یک نشست wayland با توجه به شرایط زیر مجاز است یا خیر: .PD 0 .IP \(bu 4 متغیر \fBDBUS_SESSION_BUS_ADDRESS\fR تنظیم شده باشد .IP \(bu 4 اجرا از یک شل ورود (login shell) باشد .IP \(bu 4 سیستم در \fBgraphical.\&target\fR باشد .IP \(bu 4 واحدهای کاربری \fBgraphical\-session*.\&target\fR هنوز فعال نشده باشند .IP \(bu 4 مقدار VT پیش‌زمینه در میان موارد مجاز باشد (پیش‌فرض: 1) .IP \(bu 4 مقدار VT نشست ورود مطابقت داشته باشد .PD .PP.SS start .PP برای خط فرمان یا Desktop Entry کامپوزیتور داده‌شده، فایل‌های واحد (units) را تولید کرده و آن‌ها را راه‌اندازی می‌کند.\& .PP .RS 4 \fBuwsm\fR start [\-h] [\-D \fIname\fR[:\fIname\fR.\&.\&.\&]] [\-a|\-e] [\-N \fIName\fR] [\-C \fIComment\fR] [\-U {run|home}] [\-t] [\-o] [\-n] \-\- \fIcompositor\fR [\fIargs\fR .\&.\&.\&] .PP .RE .TS l lx l lx l lx l lx l lx l lx l lx l lx l lx l lx l lx l lx l lx. T{ \fB\-F\fR T} T{ حالت hardcode، همواره خط فرمان را در drop\-inهای واحد می‌نویسد و از مسیرهای کامل استفاده می‌کند.\& T} T{ \fB\-D\fR \fIname\fR[:\fIname\fR.\&.\&.\&] T} T{ نام‌هایی برای پر کردن \fBXDG_CURRENT_DESKTOP\fR (جداشده با :).\& در صورتی که هیچ نشست فعالی در حال اجرا نباشد، محتوای فعلی متغیر به عنوان نقطه شروع استفاده می‌شود.\& T} T{ \fB\-a\fR T} T{ افزودن نام‌های میزکار تعیین‌شده با \-D به سایر منابع (پیش‌فرض).\& T} T{ \fB\-e\fR T} T{ استفاده انحصاری از نام‌های میزکار تعیین‌شده با \-D و نادیده گرفتن سایر منابع.\& T} T{ \fB\-N\fR \fIName\fR T} T{ نام نمایشی کامپوزیتور (به‌طور پیش‌فرض از Desktop Entry خوانده می‌شود).\& T} T{ \fB\-C\fR \fIComment\fR T} T{ توضیحات نمایشی برای کامپوزیتور (به‌طور پیش‌فرض از Desktop Entry خوانده می‌شود).\& T} T{ \fB\-U\fR {\fBrun\fR|\fBhome\fR} T} T{ انتخاب رده (rung) برای فایل‌های واحد تولیدشده: \fBrun\fR: مسیر $XDG_RUNTIME_DIR/systemd/user (پیش‌فرض)، یا \fBhome\fR: مسیر $XDG_CONFIG_HOME/systemd/user.\& مقصد دائمی با برطرف کردن نیاز به بارگذاری مجدد systemd مقداری در زمان صرفه‌جویی می‌کند.\& فایل‌های مدیریت‌شده از رده دیگر حذف خواهند شد.\& می‌تواند با متغیر محیطی \fBUWSM_UNIT_RUNG\fR از پیش تعیین شود.\& T} T{ \fB\-t\fR T} T{ تولید نکردن (و حذف) فایل‌های واحد بهینه‌ساز (tweak).\& می‌تواند با متغیر محیطی \fBUWSM_TWEAKS=false\fR از پیش تعیین شود.\& T} T{ \fB\-T\fR T} T{ تولید فایل‌های واحد بهینه‌ساز (tweak) برای سایر نرم‌افزارها.\& این رفتار پیش‌فرض است.\& T} T{ \fB\-g\fR \fIS\fR T} T{ انتظار به مدت S ثانیه برای قرار گرفتن graphical.\&target سیستم در صف و هشدار در صورت اتمام مهلت یا عدم حضور در صف (پیش‌فرض: 60، مقدار منفی برای غیرفعال‌سازی).\& T} T{ \fB\-G\fR \fIS\fR T} T{ انتظار به مدت S ثانیه برای قرار گرفتن graphical.\&target سیستم در صف و لغو عملیات در صورت اتمام مهلت یا عدم حضور در صف (تنظیم \-g را نادیده می‌گیرد، پیش‌فرض: \-1، (غیرفعال)).\& T} T{ \fB\-o\fR T} T{ فقط فایل‌های واحد را تولید می‌کند، اما آن‌ها را راه‌اندازی نمی‌کند.\& T} T{ \fB\-n\fR T} T{ اجرای آزمایشی (Dry run)، هیچ چیزی نوشته یا راه‌اندازی نمی‌شود.\& T} .TE .sp 1 نخستین آرگومان خط فرمان کامپوزیتور به عنوان یک شناسه (ID) عمل می‌کند و باید یکی از موارد زیر باشد: .PD 0 .IP \(bu 4 نام فایل اجرایی .IP \(bu 4 شناسه Desktop Entry (اختیاراً همراه با شناسه عملیات جداشده با «\fB:\fR») .IP \(bu 4 مقدار ویژه: .RS 4 .IP \(bu 4 \fBselect\fR \- فراخوانی منو برای انتخاب کامپوزیتور.\& .IP \(bu 4 \fBdefault\fR \- اجرای کامپوزیتور انتخاب‌شده پیشین (یا باز کردن منوی انتخاب در صورت عدم ذخیره انتخاب).\& .PD .PP .RE اگر به عنوان مسیر داده شود، حالت hardcode به طور ضمنی استفاده خواهد شد.\& .PP همواره از «\fB\-\-\fR» برای رفع ابهام در آرگومان‌های دارای خط تیره که برای خود کامپوزیتور در نظر گرفته شده‌اند، استفاده کنید.\& .PP پس از تولید (مجدد) واحدها، سرویس \fBwayland\-session\-bindpid@\fR\fI${PID}\fR\fB.\&service\fR جهت رهگیری PID فراخوانندهٔ \fBuwsm\fR راه‌اندازی می‌شود، سپس فرایند \fBuwsm\fR جای خود را به اجرای \fBsystemctl\fR می‌دهد که سرویس \fBwayland\-wm@\fR\fI${ID}\fR\fB.\&service\fR را آغاز کرده و تا پایان آن منتظر می‌ماند.\& .PP به منظور تکمیل توالی راه‌اندازی، کامپوزیتور باید \fBWAYLAND_DISPLAY\fR را در محیط فعال‌سازی systemd قرار دهد.\& این کار می‌تواند به طور صریح با اجرای دستور «\fBuwsm finalize\fR» توسط کامپوزیتور انجام شود (به زیربخش بعدی مراجعه کنید).\& .PP.SS finalize .PP برای اجرا توسط یک کامپوزیتور در هنگام راه‌اندازی.\& .PP .RS 4 \fBuwsm\fR finalize [\-h] [\fIVAR_NAME\fR .\&.\&.\&] .PP .RE متغیرهای \fBWAYLAND_DISPLAY\fR، \fBDISPLAY\fR و هر متغیر تعریف‌شده‌ای که نام آن‌ها در آرگومان‌ها یا در متغیر \fBUWSM_FINALIZE_VARNAMES\fR (جداشده با نویسه‌های فاصله) ذکر شده باشد را صادر (export) می‌کند.\& سپس اعلان راه‌اندازی واحد را به مدیر کاربری systemd ارسال می‌نماید.\& .PP \fBاین مورد الزامی است\fR اگر خود کامپوزیتور \fBWAYLAND_DISPLAY\fR را در محیط فعال‌سازی systemd قرار ندهد، در غیر این صورت واحد \fBwayland\-session@.\&service\fR یا یک واحد اختصاصی \fBwayland\-session\-waitenv.\&service\fR به دلیل اتمام مهلت زمانی راه‌اندازی متوقف خواهد شد.\& .PP متغیر \fBUWSM_FINALIZE_VARNAMES\fR می‌تواند توسط پلاگین‌ها از پیش پر شود.\& .PP انتساب مستقیم به صورت \fIVAR_NAME\fR=\fIvalue\fR نیز ممکن است، اما تنها برای ساخت پرچم‌ها جهت سازوکار \fBUWSM_WAIT_VARNAMES\fR توصیه می‌شود.\& .PP .SS stop .PP کامپوزیتور را متوقف کرده و به صورت اختیاری واحدهای تولیدشده را حذف می‌کند.\& .PP .RS 4 \fBuwsm\fR stop [\-h] [\-r [\fIcompositor\fR] [\-U {run|home}] [\-n] .PP .RE .TS l lx l lx l lx. T{ \fB\-r\fR [\fIcompositor\fR] T} T{ همچنین واحدها را حذف می‌کند (همه یا تنها موارد مختص به \fIcompositor\fR).\& T} T{ \fB\-U\fR {\fBrun\fR|\fBhome\fR} T} T{ انتخاب رده (rung) برای فایل‌های واحد تولیدشده: \fBrun\fR: $XDG_RUNTIME_DIR/systemd/user (پیش‌فرض)، یا \fBhome\fR: $XDG_CONFIG_HOME/systemd/user.\& مقصد دائمی با رفع نیاز به بارگذاری مجدد systemd در زمان صرفه‌جویی می‌کند.\& فایل‌های مدیریت‌شده از رده دیگر حذف خواهند شد.\& می‌تواند از پیش با متغیر محیطی \fBUWSM_UNIT_RUNG\fR تنظیم شود.\& T} T{ \fB\-n\fR T} T{ اجرای آزمایشی (dry run)، هیچ چیز را متوقف یا حذف نمی‌کند.\& T} .TE .sp 1 .SS app .PP راه‌انداز برنامه-به-واحد با پشتیبانی از Desktop Entry.\& .PP .RS 4 \fBuwsm\fR app [\-h] [\-s {\fBa\fR,\fBb\fR,\fBs\fR,\fIcustom\fR.\&slice}] [\-t {scope,service}] [\-a \fIapp_name\fR] [\-u \fIunit_name\fR] [\-d \fIunit_description\fR] [\-S ] [\-T] \-\- \fIapplication\fR [\fIargs\fR .\&.\&.\&] .PP .RE .TS l lx l lx l lx l lx l lx l lx l lx l lx l lx l lx l lx l lx. T{ \fB\-s\fR {\fBa\fR,\fBb\fR,\fBs\fR,\fIcustom\fR.\&slice} T} T{ انتخاب‌گر slice (پیش‌فرض: \fBa\fR): T} T{ T} T{ \fBa\fR \- \fBapp\-graphical.\&slice\fR T} T{ T} T{ \fBb\fR \- \fBbackground\-graphical.\&slice\fR T} T{ T} T{ \fBs\fR \- \fBsession\-graphical.\&slice\fR T} T{ T} T{ هر slice با نام کامل T} T{ \fB\-t\fR {\fBscope\fR,\fBservice\fR} T} T{ نوع واحد جهت راه‌اندازی (پیش‌فرض: \fBscope\fR، قابل تنظیم از پیش با متغیر محیطی \fBUWSM_APP_UNIT_TYPE\fR).\& T} T{ \fB\-a\fR \fIapp_name\fR T} T{ بازنویسی نام برنامه (یک زیررشته در نام واحد).\& T} T{ \fB\-u\fR \fIunit_name\fR T} T{ بازنویسی تمام نام واحد خودکار تولیدشده.\& T} T{ \fB\-d\fR \fIunit_description\fR T} T{ توضیحات واحد.\& T} T{ \fB\-p\fR \fIProperty\fR=\fIvalue\fR T} T{ تنظیم مشخصه اضافی برای واحد (گزینه تکرارپذیر است).\& T} T{ \fB\-S\fR {\fBout\fR,\fBerr\fR,\fBboth\fR} T} T{ بی‌صدا کردن stdout، stderr، یا هر دو.\& T} T{ \fB\-T\fR T} T{ راه‌اندازی برنامه در یک ترمینال.\& این امکان را می‌دهد که دستور خالی باشد تا صرفاً یک ترمینال راه‌اندازی شود.\& T} .TE .sp 1 .PP برنامه می‌تواند به صورت یک دستور با آرگومان‌های اختیاری، یا یک شناسه Desktop Entry ارائه شود که به صورت اختیاری با یک شناسه Action که با "\fB:\fR" جدا شده پسوند می‌یابد.\& در صورت راه‌اندازی یک Desktop Entry، آرگومان‌ها باید با آن سازگار باشند.\& .PP همیشه از "\fB\-\-\fR" برای رفع ابهام آرگومان‌های دارای خط تیره که برای خود برنامه در نظر گرفته شده‌اند استفاده کنید.\& .PP.SS aux .PP برای استفاده در سرویس‌های کاربری systemd.\& تنها توسط مدیر کاربر systemd قابل فراخوانی است.\& .PP .TS l lx l lx l lx l lx. T{ \fBprepare\-env\fR T} T{ محیط را آماده می‌کند (برای استفاده در ExecStart در \fBwayland\-wm\-env@.\&service\fR متصل به \fBwayland\-session\-pre@.\&target\fR).\& T} T{ \fBcleanup\-env\fR T} T{ محیط را پاک‌سازی می‌کند (برای استفاده در ExecStop در \fBwayland\-wm\-env@.\&service\fR متصل به \fBwayland\-session\-pre@.\&target\fR).\& T} T{ \fBexec\fR T} T{ دستوری را همراه با آرگومان‌ها یا یک ورودی دسکتاپ اجرا می‌کند (برای استفاده در Exec در \fBwayland\-wm@.\&service\fR متصل به \fBwayland\-session@.\&target\fR).\& T} T{ \fBapp\-daemon\fR T} T{ دیمنی برای تولید سریع‌تر آرگومان‌های برنامه، مورد استفاده توسط کلاینت \fBuwsm\-app\fR.\& T} .TE .sp 1 .SH "دیمن برنامه (APP DAEMON)" .PP به صورت \fBwayland\-wm\-app\-daemon.\&service\fR ارائه شده است تا برحسب‌تقاضا راه‌اندازی شود.\& .PP دیمن آرگومان‌های برنامه را از لوله \fB${XDG_RUNTIME_DIR}/uwsm\-app\-daemon\-in\fR دریافت می‌کند.\& آرگومان‌های حاصل به عنوان کد شل قالب‌بندی شده و در لوله \fB${XDG_RUNTIME_DIR}/uwsm\-app\-daemon\-out\fR نوشته می‌شوند.\& .PP انتظار می‌رود آرگومان‌ها با \fB\e0\fR از هم تفکیک شده باشند؛ \fB\e0\fRهای ابتدایی حذف می‌شوند.\& در ازای هر نوشتن و بستن (write+close) یک دستور دریافت می‌شود.\& .PP آرگومان نخست رفتار را مشخص می‌کند: .PP .PD 0 .IP \(bu 4 \fBapp\fR بقیه موارد همانند "uwsm app" پردازش می‌شود .IP \(bu 4 \fBping\fR تنها "pong" برگردانده می‌شود .IP \(bu 4 \fBstop\fR دیمن متوقف می‌شود .PD .PP .PP دستورهای تکی با پیشوند \fBexec\fR همراه می‌شوند، و دستورهای تکرارشونده هر یک با یک \fB&\fR پایانی سرهم‌بندی شده و با \fBwait\fR دنبال می‌شوند.\& .PP هدف همه این‌ها گذر از فرآیندهای سنگین راه‌اندازی و بارگذاری کتابخانه‌های پایتون است که با هر بار فراخوانی «\fBuwsm app\fR» کارایی را کاهش می‌دهند.\& در عوض، دیمن این کار را یک‌بار انجام داده و سپس به درخواست‌ها گوش می‌دهد، در حالی که یک اسکریپت شل ساده می‌تواند آرگومان‌ها را درون یک لوله ریخته و کد دریافت‌شده از لوله دیگر را از طریق eval اجرا کند که بسیار سریع‌تر است.\& .PP ساده‌ترین اسکریپت عبارت است از: .PP .nf .RS 4 #!/bin/sh printf \&'0%s\&' app "$@" > "${XDG_RUNTIME_DIR}/uwsm\-app\-daemon\-in" IFS=\&'\&' read \-r cmd < "${XDG_RUNTIME_DIR}/uwsm\-app\-daemon\-out" eval "$cmd" .fi .RE .PP اسکریپت کلاینت ارائه‌شده \fBuwsm\-app\fR کمی هوشمندانه‌تر است: می‌تواند دیمن را راه‌اندازی کند، زمان‌های انقضا را اعمال نماید و از خط‌های جدید در آرگومان‌های بازگشتی پشتیبانی کند.\& .PP .SH "یکپارچه‌سازی با پروفایل شل (SHELL PROFILE INTEGRATION)" .PP جهت راه‌اندازی خودکار \fBuwsm\fR هنگام ورود به سیستم، یکی از ساختارهای زیر (یا مشابه آن) را به پروفایل شل اضافه کنید.\& .PP این مورد هنگام ورود در VT 1، درخواست انتخاب یک کامپوزیتور (یا رد کردن و ادامه با شل ورود) را اعلام می‌کند: .PP .nf .RS 4 if uwsm check may\-start && uwsm select; then exec systemd\-cat \-t uwsm_start uwsm start default fi .fi .RE .PP این مورد صرفاً بسته به VT پیش‌زمینه، یک کامپوزیتور مشخص را راه‌اندازی می‌کند: .PP .nf .RS 4 if uwsm check may\-start 1; then exec systemd\-cat \-t uwsm_start uwsm start sway\&.desktop elif uwsm check may\-start 2; then exec systemd\-cat \-t uwsm_start uwsm start labwc\&.desktop fi .fi .RE .PP استفاده از «\fBuwsm check may\-start\fR» به عنوان یک شرط \fBضروری\fR است؛ نه تنها برای جلوگیری از تلاش‌های تصادفی برای راه‌اندازی در شرایط نامناسب، بلکه به این دلیل که راه‌اندازی ممکن است شامل سورس کردن مجدد پروفایل شل باشد که می‌تواند منجر به حلقه‌های بی‌پایان ناخواسته شود.\& .PP برای آگاهی از جزئیات بررسی‌کننده \fBmay\-start\fR، بخش زیرفرمان \fIcheck\fR را ببینید.\& .PP دستور \fBexec\fR به uwsm اجازه می‌دهد تا جایگزین شل ورود شود تا به درستی به نشست کاربر متصل گردد و خاتمه نشست را مدیریت کند.\& .PP عبارت «\fBsystemd\-cat \-t uwsm_start\fR» (اختیاری) دستور داده‌شده به آن (\fBuwsm\fR) را طوری اجرا می‌کند که خروجی استاندارد (stdout) و خطای استاندارد (stderr) آن به ژورنال systemd متصل شده و با شناسه «uwsm_start» برچسب‌گذاری شوند.\& برای گزینه‌های بیشتر \fIsystemd\-cat(1)\fR را ببینید.\& .PP.SH "استفاده در مدخل میزکار (USE INSIDE DESKTOP ENTRY)" .PP برای راه‌اندازی \fBuwsm\fR از طریق یک مدیر نمایش/ورود (display/login manager)، می‌توان از «\fBuwsm start\fR» درون مدخل‌های میزکار (Desktop Entries) استفاده کرد.\& برای نمونه در \fB/usr/local/share/wayland\-sessions/my\-compositor.\&desktop\fR: .PP .nf .RS 4 [Desktop Entry] Name=My compositor (with UWSM) Comment=My cool compositor Exec=uwsm start \-N "My compositor" \-D mycompositor \-C "My cool compositor" mywm DesktopNames=mycompositor Type=Application .fi .RE .PP نکاتی که باید در نظر داشته باشید: .PP .PD 0 .IP \(bu 4 برای حفظ یکپارچگی، آرگومان‌های خط فرمان باید بازتاب‌دهنده کلیدهای مدخل باشند .IP \(bu 4 دستور موجود در \fBExec=\fR باید با «\fBuwsm start\fR» آغاز شود .IP \(bu 4 نباید به خودش اشاره کند (به عنوان ترکیبی از Desktop Entry ID و Action ID) .IP \(bu 4 نباید به یک Desktop Entry ID و Action ID اشاره کند که آن هم از `uwsm` استفاده می‌کند .PD .PP به‌طور بالقوه ممکن است چنین مدخل‌هایی توسط خود \fBuwsm\fR نیز پیدا و استفاده شوند، یعنی در وضعیت یکپارچگی با shell profile یا هنگام راه‌اندازی به‌صورت دستی.\& رعایت اصول بالا تضمین می‌کند که \fBuwsm\fR خود را به‌درستی شناسایی کرده و آرگومان‌های درخواست‌شده درون مدخل را بدون هیچ‌گونه اثر جانبی تجزیه کند.\& .PP .SH "همچنین ببینید (SEE ALSO)" .PP \fBuwsm\-plugins\fR(3), \fBsystemd\-run\fR(1), \fBsystemd\-cat\fR(1), \fBsystemd.\&special\fR(7)