kitten-dnd(1) kitty kitten-dnd(1)

kitten-dnd - انجام عملیات کشیدن و رها کردن (Drag and Drop)، حتی از طریق SSH

کشیدن و رها کردن فایل‌ها از شل

از kitten dnd می‌توان برای کشیدن و رها کردن فایل‌ها بین شل و برنامه‌های گرافیکی دلخواه استفاده کرد؛ این قابلیت حتی روی SSH نیز کار می‌کند، بنابراین می‌توانید به سادگی و بدون دردسر تنها با کشیدن از یک پنجره kitty به پنجره‌ای دیگر، فایل‌ها را میان دو رایانه انتقال دهید. استفاده از آن به همین سادگی است:

kitten dnd file-to-drag.xyz

سپس، با موشواره از داخل پنجره شروع به کشیدن کنید؛ فایل file-to-drag.xyz کشیده خواهد شد و می‌توانید آن را روی یک مدیر فایل گرافیکی یا پنجره دیگری که این kitten را اجرا می‌کند رها کنید. همچنین می‌توانید دایرکتوری‌ها را برای کشیدن کل ساختار درختی مشخص کنید.

به طور مشابه، رها کردن (drop) نیز با اجرای kitten انجام می‌شود:

kitten dnd

سپس، تعدادی فایل را از یک مدیر فایل گرافیکی یا پنجره دیگری که kitten dnd را اجرا می‌کند کشیده و روی این پنجره رها کنید. فایل‌ها (بسته به این که آن‌ها را روی کدام ناحیه رها کنید) در دایرکتوری کاری فعلی رونوشت یا جابه‌جا می‌شوند.

بهترین ویژگی این است که حتی روی SSH نیز کار می‌کند. بنابراین اگر فقط می‌خواهید چند فایل را سریعاً از یک رایانه به دیگری منتقل کنید، تنها کاری که باید بکنید برقراری ارتباط ssh با رایانه دوردست است:

kitten ssh remote-computer-name

سپس، kitten dnd را روی رایانه دوردست اجرا کنید:

kitten dnd files-or-dirs-to-drag

همین! اکنون می‌توانید از رایانه دوردست فایل کشیده یا به آن رها کنید. برای سفارشی‌سازی رفتار kitten از طریق پرچم‌های خط فرمان، بخش زیر را ببینید.

این kitten برای عملکرد خود از یک پروتکل جدید توسعه‌یافته توسط kitty استفاده می‌کند؛ برای جزئیات، پروتکل Drag and Drop را در <> ببینید.

کد منبع این kitten در گیت‌هاب در نشانی https://github.com/kovidgoyal/kitty/tree/master/kittens/dnd در دسترس است.

kitten dnd [options] [files to drag]

انجام عملیات کشیدن و رها کردن، حتی از طریق SSH.

هر آرگومانی در خط فرمان به عنوان فایل‌ها و دایرکتوری‌ها برای کشیدن در نظر گرفته می‌شود. آن‌ها با نوع MIME از نوع text/uri-list کشیده خواهند شد که سپس می‌توان برای رونوشت فایل‌ها، آن را در هر مدیر فایل یا برنامه مشابهی رها کرد.

اگر نوع MIME از نوع text/uri-list روی این پنجره رها شود، فایل‌ها و دایرکتوری‌های درون آن در دایرکتوری کاری فعلی رونوشت می‌شوند. هنگام کشیدن از این پنجره، اگر هنگام رها کردن یک عملیات جابه‌جایی انجام شود و مقصد رها کردن یک ماشین دوردست باشد، فایل‌ها و دایرکتوری‌های کشیده‌شده حذف می‌شوند.

اگر داده‌ای روی STDIN موجود باشد، هنگام کشیدن به عنوان text/plain تنظیم می‌شود، مگر اینکه text/plain از طریق --drag مشخص شده باشد. هر داده text/plain که روی این پنجره رها شود، در صورتی که STDOUT به یک فایل متصل باشد به STDOUT ارسال می‌شود، در غیر این صورت نادیده گرفته خواهد شد.

کلیدهای Esc یا Ctrl+C را در هر زمان برای خروج از kitten بفشارید، که هر عملیات کشیدن در حال انجام را لغو می‌کند.

هنگام شروع کشیدن، از فایل مشخص‌شده به عنوان منبع داده برای نوع MIME تعیین‌شده استفاده می‌کند. ساختار دستوری: mime-type:path/to/file است. برای نمونه image/jpeg:mypic.jpg. می‌تواند چندین بار برای کشیدن چندین نوع MIME مشخص شود.
هنگام دریافت رها کردن، از فایل مشخص‌شده به عنوان مقصد داده برای نوع MIME تعیین‌شده استفاده می‌کند. ساختار دستوری: mime-type:path/to/file است. برای نمونه image/jpeg:mypic.jpg. می‌تواند چندین بار برای فعال‌سازی دریافت چندین نوع MIME مشخص شود. اگر هیچ مسیری مشخص نشود، از رها شدن آن نوع MIME جلوگیری خواهد کرد که برای غیرفعال کردن پذیرش text/plain و text/uri-list کاربردی است.
مسیر دایرکتوری‌ای که داده‌های رهاشده در آن ذخیره می‌شوند. پیش‌فرض، دایرکتوری کاری فعلی است.
هنگام رها کردن داده‌های text/uri-list، در صورتی که این کار باعث بازنویسی فایل‌های موجود شود، تأییدیه می‌خواهد. توجه داشته باشید که تأییدیه تنها برای تداخل‌های واقعی فایل‌ها درخواست می‌شود؛ فایل‌های بدون تداخل به صورت خودکار ایجاد می‌شوند.
اجازه رها کردن در هر نقطه‌ای، نه فقط در نواحی رها کردن Copy یا Move. رها کردن در هر جا، عمل مشخص‌شده را انجام خواهد داد. پیش‌فرض: disallowed انتخاب‌ها: copy, disallowed, move
مسیر یک تصویر برای استفاده به عنوان نماد کشیدن در هنگام شروع عملیات کشیدن. باید در قالب‌های PNG/JPEG/GIF/WEBP باشد. سایر قالب‌ها برای بارگذاری تصویر نیازمند وجود ImageMagick روی سیستم خواهند بود. در صورت عدم تعیین، تصویری بر اساس داده در حال کشیده شدن مشتق می‌شود.
اندازه بندانگشتی تصویر مورد استفاده به عنوان نماد کشیدن. تصاویر بزرگ‌تر از این اندازه کوچک می‌شوند. توجه داشته باشید که اگر تصویر بسیار بزرگ باشد، ممکن است پایانه عملیات کشیدن را رد کند. پیش‌فرض: 512
فهرستی جداشده با کاما از رویدادها برای خروج. رویدادهای ممکن عبارتند از drag-finish، drop-finish و esc-key. دو رویداد نخست به ترتیب به اتمام موفقیت‌آمیز یک کشیدن یا رها کردن اشاره دارند. esc-key به معنای فشردن کلید Esc است. پیش‌فرض: esc-key

Kovid Goyal

2026, Kovid Goyal

July 30, 2026 0.48.2