scrot(1) ابزار خط فرمانی تصویربرداری از صفحه نمایش scrot(1)

scrot - ابزار خط فرمانی تصویربرداری از صفحه نمایش

scrot [-bcfhimopuvz] [-a X,Y,W,H] [-C NAME] [-D DISPLAY] [-d SEC] [-e CMD]
      [-k OPT] [-l STYLE] [-M NUM] [-n OPTS] [-q NUM] [-s OPTS] [-t % | WxH]
      [-w NUM] [[-F] FILE]

برنامهٔ scrot (مخفف SCReenshOT) یک ابزار خط فرمانی ساده برای تصویربرداری از صفحه نمایش است که از imlib2 برای گرفتن و ذخیره کردن تصاویر استفاده می‌کند.

ابزار scrot دارای ویژگی‌های کاربردی متعددی است:

  • پشتیبانی از چندین قالب تصویر مختلف: JPG، PNG، GIF و غیره.
  • کیفیت تصویر گرفته‌شده قابل پیکربندی است.
  • امکان تصویربرداری از یک پنجره مشخص یا یک ناحیه مستطیلی بر روی صفحه وجود دارد.

از آنجا که scrot یک ابزار خط فرمانی است، به‌سادگی می‌توان از آن در اسکریپت‌ها و کاربردهای نوین استفاده کرد. برای نمونه، می‌توان از scrot برای پایش یک X server در غیاب کاربر استفاده نمود.

برنامهٔ scrot یک نرم‌افزار آزاد تحت مجوز MIT-feh است.

