TKREMIND(1) VERSION 06.02.07 TKREMIND(1)

tkremind - رابط کاربری گرافیکی برای برنامه تقویم Remind

tkremind [options] [read_file [write_file [config_file]]]

برنامه TkRemind یک رابط کاربری گرافیکی (front-end) برای برنامه Remind است. این ابزار یک رابط گرافیکی کاربرپسند فراهم می‌کند که به شما امکان می‌دهد تقویم خود را مشاهده کرده و بدون نیاز به یادگیری نحو (syntax) دستورات Remind، یادآورها را اضافه کنید. اگرچه تمام ویژگی‌های Remind در TkRemind در دسترس نیست، اما TkRemind این امکان را به شما می‌دهد که دستورات یادآوری ایجادشده توسط آن را ویرایش کنید. این قابلیت به شما کمک می‌کند تا نحو دستورات Remind را بیاموزید و با افزایش مهارت خود در برنامه‌نویسی Remind، قابلیت‌های پیشرفته‌تری را اضافه نمایید.

برنامه TkRemind به زبان Tcl نوشته شده است و به نگارش ۸٫۵ (یا بالاتر) و همچنین افزونه tcllib نیاز دارد. این برنامه همچنین به باینری wish نیازمند است. اگر از Tcl/Tk 8.5 استفاده می‌کنید، ممکن است برای مدیریت تصاویر PNG به افزونه Img یا tkpng نیز نیاز داشته باشید.

خود برنامه TkRemind تنها یک گزینه خط فرمان دارد: گزینه --version که نسخه TkRemind را چاپ کرده و خارج می‌شود. هر آرگومان خط فرمان دیگر که با - شروع شود، به عنوان یک گزینه به Remind ارسال می‌شود. علاوه بر این، TkRemind از گزینه‌های -m و -b1 پیروی کرده و ظاهر خود را بر اساس آن‌ها تنظیم می‌کند.

پارامتر read_file فایلی است که TkRemind یادآورها را از آن می‌خواند. این فایل در قالب استاندارد Remind است. پارامتر write_file فایلی است که TkRemind یادآورهای افزوده‌شده از طریق رابط گرافیکی را در آن ذخیره می‌کند. اگر read_file مشخص نشود، مقدار پیش‌فرض $HOME/.reminders خواهد بود. اگر write_file مشخص نشود، مقدار پیش‌فرض آن همان read_file است.

اگر مایلید تمام یادآورهای مربوط به TkRemind را در یک‌جا جمع‌آوری کنید، می‌توانید مقدار write_file را متفاوت از read_file تعیین کنید. فرض کنید فایل اصلی شما $HOME/.reminders است و می‌خواهید TkRemind یادآورهای خود را در $HOME/.tkreminders ذخیره کند. در فایل $HOME/.reminders خط زیر را قرار دهید:

INCLUDE [getenv("HOME")]/.tkreminders

پارامتر config_file فایلی است که TkRemind تنظیمات و گزینه‌های خود را در آن ذخیره می‌کند. اگر مشخص نشود، مقدار پیش‌فرض $HOME/.config/tkremindrc است.

اگر $HOME/.reminders یک دایرکتوری باشد، در این صورت TkRemind به طور پیش‌فرض اطلاعات را از $HOME/.reminders خوانده و یادآورهای جدید را در $HOME/.reminders/100-tkremind.rem می‌نویسد. اگر می‌خواهید یادآورهای خود را در یک دایرکتوری به نام $HOME/.reminders نگه دارید، باید پیش از اجرای TkRemind آن دایرکتوری را ایجاد کنید.

هنگامی که TkRemind را اجرا می‌کنید، تقویمی برای ماه جاری نمایش داده می‌شود که تاریخ امروز در آن برجسته است. یادآورها در کادر هر روز در تقویم قرار می‌گیرند. اگر یک کادر شامل یادآورهای زیادی باشد، می‌توانید با کشیدن کلید ۲ موشوار (دکمه وسط) روی کادر یا با استفاده از چرخ اسکرول (در صورت وجود در موشوار)، آن را به بالا و پایین پیمایش کنید. توجه داشته باشید که هیچ علامت خاصی برای کادرهای بیش از حد پر وجود ندارد؛ صرفاً باید توجه کنید که کادر کاملاً پر شده به نظر می‌رسد.

