wl-mirror(1) General Commands Manual wl-mirror(1)

wl-mirror - یک کلاینت ساده برای آینه‌کردن خروجی ویلند

wl-mirror [-h,-V,-v,-c,-i,-f,-s S,-b B,-t T,-r R,-S] <output>

-h, --help

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

-V, --version

نمایش اطلاعات نسخه و خروج.

-v, --verbose --no-verbose

فعال یا غیرفعال کردن گزارش‌گیری اشکال‌زدایی (دیباگ).

-c, --show-cursor --no-show-cursor

نمایش نشانگر ماوس روی سطح آینه‌شده (به‌طور پیش‌فرض فعال است).

-i, --invert-colors --no-invert-colors

معکوس کردن رنگ‌ها در سطح آینه‌شده.

-f, --freeze --unfreeze --toggle-freeze

ثابت کردن (فریز)، رفع انجماد، یا تغییر وضعیت انجماد تصویر فعلی روی صفحه نمایش.

-F, --fullscreen

باز شدن به‌صورت یک پنجره تمام‌صفحه، یا تبدیل پنجره فعلی به تمام‌صفحه در حالت جاری (stream).

--no-fullscreen

باز شدن به‌صورت یک پنجره معمولی (به‌طور پیش‌فرض فعال است)، یا خروج از حالت تمام‌صفحه در حالت جاری (stream).

--fullscreen-output O

تنظیم یک خروجی متفاوت برای تمام‌صفحه شدن روی آن (پیش‌فرض خروجی فعلی است)، مستلزم --fullscreen است.

--no-fullscreen-output

تنظیم مجدد خروجی هدف تمام‌صفحه به خروجی پنجره فعلی، مستلزم --no-fullscreen است.

-s f, --scaling fit

مقیاس‌بندی برای گنجاندن کامل (fit) و در صورت نیاز افزودن حاشیه سیاه (letterboxing) (به‌طور پیش‌فرض فعال است).

-s c, --scaling cover

مقیاس‌بندی برای پوشش کامل (cover) و در صورت نیاز برش تصویر.

-s e, --scaling exact

استفاده از مقیاس‌بندی مضرب دقیق و در صورت نیاز افزودن حاشیه سیاه (letterboxing).

-s l, --scaling linear

استفاده از مقیاس‌بندی خطی (به‌طور پیش‌فرض فعال است).

-s n, --scaling nearest

استفاده از مقیاس‌بندی نزدیک‌ترین همسایه (nearest-neighbor).

-b B, --backend B

استفاده از یک موتور پشتیبان مشخص برای ضبط صفحه، بخش BACKENDS را ببینید.

-t T, --transform T

اعمال تبدیل سفارشی (چرخش و بازتاب)، بخش TRANSFORMS را ببینید.

-r R, --region R

ضبط ناحیه سفارشی صفحه R، بخش REGIONS را ببینید.

-S, --stream

پذیرش جریانی از گزینه‌های اضافی از طریق ورودی استاندارد (stdin)، بخش STREAM MODE را ببینید.

--title T

تعیین عنوان سفارشی T برای پنجره آینه‌ای. این عنوان می‌تواند حاوی جای‌بان‌ها باشد، بخش TITLE PLACEHOLDERS را ببینید.

auto

به‌طور خودکار موتورهای پشتیبان را به ترتیب کارایی آزمایش کرده و از اولین موردی که کار کند استفاده می‌کند (به‌طور پیش‌فرض فعال است). هنگامی که موتور پشتیبان فعلی ۱۰ بار پیاپی در ضبط فریم ناموفق باشد، موتور پشتیبان بعدی به‌طور خودکار انتخاب می‌شود.

ترتیب جایگزینی فعلی عبارت است از:

  • extcopy-dmabuf (در صورت کامپایل شدن با libGBM)
  • screencopy-dmabuf (در صورت کامپایل شدن با libGBM)
  • export-dmabuf
  • extcopy-shm
  • screencopy-shm

export-dmabuf

استفاده از پروتکل wlr-export-dmabuf-unstable-v1 برای ضبط خروجی‌ها (نیازمند wlroots). این موتور پشتیبان داده‌های تصویر را روی GPU نگه می‌دارد و نیازی به کپی‌های پرهزینه به CPU و بازگشت ندارد.

screencopy-dmabuf

استفاده از پروتکل wlr-screencopy-unstable-v1 برای ضبط خروجی‌ها (نیازمند wlroots). این موتور پشتیبان داده‌های تصویر را روی GPU نگه می‌دارد و نیازی به کپی‌های پرهزینه به CPU و بازگشت ندارد. این موتور پشتیبان نیازمند کامپایل شدن wl-mirror با پشتیبانی از تخصیص DMA-BUF از طریق libGBM است.

