WL-CLIPBOARD(1) General Commands Manual WL-CLIPBOARD(1)

wl-clipboard - ابزارهای خط فرمان رونوشت و جای‌گذاری Wayland

wl-copy [--primary] [--type mime/type] [text...]

wl-paste [--primary] [--type mime/type]

تنها کاربردی‌ترین گزینه‌ها در اینجا فهرست شده‌اند؛ برای دیدن فهرست کامل به ادامه مراجعه کنید.

دستور wl-copy متن مشخص‌شده (text) را در کلیپ‌بورد Wayland کپی می‌کند. اگر هیچ متنی (text) مشخص نشده باشد، wl-copy داده‌ها را از ورودی استاندارد خود کپی می‌کند.

دستور wl-paste داده‌ها را از کلیپ‌بورد Wayland در خروجی استاندارد خود جای‌گذاری می‌کند.

اگرچه wl-copy و wl-paste به‌ویژه برای متن ساده و دیگر قالب‌های محتوای متنی بهینه‌سازی شده‌اند، اما به‌طور کامل از محتوای انواع MIME دلخواه پشتیبانی می‌کنند. wl-copy نوع محتوای کپی‌شده را با اجرای xdg-mime(1) روی آن به‌طور خودکار تشخیص می‌دهد. wl-paste بر اساس فهرست انواع MIME ارائه‌شده و پسوند فایلی که در آن جای‌گذاری می‌کند، بیشترین تلاش خود را برای انتخاب یک نوع مناسب به کار می‌گیرد. اگر از نوع انتخاب‌شده توسط آن‌ها راضی نیستید یا نمی‌خواهید به این تشخیص خودکار تکیه کنید، می‌توانید نوع مورد استفاده را صراحتاً با گزینهٔ --type مشخص کنید.

برای تجزیهٔ گزینه‌ها، wl-clipboard از توابع کتابخانه‌ای getopt(3) استفاده می‌کند که قابلیت‌های آن به کتابخانهٔ C مورد استفاده بستگی دارد. به‌ویژه، ممکن است بتوان -- را به عنوان یک آرگومان مستقل مشخص کرد تا از تجزیهٔ آرگومان‌های بعدی به عنوان گزینه جلوگیری شود (که به شما امکان می‌دهد متنی شامل کلماتی را که با علامت - شروع می‌شوند کپی کنید)، و گزینه‌های طولانی را تا پیشوندهای یکتای آن‌ها خلاصه کرد.