برای رفتن به ماه قبل یا بعد، به ترتیب روی دکمه‌های <- یا -> کلیک کنید. همچنین می‌توانید از کلیدهای جهت‌نمای چپ/راست یا کلیدهای PgUp/PgDn برای پیمایش استفاده کنید.

برای بازگشت به ماه جاری، روی Today کلیک کنید یا کلید Home را فشار دهید. برای رفتن به یک ماه مشخص، روی Go To Date... کلیک کنید یا کلید g را فشار دهید. این کار پنجره‌ای را باز می‌کند که به شما امکان انتخاب ماه و وارد کردن سال را می‌دهد. پس از انجام این کار، برای رفتن به تاریخ مورد نظر روی Go، یا برای انصراف روی Cancel کلیک کنید. همچنین توجه داشته باشید که تمام پنجره‌های بازشو در TkRemind را می‌توان با فشردن Esc یا Control-w بست.

برای خروج از TkRemind، روی Quit کلیک کرده یا کلید ترکیبی Control-q را فشار دهید.

به طور پیش‌فرض، TkRemind تقویم یک ماه کامل را نمایش می‌دهد. منوی View... گزینه‌های زیر را در اختیارتان می‌گذارد: نمایش یک ماه کامل، یا نمایش یادآورهای مربوط به یک، دو یا چهار هفته. اگر نما را تغییر دهید، TkRemind این تغییر را ذخیره کرده و در اجرای بعدی، آن نما به عنوان نمای پیش‌فرض استفاده می‌شود.

در نمای ماهانه، دکمه‌های پیمایش بعدی و قبلی و میانبرهای صفحه‌کلید به اندازه یک ماه جابه‌جا می‌شوند. در تمامی نماهای دیگر، این جابه‌جایی به اندازه یک هفته است؛ حتی در نماهایی که چند هفته را نمایش می‌دهند.

می‌توانید با فشردن کلیدهای 1، 2، 4 یا m روی پنجره اصلی تقویم، نما را به ترتیب به یک هفته، دو هفته، چهار هفته یا یک ماه تغییر دهید.

برای افزودن یک یادآور، با کلید ۱ موشوار روی شماره هر روز در تقویم کلیک کنید. کادر گفتگوی Add Reminder... باز می‌شود، در حالی که مقادیر روزی که روی آن کلیک کرده‌اید از پیش انتخاب شده‌اند.

این کادر گفتگو شامل هفت گروه اصلی از کنترل‌ها است. سه سطر نخست، یکی از سه نوع یادآور را انتخاب می‌کنند. نوع یادآور را با دکمه‌های رادیویی مشخص کرده و مقادیر روز، ماه و سال را با استفاده از منوهای کشویی انتخاب کنید. منوهای کشویی با کلیک بر روی دکمه‌های برجسته مقادیر ظاهر می‌شوند.

کنترل بعدی تاریخ انقضا را برای یادآور مشخص می‌کند. با فعال کردن گزینه تیک‌دار، تاریخ انقضا فعال می‌شود و می‌توانید مقادیر را با منوهای کشویی تنظیم کنید.

کنترل سوم مشخص می‌کند که به چه میزان اعلان زودهنگام (در صورت نیاز) نیاز دارید، و این‌که آیا تعطیلات آخر هفته و تعطیلات رسمی در محاسبه اعلان زودهنگام لحاظ شوند یا خیر.

کنترل چهارم تعیین می‌کند که Remind چه روزهایی را به عنوان آخر هفته در نظر بگیرد. این تنظیم می‌تواند بر معنای «روز کاری» (weekday) در یادآورهای نوع دوم و سوم تأثیر بگذارد.

گروه پنجم کنترل‌ها، زمان و مدت زمان احتمالی را به یادآور اختصاص می‌دهد. همچنین می‌توانید اعلان زودهنگام با امکان تکرار را در این بخش مشخص کنید.

