.\" Generated by scdoc 1.11.4 .\" 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 "wl-mirror" "1" "2026-02-10" .PP .SH "نام (NAME)" wl\-mirror \- یک کلاینت ساده برای آینه‌کردن خروجی ویلند .PP .SH "خلاصه دستور (SYNOPSIS)" .PP \fBwl-mirror\fR [-h,-V,-v,-c,-i,-f,-s S,-b B,-t T,-r R,-S] .PP .SH "گزینه‌ها (OPTIONS)" .PP \fB-h, --help\fR .RS 4 نمایش پیام راهنما و خروج.\& .PP .RE \fB-V, --version\fR .RS 4 نمایش اطلاعات نسخه و خروج.\& .PP .RE \fB-v, --verbose\fR \fB --no-verbose\fR .RS 4 فعال یا غیرفعال کردن گزارش‌گیری اشکال‌زدایی (دیباگ).\& .PP .RE \fB-c, --show-cursor\fR \fB --no-show-cursor\fR .RS 4 نمایش نشانگر ماوس روی سطح آینه‌شده (به‌طور پیش‌فرض فعال است).\& .PP .RE \fB-i, --invert-colors\fR \fB --no-invert-colors\fR .RS 4 معکوس کردن رنگ‌ها در سطح آینه‌شده.\& .PP .RE \fB-f, --freeze\fR \fB --unfreeze\fR \fB --toggle-freeze\fR .RS 4 ثابت کردن (فریز)، رفع انجماد، یا تغییر وضعیت انجماد تصویر فعلی روی صفحه نمایش.\& .PP .RE \fB-F, --fullscreen\fR .RS 4 باز شدن به‌صورت یک پنجره تمام‌صفحه، یا تبدیل پنجره فعلی به تمام‌صفحه در حالت جاری (stream).\& .PP .RE \fB --no-fullscreen\fR .RS 4 باز شدن به‌صورت یک پنجره معمولی (به‌طور پیش‌فرض فعال است)، یا خروج از حالت تمام‌صفحه در حالت جاری (stream).\& .PP .RE \fB --fullscreen-output O\fR .RS 4 تنظیم یک خروجی متفاوت برای تمام‌صفحه شدن روی آن (پیش‌فرض خروجی فعلی است)، مستلزم \fB--fullscreen\fR است.\& .PP .RE \fB --no-fullscreen-output\fR .RS 4 تنظیم مجدد خروجی هدف تمام‌صفحه به خروجی پنجره فعلی، مستلزم \fB--no-fullscreen\fR است.\& .PP .RE \fB-s f, --scaling fit\fR .RS 4 مقیاس‌بندی برای گنجاندن کامل (fit) و در صورت نیاز افزودن حاشیه سیاه (letterboxing) (به‌طور پیش‌فرض فعال است).\& .PP .RE \fB-s c, --scaling cover\fR .RS 4 مقیاس‌بندی برای پوشش کامل (cover) و در صورت نیاز برش تصویر.\& .PP .RE \fB-s e, --scaling exact\fR .RS 4 استفاده از مقیاس‌بندی مضرب دقیق و در صورت نیاز افزودن حاشیه سیاه (letterboxing).\& .PP .RE \fB-s l, --scaling linear\fR .RS 4 استفاده از مقیاس‌بندی خطی (به‌طور پیش‌فرض فعال است).\& .PP .RE \fB-s n, --scaling nearest\fR .RS 4 استفاده از مقیاس‌بندی نزدیک‌ترین همسایه (nearest-neighbor).\& .PP .RE \fB-b B, --backend B\fR .RS 4 استفاده از یک موتور پشتیبان مشخص برای ضبط صفحه، بخش \fBBACKENDS\fR را ببینید.\& .PP .RE \fB-t T, --transform T\fR .RS 4 اعمال تبدیل سفارشی (چرخش و بازتاب)، بخش \fBTRANSFORMS\fR را ببینید.\& .PP .RE \fB-r R, --region R\fR .RS 4 ضبط ناحیه سفارشی صفحه R، بخش \fBREGIONS\fR را ببینید.\& .PP .RE \fB-S, --stream\fR .RS 4 پذیرش جریانی از گزینه‌های اضافی از طریق ورودی استاندارد (stdin)، بخش \fBSTREAM MODE\fR را ببینید.\& .PP .RE \fB--title T\fR .RS 4 تعیین عنوان سفارشی T برای پنجره آینه‌ای.\& این عنوان می‌تواند حاوی جای‌بان‌ها باشد، بخش \fBTITLE PLACEHOLDERS\fR را ببینید.\& .PP .RE .SH "موتورهای پشتیبان (BACKENDS)" .PP \fBauto\fR .RS 4 به‌طور خودکار موتورهای پشتیبان را به ترتیب کارایی آزمایش کرده و از اولین موردی که کار کند استفاده می‌کند (به‌طور پیش‌فرض فعال است).\& هنگامی که موتور پشتیبان فعلی ۱۰ بار پیاپی در ضبط فریم ناموفق باشد، موتور پشتیبان بعدی به‌طور خودکار انتخاب می‌شود.\& .PP ترتیب جایگزینی فعلی عبارت است از: .PP .PD 0 .IP \(bu 4 \fBextcopy-dmabuf\fR (در صورت کامپایل شدن با libGBM) .IP \(bu 4 \fBscreencopy-dmabuf\fR (در صورت کامپایل شدن با libGBM) .IP \(bu 4 \fBexport-dmabuf\fR .IP \(bu 4 \fBextcopy-shm\fR .IP \(bu 4 \fBscreencopy-shm\fR .PD .PP .RE \fBexport-dmabuf\fR .RS 4 استفاده از پروتکل \fBwlr-export-dmabuf-unstable-v1\fR برای ضبط خروجی‌ها (نیازمند wlroots).\& این موتور پشتیبان داده‌های تصویر را روی GPU نگه می‌دارد و نیازی به کپی‌های پرهزینه به CPU و بازگشت ندارد.\& .PP .RE \fBscreencopy-dmabuf\fR .RS 4 استفاده از پروتکل \fBwlr-screencopy-unstable-v1\fR برای ضبط خروجی‌ها (نیازمند wlroots).\& این موتور پشتیبان داده‌های تصویر را روی GPU نگه می‌دارد و نیازی به کپی‌های پرهزینه به CPU و بازگشت ندارد.\& این موتور پشتیبان نیازمند کامپایل شدن wl-mirror با پشتیبانی از تخصیص DMA-BUF از طریق libGBM است.\& .PP .RE \fBscreencopy-shm\fR .RS 4 استفاده از پروتکل \fBwlr-screencopy-unstable-v1\fR برای ضبط خروجی‌ها (نیازمند wlroots).\& این موتور پشتیبان داده‌های تصویر را از طریق حافظه مشترک روی CPU منتقل می‌کند، اما ممکن است سازگاری بهتری با پیکربندی‌های پیچیده درایور GPU (مانند چند GPU) داشته باشد.\& .PP .RE \fBscreencopy\fR .RS 4 به‌طور خودکار \fBscreencopy-dmabuf\fR یا \fBscreencopy-shm\fR را امتحان کرده و از اولین موردی که کار کند استفاده می‌کند.\& سازوکار جایگزینی مشابه \fBauto\fR عمل می‌کند.\& .PP .RE \fBextcopy-dmabuf\fR .RS 4 استفاده از پروتکل \fBext-image-copy-capture-v1\fR برای ضبط خروجی‌ها.\& این موتور پشتیبان داده‌های تصویر را روی GPU نگه می‌دارد و نیازی به کپی‌های پرهزینه به CPU و بازگشت ندارد.\& این موتور پشتیبان نیازمند کامپایل شدن wl-mirror با پشتیبانی از تخصیص DMA-BUF از طریق libGBM است.\& .PP .RE \fBextcopy-shm\fR .RS 4 استفاده از پروتکل \fBext-image-copy-capture-v1\fR برای ضبط خروجی‌ها.\& این موتور پشتیبان داده‌های تصویر را از طریق حافظه مشترک روی CPU منتقل می‌کند، اما ممکن است سازگاری بهتری با پیکربندی‌های پیچیده درایور GPU (مانند چند GPU) داشته باشد.\& .PP .RE \fBextcopy\fR .RS 4 به‌طور خودکار \fBextcopy-dmabuf\fR یا \fBextcopy-shm\fR را امتحان کرده و از اولین موردی که کار کند استفاده می‌کند.\& سازوکار جایگزینی مشابه \fBauto\fR عمل می‌کند.\& .PP .RE .SH "تبدیل‌ها (TRANSFORMS)" .PP تبدیل‌ها به‌صورت فهرستی از بازتاب‌ها (فلیپ‌ها) که با خط تیره جدا شده‌اند و به دنبال آن‌ها مقدار چرخش مشخص می‌شوند.\& بازتاب‌ها پیش از چرخش‌ها اعمال می‌شوند و هر دوی بازتاب‌ها و چرخش‌ها اختیاری هستند.\& تبدیل‌های سفارشی پس از تطبیق با تبدیل خروجی ویلند اعمال می‌شوند، به‌طوری که اگر هیچ تبدیل سفارشی اعمال نشود، سطح آینه‌شده به سمت بالا و درست نمایش داده می‌شود.\& .PP \fBnormal\fR .RS 4 بدون تبدیل (تبدیل پیش‌فرض).\& .PP .RE \fBflipX, flipY\fR .RS 4 وارون کردن مختصات X یا Y تصویر؛ بدین معنی که \fBflipX\fR باعث جابه‌جایی چپ و راست سطح آینه‌شده می‌شود.\& .PP .RE \fB0cw, 90cw, 180cw, 270cw\fR .RS 4 اعمال چرخش در جهت عقربه‌های ساعت.\& .PP .RE \fB0ccw, 90ccw, 180ccw, 270ccw\fR .RS 4 اعمال چرخش در خلاف جهت عقربه‌های ساعت.\& .PP .RE گزینه‌های تبدیل زیر برای سازگاری با تبدیل‌های \fBsway-output\fR(5) ارائه شده‌اند: .PP \fBflipped\fR .RS 4 مشابه \fBflipX\fR.\& .PP .RE \fB0, 90, 180, 270\fR .RS 4 مشابه \fB0cw, 90cw, 180cw, 270cw\fR.\& .PP .RE .SH "ناحیه‌ها (REGIONS)" .PP ناحیه‌ها با قالبی که توسط ابزار \fBslurp\fR(1) استفاده می‌شود، مشخص می‌گردند: .PP .RS 4 \&'\&\fBx\fR,\fBy\fR \fBwidth\fRx\fBheight\fR [\fBoutput\fR]'\& .PP .RE در نحو \fBslurp\fR(1)، این ساختار به‌صورت زیر مشخص می‌شود (بخش آخر با \fB%o\fR اختیاری است): .PP .RS 4 \&'\&\fB%x\fR,\fB%y\fR \fB%w\fRx\fB%h\fR \fB%o\fR'\& .PP .RE هنگام پردازش گزینه ناحیه، ناحیه به مختصات خروجی منتقل می‌شود، بنابراین با حرکت خروجی، ناحیه ضبط‌شده نیز همراه آن حرکت می‌کند.\& هنگامی که یک ناحیه مشخص شده باشد، آرگومان مکانی \fBoutput\fR اختیاری است.\& .PP .SH "حالت جاری (STREAM MODE)" .PP در حالت جاری (stream mode)، دستور \fBwl-mirror\fR خطوط ورودی استاندارد (stdin) را به عنوان گزینه‌های اضافی خط فرمان تفسیر می‌کند.\& .PP .PD 0 .IP \(bu 4 آرگومان‌ها را می‌توان با نقل‌قول تکی یا دوگانه مشخص کرد، اما هر آرگومان باید کاملاً نقل‌قول شده باشد.\& .IP \(bu 4 آرگومان‌های بدون نقل‌قول بر اساس نویسه‌های فاصله (whitespace) جدا می‌شوند.\& .IP \(bu 4 هیچ توالی گریز (escape sequence) پیاده‌سازی نشده است.\& .PD .PP خطوط حاوی گزینه‌ها در ورودی استاندارد به‌صورت ناهمگام پردازش می‌شوند و می‌توانند تمام گزینه‌ها و خروجی ضبط‌شده را بازنویسی کنند.\& حالت جاری توسط \fBwl-present\fR(1) برای افزودن کنترل‌های تعاملی به \fBwl-mirror\fR استفاده می‌شود.\& .PP .SH "جای‌بان‌های عنوان (TITLE PLACEHOLDERS)" .PP رشته عنوان از جای‌بان‌های زیر پشتیبانی می‌کند: .PP .PD 0 .IP \(bu 4 {width}, {height}: اندازه ناحیه آینه‌شده .IP \(bu 4 {x}, {y}: آفست‌ها روی صفحه نمایش .IP \(bu 4 {target_width}, {target_height}, {target_output}: اطلاعات درباره دستگاه آینه‌شده .PD .PP چند مثال که شاید مفید باشند: .PP .RS 4 --title '\&Wayland Mirror Output {target_output}'\& .PP --title '\&{target_output}:{width}x{height}+{x}+{y}'\& .PP --title '\&resize set {width} {height} move position {x} {y}'\& .PP .RE .SH "نویسندگان (AUTHORS)" .PP نگه‌داری‌شده توسط Ferdinand Bachmann .\& اطلاعات بیشتر دربارهٔ \fBwl-mirror\fR در در دسترس است.\& .PP .SH "همچنین ببینید (SEE ALSO)" .PP \fBwl-present\fR(1) \fBslurp\fR(1) \fBsway-output\fR(5)