انتخاب غیرتعاملی یک مستطیل که از موقعیت X,Y آغاز شده و دارای ابعاد وضوح W در H است.
هنگام انتخاب یک پنجره، حاشیهٔ مدیر پنجره (WM) را نیز ضبط می‌کند. برای بالا آوردن و تمرکز روی پنجره، همراه با -s استفاده شود.
مقدار NAME نام کلاس پنجره است. مرتبط با -k.
نمایش شمارش معکوس در صورت استفاده همراه با -d.
مقدار DISPLAY نمایشگری است که باید استفاده شود؛ به X(7) مراجعه کنید.
پیش از گرفتن تصویر به مدت SEC ثانیه منتظر می‌ماند. اگر پیشوند `b` داده شود (مانند `-d b8`)، تأخیر پیش از فرایند انتخاب اعمال خواهد شد.
اجرای دستور CMD روی تصویر ذخیره‌شده.
تعیین فایل خروجی. اگر FILE برابر با "-" باشد، scrot تصویر را در stdout خروجی می‌دهد. نام فایل بر اساس ساختار مشخص‌شده در بخش رشته‌های ویژه (SPECIAL STRINGS) بسط داده می‌شود. فایل خروجی می‌تواند از طریق گزینهٔ -F یا به عنوان آرگومانی بدون گزینه مشخص شود.
ثابت کردن صفحه هنگام استفاده از -s.
نمایش راهنما و خروج.
با ورودی صفحه‌کلید خارج نمی‌شود؛ کلید ESC همچنان باعث خروج خواهد شد.
تصویربرداری از پنجره‌های پشته‌ای/همپوشان و پیوستن آن‌ها به هم. برای کارکرد درست، اجرای یک Composite Manager الزامی است. OPT نویسهٔ اختیاری اتصال است: v/h (عمودی/افقی). پیش‌فرض: h
مقدار STYLE نشان‌دهنده سبک خط در زمان استفاده از گزینهٔ -s است؛ به بخش SELECTION STYLE مراجعه کنید.
تصویربرداری از مانیتور Xrandr با شمارهٔ NUM.
در صورت وجود چند نمایشگر، از تمامی آن‌ها به ترتیب تصویربرداری می‌کند.
به‌طور پیش‌فرض scrot فایل خروجی (FILE) را بازنویسی نمی‌کند؛ از این گزینه برای فعال‌سازی بازنویسی استفاده کنید.
ضبط مکان‌نمای موشوار.
مقدار NUM باید در بازهٔ [1, 100] باشد. مقدار بالاتر نشان‌دهنده کیفیت بهتر تصویر و مقدار کمتر نشان‌دهنده کیفیت پایین‌تر است. اثر این پرچم به قالب فایل بستگی دارد؛ به بخش COMPRESSION QUALITY مراجعه کنید. پیش‌فرض: 75.
انتخاب تعاملی یک پنجره یا ناحیهٔ مستطیلی با موشوار، استفاده از کلیدهای جهت‌نما برای تغییر اندازه. گزینه‌های -l و -f را ببینید. OPTS اختیاری است؛ به بخش SELECTION MODE مراجعه کنید.
همچنین یک تصویر بندانگشتی تولید می‌کند. آرگومان نشان‌دهنده وضوح تصویر بندانگشتی است: اگر آرگومان یک تک‌عدد باشد، درصدی از وضوح تصویر اصلی در اندازهٔ کامل است؛ اگر دو عدد باشد که با نویسهٔ "x" از هم جدا شده‌اند، ابعاد وضوح خواهد بود. اگر یکی از ابعاد وضوح برابر با 0 باشد، با عددی جایگزین می‌شود که نسبت ابعاد تصویر در اندازهٔ کامل را حفظ کند. مثال‌ها: 10، 25، 320x240، 500x200، 100x0، 0x480.
استفاده از پنجره‌ای که در حال حاضر دارای فوکوس است.
نمایش اطلاعات نسخه و خروج.
شناسهٔ پنجره برای تصویربرداری. مقدار WID باید یک شناسهٔ معتبر باشد (به xwininfo(1) مراجعه کنید).
سطح فشرده‌سازی برای استفاده؛ مقدار LVL باید در بازهٔ [0, 9] باشد. سطح فشرده‌سازی بالاتر حجم فایل کمتری ایجاد می‌کند، اما به بهای کندتر شدن سرعت کدگذاری/ذخیره‌سازی تمام می‌شود. اثر این پرچم به قالب فایل بستگی دارد؛ به بخش COMPRESSION QUALITY مراجعه کنید. پیش‌فرض: 7.
جلوگیری از ایجاد صدای بوق.
مشخص کردن قالب فایل خروجی؛ به عنوان نمونه "--format png". در صورتی که قالبی مشخص نشود، scrot از پسوند فایل برای تشخیص قالب استفاده خواهد کرد. اگر نام فایل فاقد پسوند باشد، PNG به عنوان حالت جایگزین استفاده خواهد شد.
فهرست کردن تمام گزینه‌های برنامه. اگر آرگومان "tsv" باشد، خروجی را به صورت فهرستی جداشده با نویسهٔ TAB مناسب برای اسکریپت‌ها تولید می‌کند. مقدار پیش‌فرض "human" است. توجه داشته باشید که قالب tsv پایدار نبوده و ممکن است در آینده تغییر کند..SH "رشته‌های ویژه (SPECIAL STRINGS)" پارامترهای -e، -F و FILE می‌توانند مشخص‌کننده‌های قالبی را بپذیرند که هنگام پردازش توسط scrot بسط داده می‌شوند. دو نوع مشخص‌کننده قالب وجود دارد: نویسه‌هایی که پیش از آن‌ها '%' می‌آید توسط strftime(3) تفسیر می‌شوند. نوع دوم مختص خود scrot بوده و با پیشوند '$' مشخص می‌شوند. مشخص‌کننده‌های زیر توسط scrot شناخته می‌شوند:
$$   نویسه واقعی '$'.
$a   نام میزبان (hostname) سیستم.
$F   قالب فایل خروجی.
$f   مسیر تصویر (می‌تواند نسبی باشد؛ در صورت استفاده در نام فایل نادیده گرفته می‌شود).
$h   ارتفاع تصویر.
$m   مسیر تصویر بندانگشتی (می‌تواند نسبی باشد؛ در صورت استفاده در نام فایل نادیده گرفته می‌شود).
$n   نام پایه (basename) تصویر (در صورت استفاده در نام فایل نادیده گرفته می‌شود).
$p   اندازه تصویر به پیکسل.
$s   اندازه تصویر به بایت (در صورت استفاده در نام فایل نادیده گرفته می‌شود).
$t   قالب فایل تصویر (در صورت استفاده در نام فایل نادیده گرفته می‌شود).
$w   عرض تصویر.
$W   نام پنجره (تنها برای --select، --focused و --window).
\n   یک سطر جدید واقعی (در صورت استفاده در نام فایل نادیده گرفته می‌شود).

مثال:

$ scrot '%Y-%m-%d_$wx$h.png' -e 'du -h $f'
این دستور یک فایل PNG با نامی شبیه به 2000-10-30_2560x1024.png ایجاد کرده و میزان مصرف دیسک را با du(1) نمایش می‌دهد.

هنگام استفاده از -s، می‌توانید به دلخواه عملیاتی را که باید روی ناحیه انتخابی انجام شود مشخص کنید. برخی از این عملیات پارامترهای اختیاری نیز می‌پذیرند.

capture             عکس‌برداری از ناحیه انتخابی؛ این عمل پیش‌فرض است و
                    نیازی به مشخص شدن ندارد.
hole                برجسته کردن ناحیه انتخابی با سایه انداختن بر بقیه تصویر.
hide,IMAGE          مخفی کردن ناحیه انتخابی با کشیدن ناحیه‌ای رنگی (یا تصویر) روی آن.
                    به دلخواه نام تصویر برای استفاده به عنوان پوشش مشخص می‌شود.
                    تصویر بر رنگ اولویت دارد.