کنترل ششم به شما امکان می‌دهد مشخص کنید که آیا یادآور یک کار (TODO) است یا خیر، و در صورت مثبت بودن، تاریخ انجام آن را تعیین کنید. با تایپ یک خط مورب «/» در فیلد «:Complete through»، تاریخ ورودی تقویم به طور خودکار در آن قرار می‌گیرد. در غیر این صورت، تاریخ تکمیل را به صورت YYYY-MM-DD وارد کنید. همچنین می‌توانید در فیلد «:Max overdue days» عددی را وارد کنید تا تعداد روزهایی که پس از موعد مقرر، Remind یادآوری TODO را ادامه می‌دهد، محدود شود.

کنترل هفتم مشخص می‌کند در صورتی که یک یادآور با یک روز تعطیل یا آخر هفته مصادف شود، Remind چه واکنشی نشان دهد.

متن اصلی یادآور را در کادر متنی Summary: وارد کنید. در صورت تمایل، می‌توانید مکان، یک نشانی اینترنتی (URL) و توضیحات تکمیلی را در کادرهای Location:، URL: و Description: وارد نمایید. در صورت وارد کردن این موارد، آن‌ها به عنوان آیتم‌های INFO به یادآور افزوده می‌شوند.

برای اضافه کردن یادآور به فایل یادآورها، روی Add to reminder file کلیک کنید. برای بستن پنجره بدون ذخیره یادآور در فایل، روی Cancel کلیک کنید. جهت پیش‌نمایش یادآور، روی Preview reminder کلیک کنید تا پنجره پیش‌نمایش باز شود..SH "پیش‌نمایش یادآورها (PREVIEWING REMINDERS)" کادر محاوره‌ای Preview reminder راهی عالی برای یادگیری Remind است. این کادر دستور Remind مربوط به یادآوری که از طریق کادر محاوره‌ای Add Reminder... وارد کرده‌اید را نمایش می‌دهد. می‌توانید یادآور را ویرایش کنید و از این طریق به ویژگی‌های پیشرفتهٔ Remind دسترسی پیدا کنید. همچنین می‌توانید صرفاً با دستکاری آن، شیوه‌ها و الگوهای بیانیِ Remind را برای تعریف انواع مختلف یادآورها کشف کنید.

نکته: اگر یادآوری را به صورت دستی ویرایش کنید، آن یادآور دیگر در کادر محاوره‌ای گرافیکیِ یادآورِ TkRemind قابل ویرایش نخواهد بود. برای اعمال تغییرات، باید آن را به صورت دستی ویرایش کنید.

روی شمارهٔ هر روز در تقویم راست‌کلیک کنید تا پنجره‌ای باز شود که یادآورهای آن روز را در حالت Agenda Mode نمایش دهد. می‌توانید روی نشانگر تاریخ و زمان فعلی در پایین پنجرهٔ تقویم چپ‌کلیک یا راست‌کلیک کنید تا یادآورهای امروز را در Agenda Mode ببینید. همچنین می‌توانید در پنجرهٔ اصلی تقویم کلید t را فشار دهید تا یادآورهای امروز در Agenda Mode نمایش داده شوند.

در نمای Agenda Mode، نگه داشتن نشانگر موش روی یک یادآور، اطلاعات تکمیلی مانند Location، URL یا Description را نمایش می‌دهد. کلیک روی یک یادآور، یک ویرایشگر را روی دستور REM که سازندهٔ آن یادآور بوده است باز می‌کند. همچنین می‌توانید با استفاده از دکمه‌های فلش جلو و عقب، کلیدهای جهت‌نمای چپ/راست یا PgUp/PgDn، روزها را در پنجرهٔ Agenda Mode یکی‌یکی جابه‌جا کنید. با کلیک روی Today یا فشردن کلید Home می‌توانید به امروز بازگردید.

می‌توانید با کلیک روی OK یا فشردن کلید Esc، پنجرهٔ Agenda Mode را ببندید.

برای چاپ تقویم ماه جاری، روی Print... در پنجرهٔ اصلی تقویم کلیک کنید یا کلیدهای p یا Control-p را فشار دهید. با این کار کادر محاوره‌ای چاپ باز می‌شود. عملیات چاپ یا یک فایل PostScript یا PDF تولید می‌کند، یا PostScript یا PDF را به یک دستور UNIX ارسال می‌کند.

توجه داشته باشید که برای امکان چاپ، باید rem2pdf نصب باشد.

