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}'