به جای کلیپ‌بورد معمولی، از کلیپ‌بورد «اولیه» (primary) استفاده می‌کند.
تنها به یک درخواست جای‌گذاری پاسخ می‌دهد و سپس خارج می‌شود. مگر اینکه از یک مدیر کلیپ‌بورد که مشخصاً برای جلوگیری از این کار طراحی شده استفاده شود، این گزینه تأثیر پاک‌کردن کلیپ‌بورد پس از اولین جای‌گذاری را دارد که برای کپی کردن داده‌های حساس مانند گذرواژه‌ها مفید است. توجه داشته باشید که این کار ممکن است جای‌گذاری در برخی کلاینت‌هایی را که انتظار دارند بتوانند چندین بار جای‌گذاری کنند با اختلال مواجه کند؛ به‌ویژه مشخص شده است که هنگام استفاده از این گزینه، جای‌گذاری در پنجره‌های XWayland دچار مشکل می‌شود.
به‌طور پیش‌فرض، wl-copy منشعب (fork) شده و به درخواست‌های داده در پس‌زمینه پاسخ می‌دهد؛ این گزینه آن رفتار را لغو کرده و باعث می‌شود wl-copy در پیش‌زمینه اجرا شود.
به جای کپی کردن هر چیزی، کلیپ‌بورد را پاک می‌کند تا هیچ چیزی کپی نشود.
نویسهٔ خط جدید انتهایی را، در صورت وجود در فایل ورودی، کپی نمی‌کند.
نویسهٔ خط جدید را پس از محتوای جای‌گذاری‌شدهٔ کلیپ‌بورد اضافه نمی‌کند. این گزینه برای انواع محتوای غیرمتنی و هنگام استفاده از حالت --watch به‌طور خودکار فعال می‌شود.
نوع MIME انتخاب‌شده به‌طور خودکار را لغو می‌کند. برای wl-copy، این گزینه مشخص می‌کند که محتوا تحت چه نوعی ارائه شود. برای wl-paste، تعیین می‌کند که محتوا در قالب کدام‌یک از انواع ارائه‌شده درخواست شود. علاوه بر انواع MIME خاص مانند image/png، دستور wl-paste نام‌های نوع عمومی مانند text و image را نیز می‌پذیرد که باعث می‌شود نوع MIME ارائه‌شده‌ای را که با نام عمومی داده‌شده مطابقت دارد به‌طور خودکار انتخاب کند.
مشخص می‌کند که wl-copy و wl-paste باید با کدام جایگاه (seat) کار کنند. Wayland به‌طور بومی از پیکربندی‌های چندجایگاهی پشتیبانی می‌کند که در آن هر جایگاه، نشانگر ماوس، فوکوس صفحه‌کلید، و در میان موارد دیگر کلیپ‌بورد مجزای خود را دارد. نام جایگاه پیش‌فرض احتمالاً default یا seat0 است، و نام‌های جایگاه اضافی معمولاً از ویژگی udev(7) با نام ENV{WL_SEAT} می‌آیند. می‌توانید فهرست جایگاه‌های در دسترس فعلی را که توسط کامپوزیتور اعلان شده‌اند با استفاده از ابزار weston-info(1) مشاهده کنید. اگر نام جایگاه را صراحتاً مشخص نکنید، wl-copy و wl-paste جایگاهی را به دلخواه انتخاب خواهند کرد. اگر از یک سیستم تک‌جایگاهی استفاده می‌کنید، دلیل چندانی برای استفاده از این گزینه وجود ندارد.
به جای جای‌گذاری انتخاب، فهرست انواع MIME را که محتوا در آن‌ها ارائه شده است، در خروجی نمایش می‌دهد.
به جای یک بار جای‌گذاری و خارج شدن، تغییرات کلیپ‌بورد را به‌طور مداوم زیر نظر می‌گیرد و با هر بار ظاهر شدن یک انتخاب جدید، command مشخص‌شده را اجرا می‌کند. فرایند ایجادشده می‌تواند محتوای کلیپ‌بورد را از ورودی استاندارد خود بخواند. همچنین wl-paste متغیر CLIPBOARD_STATE را در محیط فرایندهای ایجادشده تنظیم می‌کند (به زیر مراجعه کنید).
این حالت به کامپوزیتوری نیاز دارد که از پروتکل data-control در wlroots پشتیبانی کند.
اشاره می‌کند که داده‌های در حال کپی حاوی گذرواژه‌ها، کلیدها یا سایر محتویات حساس هستند. برخی از مدیران کلیپ‌بورد ممکن است با ذخیره نکردن داده‌های کپی‌شده در تاریخچهٔ کلیپ‌بورد به این موضوع واکنش نشان دهند. این متناظر با CLIPBOARD_STATE=sensitive است (به زیر مراجعه کنید).
نسخهٔ wl-clipboard و اطلاعات کوتاهی دربارهٔ مجوز آن را نمایش می‌دهد.
پیام راهنمای کوتاهی شامل فهرست گزینه‌های موجود را نمایش می‌دهد.