مقصد چاپ را با انتخاب یکی از گزینه‌های To file: یا To command: در کادر محاوره‌ای چاپ مشخص کنید. دکمهٔ Browse... را فشار دهید تا مرورگر فایل باز شود. در مرورگر فایل، می‌توانید نام فایلی را در کادر ورودی متن وارد کنید، روی نام یک فایل در جعبهٔ فهرست (listbox) دوبار کلیک کنید، یا برای پیمایش در فایل‌سیستم روی یک دایرکتوری دوبار کلیک نمایید. همچنین می‌توانید چند نویسهٔ اول نام فایل را در کادر ورودی متن تایپ کنید و کلید فاصله (space) را فشار دهید تا نام فایل با اولین مدخل منطبق کامل شود.

کادر Match: شامل یک الگوی نویسهٔ عام (wildcard) برای نام فایل است که فایل‌ها را در جعبهٔ فهرست فیلتر می‌کند. می‌توانید این فیلتر را تغییر داده و کلید enter را برای اسکن مجدد دایرکتوری فشار دهید.

اندازه و جهت مناسب کاغذ را انتخاب کنید. اگر می‌خواهید تقویم کل صفحه را پر کند، گزینهٔ Fill page را فعال کنید. این حالت باید وضعیت معمول باشد، مگر اینکه در یک روز خاص یادآورهای بسیار زیادی داشته باشید. (مستندات rem2pdf را ببینید.)

اگر گزینهٔ Avoid over-full boxes را فعال کنید، آن‌گاه TkRemind گزینهٔ --avoid-overfull را به rem2pdf ارسال خواهد کرد. این کار باعث می‌شود تا با کوچک کردن اندازهٔ قلم، تلاش شود یادآورهای متعددی در کادر تقویم جای داده شوند. این گزینه در صورت فعال شدن، به‌طور خودکار Fill page را نیز فعال می‌کند.

در نهایت، روی Print برای چاپ یا روی Cancel برای انصراف کلیک کنید. توجه داشته باشید که در هنگام چاپ، Remind با گزینهٔ -itkremind=1 و همچنین گزینهٔ اضافی -itkprint=1 فراخوانی می‌شود. اگر خروجی PDF تولید می‌کنید، گزینهٔ -itkpdf=1 نیز به Remind ارسال می‌شود.

اگر به جای Print روی Show Command کلیک کنید، TkRemind در واقع چیزی چاپ نخواهد کرد. در عوض، پنجره‌ای متنی حاوی دستوری که قصد داشت برای چاپ تقویم استفاده کند را باز می‌کند. در صورت نیاز می‌توانید دستور را ویرایش کرده و سپس روی Run کلیک کنید تا دستور تغییریافته اجرا شود. این ویژگی به شما امکان می‌دهد گزینه‌هایی از rem2pdf را که مستقیماً توسط TkRemind پشتیبانی نمی‌شوند مشخص کنید.

اگر یادآوری را با TkRemind ایجاد کرده باشید، با حرکت نشانگر موش روی آن در پنجرهٔ تقویم، به رنگ قرمز درمی‌آید. دکمهٔ ۱ موش را روی یادآور فشار دهید؛ کادر محاوره‌ای برای شما باز می‌شود که وضعیت آن کاملاً مشابه همان حالتی است که برای ایجاد یادآور استفاده شده بود. در این مرحله، می‌توانید با ویرایش ورودی‌های کادر محاوره‌ای و انتخاب Replace reminder، یادآور را تغییر دهید. می‌توانید با انتخاب Delete reminder یادآور را به طور کامل حذف کنید. دکمه‌های باقی‌مانده، یعنی Preview reminder و Cancel دقیقاً مشابه کادر محاوره‌ای در بخش «افزودن یادآورها» عمل می‌کنند.

توجه داشته باشید که اگر یادآوری را دستی ویرایش کرده باشید (با استفاده از Preview reminder)، یا اگر یادآور از ابتدا به صورت دستی ایجاد شده باشد، کلیک روی آن کادر محاوره‌ای ویرایش یادآورِ TkRemind را باز نخواهد کرد. در عوض، TkRemind یک ویرایشگر متن (در صورتی که پیکربندی کرده باشید) را باز می‌کند تا بتوانید یادآور را به صورت دستی ویرایش کنید.