blur,AMOUNT         مات کردن ناحیه انتخابی.
                    به دلخواه می‌توانید میزان مات‌شدگی را مشخص کنید.
                    مقدار باید در بازه [1, 30] باشد. پیش‌فرض: 18.
در حالت‌های 'hole' و 'hide'، رنگ ناحیه توسط ویژگی 'color' در سبک خط و میزان کدری رنگ (یا تصویر) توسط ویژگی 'opacity' مشخص می‌شود؛ بخش «سبک انتخاب» (SELECTION STYLE).

اگر در حالت 'hide' از تصویری استفاده شود که فاقد کانال آلفا (alpha channel) باشد، پارامتر opacity نادیده گرفته شده و تصویر کاملاً کدر رسم خواهد شد.

مثال‌ها:

$ scrot --select=hide
$ scrot -shole --line color="Dark Salmon",opacity=200
$ scrot -sblur,10
$ scrot -shide,stamp.png --line opacity=120

هنگام استفاده از -s، می‌توانید سبک خط را با -l مشخص کنید.

گزینه -l فهرستی از مشخص‌کننده‌ها را که با کاما از هم جدا شده‌اند به عنوان آرگومان می‌پذیرد:

style=STYLE     مقدار STYLE یا "solid" است یا "dash" (بدون علامت نقل‌قول).
width=NUM       مقدار NUM تعداد پیکسل‌ها در بازه [1, 8] است.
color="COLOR"   رنگ یک کد رنگ هگزادسیمال HTML یا نام یک رنگ است.
                کدهای رنگ HTML از یک علامت '#' و به دنبال آن ۳ عدد
                هگزادسیمال ۲ رقمی تشکیل شده‌اند که به ترتیب نمایانگر
                قرمز، سبز و آبی هستند. مثال‌ها: #FF0000 (قرمز)،
                #E0FFFF (فیروزه‌ای روشن)، #000000 (سیاه).
opacity=NUM     مقدار NUM در بازه [0, 255] است. ۲۵۵ به معنای ۱۰۰٪ کدر
                و ۰ به معنای ۱۰۰٪ شفاف است. این گزینه برای شفافیت خط
                تنها در صورتی مؤثر است که کامپوزیتور از
                _NET_WM_WINDOW_OPACITY پشتیبانی کند.
mode=MODE       مقدار MODE می‌تواند "auto"، "edge" یا "classic" (بدون نقل‌قول) باشد.
                گزینه edge انتخاب جدید است و classic از روش قدیمی استفاده می‌کند.
                "auto" در صورتی که پرچم -f فعال نباشد از "edge" استفاده می‌کند
                وگرنه از "classic". حالت "edge" مشخص‌کننده style را نادیده می‌گیرد
                و "classic" مشخص‌کننده opacity را نادیده می‌گیرد.
بدون گزینه -l، سبک پیش‌فرض اعمال می‌شود:
mode=auto,style=solid,opacity=100
عرض پیش‌فرض به‌طور خودکار بر اساس DPI نمایشگر تعیین می‌شود.

مثال:

    $ scrot -l style=dash,width=3,color="red" -s
برای قالب‌های بدون اتلاف (مانند PNG)، گزینه‌های کیفیت نادیده گرفته می‌شوند. برای قالب‌های با اتلاف که کیفیت و فشرده‌سازی در آن‌ها به یکدیگر وابسته‌اند (مانند JPEG)، فشرده‌سازی نادیده گرفته خواهد شد. و برای قالب‌های تصویری که کیفیت و فشرده‌سازی در آن‌ها می‌تواند به صورت مستقل تنظیم شود (مانند WebP، JXL)، هر دو پرچم اعمال می‌شوند.

در ادامه چند مثال از به‌کارگیری scrot به همراه سایر ابزارها آورده شده است.

کپی کردن نماگرفت در کلیپ‌بورد با استفاده از xclip(1):

$ scrot - | xclip -selection clipboard -target image/png
گرفتن نماگرفت و بهینه‌سازی اندازه آن با optipng(1):
$ scrot -e 'optipng -o4 $f'
انتخاب یک پنجره بر اساس PID با استفاده از xdo(1):
$ scrot -w $(xdo id -p PID)
گرفتن نماگرفت و درج یادداشت روی آن با ImageMagick(1):
$ scrot - | magick - -pointsize 64 -gravity North -annotate +16+16 'hello, world!' out.png

scrot در ابتدا توسط Tom Gilbert توسعه داده شد.

در حال حاضر، کد منبع توسط داوطلبان نگهداری می‌شود. نسخه‌های جدیدتر در نشانی https://github.com/resurrecting-open-source-projects/scrot در دسترس هستند.

ImageMagick(1) optipng(1) xclip(1) xdo(1) xwininfo(1)

13 Mar 2026 scrot-2.0.0