xdg-desktop-portal-wlr(5) File Formats Manual xdg-desktop-portal-wlr(5)

xdg-desktop-portal-wlr - یک بک‌اند xdg-desktop-portal برای wlroots

برنامه xdg-desktop-portal-wlr (یا به اختصار xdpw) به برنامه‌های کاربردی اجازه می‌دهد تا در کامپوزیتورهای ویلند (Wayland) مبتنی بر wlroots، از طریق xdg-desktop-portal درخواست تصویربرداری از صفحه (اسکرین‌شات) و ضبط ویدئویی صفحه (اسکرین‌کست) ارسال کنند.

برنامه xdpw تلاش خواهد کرد تا فایل پیکربندی را از این مسیرها بارگذاری کند:

  • $XDG_CONFIG_HOME/xdg-desktop-portal-wlr/$XDG_CURRENT_DESKTOP
  • $XDG_CONFIG_HOME/xdg-desktop-portal-wlr/config
  • /etc/xdg/xdg-desktop-portal-wlr/$XDG_CURRENT_DESKTOP
  • /etc/xdg/xdg-desktop-portal-wlr/config

مقدار پیش‌فرض $XDG_CONFIG_HOME برابر با ~/.config است. $XDG_CURRENT_DESKTOP می‌تواند فهرستی باشد که با دو‌نقطه (:) از هم جدا شده‌اند. هر یک از اعضای این فهرست بررسی خواهند شد.

فایل‌های پیکربندی از قالب پرونده INI استفاده می‌کنند. مثال:

[screencast]
output_name=HDMI-A-1
max_fps=30
exec_before=disable_notifications.sh
exec_after=enable_notifications.sh
chooser_type=simple
chooser_cmd=slurp -f 'Monitor: %o' -or

این گزینه‌ها باید زیر بخش [screencast] قرار گیرند.

output_name = name

انتخاب این که کدام خروجی ضبط ویدئویی شود.

این گزینه همراه با chooser_type = none استفاده می‌شود. فهرست خروجی‌های موجود را می‌توان از طریق wayland-info(1) (زیر بخش wl_output) به دست آورد.

max_fps = limit

محدود کردن تعداد فریم در ثانیه به نرخ ارائه‌شده.

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

exec_before = command

اجرای command پیش از آغاز ضبط صفحه. این دستور در بستر sh اجرا خواهد شد.

exec_after = command

اجرای command پس از پایان تمام ضبط‌های صفحه. این دستور در بستر sh اجرا خواهد شد.

chooser_cmd = command

اجرای این دستور برای انتخاب یک خروجی.

برای جزئیات بیشتر به بخش OUTPUT CHOOSER مراجعه کنید.

chooser_type = type

ورودی ارسالی به انتخاب‌گر را مشخص می‌کند.

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

  • default: برنامه xdpw تلاش می‌کند از اولین انتخاب‌گر موجود در فهرست انتخاب‌گرهای تعبیه‌شده (slurp, wmenu, wofi, rofi, bemenu, mew, fuzzel) استفاده کند و در صورت عدم یافتن هیچ‌یک، به یک خروجی دلخواه بازمی‌گردد.
  • none: برنامه xdpw اجازه ضبط صفحه را یا روی خروجی مشخص‌شده با output_name یا در صورت خالی بودن، روی یک خروجی دلخواه بدون نیاز به تعامل بیشتر می‌دهد.
  • simple, dmenu: برنامه xdpw انتخاب‌گر مشخص‌شده با chooser_cmd را اجرا خواهد کرد. برای جزئیات بیشتر به بخش OUTPUT CHOOSER مراجعه کنید.

force_mod_linear = bool

اجبار بافرهای با اصلاح‌کننده ضمنی به خطی بودن (آزمایشی)

تنظیم این گزینه روی 1 برنامه xdpw را مجبور می‌کند بافرهای dma-buf با اصلاح‌کننده ضمنی (implicit modifier) را به صورت خطی (linear) تخصیص دهد. این گزینه نباید در سیستم‌های تک پردازنده گرافیکی (GPU) مورد نیاز باشد، اما می‌تواند سازگاری را به‌ویژه در سیستم‌های دارای چند پردازنده گرافیکی افزایش دهد.

این گزینه آزمایشی است و ممکن است در نسخه‌های بعدی حذف یا جایگزین شود.

انتخاب‌گر می‌تواند هر برنامه یا اسکریپتی با رفتار زیر باشد:

  • هر کد خطایی به جز 127 را بازگرداند. کد خطای 127 در داخل برنامه برای نشان دادن پیدا نشدن دستور استفاده می‌شود و تمام خروجی آن نادیده گرفته خواهد شد.
  • رشته‌ای را در stdout بازگرداند که در صورت تطابق با یکی از موارد زیر معتبر است:
    - برای انتخاب‌گرهای simple:
    - پیشوند "Monitor: " به همراه نام یک خروجی معتبر مطابق با wayland-info(1).
    - پیشوند "Window: " به همراه شناسه ext-foreign-toplevel-list-v1 مطابق با lswt(1).
    - برای انتخاب‌گرهای dmenu: یکی از خطوط ارائه‌شده از طریق stdin.
    هر چیز دیگری به منزله رد درخواست توسط کاربر در نظر گرفته خواهد شد.
  • برای اعلام این که کاربر ضبط صفحه را رد کرده است، انتخاب‌گر باید بدون ارسال هیچ محتوایی در stdout خارج شود.

نوع‌های پشتیبانی‌شده از انتخاب‌گرها از طریق گزینه chooser_type:

  • simple: انتخاب‌گر بدون هیچ داده اضافی در stdin فراخوانی می‌شود.
  • dmenu: انتخاب‌گر فهرستی از خروجی‌ها را که با خط جدید جدا شده‌اند (به سبک dmenu) در stdin دریافت می‌کند.

pipewire(1)

2026-04-18