اگر گزینهٔ «ویرایشگر متن» را به‌درستی تنظیم کرده باشید، راست‌کلیک روی یک یادآور، یک ویرایشگر متن را روی فایل حاوی آن یادآور باز خواهد کرد. مکان‌نما روی خطی که یادآور را ایجاد کرده قرار می‌گیرد. علاوه بر این، اگر یادآوری دارید که با یک ویرایشگر قابل ویرایش است اما با TkRemind ایجاد نشده، هنگام حرکت نشانگر موش روی آن، زیر آن خط کشیده می‌شود و می‌توانید با چپ‌کلیک یا راست‌کلیک روی یادآور، آن را در یک ویرایشگر متن ویرایش کنید.

اگر یک یادآور دارای موارد INFO برای مکان (Location) یا توضیحات (Description) باشد، نگه‌داشتن نشانگر موش روی یادآور، پنجره‌ای حاوی اطلاعات مکان و/یا توضیحات را نمایش خواهد داد.

اگر برای یک یادآور رشتهٔ INFO به صورت «Url:» تنظیم شده باشد، کلیک وسط موش آن URL را با استفاده از xdg-open باز خواهد کرد.

اگر خطایی در فایل یادآور شما وجود داشته باشد، دکمهٔ «...Queue» به «...Errors» تغییر می‌کند. روی «...Errors» کلیک کنید تا خروجی خطای Remind را مشاهده کنید. روی «OK» کلیک کنید تا پنجرهٔ خطا بسته شود؛ این کار دکمه را در پنجرهٔ اصلی TkRemind مجدداً به «...Queue» بازمی‌گرداند. می‌توانید روی هر پیام خطا کلیک کنید تا ویرایشگری روی فایل و شماره خطی که باعث بروز خطا شده باز شود..SH "یادآورهای پس‌زمینه (BACKGROUND REMINDERS)"

اگر یادآورهای «زمان‌دار» ایجاد کنید، TkRemind آن‌ها را در پس‌زمینه صف‌بندی کرده و با فرارسیدن زمانشان، پنجره‌های جهنده‌ای را باز می‌کند. علاوه بر این، چنانچه یادآور را با استفاده از TkRemind ساخته باشید، این امکان به شما داده می‌شود که یادآور را برای باقی‌ماندهٔ روز «خاموش» کنید. TkRemind صف‌بندی یادآورهای پس‌زمینه را با اجرای Remind در حالت سرور (server mode) انجام می‌دهد که در ادامه توضیح داده شده است.

دکمهٔ پایانی در پنجرهٔ تقویم، Options، به شما امکان می‌دهد برخی جنبه‌های TkRemind را پیکربندی کنید. همچنین می‌توانید با فشردن کلید o پنجرهٔ گزینه‌ها را باز کنید. گزینه‌های پیکربندی عبارت‌اند از:

اگر این گزینه انتخاب شود، TkRemind به‌صورت کمینه‌شده (iconified) راه‌اندازی می‌شود. در غیر این صورت، در یک پنجرهٔ معمولی آغاز به کار می‌کند.
اگر این گزینه انتخاب شود، TkRemind در زمان راه‌اندازی و همچنین هنگام تغییر تاریخ در نیمه‌شب، پنجره‌ای متنی شامل یادآورهایی که توسط "remind -q -a -r" صادر می‌شوند را نمایش می‌دهد.
اگر این گزینه انتخاب شود، هنگام فشردن Quit از شما تأییدیه خواسته می‌شود. در غیر این صورت، TkRemind بدون اعلان خارج می‌شود.
اگر این گزینه انتخاب شود، پنجره‌های جهندهٔ یادآور پس از گذشت یک دقیقه بسته می‌شوند. در غیر این صورت، تا زمانی که صریحاً آن‌ها را نبندید، برای همیشه روی صفحه باقی خواهند ماند.
این گزینه تنها برای Tcl/Tk نسخهٔ 9.0 یا بالاتر، یا در صورت نصب بودن برنامهٔ notify-send در دسترس است؛ اگر هیچ‌یک از این دو شرط برقرار نباشد، خاکستری (غیرفعال) خواهد بود. در صورت انتخاب، با جهیدن یک یادآور، پیامی نیز به سامانهٔ اعلان‌های میزکار ارسال شده و سبب نمایش اعلان می‌شود.
در صورت انتخاب، TkRemind هنگام جهیدن یک یادآورِ صف‌بندی‌شده، زنگ ترمینال را به صدا درمی‌آورد.
در صورت انتخاب، همان کاری را انجام می‌دهد که از نامش برمی‌آید (پنجرهٔ تقویم را از حالت کمینه خارج می‌کند).
اگر این ورودی خالی نباشد، دستور مشخص‌شده هر زمان که یک یادآورِ پس‌زمینه جهش کند اجرا می‌شود.
در صورت انتخاب، متن یادآور را به ورودی استاندارد دستوری که در بالا توضیح داده شد ارسال می‌کند. متن یادآور با پیشوند "HH:MM " همراه است که در آن HH:MM زمان یادآور است.
اگر نشانی ایمیلی در این فیلد وارد کنید، چنانچه پنجرهٔ جهنده را ظرف یک دقیقه نبندید، TkRemind یادآور را برای شما ایمیل خواهد کرد. این ویژگی زمانی مفید است که نیاز دارید ترمینال خود را ترک کنید اما می‌خواهید یادآورهایتان از طریق ایمیل شما را «دنبال» کنند.
برنامهٔ TkRemind برای ارسال ایمیل از اتصال مستقیم SMTP استفاده می‌کند. آدرس IP یا نام سرور SMTP خود را اینجا وارد کنید.
این گزینه ویرایشگر متنی را تعیین می‌کند که هنگام کلیک راست روی یک یادآور فراخوانی می‌شود. توالی "%d" با شماره خط فایلی که شامل یادآور است، و "%s" با نام فایل جایگزین می‌شود. رشته‌های مفیدی مانند "emacs +%d %s" یا "gvim +%d %s" نمونه‌هایی از آن هستند.
این گزینه آرگومان‌های اضافی را مشخص می‌کند که باید هنگام فراخوانی remind توسط TkRemind به آن ارسال شوند. مگر اینکه دقیقاً بدانید چه می‌کنید، این بخش را خالی بگذارید.
این دکمه کادر گفتگوی انتخاب قلم را باز می‌کند که به شما اجازه می‌دهد قلم مورد استفاده برای رسم موارد تقویم در خانه‌های تقویم را تغییر دهید.
مشابه Change entry font است، اما برای سربرگ تقویم (نام‌های ماه و روز و شماره‌های روزها) اعمال می‌شود.

پس از اینکه گزینه‌ها را به دلخواه خود پیکربندی کردید، برای اعمال آن‌ها روی Apply Options، برای اعمال و ذخیرهٔ آن‌ها در $HOME/.config/tkremindrc روی Save Options، یا برای لغو هرگونه تغییرات ایجادشده روی Cancel کلیک کنید.

اگر TkRemind را روی لینوکس اجرا می‌کنید و Remind با پشتیبانی از inotify(7) کامپایل شده باشد، در صورت تغییر $HOME/.reminders (یا در صورتی که دایرکتوری باشد، تغییر هر فایلی درون آن دایرکتوری)، TkRemind پنجرهٔ تقویم را بلافاصله دوباره رسم می‌کند.

این ویژگی به TkRemind امکان می‌دهد بلافاصله به یادآورهای ویرایش‌شده به‌صورت دستی یا فایل‌های یادآوری که از سامانهٔ تقویم دیگری وارد شده‌اند واکنش نشان دهد (برای مثال، ممکن است یک کار cron داشته باشید که به‌طور دوره‌ای ورودی‌های تقویم Google شما را به قالب Remind وارد می‌کند).

هنگامی که یادآوری را اضافه یا پیش‌نمایش می‌کنید، TkRemind برخی بررسی‌های اولیهٔ سازگاری را انجام می‌دهد. با این حال، اگر یادآوری را در پیش‌نمایشگر ویرایش کنید، TkRemind یادآورِ ویرایش‌شده را بررسی نمی‌کند. شما می‌توانید یادآورهای غیرمجازی ایجاد کنید که ممکن است باعث بروز مشکل شوند. (این یک دلیل مناسب برای جداسازی یادآورهای TkRemind در یک فایل مجزا است.)