مشخص می‌کند که wl-copy و wl-paste باید به کدام سرور Wayland متصل شوند. این همان متغیر محیطی است که به سایر کلاینت‌های Wayland مانند برنامه‌های گرافیکی که به این سرور Wayland متصل می‌شوند، ارسال می‌کنید. این متغیر معمولاً به‌طور خودکار توسط نشست گرافیکی و کامپوزیتور Wayland تنظیم می‌شود. برای جزئیات بیشتر wl_display_connect(3) را ببینید.
هنگامی که روی 1 تنظیم شود، باعث می‌شود کتابخانهٔ wayland-client(7) هر تعامل wl-copy و wl-paste با کامپوزیتور Wayland را در stderr ثبت کند.
توسط wl-paste برای دستور ایجادشده در حالت --watch تنظیم می‌شود. در حال حاضر مقادیر ممکن زیر تعریف شده‌اند:
نشان می‌دهد که کلیپ‌بورد حاوی داده‌هایی است که دستور ایجادشده می‌تواند از ورودی استاندارد خود بخواند. این رایج‌ترین حالت است.
نشان می‌دهد که کلیپ‌بورد خالی است. در این حالت ورودی استاندارد دستور ایجادشده به /dev/null متصل خواهد شد. توجه داشته باشید که این حالت با حالتی که کلیپ‌بورد حاوی داده‌هایی با اندازهٔ صفر باشد تفاوت ظریفی دارد (که برای نمونه با اجرای wl-copy < /dev/null می‌توان به آن رسید).
نشان می‌دهد که کلیپ‌بورد به دلیل یک درخواست پاک‌سازی صریح خالی است، مانند پس از اجرای wl-copy --clear. همانند nil، ورودی استاندارد دستور به /dev/null متصل خواهد شد.
نشان می‌دهد که کلیپ‌بورد حاوی داده‌های حساس مانند یک گذرواژه یا کلید است. احتمالاً بهتر است از نمایش دیداری یا ذخیرهٔ دائمی محتویات کلیپ‌بورد خودداری شود.
به هر برنامهٔ کلاینتی که پروتکل CLIPBOARD_STATE را پیاده‌سازی می‌کند توصیه می‌شود که پشتیبانی مناسبی را برای تمام مقادیر فهرست‌شده در بالا پیاده‌سازی کند، و همچنین در صورتی که CLIPBOARD_STATE تنظیم نشده باشد یا روی مقدار ناشناخته‌ای تنظیم شده باشد، رفتار معقولی را در پیش بگیرد (این امر برای باز گذاشتن فضای طراحی برای توسعه‌های آینده است). با این حال، پروتکل‌های کلیپ‌بورد فعلی موجود در Wayland به wl-clipboard اجازه نمی‌دهند مواردی را که مقادیر clear و sensitive باید تنظیم شوند شناسایی کند. به همین دلیل، در حال حاضر wl-clipboard هرگز CLIPBOARD_STATE را روی clear تنظیم نمی‌کند، و تنها زمانی آن را روی sensitive تنظیم می‌کند که با x-kde-passwordManagerHint در میان انواع MIME مواجه شود.
پروتکل CLIPBOARD_STATE عمداً به گونه‌ای طراحی شده است که مختص wl-clipboard یا Wayland نباشد؛ در واقع، سایر ابزارهای کلیپ‌بورد تشویق می‌شوند که همین پروتکل را پیاده‌سازی کنند. در حال حاضر، مشخص شده است که ابزار paste(1) در SerenityOS همین پروتکل CLIPBOARD_STATE را پیاده‌سازی کرده است.

/etc/mime.types
در صورت وجود، توسط wl-paste خوانده می‌شود تا نوع MIME مناسب برای جای‌گذاری را بر اساس پسوند نام فایل خروجی استاندارد خود تشخیص دهد.

مگر اینکه کامپوزیتور Wayland پروتکل data-control در wlroots را پیاده‌سازی کرده باشد، wl-clipboard مجبور است برای دسترسی به کلیپ‌بورد به یک ترفند متوسل شود: این ابزار برای لحظه‌ای کوتاه یک سطح (پنجره) شفاف بسیار کوچک ایجاد می‌کند. در برخی محیط‌های رومیزی (به‌ویژه هنگام استفاده از مدیر پنجره‌های کاشی‌ساز)، این کار می‌تواند باعث مشکلات بصری مانند چشمک‌زدن کوتاه شود. در برخی موارد، کامپوزیتور Wayland فوکوس را به پنجرهٔ بازشونده نمی‌دهد، که مانع دسترسی wl-clipboard به کلیپ‌بورد شده و به صورت قفل شدن (hang) نمایان می‌شود.