screencopy-shm

استفاده از پروتکل wlr-screencopy-unstable-v1 برای ضبط خروجی‌ها (نیازمند wlroots). این موتور پشتیبان داده‌های تصویر را از طریق حافظه مشترک روی CPU منتقل می‌کند، اما ممکن است سازگاری بهتری با پیکربندی‌های پیچیده درایور GPU (مانند چند GPU) داشته باشد.

screencopy

به‌طور خودکار screencopy-dmabuf یا screencopy-shm را امتحان کرده و از اولین موردی که کار کند استفاده می‌کند. سازوکار جایگزینی مشابه auto عمل می‌کند.

extcopy-dmabuf

استفاده از پروتکل ext-image-copy-capture-v1 برای ضبط خروجی‌ها. این موتور پشتیبان داده‌های تصویر را روی GPU نگه می‌دارد و نیازی به کپی‌های پرهزینه به CPU و بازگشت ندارد. این موتور پشتیبان نیازمند کامپایل شدن wl-mirror با پشتیبانی از تخصیص DMA-BUF از طریق libGBM است.

extcopy-shm

استفاده از پروتکل ext-image-copy-capture-v1 برای ضبط خروجی‌ها. این موتور پشتیبان داده‌های تصویر را از طریق حافظه مشترک روی CPU منتقل می‌کند، اما ممکن است سازگاری بهتری با پیکربندی‌های پیچیده درایور GPU (مانند چند GPU) داشته باشد.

extcopy

به‌طور خودکار extcopy-dmabuf یا extcopy-shm را امتحان کرده و از اولین موردی که کار کند استفاده می‌کند. سازوکار جایگزینی مشابه auto عمل می‌کند.

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

normal

بدون تبدیل (تبدیل پیش‌فرض).

flipX, flipY

وارون کردن مختصات X یا Y تصویر؛ بدین معنی که flipX باعث جابه‌جایی چپ و راست سطح آینه‌شده می‌شود.

0cw, 90cw, 180cw, 270cw

اعمال چرخش در جهت عقربه‌های ساعت.

0ccw, 90ccw, 180ccw, 270ccw

اعمال چرخش در خلاف جهت عقربه‌های ساعت.

گزینه‌های تبدیل زیر برای سازگاری با تبدیل‌های sway-output(5) ارائه شده‌اند:

flipped

مشابه flipX.

0, 90, 180, 270

مشابه 0cw, 90cw, 180cw, 270cw.

ناحیه‌ها با قالبی که توسط ابزار slurp(1) استفاده می‌شود، مشخص می‌گردند:

'x,y widthxheight [output]'

در نحو slurp(1)، این ساختار به‌صورت زیر مشخص می‌شود (بخش آخر با %o اختیاری است):

'%x,%y %wx%h %o'

هنگام پردازش گزینه ناحیه، ناحیه به مختصات خروجی منتقل می‌شود، بنابراین با حرکت خروجی، ناحیه ضبط‌شده نیز همراه آن حرکت می‌کند. هنگامی که یک ناحیه مشخص شده باشد، آرگومان مکانی output اختیاری است.

در حالت جاری (stream mode)، دستور wl-mirror خطوط ورودی استاندارد (stdin) را به عنوان گزینه‌های اضافی خط فرمان تفسیر می‌کند.

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

خطوط حاوی گزینه‌ها در ورودی استاندارد به‌صورت ناهمگام پردازش می‌شوند و می‌توانند تمام گزینه‌ها و خروجی ضبط‌شده را بازنویسی کنند. حالت جاری توسط wl-present(1) برای افزودن کنترل‌های تعاملی به wl-mirror استفاده می‌شود.

رشته عنوان از جای‌بان‌های زیر پشتیبانی می‌کند:

  • {width}, {height}: اندازه ناحیه آینه‌شده
  • {x}, {y}: آفست‌ها روی صفحه نمایش
  • {target_width}, {target_height}, {target_output}: اطلاعات درباره دستگاه آینه‌شده

چند مثال که شاید مفید باشند:

--title 'Wayland Mirror Output {target_output}'

--title '{target_output}:{width}x{height}+{x}+{y}'

--title 'resize set {width} {height} move position {x} {y}'

نگه‌داری‌شده توسط Ferdinand Bachmann <ferdinand.bachmann@yrlf.at>. اطلاعات بیشتر دربارهٔ wl-mirror در https://github.com/Ferdi265/wl-mirror در دسترس است.

wl-present(1) slurp(1) sway-output(5)

2026-02-10