برنامهٔ TkRemind بدنهٔ یادآور را به هیچ وجه بررسی نمی‌کند. می‌توانید از توالی‌های جایگزینیِ عادی Remind در بدنه استفاده کنید. علاوه بر این، اگر از درج عبارت (expression-pasting) در بدنه استفاده کنید، TkRemind آن عبارت‌ها را اعتبارسنجی نمی‌کند.

هنگامی که TkRemind برنامهٔ Remind را فراخوانی می‌کند، گزینهٔ زیر را:

-itkremind=1

در خط فرمان ارسال می‌کند. بنابراین، در فایل Remind خود می‌توانید کد زیر را بگنجانید:

IF defined("tkremind")
	# Then I'm probably being invoked by TkRemind
ENDIF

می‌توانید از این قابلیت برای فعال‌سازی برخی یادآورها به روش‌های متفاوت ویژهٔ TkRemind (به‌عنوان مثال) استفاده کنید.

برنامهٔ TkRemind از برچسب‌ها (tags) برای پیگیری یادآورها در فایل اسکریپت استفاده می‌کند. اگر از قوانین و محدودیت‌های زیر آگاه باشید، می‌توانید یادآورهای «دست‌نویس» را با یادآورهای ایجادشده توسط TkRemind ترکیب کنید:

برنامهٔ TkRemind از TAGهایی به فرم TKTAGnnn استفاده می‌کند که در آن nnn یک عدد است. شما نباید از چنین TAGهایی در یادآورهای دست‌نویس استفاده کنید.
یادآورهای دست‌نویس با TkRemind قابل ویرایش نیستند، و برای یادآورهای زمان‌دار دست‌نویس، هنگام جهیدن پنجرهٔ آن‌ها، گزینهٔ "Don't remind me again" به شما نمایش داده نخواهد شد.

با این حال، به‌جای ترکیب فایل‌های دست‌نویس با موارد تولیدشده توسط TkRemind، بهتر است $HOME/.reminders را به یک دایرکتوری تبدیل کنید و فایل‌های ویرایش‌شده به‌صورت دستی را در یک فایل *.rem جداگانه از فایل 100-tkremind.rem متعلق به TkRemind نگهداری نمایید..SH "حالت سرور (SERVER MODE)"

Remind یک حالت ویژه برای تعامل با برنامه‌هایی مانند TkRemind دارد. این حالت حالت سرور (server mode) نامیده می‌شود و با ارائهٔ گزینهٔ -zj به Remind فعال می‌گردد.

در حالت سرور، Remind مشابه با حالت دیمن (daemon mode) عمل می‌کند، با این تفاوت که دستورها را (یک دستور در هر خط) از ورودی استاندارد می‌خواند و خطوط وضعیت را در خروجی استاندارد می‌نویسد. هر خط وضعیت یک شیء JSON است.

دستورهای پذیرفته‌شده در حالت سرور عبارتند از:

پایان دادن به فرآیند Remind. نشانگر پایان پرونده (EOF) در ورودی استاندارد نیز همین کار را انجام می‌دهد. Remind بلافاصله و بدون چاپ خط وضعیت JSON خارج می‌شود.
بازگرداندن تعداد یادآورهای موجود در صف. شیء JSON شبیه به این خواهد بود:
{"response":"queued","nqueued":n,"command":"STATUS"}
که در آن n تعداد یادآورهای موجود در صف است.
بازگرداندن محتویات صف. شیء JSON چیزی شبیه به این خواهد بود:
{"response":"queue","queue":[ ... ],"command":"QUEUE"}
مقدار کلید queue آرایه‌ای از اشیاء JSON است که هر کدام نشان‌دهندهٔ یک یادآور در صف هستند.
ترجمهٔ «Any string goes here» را بر اساس جدول ترجمهٔ Remind بازمی‌گرداند. توجه داشته باشید که باید دقیقاً یک فاصله پس از TRANSLATE و قبل از رشته‌ای که می‌خواهید ترجمه کنید وجود داشته باشد. شیء JSON حاصل از «TRANSLATE New Moon» ممکن است شبیه به این باشد:
{"response":"translate","translation":{"New Moon":"Nieuwe maan"},"command":"TRANSLATE"}
همان‌طور که مشاهده می‌کنید، مقدار کلید translation شیئی است که کلید آن متن اصلی و مقدار آن متن ترجمه‌شده است. یک واسط کاربری (front-end) می‌تواند از TRANSLATE برای محلی‌سازی خود استفاده کند؛ برای نمونه، TkRemind از آن برای بومی‌سازی پنجرهٔ بازشوی وضعیت ماه در نمایش SPECIAL MOON استفاده می‌کند.

