این دستور urxvt-background است که می تواند در ارائه دهنده هاست رایگان OnWorks با استفاده از یکی از چندین ایستگاه کاری آنلاین رایگان ما مانند Ubuntu Online، Fedora Online، شبیه ساز آنلاین ویندوز یا شبیه ساز آنلاین MAC OS اجرا شود.
برنامه:
نام
پس زمینه - مدیریت پس زمینه ترمینال
خلاصه
urxvt --background-expr "بیان پس زمینه"
--پس زمینه-حاشیه
-- پس زمینه-فاصله ثانیه
سریع و خشک تقلب صفحه
فقط یک تصویر jpeg تصادفی را بارگذاری کنید و پسزمینه را بدون تغییر مقیاس یا هر چیزی با آن کاشی کنید
دیگری:
بارگذاری "/path/to/img.jpg"
به همین ترتیب، اما به جای کاشی کاری از آینه کاری/انعکاس استفاده کنید:
بار آینه "/path/to/img.jpg"
یک تصویر را بارگیری کنید و آن را به گونه ای تنظیم کنید که دقیقاً پنجره ترمینال را پر کند:
scale keep { load "/path/to/img.jpg" loading="lazy" }
با استفاده از یک pixmap ریشه با تراز مناسب به عنوان پنجره، شبه شفافیت را پیاده سازی کنید
زمینه:
ریشه root
به همین ترتیب، اما یک کپی تار نگه دارید:
rootalign keep { blur 10, root }
شرح
این برنامه افزودنی پسزمینه ترمینال را با ایجاد تصویری که در پشت آن قرار دارد، مدیریت میکند
متن، جایگزین رنگ پسزمینه عادی.
این کار را با ارزیابی عبارت Perl انجام می دهد محاسبه می کند تصویر در پرواز، برای
به عنوان مثال، با گرفتن پس زمینه ریشه یا بارگذاری یک فایل.
در حالی که قدرت کامل Perl در دسترس است، اپراتورها به همین سادگی طراحی شده اند
تا جایی که ممکن است.
به عنوان مثال، برای بارگذاری یک تصویر و مقیاس آن به اندازه پنجره، از موارد زیر استفاده کنید:
urxvt --background-expr 'scale keep { load "/path/to/mybg.png" loading="lazy" }"
یا به عنوان یک منبع X مشخص شده است:
URxvt.background-expr: scale keep { load "/path/to/mybg.png" loading="lazy" }
تئوری OF عمل
در هنگام راه اندازی، درست قبل از اینکه پنجره برای اولین بار نگاشت شود، عبارت است
ارزیابی شده و باید یک تصویر ارائه دهد. سپس تصویر در صورت لزوم گسترش می یابد تا پوشش داده شود
کل پنجره ترمینال، و به عنوان یک pixmap پس زمینه تنظیم شده است.
اگر تصویر حاوی یک کانال آلفا باشد، آنطور که هست در تصاویری که پشتیبانی میکنند استفاده میشود
کانال های آلفا (به عنوان مثال، برای یک مدیر ترکیب). در دیگر تصاویر، ترمینال
رنگ پس زمینه برای جایگزینی هر گونه شفافیت استفاده می شود.
زمانی که عبارت به طور مستقیم یا غیرمستقیم به اندازه، موقعیت و ریشه پنجره متکی باشد
pixmap یا یک تایمر، پس از آن به خاطر سپرده خواهد شد. اگر نه، حذف خواهد شد.
اگر هر یک از پارامترهایی که عبارت به آنها متکی است تغییر کند (هنگامی که پنجره جابجا می شود
یا تغییر اندازه، موقعیت یا اندازه آن تغییر می کند. هنگامی که pixmap ریشه با نقشه دیگری جایگزین می شود
پس زمینه ریشه تغییر می کند. یا زمانی که تایمر سپری شود)، آنگاه عبارت خواهد بود
دوباره ارزیابی شد
برای مثال، عبارتی مانند "scale keep { load "$HOME/mybg.png" loading="lazy" }" تصویر را مقیاس می کند.
به اندازه پنجره، بنابراین به اندازه پنجره متکی است و هر بار که آن را دوباره ارزیابی می شود
تغییر می کند، اما نه زمانی که به عنوان مثال حرکت می کند. این تضمین می کند که تصویر همیشه پر می شود
ترمینال، حتی پس از تغییر اندازه آن.
اصطلاحات
عبارات عبارات پرل معمولی هستند، در واقع بلوک های پرل هستند - که به معنای شما است
می تواند از چندین خط و عبارت استفاده کند:
مقیاس حفظ {
دوباره 3600;
if (اکنون به وقت محلی)[6]) {
بار بازگشتی "$HOME/weekday.png"؛
} دیگری {
بار بازگشتی "$HOME/sunday.png"؛
}
}
این عبارت درونی یک بار در ساعت (و هر زمان که پنجره ترمینال باشد) ارزیابی می شود
تغییر اندازه). تنظیم می کند Sunday.png به عنوان پس زمینه یکشنبه ها، و weekday.png در تمام روزهای دیگر
خوشبختانه، ما انتظار داریم که بیشتر عبارات بسیار ساده تر باشند، با پرل کم
دانش مورد نیاز
اساساً، شما همیشه با تابعی شروع می کنید که یک شیء تصویر را "تولید" می کند، مانند
"load" که یک تصویر را از دیسک بارگیری می کند، یا "root" که پنجره اصلی را برمی گرداند
تصویر پس زمینه:
"$HOME/mypic.png" را بارگیری کنید
مسیر معمولاً به عنوان یک رشته نقل قول مشخص می شود (قوانین دقیق را می توان در آن یافت
perlop manpage). در $ HOME در ابتدای رشته به خانه گسترش یافته است
دایرکتوری.
سپس یک یا چند تعدیل کننده یا عبارات فیلتر، مانند "scale" را اضافه می کنید:
بارگیری مقیاس "$HOME/mypic.png"
درست مانند یک عبارت ریاضی با توابع، شما باید این عبارات را از آن بخوانید
از راست به چپ، همانطور که "بار" ابتدا ارزیابی می شود و نتیجه آن به آرگومان تبدیل می شود
تابع "مقیاس".
بسیاری از عملگرها برخی از پارامترهای قبل از تصویر ورودی را که آن را تغییر می دهند، اجازه می دهند
رفتار - اخلاق. به عنوان مثال، "scale" بدون هیچ آرگومان اضافی، تصویر را به اندازه مقیاس می کند
از پنجره ترمینال اگر یک آرگومان اضافی را مشخص کنید، از آن به عنوان مقیاس استفاده می کند
ضریب (برای بدست آوردن یک درصد در 100 ضرب کنید):
مقیاس 2، بارگیری "$HOME/mypic.png"
این تصویر را ضریب 2 (200٪) بزرگ می کند. همانطور که می بینید، "مقیاس" اکنون دو دارد
آرگومان ها، 200 و عبارت "load"، در حالی که "load" فقط یک آرگومان دارد.
آرگومان ها با کاما از یکدیگر جدا می شوند.
Scale دو آرگومان را نیز می پذیرد، که سپس فاکتورهای جداگانه ای برای هر دو افقی و
ابعاد عمودی به عنوان مثال، عرض تصویر را نصف و تصویر را دو برابر می کند
ارتفاع:
مقیاس 0.5، 2، بارگیری "$HOME/mypic.png"
اگر این عبارات را امتحان کنید، ممکن است از کندی رنج ببرید، زیرا هر کدام
هنگامی که اندازه ترمینال تغییر می کند، تصویر PNG را دوباره بارگذاری می کند و آن را مقیاس می کند. مقیاس بندی است
معمولا سریع (و اجتناب ناپذیر)، اما بارگذاری تصویر می تواند بسیار زمان بر باشد. این هست
جایی که "نگه داشتن" مفید است:
مقیاس 0.5، 2، keep { load "$HOME/mypic.png" loading="lazy" }
عملگر "keep" تمام دستورات داخل پرانتز را فقط یک بار یا زمانی که آن را اجرا می کند، اجرا می کند
فکر می کند ممکن است نتیجه تغییر کند. در موارد دیگر آخرین مقدار محاسبه شده توسط را برمی گرداند
بلوک مهاربندی
این به این معنی است که "بار" فقط یک بار اجرا می شود که آن را بسیار سریعتر می کند، اما همچنین
به این معنی است که حافظه بیشتری استفاده می شود، زیرا تصویر بارگذاری شده باید در حافظه نگه داشته شود
همیشه. در این عبارت، مبادله به احتمال زیاد ارزش آن را دارد.
اما بازگشت به جلوهها: جلوههای دیگری به جز مقیاسبندی نیز به آسانی در دسترس هستند، برای مثال،
می توانید به جای تغییر اندازه، تصویر را برای پر کردن کل پنجره کاشی کنید:
tile keep { load "$HOME/mypic.png" loading="lazy" }
در واقع، تصاویر برگردانده شده توسط "load" به طور پیش فرض در حالت "tile" هستند، بنابراین عملگر "tile"
به نوعی زائد است
یکی دیگر از جلوه های رایج این است که تصویر را آینه کنید، به طوری که همان لبه ها لمس شوند:
mirror keep { load "$HOME/mypic.png" loading="lazy" }
یکی دیگر از عبارت های رایج پس زمینه این است:
ریشه root
این یکی ابتدا یک عکس فوری از تصویر پس زمینه صفحه می گیرد و سپس آن را به تصویر منتقل می کند
گوشه سمت چپ بالای صفحه نمایش (بر خلاف گوشه سمت چپ بالای ترمینال
پنجره)- نتیجه شبه شفافیت است: به نظر می رسد تصویر در حالی که پنجره ثابت است
به اطراف منتقل می شود.
رنگی مشخصات
هر زمان که یک اپراتور انتظار یک "رنگ" را داشته باشد، می توان آن را به یکی از دو روش مشخص کرد:
یا به عنوان رشته با مشخصات رنگ X11، مانند:
"قرمز" # رنگ نامگذاری شده
"#f00" # rgb ساده
"[50]red" # قرمز با 50٪ آلفا
"TekHVC:300/50/50" # همه چیز پیش می رود
یا به عنوان یک مرجع آرایه با یک، سه یا چهار جزء:
[0.5] # 50٪ خاکستری، 100٪ آلفا
[0.5، 0، 0] # قرمز تیره، بدون سبز یا تار، 100٪ آلفا
[0.5، 0، 0، 0.7] # یکسان با 70% آلفای صریح
حافظه پنهان و حساسیت
از آنجایی که برخی از عملیات (مانند "بارگذاری" و "تار") ممکن است زمان زیادی طول بکشد، ذخیره نتایج در حافظه پنهان می شود
می تواند برای یک عملیات روان بسیار مهم باشد. حافظه پنهان همچنین می تواند برای کاهش حافظه مفید باشد
استفاده، اگرچه، برای مثال، هنگامی که یک تصویر توسط "بار" ذخیره می شود، می تواند توسط آن به اشتراک گذاشته شود
چندین پنجره ترمینال در حال اجرا در داخل urxvtd.
"نگاه داشتن { ... }" ذخیره
مهمترین راه برای ذخیره کردن عملیات گران قیمت استفاده از "keep { ... }" است. حفظ"
اپراتور بلوکی از چند عبارت محصور شده با "{}" را می گیرد و مقدار بازگشتی را نگه می دارد
در حافظه.
یک عبارت می تواند "حساس" به رویدادهای خارجی مختلف، مانند مقیاس یا حرکت دادن
پنجره، تغییرات پس زمینه ریشه و تایمرها. به سادگی با استفاده از یک عبارت (مانند "مقیاس"
بدون پارامتر) که به مقادیر متغیر خاصی (که "متغیرها" نامیده می شوند) یا استفاده از آن بستگی دارد
آن متغیرها مستقیماً یک عبارت را به این رویدادها حساس می کنند - برای مثال،
استفاده از "scale" یا "TW" عبارت را به اندازه ترمینال حساس می کند و بنابراین به
تغییر اندازه رویدادها
هنگامی که چنین رویدادی رخ می دهد، "نگهداری" به طور خودکار باعث ارزیابی مجدد کل می شود
بیان با مقدار جدید عبارت.
"keep" برای عملیات های گران قیمت مانند "blur" بسیار مفید است:
rootalign keep { blur 20, root }
این یک بار یک کپی از پسزمینه ریشه تار میکند و در تماسهای بعدی، فقط root-
آن را تراز می کند. از آنجایی که "blur" معمولا بسیار کند است و "rootalign" بسیار سریع است، این معامله می شود
حافظه اضافی (برای pixmap تار شده در حافظه پنهان) با سرعت (تاری فقط زمانی باید دوباره انجام شود
تغییر ریشه).
"بار" ذخیره
عملگر "بار" خود تصاویر را در حافظه نگه نمی دارد، بلکه تا زمانی که تصویر وجود دارد
هنوز در حافظه است، "load" از تصویر درون حافظه به جای بارگیری تازه از آن استفاده می کند
دیسک
یعنی این عبارت:
keep { load "$HOME/path..." }
نه تنها تصویر را در حافظه پنهان می کند، بلکه سایر نمونه های ترمینال که سعی در "بارگذاری" آن دارند می توانند
استفاده مجدد از آن کپی در حافظه
منابع
COMMAND LINE سوئیچ ها
--background-expr perl-expression
عبارت Perl را برای ارزیابی مشخص می کند.
--پس زمینه-حاشیه
به طور پیش فرض، عبارت تصویری را ایجاد می کند که پنجره کامل را پر می کند و بازنویسی می کند
حاشیه ها و هر قسمت دیگری مانند نوار اسکرول.
مشخص کردن این پرچم رفتار را تغییر می دهد، به طوری که تصویر فقط جایگزین آن می شود
پس زمینه منطقه شخصیت
-- پس زمینه-فاصله ثانیه
از آنجایی که برخی از عملیات در پسوند XRender زیربنایی می تواند به طور موثری شما را مسدود کند
سرور X برای مدت طولانی، این برنامه افزودنی حداقل زمان بین به روز رسانی را اعمال می کند.
که معمولاً حدود 0.1 ثانیه است.
اگر میخواهید بهروزرسانیها را بیشتر انجام دهید، میتوانید این فاصله ایمنی را با این کار کاهش دهید
سوئیچ.
ارائه دهندگان / ژنراتورها
این توابع یک تصویر را با بارگیری آن از دیسک و گرفتن آن از ریشه ارائه می کنند
صفحه نمایش یا با تولید آن. آنها به عنوان نقطه شروع برای دریافت تصویری از شما استفاده می شوند
می تواند با
مسیر $ را بارگیری کنید
تصویر را در مسیر $ معین بارگذاری می کند. تصویر روی حالت کاشی کاری صفحه تنظیم شده است.
اگر تصویر از قبل در حافظه است (مثلاً به این دلیل که نمونه ترمینال دیگری از آن استفاده می کند)،
سپس کپی درون حافظه به جای آن برگردانده می شود.
load_uc $ path
Load uncached - همانند بار، اما تصویر را کش نمی کند، به این معنی که هست همیشه
دوباره از سیستم فایل بارگیری می شود، حتی اگر نسخه دیگری از آن در آن زمان در حافظه باشد.
ریشه
pixmap پنجره ریشه، یعنی امیدوارم تصویر پسزمینه شما را برمیگرداند
صفحه نمایش.
این تابع ریشه عبارت شما را حساس می کند، به این معنی که دوباره ارزیابی می شود
وقتی تصویر bg تغییر می کند.
رنگ ثابت دلار
یکدست $عرض، $ارتفاع، $رنگ
یک تصویر جدید ایجاد می کند و آن را به طور کامل با رنگ داده شده پر می کند. تصویر تنظیم شده است
حالت کاشی کاری
اگر $width و $height حذف شوند، یک تصویر 1x1 ایجاد می کند که برای جامد مفید است.
پس زمینه یا برای استفاده در فیلتر کردن افکت ها.
کلون $img
یک کپی دقیق از تصویر را برمی گرداند. اگر می خواهید چندین نسخه داشته باشید این کار مفید است
از یک تصویر برای اعمال افکت های مختلف.
ادغام $img ...
هر تعداد تصویر را می گیرد و آنها را با هم ادغام می کند و یک تصویر واحد ایجاد می کند
حاوی همه آنها حالت کاشی کاری تصویر اول به عنوان حالت کاشی کاری استفاده می شود
تصویر حاصل
این تابع زمانی که یک عبارت چند تصویر را برمی گرداند به طور خودکار فراخوانی می شود.
کاشی کاری حالت ها
عملگرهای زیر حالت کاشی کاری یک تصویر را تغییر می دهند، یعنی روشی که پیکسل می شود
هنگام استفاده از تصویر، خارج از ناحیه تصویر نقاشی می شوند.
کاشی $img
کل هواپیما را با تصویر کاشی می کند و این تصویر جدید را برمی گرداند - یا به عبارت دیگر،
یک کپی از تصویر را در حالت کاشی کاری صفحه برمی گرداند.
مثال: یک تصویر را بارگذاری کنید و آن را بدون تغییر اندازه روی پسزمینه کاشی کنید. "کاشی"
تماس اضافی است زیرا "بار" از قبل به حالت کاشی کاری پیشفرض است.
بارگذاری کاشی "mybg.png"
آینه $img
شبیه کاشی است، اما هر بار که از یک کپی جدید استفاده می کند، تصویر را منعکس می کند
لبه ها همیشه لبه های بالایی را لمس می کنند، لبه های سمت راست همیشه لبه های راست را لمس می کنند و غیره (با
کاشی کاری معمولی، لبه های چپ همیشه لبه های راست را لمس می کنند و بالا همیشه لبه های پایین را لمس می کنند).
مثال: یک تصویر را بارگذاری کنید و آن را روی پسزمینه منعکس کنید، از لبههای تیز در تصویر اجتناب کنید
مرزهای تصویر به قیمت انعکاس خود تصویر است
بارگذاری آینه ای "mybg.png"
pad $img
یک تصویر می گیرد و آن را طوری تغییر می دهد که تمام پیکسل های خارج از ناحیه تصویر تبدیل شوند
شفاف این حالت زمانی کاربرد بیشتری دارد که بخواهید تصویری را روی عکس دیگری قرار دهید
تصویر یا رنگ پس زمینه در حالی که تمام پیکسل های پس زمینه خارج از تصویر باقی می مانند
بدون تغییر
مثال: یک تصویر را بارگذاری کنید و آن را در گوشه سمت چپ بالا نمایش دهید. بقیه فضا
"خالی" باقی می ماند (شفاف یا هر کاری که کامپوزیتور شما در حالت آلفا انجام می دهد، در غیر این صورت
رنگ پس زمینه).
بارگذاری پد "mybg.png"
گسترش $img
با استفاده از نزدیکترین پیکسل در ناحیه بیرون، تصویر را در کل صفحه گسترش می دهد
تصویر. این حالت بیشتر زمانی مفید است که از عملیات فیلترینگ پیچیده تر استفاده می کنید
و می خواهید پیکسل های خارج از تصویر همان مقادیر پیکسل های نزدیک به تصویر را داشته باشند
حاشیه، غیرمتمرکز.
مثال: فقط برای کنجکاوی، این افزونه پیکسل چگونه کار می کند؟
گسترش حرکت 50، 50، بارگذاری "mybg.png"
متغیر ارزش
توابع زیر داده های متغیری مانند ابعاد پنجره ترمینال را ارائه می دهند. آنها
متغیرهای (Perl-) نیستند، آنها فقط چیزهایی را برمی گردانند که متفاوت هستند. اکثر آنها شما را می سازند
عبارت حساس به برخی رویدادها، برای مثال استفاده از "TW" (عرض ترمینال) به معنای شماست
هنگامی که اندازه ترمینال تغییر می کند، بیان دوباره ارزیابی می شود.
TX
TY مختصات X و Y پنجره ترمینال را برگردانید (پنجره ترمینال پر است
پنجره به طور پیشفرض، و ناحیه کاراکتر فقط در حالت احترام به مرز).
استفاده از این توابع بیان شما را نسبت به حرکت پنجره حساس می کند.
این توابع عمدتاً برای تراز کردن تصاویر با پنجره ریشه مفید هستند.
مثال: یک تصویر را بارگیری کنید و آن را به گونه ای تراز کنید که به نظر می رسد در پس زمینه لنگر افتاده است
(این دقیقاً همان کاری است که "rootalign" btw انجام می دهد.):
move -TX, -TY, keep { load "mybg.png" loading="lazy" }
TW
TH عرض ("TW") و ارتفاع ("TH") پنجره ترمینال (پنجره ترمینال) را برگردانید
به طور پیشفرض پنجره کامل است و ناحیه کاراکتر فقط در صورت رعایت مرز است
حالت)
استفاده از این توابع بیان شما را نسبت به تغییر اندازه پنجره حساس می کند.
این توابع عمدتاً برای مقیاس بندی تصاویر، یا برش دادن تصاویر به پنجره مفید هستند
اندازه برای حفظ حافظه
مثال: پسزمینه صفحه را بگیرید، آن را به اندازه پنجره ببرید، کمی تار کنید، تراز کنید
آن را در موقعیت پنجره قرار دهید و از آن به عنوان پس زمینه استفاده کنید.
حرکت کلیپ -TX, -TY, keep { blur 5, root }
FOCUS
یک بولی برمیگرداند که نشان میدهد آیا پنجره ترمینال فوکوس صفحه کلید دارد یا خیر
در صورتی که درست برگردد
استفاده از این تابع بیان شما را نسبت به تغییرات فوکوس حساس می کند.
یکی از موارد استفاده رایج، محو کردن تصویر پسزمینه زمانی است که ترمینال فوکوس خود را اغلب از دست میدهد
همراه با گزینه خط فرمان "-fade". در واقع یک عملکرد ویژه وجود دارد
فقط برای آن مورد استفاده: "focus_fade".
مثال: از دو تصویر پس زمینه کاملاً متفاوت استفاده کنید، بسته به اینکه آیا پنجره
تمرکز دارد
تمرکز ؟ keep { load "has_focus.jpg" loading="lazy" } : keep { load "no_focus.jpg" loading="lazy" }
now زمان فعلی را به صورت (کسری) ثانیه از زمان دوره برمی گرداند.
استفاده از این عبارت انجام می دهد نه بیان خود را به زمان حساس کنید، اما بعد
دو تابع انجام می دهد.
دوباره $ثانیه
هنگامی که این تابع استفاده می شود، عبارت دوباره در $ ثانیه ارزیابی می شود
ثانیه صورت گرفت.
مثال: مقداری تصویر را بارگذاری کنید و آن را مطابق با زمان روز بچرخانید (مثلاً
نشانگر ساعت ساعت). هر دقیقه این تصویر را به روز کنید.
دوباره 60;
چرخش 50، 50، (اکنون %86400) * -72 / 8640، scale keep { load "myclock.png" loading="lazy" }
شمارنده $ثانیه
مانند "دوباره"، اما مقدار شمارنده فزاینده ای را نیز برمی گرداند که از 0 شروع می شود، که ممکن است
برای برخی از جلوه های انیمیشن ساده مفید باشد.
شکل در حال تغییر اپراتورها
عملگرهای زیر شکل، اندازه یا موقعیت تصویر را تغییر می دهند.
کلیپ $img
کلیپ $width، $height، $img
کلیپ $x، $y، $width، $height، $img
یک تصویر را به مستطیل داده شده برش می دهد. اگر مستطیل خارج از ناحیه تصویر باشد
(مثلاً وقتی $x یا $y منفی هستند) یا مستطیل بزرگتر از تصویر است، پس
حالت کاشی کاری نحوه پر شدن پیکسل های اضافی را مشخص می کند.
اگر $x و $y وجود نداشته باشد، برای هر دو 0 در نظر گرفته می شود.
اگر $width و $height وجود نداشته باشد، اندازه پنجره در نظر گرفته می شود.
به عنوان مثال: یک تصویر را بارگیری کنید، آن را محو کنید، و آن را به اندازه پنجره کلیپ کنید تا حافظه ذخیره شود.
clip keep { blur 10, load "mybg.png" loading="lazy" }
مقیاس $img
مقیاس $size_factor، $img
مقیاس $width_factor، $height_factor، $img
تصویر را با فاکتورهای داده شده در افقی ($width) و عمودی ($height) مقیاس میکند.
جهت.
اگر فقط یک عامل داده شود، برای هر دو جهت استفاده می شود.
اگر فاکتوری در نظر گرفته نشود، تصویر را به اندازه پنجره تغییر میدهد بدون اینکه جنبه داشته باشد.
تغییر اندازه $width، $height، $img
اندازه تصویر را دقیقاً به $width ضربدر $height پیکسل تغییر می دهد.
مناسب $img
متناسب $width، $height، $img
تصویر را با پهنای $ و ارتفاع $ بدون تغییر جنبه، یا به تناسب میدهد
اندازه ترمینال این بدان معنی است که تا زمانی که کل تصویر در آن قرار گیرد کوچک یا بزرگ می شود
منطقه داده شده، احتمالاً مرزها را ترک می کند.
پوشش $img
پوشش $width، $height، $img
شبیه "مناسب" است، اما کوچک می شود یا رشد می کند تا زمانی که تمام ناحیه توسط تصویر پوشانده شود،
بنابراین به جای اینکه به طور بالقوه مرزها را ترک کند، داده های تصویری را که اینطور نیست قطع می کند
مناسب.
انتقال $dx، $dy، $img
تصویر را با $dx پیکسل در افقی و $dy پیکسل در عمودی حرکت می دهد.
مثال: تصویر را 20 پیکسل به سمت راست و 30 پیکسل به پایین حرکت دهید.
حرکت 20، 30، ...
align $xalig, $yalign, $img
تصویر را بر اساس یک فاکتور تراز می کند - 0 به این معنی است که تصویر به سمت چپ یا بالا منتقل می شود
لبه (برای xalign $ یا $yalign)، 0.5 به این معنی است که دقیقاً در مرکز قرار دارد و 1 به معنای لمس است.
لبه سمت راست یا پایین
مثال: هر حاشیه قابل مشاهده در اطراف یک تصویر را بردارید، آن را به صورت عمودی در مرکز قرار دهید اما آن را حرکت دهید
به سمت راست
align 1, 0.5, pad $img
مرکز $img
مرکز $width، $height، $img
تصویر را در مرکز قرار می دهد، یعنی مرکز تصویر به مرکز ترمینال منتقل می شود
پنجره (یا کادر مشخص شده توسط $width و $height در صورت داده شدن).
مثال: یک تصویر را بارگذاری کنید و آن را در مرکز قرار دهید.
center keep { pad load "mybg.png" loading="lazy" }
rootalign $img
تصویر را طوری حرکت می دهد که بر خلاف پنجره به صفحه چسبیده به نظر برسد. این
توهم یک منطقه بزرگتر پشت پنجره را می دهد. دقیقاً معادل است
"move -TX, -TY" یعنی تصویر را به سمت چپ بالای صفحه حرکت می دهد.
مثال: یک تصویر پس زمینه را بارگذاری کنید، آن را در حالت آینه قرار دهید و آن را تراز ریشه کنید.
rootalign keep { mirror load "mybg.png" loading="lazy" }
مثال: پسزمینه صفحه را بگیرید و آن را تراز کنید و توهم شفافیت ایجاد کنید
تا زمانی که پنجره در مقابل پنجره های دیگر نباشد.
ریشه root
$center_x، $center_y، $degrees، $img را بچرخانید
تصویر را در جهت عقربه های ساعت $ درجه، حول نقطه $center_x و
$center_y (به عنوان فاکتور عرض/ارتفاع تصویر مشخص شده است).
مثال: تصویر را 90 درجه به دور مرکز آن بچرخانید.
چرخش 0.5، 0.5، 90، keep { load "$HOME/mybg.png" loading="lazy" }
رنگی اصلاحیه ها
عملگرهای زیر پیکسل های تصویر را تغییر می دهند.
tint $color، $img
تصویر را به رنگ داده شده رنگ می کند.
مثال: تصویر را قرمز کنید.
رنگ "قرمز"، بارگیری "rgb.png"
مثال: یکسان است، اما رنگ را با جزء مشخص کنید.
tint [1, 0, 0]، بارگیری "rgb.png"
shade $factor, $img
تصویر را با فاکتور داده شده سایه بزنید.
کنتراست $factor, $img
کنتراست $r، $g، $b، $img
کنتراست $r، $g، $b، $a، $img
تنظیم می کند کنتراست از یک تصویر
فرم اول یک $ عامل را برای قرمز، سبز و آبی اعمال می کند، شکل دوم
فاکتورهای جداگانه ای را برای هر کانال رنگ اعمال می کند و آخرین شکل شامل آلفا می شود
کانال.
مقادیر از 0 تا 1 کنتراست را کاهش می دهند، مقادیر بالاتر از 1 کنتراست را افزایش می دهند.
به دلیل محدودیتهای موجود در پسوند XRender، کاهش کنتراست نیز کاهش مییابد
روشنایی، در حالی که افزایش کنتراست در حال حاضر باعث افزایش روشنایی نیز می شود.
روشنایی $bias، $img
روشنایی $r، $g، $b، $img
روشنایی $r، $g، $b، $a، $img
روشنایی یک تصویر را تنظیم می کند.
فرم اول یک تعصب $ برای قرمز، سبز و آبی اعمال می کند، فرم دوم اعمال می شود
بایاس های جداگانه برای هر کانال رنگی، و آخرین شکل شامل کانال آلفا است.
مقادیر کمتر از 0 روشنایی را کاهش می دهند، در حالی که مقادیر بزرگتر از 0 آن را افزایش می دهند. مفید
محدوده از -1 تا 1 است - اولی یک تصویر سیاه و دومی در یک تصویر سفید نتیجه می دهد.
به دلیل ویژگیهای خاص در پسوند XRender زیربنایی، بایاسهای کمتر از صفر میتوانند
be بسیار آهسته. تدریجی.
همچنین می توانید عملگر آزمایشی(!) "muladd" را امتحان کنید.
muladd $mul، $add، $img # EXPERIMENTAL
ابتدا پیکسل ها را در $mul ضرب می کند، سپس $add را اضافه می کند. از این می توان برای پیاده سازی استفاده کرد
روشنایی و کنتراست به طور همزمان، با محدوده ارزش گسترده تر از کنتراست و
عملگرهای روشنایی
با توجه به اشکالات متعدد در پیاده سازی XRender، می تواند تعدادی از آنها را نیز معرفی کند
مصنوعات بصری
مثال: بدون تغییر در روشنایی تصویر، کنتراست را یک ضریب c$ افزایش دهید
خیلی
muladd $c، (1 - $c) * 0.5، $img
تاری $radius، $img
محو کردن $radius_horz، $radius_vert، $img
گاوسی تصویر را با (تقریبا) شعاع پیکسلی $رادیوس تار می کند. شعاع ها نیز می توانند باشند
جداگانه مشخص شده است.
تاری اغلب است بسیار کند، حداقل در مقایسه یا سایر اپراتورها. شعاع تاری بزرگتر
نسبت به کوچکترها نیز کندتر هستند، بنابراین اگر نمی خواهید صفحه نمایش خود را برای مدت طولانی ثابت نگه دارید
بارها، شروع به آزمایش با مقادیر کم برای شعاع (<5) کنید.
focus_fade $img
focus_fade $factor, $img
focus_fade $factor، $color، $img
هنگامی که فوکوس از بین می رود (همانند) تصویر را با فاکتور (و رنگ) داده شده محو می کند
گزینه های خط فرمان "-fade"/"-fadecolor" که مقادیر پیش فرض را نیز ارائه می کند
"factor" و $color. برخلاف "-fade"، ضریب $ یک مقدار واقعی است، نه a
مقدار درصد (یعنی 0..1، نه 0..100).
مثال: زمانی که محو شدن فوکوس درخواست می شود، کار درست را انجام دهید.
focus_fade load "mybg.jpg";
OTHER STUFF
هر چیزی که با هیچ یک از مقوله های دیگر، حتی پس از اعمال نیرو و
چشمانمان را ببندیم
نگاه داشتن { ... }
این عملگر یک بلوک کد را به عنوان آرگومان می گیرد، یعنی یک یا چند عبارت محصور شده است
توسط بریس
ترفند این است که این بلوک کد تنها زمانی ارزیابی می شود که نتیجه تغییر کند - روشن
سایر فراخوانی های "keep" به سادگی تصویری را که قبلا محاسبه کرده بود برمی گرداند (بله، باید
فقط با تصاویر استفاده شود). یا به عبارت دیگر "نگه داشتن" انبارها نتیجه کد
بلاک کنید تا نیازی به محاسبه مجدد نباشد.
این می تواند برای جلوگیری از انجام مجدد عملیات کند بسیار مفید باشد - برای مثال، اگر شما
پسزمینه پسزمینه ریشه را میگیرد، آن را محو میکند و سپس آن را با روت تراز میکند
در هر حرکت یا تغییر اندازه پنجره باید پسزمینه ریشه را محو کند.
مثال دیگر "بار" است که می تواند بسیار کند باشد.
در واقع، خود urxvt کل عبارت را در نوعی بلوک "keep" محصور می کند
فقط در صورت نیاز مجدداً ارزیابی می شود.
قرار دادن تاری در یک بلوک "حفظ" مطمئن می شود که تاری فقط یک بار انجام می شود، در حالی که
"rootalign" همچنان با هر بار حرکت پنجره انجام می شود.
rootalign keep { blur 10, root }
این سؤال را در مورد چگونگی ارزیابی مجدد بلوک، در مورد ریشه، باقی می گذارد
تغییرات پسزمینه: اگر عبارت درون بلوک به رویدادی حساس باشد (ریشه
پس زمینه تغییر می کند، هندسه پنجره تغییر می کند)، سپس دوباره ارزیابی می شود
به صورت خودکار در صورت نیاز
با استفاده از خدمات onworks.net از urxvt-background به صورت آنلاین استفاده کنید