| task-color(5) | User Manuals | task-color(5) |
نام (NAME)
task-color - راهنمای رنگآمیزی برای مدیر وظایف خط فرمانی Taskwarrior
تکرنگ خودکار (AUTOMATIC MONOCHROME)
باید اشاره کرد که Taskwarrior از این موضوع آگاه است که خروجی آن به یک ترمینال ارسال میشود، یا به یک فایل، یا از طریق یک پایپ (لوله). هنگامی که خروجی Taskwarrior به ترمینال میرود، نمایش رنگی مطلوب است، اما دستور زیر را در نظر بگیرید:
$ task list > file.txt
آیا واقعاً میخواهیم تمام آن کدهای کنترلی رنگ در فایل ذخیره شوند؟ Taskwarrior فرض میکند که شما چنین چیزی نمیخواهید و هنگام تولید خروجی، به طور موقت رنگ را روی 'off' (خاموش) تنظیم میکند. این امر خروجی دستور زیر را توضیح میدهد:
$ task show | grep '^color ' color off
صرفنظر از اینکه مقدار تنظیمات چه باشد، همواره 'off' برمیگرداند، چرا که خروجی به یک پایپ ارسال شده است.
اگر آن کدهای رنگی را میخواهید، میتوانید با تنظیم متغیر _forcecolor روی on، این رفتار را بازنویسی (override) کنید، مانند زیر:
$ task config _forcecolor on $ task config | grep '^color ' color on
یا با بازنویسی موقت آن به این صورت:
$ task rc._forcecolor=on config | grep '^color ' color on
رنگهای دردسترس (AVAILABLE COLORS)
برنامه Taskwarrior فرمانی به نام 'color' دارد که تمام رنگهایی را که قادر به نمایش آنهاست نشان میدهد. این دستور را امتحان کنید:
$ task color
خروجی این دستور را نمیتوان در صفحه راهنمای man بازتولید کرد، اما شما باید مجموعهای از نمونههای رنگی را مشاهده کنید. تعداد رنگهایی که میبینید به توانایی برنامه ترمینال شما در رندر کردن آنها بستگی دارد.
شما باید دستکم رنگهای پایه (Basic) و جلوهها (Effects) را ببینید - اگر چنین است، از پشتیبانی ۱۶ رنگ برخوردار هستید. اگر ترمینال شما از ۲۵۶ رنگ پشتیبانی کند، متوجه آن خواهید شد!
پشتیبانی از ۱۶ رنگ (16-COLOR SUPPORT)
پشتیبانی پایه از رنگها از طریق رنگهای نامگذاریشده فراهم میشود:
black, red, blue, green, magenta, cyan, yellow, white
رنگ پیشزمینه (برای متن) به سادگی به عنوان یکی از رنگهای بالا مشخص میشود، یا اینکه اصلاً مشخص نمیشود تا از رنگ پیشفرض متن ترمینال استفاده شود.
رنگ پسزمینه با استفاده از کلمه 'on' و یکی از رنگهای بالا تعیین میشود. چند نمونه:
green # متن سبز، رنگ پسزمینه پیشفرض green on yellow # متن سبز، پسزمینه زرد on yellow # رنگ متن پیشفرض، پسزمینه زرد
این رنگها میتوانند با پررنگ کردن (bold) پیشزمینه یا روشنتر کردن (bright) پسزمینه بیشتر تغییر داده شوند. چند نمونه:
bold green bold white on bright red on bright cyan
ترتیب کلمات اهمیتی ندارد، بنابراین موارد زیر معادل یکدیگر هستند:
bold green green bold
اما کلمه 'on' مهم است - رنگهای قبل از 'on' مربوط به پیشزمینه، و رنگهای پس از 'on' مربوط به پسزمینه هستند.
ویژگی دیگری به نام 'underline' (زیرخط) نیز وجود دارد که میتوان از آن استفاده کرد:
underline bold red on black
و همچنین یک ویژگی به نام 'inverse' (وارون):
inverse red
برنامه Taskwarrior فرمانی دارد که به شما در تجسم این ترکیبهای رنگی کمک میکند. این دستور را امتحان کنید:
$ task color underline bold red on black
میتوانید از این دستور برای مشاهده نحوه کارکرد ترکیبهای مختلف رنگ استفاده کنید. همچنین علاوه بر نمونه درخواستی، نمونههایی از رنگهای نمایش دادهشده مانند موارد بالا را نیز مشاهده خواهید کرد.
برخی ترکیبها بسیار زیبا و برخی بسیار ناخوشایند به نظر میرسند. برای نمونه، برنامههای مختلف ترمینال نسخههای اندکی متفاوت از 'red' (قرمز) را پیادهسازی میکنند، بنابراین ممکن است بین سیستمهای مختلف تفاوتهای غیرمنتظرهای مشاهده کنید. روشنایی صفحهنمایش شما نیز یک عامل مؤثر است.
پشتیبانی از ۲۵۶ رنگ (256-COLOR SUPPORT)
استفاده از ۲۵۶ رنگ از همان الگو پیروی میکند، اما نامها متفاوت هستند و برخی رنگها را میتوان به روشهای گوناگونی مشخص کرد. نخستین روش، استفاده از شماره ترتیبی رنگ (color ordinal) است، که به این صورت است:
color0 color1 color2 ... color255
این کار به شما امکان دسترسی به همه ۲۵۶ رنگ را میدهد، اما کمک چندانی به انتخاب رنگ نمیکند. این محدوده ترکیبی از ۸ رنگ پایه (color0 تا color7)، سپس ۸ نسخه روشنتر (color8 تا color15)، بعد یک بلوک ۲۱۶ تایی از رنگها (color16 تا color231)، و در نهایت یک بلوک ۲۴ تایی از رنگهای خاکستری (color232 تا color255) است.
بلوک بزرگ ۲۱۶ رنگی (۶×۶×۶ = ۲۱۶) یک مکعب رنگ را نشان میدهد که میتوان از طریق مقادیر RGB از ۰ تا ۵ برای هر جزء رنگی به آن دسترسی داشت. مقدار ۰ یعنی عدم وجود آن مؤلفه رنگی و مقدار ۵ یعنی بیشترین شدت آن مؤلفه رنگی. برای نمونه، قرمز روشن به این صورت مشخص میشود:
rgb500
و قرمز تیرهتر به صورت زیر خواهد بود:
rgb300
توجه داشته باشید که این سه رقم نشاندهنده مقادیر سه مؤلفه هستند، بنابراین در این مثال، ۵، ۰ و ۰ نشاندهنده red=5، green=0 و blue=0 هستند. ترکیب قرمز پررنگ با سبز صفر و آبی صفر، رنگ قرمز را تولید میکند. به همین ترتیب، آبی و سبز عبارتند از:
rgb005 rgb050
نمونه دیگر - زرد روشن - ترکیبی از قرمز روشن و سبز روشن است بدون مؤلفه آبی، بنابراین زرد روشن به این شکل آدرسدهی میشود:
rgb550
یک صورتی ملایم به صورت زیر آدرسدهی میشود:
rgb515
با اجرای دستور زیر بررسی کنید که آیا با این نامگذاری موافقید:
$ task color black on rgb515
شاید متوجه شوید که بلوک بزرگ رنگی در قالب ۶ مربع نمایش داده میشود. تمام رنگهای مربع اول مقدار قرمز ۰ دارند. تمام رنگهای مربع ششم مقدار قرمز ۵ دارند. در هر مربع، آبی از ۰ تا ۵ از چپ به راست، و سبز از ۰ تا ۵ از بالا به پایین تغییر میکند. عادت کردن به این الگو به کمی زمان نیاز دارد.
همچنین میتوان به بلوک ۲۴ تایی رنگهای خاکستری به صورت gray0 تا gray23، در یک طیف پیوسته از سیاه تا سفید دسترسی داشت.
ترکیب ۱۶ رنگ و ۲۵۶ رنگ (MIXING 16- AND 256-COLORS)
اگر از ۱۶ رنگ استفاده کنید و آن را در یک ترمینال ۲۵۶ رنگ مشاهده کنید، مشکلی پیش نمیآید. اگر عکس این عمل را انجام دهید، یعنی رنگهای ۲۵۶ تایی تعیین کنید و در یک ترمینال ۱۶ رنگ نمایش دهید، ناامید و شاید حتی شوکه شوید.
نوعی نگاشت محدود رنگ وجود دارد - برای نمونه، اگر این ترکیب را تعیین کنید:
red on gray3
شما در حال ترکیب مشخصات ۱۶ رنگ و ۲۵۶ رنگ هستید. Taskwarrior رنگ red را به color1 نگاشت کرده و ادامه میدهد. توجه داشته باشید که red و color1 دقیقاً یک تن رنگی یکسان نیستند.
همچنین توجه کنید که هنگام کار با ۲۵۶ رنگ، ویژگیهای bold یا bright وجود ندارند، اما همچنان ویژگی underline در دسترس است.
راهنمای رنگها (LEGEND)
اگر این دستور را اجرا کنید، Taskwarrior نمونههایی از تمام رنگهای تعریفشده مورد استفاده در فایل taskrc. یا تم شما را نمایش خواهد داد:
$ task color legend
این دستور نمونهای از هر یک از رنگها را ارائه میدهد تا بتوانید جلوه آنها را بدون نیاز به ایجاد مجموعهای از وظایف که معیارهای هر قانون را برآورده میکنند، مشاهده نمایید.
قوانین (RULES)
برنامه Taskwarrior از قوانین رنگآمیزی پشتیبانی میکند. اینها مقادیر پیکربندی هستند که یک رنگ و شرایط استفاده از آن رنگ را تعیین میکنند. به عنوان مثال، بیایید چند وظیفه اضافه کنیم:
$ task add project:Home priority:H pay the bills (1) $ task add project:Home clean the rug (2) $ task add project:Garden clean out the garage (3)
میتوانیم یک قانون رنگ اضافه کنیم که برای تمام وظایف موجود در پروژه Home از پسزمینه آبی استفاده کند:
$ task config color.project.Home 'on blue'
ما از علامت نقلقول در اطراف 'on blue' استفاده میکنیم زیرا از دو کلمه تشکیل شده است، اما نمایانگر یک مقدار در فایل taskrc. است. حال فرض کنید میخواهیم برای تمام کارهای مربوط به نظافت، از رنگ متن زرد پررنگ (bold yellow) استفاده کنیم:
$ task config color.keyword.clean 'bold yellow'
اکنون چه اتفاقی برای وظیفه ۲ میافتد که هم متعلق به پروژه Home است (پسزمینه آبی) و هم یک وظیفه نظافتی است (پیشزمینه زرد پررنگ)؟ رنگها با یکدیگر ترکیب میشوند و وظیفه به صورت "bold yellow on blue" نمایش داده میشود.
همانطور که نشان داده شد، قوانین رنگ را میتوان بر اساس پروژه و کلمات کلیدی توضیحات، و همچنین بر اساس اولویت (یا عدم وجود اولویت)، وضعیت فعال بودن، موعد سررسید یا سررسید گذشته (overdue)، داشتن برچسب یا داشتن یک برچسب خاص (که شاید کاربردیترین قانون باشد) یا تکرارشونده بودن وظیفه اعمال کرد.
امکان ایجاد ترکیبی بسیار رنگارنگ از قوانین وجود دارد. با پشتیبانی از ۲۵۶ رنگ، میتوان آن رنگها را ملایم و مکمل یکدیگر ساخت، اما بدون دقت کافی، ممکن است آشفتگی بصری ایجاد شود. مراقب باشید!
در چنین مواردی، استفاده از گزینه 'rule.color.merge=no' را برای غیرفعال کردن ترکیب رنگها در نظر بگیرید.
تقدم و اولویت قوانین رنگ توسط متغیر پیکربندی 'rule.precedence.color' تعیین میشود، که به طور پیشفرض شامل موارد زیر است:
deleted,completed,active,keyword.,tag.,project.,overdue,scheduled,due.today,due,blocked,blocking,recurring,tagged,uda.
اینها صرفاً همان قوانین رنگ هستند که پیشوند '.color' از آنها حذف شده است. قانون 'color.deleted' بالاترین تقدم و 'color.uda.' کمترین تقدم را دارد.
قانون کلیدواژه که در اینجا به صورت '.keyword' نشان داده شده با یک الگوی عام (wildcard) مطابقت دارد، به این معنی که معادل '*color.keyword.' یا به عبارت دیگر تمام قوانین کلمات کلیدی است.
همچنین 'color.project.none'، 'color.tag.none' و 'color.uda.priority.none' به طور خاص برای نمایش دادههای ناموجود وجود دارند.
تمها (THEMES)
برنامه Taskwarrior از تمها (Themes) پشتیبانی میکند. مفهوم واقعی این ویژگی آن است که به دلیل امکان گنجاندن فایلهای دیگر در فایل taskrc.، میتوان مجموعههای متفاوتی از قوانین رنگ را فراخوانی کرد.
برای درک بهتر اینکه یک تم رنگی چگونه به نظر میرسد، سعی کنید این ورودی را به فایل taskrc. خود اضافه نمایید:
include dark-256.theme
میتوانید از هر یک از تمهای استاندارد Taskwarrior استفاده کنید:
dark-16.theme dark-256.theme dark-blue-256.theme dark-gray-256.theme dark-green-256.theme dark-red-256.theme dark-violets-256.theme dark-yellow-green.theme light-16.theme light-256.theme solarized-dark-256.theme solarized-light-256.theme dark-default-16.theme dark-gray-blue-256.theme no-color.theme
به یاد داشته باشید اگر از ترمینالی با پسزمینه تیره استفاده میکنید، با استفاده از یک تم تیره (dark theme) نتایج بهتری مشاهده خواهید کرد.
همچنین میتوانید با اجرای دستور زیر ببینید که تم چگونه وظایف مختلف را رنگآمیزی میکند:
$ task color legend
حتی بهتر است تم اختصاصی خود را بسازید و به اشتراک بگذارید. ما با کمال میل فایلهای تم را در نشانی https://taskwarrior.org میزبانی خواهیم کرد.
اعتبار و حق نشر (CREDITS & COPYRIGHTS)
حق نشر (C) 2006 - 2021 متعلق به T. Babej, P. Beckingham, F. Hernandez.
برنامه Taskwarrior تحت شرایط مجوز MIT توزیع میشود. برای اطلاعات بیشتر https://www.opensource.org/licenses/mit-license.php را ببینید.
همچنین ببینید (SEE ALSO)
task(1), taskrc(5), task-sync(5)
برای اطلاعات بیشتر درباره Taskwarrior به منابع زیر مراجعه فرمایید:
- وبسایت رسمی در
- https://taskwarrior.org
- مخزن رسمی کد منبع در
- https://github.com/GothenburgBitFactory/taskwarrior
- تماس با پروژه از طریق رایانامه
- <support@GothenburgBitFactory.org>
گزارش باگها (REPORTING BUGS)
- باگهای Taskwarrior را میتوانید به بخش ردیابی مشکلات در نشانی زیر گزارش کنید:
- https://github.com/GothenburgBitFactory/taskwarrior/issues
| 2016-02-24 | task 3.5.0 |