اگر آرگومان داده‌شده به TRANSLATE در جدول ترجمه نباشد، آن‌گاه Remind اصلاً هیچ پاسخی به دستور TRANSLATE صادر نخواهد کرد.

محتویات جدول ترجمه را بازمی‌گرداند. شیء JSON شبیه به این خواهد بود:
{"response":"translate_dump","table":{...},"command":"TRANSLATE_DUMP"}
مقدار کلید table یک دیکشنری از رشته‌های اصلی به ترجمه‌شده است.
یادآور با شناسهٔ صف qid را از صف حذف می‌کند.
خواندن مجدد پروندهٔ یادآور. خط وضعیت زیر را بازمی‌گرداند:
{"response":"reread","command":"REREAD"}

سایر خطوط وضعیت نوشته‌شده به شرح زیر هستند:

{"response":"reminder","ttime":tt,"tdatetime":tdt,"now":now,"tags":tags,"qid":qid,"body":body}
در این خط، tt زمان فعال‌سازی یادآور است (به صورت یک رشته بیان می‌شود)، tdt زمان و تاریخ فعال‌سازی یادآور (DATETIME) است که به عنوان رشته‌ای با قالب «YYYY-MM-DDTHH:MM» بیان می‌شود؛ now زمان فعلی است، tags (در صورت وجود) برچسب یا برچسب‌های مرتبط با یادآور بوده و body متن بدنهٔ یادآور است. این پاسخ باعث می‌شود TkRemind یک اعلان یادآور را به صورت بازشو نمایش دهد. qid یک شناسهٔ یکتا برای این یادآور است. شما می‌توانید با ارسال دستور DEL qid به سرور، آن را از صف حذف کنید. توجه داشته باشید که qidها در خواندن‌های مجدد پایدار نیستند؛ اگر Remind برای خواندن مجدد پروندهٔ یادآور بازراه‌اندازی شود، احتمالاً مقادیر qid تغییر خواهند کرد و هر یادآوری که با دستور DEL qid حذف شده باشد، ممکن است دوباره در صف قرار گیرد.
{"response":"newdate"}

این خط هر زمان که Remind تغییر و گردش تاریخ سیستم را تشخیص دهد، صادر می‌شود. برنامهٔ واسط باید تقویم خود را دوباره ترسیم کند یا هر اقدام لازم دیگری را به انجام رساند.

{"response":"reread","command":"inotify"}

اگر Remind با پشتیبانی از inotify(7) کامپایل شده باشد، در صورت تشخیص تغییری در پرونده یا دایرکتوری سطح‌بالای یادآور، پاسخ بالا را صادر می‌کند. واسط کاربری باید تقویم خود را از نو ترسیم کند، زیرا این پاسخ نشان می‌دهد که تغییری در پرونده یا دایرکتوری یادآور ایجاد شده است.

لطفاً توجه داشته باشید که Remind می‌تواند در هر زمانی یک پیام وضعیت بنویسد و این امر فقط در پاسخ به دستور ارسال‌شده به ورودی استاندارد آن نیست. بنابراین، برنامه‌ای که Remind را در حالت سرور اجرا می‌کند باید برای مدیریت پیام‌های وضعیت ناهمگام (asynchronous) آماده باشد..SH "نویسنده (AUTHOR)" TkRemind توسط Dianne Skoll <dianne@skoll.ca> نوشته شده است.

حق نشر (C) 1996-2026 TkRemind متعلق به Dianne Skoll است.

$HOME/.reminders -- فایل یا دایرکتوری پیش‌فرض یادآورها.

$HOME/.config/tkremindrc -- گزینه‌های ذخیره‌شدهٔ TkRemind.

https://dianne.skoll.ca/projects/remind

remind، rem2pdf، rem2html

2026-06-05 Remind