در حال حاضر راهی برای کپی هم‌زمان داده‌ها در چند نوع MIME، مانند چند قالب تصویر، وجود ندارد.
ببینید: https://github.com/bugaevc/wl-clipboard/issues/71

برنامهٔ wl-clipboard همیشه قادر به تشخیص متنی بودن یک نوع MIME نیست، که ممکن است جای‌گذاری در کلاینت‌هایی را که انتظار قالب‌های متنی دارند و نه application/something، دچار مشکل کند. راهکار موقت، همانند تمام مشکلات تشخیص قالب، مشخص کردن صریح نوع MIME مورد نظر است، مانند wl-copy --type text/plain.

دستورهای wl-copy --clear و wl-copy --paste-once همیشه تعامل خوبی با مدیران کلیپ‌بوردی که اصرار زیادی به حفظ محتویات کلیپ‌بورد دارند، ندارند.

برنامه‌هایی که با استفاده از جعبه‌ابزار GTK 3 نوشته شده‌اند، متن را با پایان‌خط‌های "\r\n" (که با نام CR LF نیز شناخته می‌شود) کپی می‌کنند، که بیشتر نرم‌افزارهای دیگر را غافلگیر می‌کند. برنامهٔ wl-clipboard هیچ اقدامی برای اصلاح این مورد انجام نمی‌دهد. راهکار موقت پیشنهادی این است که هنگام جای‌گذاری از یک برنامهٔ GTK 3، خروجی wl-paste را از طریق dos2unix(1) هدایت کنید.
ببینید: https://gitlab.gnome.org/GNOME/gtk/-/issues/2307

هنگام تلاش برای جای‌گذاری محتوای کپی‌شده با wl-copy، دستور wl-copy بررسی نمی‌کند که آیا نوع MIME درخواست‌شده در میان انواع ارائه‌شده توسط آن هست یا خیر، و همیشه همان داده‌ها را در پاسخ ارائه می‌دهد.

کپی یک پیام متنی ساده:
$ wl-copy Hello world!
کپی پیامی که با خط تیره آغاز می‌شود:
wl-copy -- --long
کپی فهرست فایل‌ها در ~/Downloads:
$ ls ~/Downloads | wl-copy
کپی یک تصویر:
$ wl-copy < ~/Pictures/photo.png
کپی دستور قبلی:
$ wl-copy "!!"
جای‌گذاری در یک فایل، بدون اضافه کردن خط جدید:
$ wl-paste -n > clipboard.txt
مرتب‌سازی محتویات کلیپ‌بورد:
$ wl-paste | sort | wl-copy
بارگذاری محتویات کلیپ‌بورد در یک pastebin با هر تغییر:
$ wl-paste --watch nc paste.example.org 5555

نوشته‌شده توسط Sergey Bugaev.

باگ‌های wl-clipboard را به https://github.com/bugaevc/wl-clipboard/issues گزارش دهید.
لطفاً حتماً ذکر کنید از کدام کامپوزیتور Wayland استفاده می‌کنید، و گزارش‌های اشکال‌زدایی WAYLAND_DEBUG=1 مربوط به wl-clipboard را ضمیمه کنید.

حق نشر © 2018-2026 Sergey Bugaev. مجوز GPLv3+‎: گنو GPL نسخه ۳ یا بالاتر https://gnu.org/licenses/gpl.html.
این یک نرم‌افزار آزاد است: شما در تغییر و بازتوزیع آن آزاد هستید. هیچ‌گونه ضمانتی وجود ندارد، تا حدی که قانون اجازه می‌دهد.

xclip(1), xsel(1), wl-clipboard-x11(1)

2026-03-22 wl-clipboard