نوشته شده به وسیلهی: Mohsen در 1 سال 6 ماه پیش تحت عنوان feh راهنمای-نرم-افزار
فهرست مطالب
- مقدمه
- چند مثال و نکته برای شروع
- مدهای feh
- حل مشکل پنجره شناور feh با geometry--
- format specification ها یا جانگهدارها
- معرفی چند سوییچ مفید و پر کاربرد
- سوییچ info--
- سوییچ scale-down--
- سوییچ title--
- سوییچ filelist--
- سوییچ slideshow-delay--
- سوییچ recursive--
- سوییچ randomize--
- سوییچ sort--
- سوییچ reverse--
- سوییچ cycle-once--
- سوییچ draw-tinted--
- سوییچ draw-filename--
- سوییچ start-at--
- سوییچ hide-pointer--
- سوییچ fullscreen--
- سوییچ index-info--
- سوییچ fullindex--
- سوییچ max-dimension--
- سوییچ min-dimension--
- سوییچ no-menus--
- سوییچ version--
- سوییچ image-bg--
- سوییچ caption-path--
- action ها
- سیگنالها و feh
- feh بعنوان تنظیم کننده wallpaper
- پایان مطلب و نتیجه گیری
مقدمه🔗
feh
برنامهی مشاهدهی عکس است که میتواند در محیطهای گرافیکی X11 نصب شده و مورد استفاده قرار گیرد. هدف اولیهی feh
سبک بودن و مورد استفاده سریع قرار گرفتن از طریق خط فرمان است، با این وجود میتواند با برنامههای دیگر نیز هماهنگ شده و مورد استفاده قرار گیرد.
feh
بر مبنای کتابخانه Imlib2 طراحی شده و چندین مد کاربری دارد.
شکل کلی دستور feh
به صورت زیر است:
$ feh [option] files or directories or URLs
اگر جلوی دستور نام یک یا چند فایل قرار گرفته باشد، feh
آن فایلها را برای نمایش باز میکند و در صورت قرار گرفتن نام دایرکتوری کلیه تصاویر آن دایرکتوری را نمایش میدهد. اگر نه نام فایل و نه دایرکتوری وجود نداشته باشد، feh
تصاویر دایرکتوری فعلی را برای نمایش در نظر میگیرد.
نکته
یکی از مهمترین و کاربردیترین ویژگیهای feh
قابلیت آن در نصب تصویر پسزمینه یا wallpaper است.
چند مثال و نکته برای شروع🔗
عکسهای img-1.jpg و img-2.jpg و img-16.jpg را نمایش دهید.
$ feh img-1.jpg img-2.jpg img-16.jpg
کلیه عکسهای دایرکتوری فعلی را نمایش دهید.
$ feh
کلیه عکسهای قابل نمایش دایرکتوری فعلی را به صورت تمام صفحه یا full screen نمایش دهید.
$ feh --fullscreen
عکسهای دایرکتوری doc/pic/~ را نمایش دهید.
$ feh ~/doc/pic
- هنگام نمایش عکس اگر روی عکس، دگمه X و یا Q و یا Esc را بزنید از برنامه خارج میشوید.
- دگمه P (ابتدای کلمه Previous) عکس قبلی و دگمه N (ابتدای کلمه Next) عکس بعدی را میآورد.
- دگمه D نام و شماره عکس در میان کل عکسهای موجود را، در بالا سمت چپ تصویر، نمایش میدهد. با زدن دوباره دگمه D این اطلاعات از روی تصویر حذف میشوند .
مدهای feh🔗
feh
چندین مُد کاربری دارد. هر مد با استفاده از سوییچ ویژهای در جلوی دستور feh
مشخص میگردد. در زیر به بررسی این مدها میپردازیم.
مد slideshow🔗
مد پیش فرض feh
است. یک پنجره باز میشود و عکسها درون آن پنجره نمایش داده میشوند . با فشردن دگمههای Left و Right میتوان در لیست عکسها به عکس بعدی یا عکس قبلی رفت. در هر حال فقط یک عکس نمایش داده میشود. این مد به هیچ سوییچی نیاز ندارد.
عکسهایی که در نامشان عدد ۱ میباشد را نمایش بدهید.
$ feh *1*
مد multiwindow🔗
اگر تعداد عکسهایتان زیاد است از این مد استفاده نکنید! این مد به ازای هر عکس یک پنجره جدید باز میکند. پنجرهها همزمان باز میشوند. برای استفاده از این مد از سوییچ --multiwindow
استفاده کنید.
عکسهایی که نامشان با img-2 شروع میشوند را در پنجرههای جداگانه نمایش دهید.
$ feh --multiwindow img-2*
مد montage🔗
یک عکس از کلیه عکسهای موجود در لیست نمایش، میسازد . این عکس میتواند نمایش داده شده و یا ذخیره شود. برای استفاده از این مد از سوییچ --montage
استفاده کنید.
یک مونتاژ از عکسهای موجود در دایرکتوری فعلی نمایش دهید.
$ feh --montage
مد index🔗
مانند مد montage است. با این تفاوت که در زیر تمام عکسها نام فایل عکس نیز نمایش داده میشود. این مد با سوییچ --index
فعال میشود.
عکسهای دایرکتوری فعلی را در مد index نمایش دهید.
$ feh --index
مد thumbnails🔗
مانند مد index میباشد یعنی در عکسی که مونتاژ میکند، زیر هر عکس نام فایل عکس را نیز نمایش میدهد با این تفاوت که در اینجا تمام عکسهای کوچک قابل کلیک هستند. با کلیک بر روی هر عکس کوچک، عکس اصلی در پنجرهای جداگانه و در مقیاس واقعی نمایش داده میشود. این مد با سوییچ --thumbnails
فعال میشود.
عکسهایی که به 2.jpg ختم میشوند را در مد thumbnails نمایش دهید.
$ feh --thumbnails *2.jpg
مد list🔗
مد list هیچ تصویری نشان نمیدهد در عوض در خروجی استاندارد (اکثر مواقع ترمینال) اطلاعاتی از تصاویری که در لیست قابل نمایش خود دارد را با فرمتی شبیه به دستور ls -l
نمایش میدهد. این اطلاعات شامل نام فایل، فرمت فایل، عرض و ارتفاع عکس، تعداد پیکسل و سایز تصویر و چند اطلاع دیگر است. این مد با سوییچ --list
فعال میشود.
اطلاعات کلیه تصاویر موجود در دایرکتوری فعلی را نمایش دهید.
$ feh --list
NUM FORMAT WIDTH HEIGHT PIXELS SIZE ALPHA FILENAME
1 png 540 598 322k 72k X ./f1.png
2 jpeg 460 288 132k 27k - ./img-1.jpg
3 jpeg 1280 960 1M 431k - ./img-10.jpg
4 jpeg 1280 1024 1M 350k - ./img-11.jpg
5 jpeg 1024 768 786k 340k - ./img-12.jpg
6 jpeg 1024 768 786k 341k - ./img-13.jpg
7 jpeg 2592 1944 5M 899k - ./img-14.jpg
8 jpeg 1024 768 786k 173k - ./img-15.jpg
9 jpeg 1280 854 1M 893k - ./img-16.jpg
10 jpeg 480 417 200k 49k - ./img-2.jpg
11 jpeg 816 612 499k 60k - ./img-3.jpg
12 jpeg 1280 1024 1M 997k - ./img-4.jpg
13 jpeg 600 400 240k 74k - ./img-5.jpg
14 jpeg 521 834 434k 36k - ./img-6.jpg
15 jpeg 1600 1200 1M 577k - ./img-7.jpg
16 jpeg 1600 1200 1M 309k - ./img-8.jpg
17 jpeg 1600 1200 1M 146k - ./img-9.jpg
اطلاعات ۵ عکس در دایرکتوری فعلی را که دارای بیشترین عرض و ارتفاع هستند را نمایش دهید.
$ feh --list | sed '1 d' | sort -k3,3nr -k4,4nr | head -n 5
7 jpeg 2592 1944 5M 899k - ./img-14.jpg
15 jpeg 1600 1200 1M 577k - ./img-7.jpg
16 jpeg 1600 1200 1M 309k - ./img-8.jpg
17 jpeg 1600 1200 1M 146k - ./img-9.jpg
12 jpeg 1280 1024 1M 997k - ./img-4.jpg
مد loadable🔗
این مد عکسی نمایش نمیدهد بلکه نام کلیه فایلهای قابل نمایش را در خروجی استاندارد مینویسد. این مد با سوییچ --loadable
فعال میشود. از این مد میتوان برای شناسایی عکسها استفاده کرد.
نام کلیه عکسهایی که قابل load شدن توسط feh
هستند را نمایش دهید.
$ feh --loadable
مد unloadable🔗
مانند مد loadable عکسی نمایش نمیدهد ولی بر عکس آن، لیست فایلهایی که توسط feh
قابل نمایش نیستند را نشان میدهد. این مد با سوییچ --unloadable
فعال میشود.
فایلهایی که برای feh
ناشناختهاند را لیست کنید.
$ feh --unloadable
./1.sh
مد customlist🔗
هیچ عکسی نشان نمیدهد بلکه اطلاعات عکسها را بر مبنای فرمتی که در جلوی سوییچ میآید در خروجی استاندارد چاپ میکند. در این فرمت میبایست از جا نگهدارها استفاده کنیم.
نام فایل، عرض و ارتفاع عکسهای دایرکتوری فعلی را در خروجی استاندارد چاپ کنید.
$ feh --customlist "%n %w %h"
1.jpg 4000 3000
10.jpg 1974 3000
100.jpg 1920 1200
101.jpg 1920 1200
102.jpg 1536 2196
حل مشکل پنجره شناور feh با geometry--🔗
در مد slideshow پنجره نمایشدهنده عکس با توجه به عرض و ارتفاع هر عکس بزرگ و کوچک میشود. اگر این موضوع شما را آزار میدهد و یا اینکه خواسته شما را در لحظهی بخصوصی برآورده نمیکند میتوانید با استفاده از سوییچ --geometry
طول و عرض پنجره را ثابت کنید.
عکسهای دایرکتوری فعلی را در پنجرهای به ابعاد ثابت 600x450 باز کنید.
$ feh --geometry 600x450 --scale-down
نکته
در مثال فوق برای اینکه تصاویر به طور کامل در پنجره نمایش داده شوند و نیاز به اسکرول نداشته باشند از سوییچ --scale-down
استفاده میکنیم.
format specification ها یا جانگهدارها🔗
بعضی از سوییچهای feh
بر مبنای خواست کاربر میتوانند اطلاعات تعریف شدهای را نمایش دهند. مثلا سوییچ --title
برای نمایش title پنجره عکس استفاده میشود. کاربری علاقه دارد عنوان پنجره فقط نام عکس باشد، دیگری علاقمند است که این عنوان مسیر کامل فایل عکس باشد و کاربر دیگری میخواهد شماره عکس در میان کل عکسها به اضافه نام عکس نمایش داده شود مثلا: 8 of 39 - london.jpg
برای برآورده کردن این خواسته ابتدا میبایست جانگهدارهای تعریف شده را بشناسیم.
ردیف | جا نگهدار | توضیحات |
---|---|---|
۱ | f% | مسیر فایل عکس همراه با نام عکس را بر میگرداند. |
۲ | F% | مانند f% بجز اینکه رشته برگشتی escape شده است و مناسب استفاده در shell script میباشد. |
۳ | w% | عرض عکس. w ابتدای کلمه width است. |
۴ | h% | ارتفاع عکس. h ابتدای کلمه height است. |
۵ | u% | شماره فایل عکس جاری داخل لیست عکسها. مثلا عکس شماره ۸ از ۴۰ |
۶ | l% | تعداد فایلهای داخل لیست عکسها. l ابتدای کلمه length میباشد. |
۷ | n% | نام فایل عکس. |
۸ | N% | نام فایل عکس به صورت Escape شده. مناسب استفاده در shell script |
۹ | m% | مد فعلی feh |
۱۰ | p% | تعداد پیکسلهای عکس. p ابتدای کلمه pixel است. |
۱۱ | P% | تعداد پیکسلهای عکس به صورت کیلو پیکسل و مگا پیکسل |
۱۲ | s% | حجم عکس به صورت بایت. s ابتدای کلمه size است. |
۱۳ | S% | حجم عکس به صورت قابل خواندن مثلا بر حسب کیلو بایت و مگا بایت |
۱۴ | t% | فرمت عکس. t ابتدای کلمه type است. |
۱۵ | o% | آفست پنجره عکس از گوشه تصویر یعنی فاصله بالا سمت چپ عکس از بالا سمت چپ صفحه نمایش. |
۱۶ | r% | گردش عکس فعلی (rotation) |
۱۷ | z% | زوم عکس فعلی |
۱۸ | v% | شماره نسخه کنونی feh . حرف v ابتدای کلمه version میباشد. |
معرفی چند سوییچ مفید و پر کاربرد🔗
هر دستوری قدرت اصلی خود را از سوییچهایش میگیرد. feh
هم از این قاعده مستثنی نیست. سوییچهای بسیاری در دستور feh
تعبیه شده است که در مواقع مورد نیاز گره از کار باز میکنند. در این قسمت به بررسی چند سوییچ میپردازیم.
سوییچ info--🔗
این سوییچ، دستوری که در جلوی آن میآید را اجرا میکند و خروجی دستور را در قسمت پایین سمت چپ عکس چاپ میکند. از جانگهدارها نیز میتوانیم با توجه به نوع دستور استفاده کنیم.
نام عکس و تاریخ دقیق را در کنار هر عکس نمایش دهید.
$ feh --geometry 500x400 --info "echo -n %n \" \"; date" ~/doc/pic
سوییچ scale-down--🔗
این سوییچ عرض و ارتفاع عکسهای بزرگ را کوچک میکند یا به عبارت دیگر عکس را scale میکند تا تمامی عکس در صفحه قابل نمایش باشد.
عکسهای دایرکتوری doc/pic/~ را به صورت scale-down نمایش دهید.
$ feh --scale-down ~/doc/pic
در اکثر مثالهایی که در بخشهای بعد میآیند از این سوییچ استفاده میکنیم تا پنجره عکس، بزرگتر از صفحه نمایش نشود.
سوییچ title--🔗
این سوییچ عنوان پنجره نمایش عکس را تنظیم میکند و میتواند شامل جانگهدارها هم باشد. متن و مقدار جایگزین جانگهدارهایی که در جلوی سوییچ میآیند در عنوان پنجره عکس نمایش داده میشوند.
عکسهای دایرکتوری doc/pic/~ را نمایش بدهید. عنوان پنجره را به این صورت تنظیم کنید: dokaj.ir - [current Image Number] of [Total Image Number] - [Image Name]
$ feh --scale-down --title "dokaj.ir - %u of %l - %n" ~/doc/pic
سوییچ filelist--🔗
دقیقا مشابه play list نرمافزارهای پخش موسیقی! نام یک فایل در جلوی سوییچ --filelist
قرار میگیرد. محتوای هر خط این فایل آدرس یک عکس است و feh
تنها عکسهای موجود در این فایل را نمایش میدهد.
اگر نام فایل -
(علامت dash) باشد به معنای ورودی استاندارد است و لیست عکسها از ورودی استاندارد (در اینجا اکثرا pipe) خوانده میشود. توجه کنید که ورودی استاندارد در اکثر مواقع صفحه کلید است ولی اینجا تایپ کردن آدرس تک تک عکسها برای نمایش منطقی نیست!
نکته
به جای سوییچ طولانی --filelist
میتوانید از سوییچ مختصر -f
نیز استفاده کنید.
عکسهای موجود در دایرکتوری فعلی را، از حجم بزرگتر به کوچکتر نمایش دهید.
$ ls -S | feh --scale-down --filelist -
کلیه عکسهای jpg دایرکتوری فعلی را نمایش دهید.
$ find . -d 1 -iname "*.jpg" >filelist
$ feh --scale-down --filelist filelist
سوییچ slideshow-delay--🔗
هنگامی که در مد slideshow یعنی همان مد پیش فرض feh
هستید برای نمایش عکس بعدی میبایست از دگمه Right استفاده کنید. ولی گاهی اوقات مثلا برای ارائهی مطلب نیاز دارید تا تصویر، بعد از مدتی خود به خود عوض شده و تصویر بعدی به نمایش درآید. در این صورت میبایست از سوییچ --slideshow-delay
استفاده کنید. این ویژگی در ساخت screen-saver هم به کار میآید.
اگر هنگام نمایش اسلایدها دگمه H را بزنید حرکت خودکار عکسها متوقف میشود. برای شروع دوباره میبایست مجددا کلید H را فشار دهید.
عکسهای دایرکتوری فعلی را به صورت تمام صفحه نمایش دهید. هر عکس ۵ ثانیه نمایش داده شود و بعد به صورت خودکار عکس بعدی بیاید.
$ feh --fullscreen --slideshow-delay 5
سوییچ recursive--🔗
کلیه تصاویر یک دایرکتوری و کلیه زیر دایرکتوریهای آن را به صورت تو در تو بررسی میکند و بسته به اینکه از کدام مد استفاده میکنید آنها را نمایش داده و یا اینکه در خروجی استاندارد مینویسد.
نکته
به جای استفاده از سوییچ طولانی --recursive
میتوانید از سوییچ کوتاه -r
استفاده کنید.
کلیه عکسهای دایرکتوری doc/pic/~ و زیر دایرکتوریهای آن را نمایش دهید. مدت زمان نمایش هر عکس ۱۰ ثانیه باشد و عکسها به صورت fullscreen به نمایش در بیایند.
$ feh --fullscreen --recursive --slideshow-delay 10 ~/doc/pic
سوییچ randomize--🔗
در هنگام نمایش عکسها به صورت slideshow لیست عکسها را بُر زده و سپس اقدام به نمایش پنجره عکس میکند.
عکسهایی که با img-1 شروع میشوند را به صورت تصادفی نمایش دهید.
$ feh --scale-down --randomize img-1*
سوییچ sort--🔗
این سوییچ لیست عکسها را بر مبنای یکی از کلمات کلیدی زیر به صورت صعودی مرتب کرده و آماده استفاده میکند:
- name
- filename
- width
- height
- pixels
- size
- format
غیر از دو مرتبسازی name و filename، مقداری تاخیر در شروع برنامه داریم، چون feh
میبایست اطلاعات عکسها را استخراج کند و سپس مرتبسازی را انجام دهد.
عکسهای دایرکتوری فعلی را بر مبنای نام عکس مرتب کرده و نمایش دهید.
$ feh --scale-down --sort name
عکسهای دایرکتوری فعلی را بر مبنای عرض مرتب کرده و نمایش دهید.
$ feh --scale-down --sort width
سوییچ reverse--🔗
لیست عکسها را معکوس میکند.
عکسهای دایرکتوری doc/pic/~ و کلیه زیر دایرکتوریهای آن را از بزرگترین عرض به کوچکترین عرض نمایش دهید.
$ feh --info "echo '%wx%h'" --geometry 700x550 --recursive --sort width --reverse ~/doc/pic
برای اینکه ابعاد پنجره، بسته به اندازهی هر عکس تغییر نکند و شناور نباشد با استفاده از سوییچ --geometry
ابعاد پنجره را در 700x550 ثابت و برای اینکه تمام عکس در پنجره نمایش داده شود از سوییچ --scale-down
استفاده کردهایم. با استفاده از سوییچ --info
ابعاد واقعی عکس را در قسمت پایین سمت چپ عکس مینویسیم تا درستی عملکرد دستور را تصدیق کنیم.
بسته به تعداد عکسها ممکن است آماده شدن تصاویر طول بکشد چون feh
میبایست ابتدا کلیه عکسها را بررسی کرده و عرض آنها را به دست بیاورد، سپس عمل مرتبسازی را انجام داده و نهایتا لیست حاصل شده را بر عکس کرده و مورد استفاده قرار دهد. البته عمل زمانبر، همان بررسی عرض عکسهاست و نه مرتبسازی و معکوس کردن.
سوییچ cycle-once--🔗
به صورت پیش فرض feh
در حالت slideshow بعد از نمایش آخرین عکس، اقدام به نمایش اولین عکس موجود در لیست عکسها میکند. سوییچ --cycle-once
به این حالت پایان میدهد، یعنی بعد از نمایش آخرین عکس، پنجره نمایش بسته و feh
خاتمه مییابد.
فقط یکبار تمام عکسهای png دایرکتوری فعلی را نمایش بده.
$ find . -d 1 -iname "*.png" | feh --scale-down --filelist - --cycle-once
سوییچ draw-tinted--🔗
بعضی سوییچها باعث میشوند که متنی روی عکس نوشته شود. سوییچ --draw-tinted
پس زمینه متن مورد نظر را کمی شفافتر می کند تا بیشتر قابل مشاهده باشد.
مثال در سوییچ --draw-filename
سوییچ draw-filename--🔗
این سوییچ نام فایل عکس را در بالا سمت چپ تصویر مینویسد.
عکسهای دایرکتوری فعلی و کلیه زیر دایرکتوریهای آن را بر مبنای نام فایل مرتب کرده و نمایش دهید. نام فایل عکس روی آن نمایش داده شود تا بتوانیم بررسی کنیم که آیا مرتبسازی درست انجام شده است یا خیر.
$ feh --scale-down --recursive --sort filename --draw-filename --draw-tinted
سوییچ start-at--🔗
بعد از سوییچ --start-at
نام یک فایل عکس میآید. این سوییچ به feh
میگوید که در لیست عکسها بگرد و عکس با نام داده شده را پیدا کن و از این عکس به بعد اقدام به نمایش عکسها کن. این سوییچ مناسب جلسات ارایه مطلب میباشد آنجاییکه در مد پیش فرض slideshow هستید و میخواهید از یک عکس به خصوص به بعد بحث را شروع یا پیگیری کنید.
عکسهای من با پیشوند -img شروع میشوند و سپس یک عدد به دنبال هر عکس میآید. این عدد به صورت صعودی میباشد. یعنی اول ۱ و بعد ۲ و الی آخر. عکسها را مرتب کرده و سپس از عکس img-8.jpg به بعد اقدام به نمایش عکسها کنید.
$ ls | sort -k1.5,1.10n | feh --start-at img-8.jpg --filelist -
سوییچ hide-pointer--🔗
این سوییچ باعث عدم نمایش نشانگر موس میشود.
مثال در معرفی سوییچ --fullscreen
سوییچ fullscreen--🔗
با استفاده از این سوییچ عکسها در حالت تمام صفحه به نمایش در میآیند.
کلیه عکسهایی که نامشان متشکل از ۹ حرف است را در حالت تمام صفحه نمایش دهید. کاربر امکان کار با موس را نداشته باشد و نام فایل به صورت خوانا روی عکس نمایش داده شود.
$ feh --draw-filename --draw-tinted --fullscreen --hide-pointer ?????????
نکته
انتخاب عکسهایی که نامشان دقیقا ۹ کاراکتر دارد را SHELL انجام میدهد و نه feh
. این کار با تفسیر ۹ علامت ?
متوالی که در انتهای دستور وارد کردهایم توسط شِل انجام میشود. ما از قابلیتهای پوسته همزمان با امکانات feh
استفاده کردهایم تا نتیجهی مورد نظرمان را بگیریم.
سوییچ index-info--🔗
تنها در دو مد index و thumbnails کاربرد دارد و در متن جلوی آن، که فرمت متن قرار گرفته در زیر هر عکس کوچک را مشخص میکند، میتوان از جانگهدارها استفاده کرد.
یک عکس از کلیه عکسهای موجود در دایرکتوری فعلی تهیه کنید. زیر هر عکس نام آن و عرض و ارتفاع مربوط به آن نوشته شده باشد.
$ feh --index --index-info "%n\n%wx%h"
سوییچ fullindex--🔗
این سوییچ راه میانبری برای سوییچ ترکیبی:
--index --index-info "%n\n%S\n%wx%h"
است. مشاهده میکنید که این سوییچ مد index را فعال میکند و فقط متن زیر هر عکسِ کوچک، حاوی اطلاعات بیشتری نسبت به مد index معمولی است. این اطلاعات شامل نام فایل عکس، حجم عکس به صورت خوانا (human readable) و عرض و ارتفاع هر عکس میباشد.
سوییچ max-dimension--🔗
کاربرد این سوییچ به این صورت است:
--max-dimension [width]x[height]
با استفاده از این سوییچ feh
تنها عکسهایی را نمایش میدهد که عرض آن width و یا کمتر و ارتفاعش height و یا کمتر باشد. اگر عرض یا ارتفاعی برای شما اهمیت ندارد عدد آن را یا یک مقدار بسیار بزرگ و یا ۱- بگذارید.
نکته مهم اینست که برای این منظور feh
میبایست عرض و ارتفاع تمام عکسها را محاسبه کند لذا ممکن است در زمان شروع برنامه کمی تاخیر به وجود بیاید.
عکسهای دایرکتوری doc/pic/~ و کلیه زیر دایرکتوریهای آن را که نهایتا ابعادی به اندازه 800x600 دارند به صورت اسلایدی و با توقف هر اسلاید ۳ ثانیه نمایش دهید.
$ feh --slideshow-delay 3 --recursive --max-dimension 800x600 ~/doc/pic
سوییچ min-dimension--🔗
کاربرد این سوییچ به این صورت است:
--min-dimension [width]x[height]
در صورت استفاده از این سوییچ feh
تنها عکسهایی را نشان میدهد که حداقل عرض و ارتفاعش اعداد داده شده باشند. اگر عرض یا ارتفاعی برای شما اهمیت ندارد آن را صفر بگذارید.
عکسهای دایرکتوری doc/pic/~ را نمایش دهید. حداقل ارتفاع عکسها میبایست ۴۵۰ پیکسل باشد.
$ feh --info "echo %wx%h" --geometry 700x550 --min-dimension 0x450 ~/doc/pic
برای کنترل پنجره نمایش عکس، آن را در ابعاد 700x500 محصور کردهایم. ابعاد واقعی عکس را با استفاده از سوییچ --info
در پایین سمت چپ هر عکس مینویسیم تا درستی عملکرد دستور را مشاهده کنیم.
سوییچ no-menus--🔗
به صورت پیش فرض میتوان روی هر عکس کلیک راست کرد و در این صورت منویی باز میشود. برای غیر فعال کردن این ویژگی از سوییچ --no-menus
استفاده میشود.
عکسهای دایرکتوری doc/pic/~ را به صورت تو در تو و تمام صفحه نمایش دهید. بعد از ۳ ثانیه مکث روی هر عکس، عکس بعدی به نمایش در بیاید. امکان راست کلیک کردن روی عکس را از کاربر بگیرید.
$ feh --recursive --fullscreen --slideshow-delay 3 --no-menus ~/doc/pic
سوییچ version--🔗
شماره نسخه کنونی برنامه feh
را در خروجی استاندارد (اکثرا ترمینال) مینویسد.
از چه نسخهی feh
استفاده میکنید؟
$ feh --version
feh version 3.6.3
Compile-time switches: curl exif verscmp xinerama
سوییچ image-bg--🔗
تنها سه مقدار تعریف شده میگیرد : checks یا white یا black. گاهی اوقات در حاشیه عکس فضای شفاف و استفاده نشدهای قرار میگیرد. مثلا در سوییچ --geometry
که عکسهای بزرگ با توجه به ابعاد پنجره به نسبت عرض و ارتفاع کوچک میشوند ممکن است در اطراف عکس فضای خالی وجود داشته باشد. با استفاده از سوییچ --image-bg
این فضای خالی را میتوانیم با سه رنگ شطرنجی، سفید و یا سیاه پر کنیم.
عکسهای دایرکتوری doc/pic/~ را در پنجرهای به ابعاد 750x450 نمایش دهید. فضای اطراف عکسها سیاه رنگ باشد. نام و عرض و ارتفاع واقعی هر عکس را نیز درون عکس نمایش دهید.
$ feh --image-bg black --draw-tinted --info "echo %n; echo %wx%h" --geometry 750x450 ~/doc/pic
سوییچ caption-path--🔗
اگر نام عکسی name.jpg باشد میتوان هرگونه اطلاعاتی در مورد آن عکس را در فایلی به نام name.jpg.txt
ذخیره کرد و از feh
خواست که آن متن را درون عکس نمایش دهد. با استفاده از سوییچ --caption-path
به feh
میگویید که فایلهای caption در کجا قرار گرفته است.
caption هر عکس را در صورت وجود، روی عکس نمایش دهید.
$ feh --geometry 750x450 --recursive --scale-down --caption-path . ~/doc/pic
نکته مهم
آدرس وارد شده در جلوی --caption-path
به صورت نسبی و نسبت به آدرس هر عکس سنجیده میشود. به عنوان نمونه در مثال بالا، فایل caption هر عکس باید دقیقا در دایرکتوری همان عکس باشد.
action ها🔗
خوشبختانه feh
علاوه بر تعریف امکانات درونی بسیار زیاد، امکان تعریف ۱۰ عملیات شخصی کاربر را نیز فراهم میکند. این ۱۰ عملیات از سوییچ --action
و --action1
شروع و تا --action9
ادامه دارد.
در جلوی این سوییچها دستور دلخواه کاربر میآید که در محیط SHELL اجرا میشود. از جانگهدارها نیز میتوان بسته به نوع هر دستور استفاده کرد. سوییچ --action
با زدن دگمه 0 اجرا میشود. سوییچ --action1
باز زدن دگمه 1 و به همین ترتیب action های بعدی با کلیدهای متناظر با شمارهشان اجرا میگردند.
نکته
با اجرا شدن هر اکشن به صورت پیش فرض عکس بعدی به نمایش در میآید. برای غیر فعال کردن این حالت قبل از دستور ;
بگذارید.
دستور feh
بنویسید که با زدن دگمه 7 آدرس فایل و عرض و ارتفاع عکس نمایش داده شده را در خروجی استاندارد (ترمینال) چاپ کند.
$ feh --geometry 750x450 --action7 "echo '%f ---> %wx%h'" ~/doc/pic
دستور feh
بنویسید که با زدن دگمه 9 آدرس دقیق عکس را در فایل images.txt/~ ذخیره کند. بعد از اجرا شدن دستور، عکس عوض نشود و همان عکسی که آدرسش در فایل قرار گرفته است نمایش داده شود.
$ feh --geometry 750x450 --action9 ';y=`realpath "%f"`; echo "$y" >>~/images.txt' ~/doc/pic
به ;
که قبل از دستورات اکشن آمده است توجه کنید. این کاراکتر باعث میشود که پس از اجرای اکشن، عکس فعلی دوباره نمایش داده شود و نه عکس بعدی.
سوییچ draw-action--🔗
با استفاده از این سوییچ در صورتیکه action یا action هایی تعریف کرده باشیم، لیست آنها در بالا سمت چپ عکس نمایش داده میشود.
دستور feh
بنویسید که با زدن دگمه 8 عکس جاری را در دایرکتوری images/~ کپی کند. لطفا لیست اکشنها را در هر عکس نمایش دهید.
$ mkdir ~/images
$ feh --draw-action --action8 ';cp "%f" ~/images' ~/doc/pic
نکته مهم
جانگهدار f% را بین ""
محصور کردهایم تا فایلهایی که حاوی space در نامشان هستند درست quote شوند.
به جای استفاده از سوییچ --draw-action
، میتوان هنگام نمایش عکس، دگمه A را زد. برای پنهان کردن اکشنها، مجددا هنگامی که فوکوس روی عکس است دگمهی A را فشار دهید.
سیگنالها و feh🔗
دو سیگنال SIGUSR1 و SIGUSR2 در feh
به ترتیب برای رفتن به عکس بعدی و رفتن به عکس قبلی استفاده میشوند. به مثال زیر توجه کنید.
با استفاده از سیگنال SIGUSR1 عکسهای دایرکتوری doc/pic/~ را به صورت اسلاید نمایش دهید. مدت نمایش هر عکس ۳ ثانیه باشد.
$ feh --geometry 500x500 --scale-down ~/doc/pic &
$ while pidof feh 1>/dev/null 2>&1
do
kill -SIGUSR1 `pidof feh`
sleep 3
done
در مثال فوق ابتدا feh
را در پس زمینه اجرا میکنیم تا خط فرمان برای پذیرش دستورات بعدی آزاد شود. سپس در حلقه while مدام از وجود پروسس feh
اطمینان حاصل میکنیم. اگر پروسس وجود داشت با استفاده از دستور kill
سیگنال SIGUSR1 را به آن ارسال میکنیم.
استفاده از سیگنال SIGUSR2 برای نمایش عکس قبلی دقیقا مشابه سیگنال SIGUSR1 است.
عکسهای دایرکتوری فعلی را بر حسب حجم فایل به صورت نزولی مرتب کنید ولی با استفاده از سیگنال SIGUSR2 لیست عکسها را به صورت معکوس (از کمترین به بیشترین حجم) مرور کنید.
$ ls -S | feh --filelist - --geometry 500x500 --scale-down &
$ while pidof feh 1>/dev/null 2>&1
do
kill -SIGUSR2 `pidof feh`
sleep 3
done
feh بعنوان تنظیم کننده wallpaper🔗
یکی از مفیدترین قابلیتهای feh
قابلیت نصب wallpaper است. feh
به صورت پیش فرض کد اجرا شده جهت نصب wallpaper جدید را در فایل fehbg./~ قرار میدهد. با قرار دادن آدرس این فایل در فایل startup محیط گرافیگی خود (فایل xinitrc.) همیشه میتوانید آخرین wallpaper را در background داشته باشید.
feh
قابلیت نصب عکس زمینه در ۵ حالت مختلف را دارد. این حالتها را به صورت جداگانه در زیر مرور میکنیم. لطفا بعد از خواندن توضیحات سه عکس با این ابعاد انتخاب کنید: یکی بسیار بزرگ، دومی متوسط و سومی کوچک و ۵ سوییچ زیر را روی هر ۳ عکس اجرا کنید تا تفاوت سوییچها را بهتر متوجه شوید.
سوییچ bg-center--🔗
عکس را کاملا در وسط صفحه قرار میدهد. اگر عکس کوچک باشد دور عکس با حاشیهای به رنگ سیاه پوشانده میشود. عکس به هیچ وجه کوچک و بزرگ نمیشود.
عکس doc/pic/5.jpg/~ را به عنوان عکس پس زمینه به حالت center استفاده کنید.
$ feh --bg-center ~/doc/pic/5.jpg
سوییچ bg-fill--🔗
عکس تمام صفحهی پس زمینه را میپوشاند. ممکن است عکس کوچک و بزرگ شود ولی نسبت عرض و ارتفاع آن حفظ میشود و همچنین احتمال دارد قسمتهایی از عکس در پس زمینه حذف شود.
عکس doc/pic/5.jpg/~ را به عنوان عکس پس زمینه به حالت fill استفاده کنید.
$ feh --bg-fill ~/doc/pic/5.jpg
سوییچ bg-max--🔗
مانند سوییچ --bg-fill
نسبت عرض و ارتفاع عکس را حفظ میکند ولی سعی در پوشاندن کل فضای پس زمینه ندارد بلکه تصویر را به حدی بزرگ یا کوچک میکند که یک طرف صفحه نمایش فضای سیاه رنگ داشته باشد. کل عکس بدون حذفشدگی در پس زمینه نمایش داده میشود.
عکس doc/pic/5.jpg/~ را به عنوان عکس پس زمینه به حالت max استفاده کنید.
$ feh --bg-max ~/doc/pic/5.jpg
سوییچ bg-scale--🔗
عکس تمام صفحه را میپوشاند و ممکن است عکس کوچک و بزرگ شود و در این کوچک و بزرگ شدن نسبت عرض و ارتفاع حفظ نمیشود.
عکس doc/pic/5.jpg/~ را به عنوان عکس پس زمینه به حالت scale استفاده کنید.
$ feh --bg-scale ~/doc/pic/5.jpg
سوییچ bg-tile--🔗
اگر عکس کوچک باشد آن را به صورت کاشیوار در پس زمینه نشان میدهد. عکسها کوچک و بزرگ نمیشوند.
عکس doc/pic/5.jpg/~ را به عنوان عکس پس زمینه به حالت tile استفاده کنید.
$ feh --bg-tile ~/doc/pic/5.jpg
پایان مطلب و نتیجه گیری🔗
اگر بخواهم مختصر و مفید این مبحث را نتیجهگیری کنم باید بگویم «feh
فوقالعاده است.» به شخصه قبل از آشنایی با feh
درکی از قابلیتهایی که یک نرمافزار مشاهدهی عکس میتواند داشته باشد نداشتم.
به نظرم با feh
میتوان هم زمان از تصویر و نرمافزار لذت برد.
شاد باشید.
من محسن هستم؛ برنامهنویس سابق PHP و Laravel و Zend Framework و پایتون و فلسک. تمرکزم بیشتر روی لاراول بود! الان از صفر مشغول مطالعات اقتصادی هستم.
برای ارتباط با من یا در همین سایت کامنت بگذارید و یا به dokaj.ir(at)gmail.com ایمیل بزنید.
در مورد این مطلب یادداشتی بنویسید.