Provided by: tkremind_04.03.01-1build1_all bug

NAME

       tkremind - graphical front-end to Remind calendar program

SYNOPSIS

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

DESCRIPTION

       TkRemind is a graphical front-end to the Remind program.  It provides a friendly graphical
       interface which allows you to view your calendar and add reminders  without  learning  the
       syntax  of  Remind.   Although  not  all of Remind's features are available with TkRemind,
       TkRemind gives you an opportunity to edit the reminder commands which  it  creates.   This
       allows  you  to  learn  Remind's  syntax  and then add extra features as you become a more
       sophisticated Remind programmer.

       TkRemind is written in Tcl, and requires version 8.5 (or higher) as  well  as  the  tcllib
       extension.   It  also  requires  a wish binary.  If you are using Tcl/Tk 8.5, you may also
       need either the Img or the tkpng extension to handle PNG images.

COMMAND-LINE OPTIONS

       TkRemind itself has no command-line options.  However, it passes  certain  options  on  to
       Remind.   The  options  it  passes are -b, -g, -x, -i and -m.  See the Remind man page for
       details about the options.  Note that TkRemind will respect the -m  and  -b1  options  and
       adjust its appearance accordingly.

       Read_file  is  the  file  from  which  TkRemind reads reminders.  It is in standard Remind
       format.  Write_file is the file to which TkRemind writes reminders which you add using the
       GUI.  If Read_file is omitted, it defaults to $HOME/.reminders.  If Write_file is omitted,
       it defaults to Read_file.

       You may wish to have a different Write_file from Read_file if you want to collect  all  of
       TkRemind's  reminders  in  one  place.  Suppose your main file is $HOME/.reminders and you
       want TkRemind to put its reminders in $HOME/.tkreminders.   In  $HOME/.reminders,  include
       the line:

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

       Config_file  is  the  file  in  which  TkRemind  stores its options.  If it is omitted, it
       defaults to $HOME/.config/tkremindrc.

       If $HOME/.reminders is a directory, then TkRemind defaults to reading $HOME/.reminders and
       writing  new  reminders  to  $HOME/.reminders/100-tkremind.rem.   If you want to keep your
       reminders in a  directory  $HOME/.reminders,  you  should  create  that  directory  before
       starting TkRemind.

THE CALENDAR WINDOW

       When  you  start TkRemind, it displays a calendar for the current month, with today's date
       highlighted.  Reminders are filled into each box on the calendar.  If a box contains  many
       reminders, you can scroll it up and down by dragging mouse button 2 in the box.  Note that
       there is no specific indication of an over-full box; you'll just have to notice  that  the
       box appears completely full.

NAVIGATING

       To change to the previous or next month, click the <- or -> button, respectively.  You can
       also use the left/right arrow keys or PageUp/PageDown to navigate.

       To change back to the current month, click Today or press  the  Home  key.   To  go  to  a
       specific month, click Go To Date....  This pops up a dialog box which allows you to select
       a month and enter a year.  Once you've done this, click Go to go to the date, or Cancel to
       cancel.

       To exit TkRemind, click Quit.

ADDING REMINDERS

       To  add a reminder, click button 1 in any day number in the calendar.  The Add Reminder...
       dialog will pop up, with values preselected for the day you clicked.

       The dialog has six basic groups of controls.  The first three lines select  one  of  three
       types  of  reminders.   Choose the type of reminder with the radio buttons, and choose the
       values of the days, months, and years by selecting values from pull-down menus.  The pull-
       down menus appear when you click the raised value buttons.

       The  next  control  specifies an expiry date for the reminder.  Select the check button to
       enable an expiry date, and fill in the values using pull-down menus.

       The third control specifies how much advance notice you want (if any), and whether or  not
       weekends and holidays are counted when computing advance notice.

       The fourth control specifies which days Remind considers as part of the weekend.  This can
       affect the interpretation of "weekday" in the second and third types of reminders.

       The fifth control associates a time with the  reminder.   You  can  also  specify  advance
       notice, possibly repeating.

       The  sixth  control  specifies  what  Remind should do if a reminder falls on a holiday or
       weekend.

       Enter the body of the reminder into the Body: text entry.

       To add the reminder to the reminder file, click Add to reminder file.  To close the dialog
       without  adding  the  reminder  to the file, click Cancel.  To preview the reminder, click
       Preview reminder.  This pops up the Preview reminder dialog box.

PREVIEWING REMINDERS

       The Preview reminder dialog box is an excellent way to  learn  Remind.   It  displays  the
       Remind  command  which realizes the reminder you entered using the Add Reminder... dialog.
       You can edit the reminder, thereby gaining access to advanced features of Remind.  You can
       also  use  it  simply to play around and discover Remind's idioms for expressing different
       types of reminders.

PRINTING

       To print the current month's calendar, click Print... on the main calendar  window.   This
       brings  up  the  print  dialog.   Printing  either  produces  a  PostScript  file or sends
       PostScript to a UNIX command.  (If you have rem2pdf installed, you can choose  to  produce
       PDF output rather than PostScript.)

       Select  the  print  destination  by  choosing  either To file: or To command: in the print
       dialog.  Press Browse... to bring up a file browser.  In the file browser, you can enter a
       filename  in the text entry, double-click on a filename in the listbox, or double-click on
       a directory to navigate the file system.  You can also type the first few characters of  a
       file name in the text entry box and press space to complete the name to the first matching
       entry.

       The Match: box contains a filename wildcard which filters files in the listbox.   You  can
       change the filter and press enter to rescan the directory.

       Select  the  appropriate  paper  size and orientation.  Activate Fill page if you want the
       calendar to fill the page.  This should be the normal case unless you have many  reminders
       in a particular day.  (See the Rem2PS or rem2pdf documentation.)

       Finally,  click  Print to print or Cancel to cancel.  Note that during printing, Remind is
       called with the -itkremind=1 option and also an additional -itkprint=1 option.  If you are
       producing PDF output, then the option -itkpdf=1 is also supplied to Remind.

EDITING REMINDERS

       If  you created a reminder with TkRemind, it will turn red as the mouse cursor passes over
       it in the calendar window.  Click button-1 over the reminder and  you  will  be  presented
       with  a dialog window whose state is identical to the one used to create the reminder.  At
       this point, you can change the reminder  by  editing  the  dialog  entries  and  selecting
       Replace reminder.  You can delete the reminder entirely by selecting Delete reminder.  The
       remaining buttons, Preview reminder and  Cancel  operate  identically  to  the  dialog  in
       "ADDING REMINDERS."

       Note  that  if  you  edit  a reminder (using Preview reminder), any edits you made are not
       retained in the dialog box.  You should not attempt to edit such reminders;  you  have  to
       retype them in the Preview reminder dialog.

       If the reminder was not created with TkRemind, you can't edit it with TkRemind.

USING A TEXT EDITOR

       If  you  have  set  the  "text editor" option correctly, right-clicking on a reminder will
       bring up a text editor on the file containing the reminder.  The cursor will be positioned
       on  the  line  that  generated  the reminder.  In addition, if you have a reminder that is
       editable with an editor but was not created using TkRemind, it will be underlined when you
       move  the  cursor  over it, and you can edit it in a text editor by either left- or right-
       clicking on the reminder.

ERRORS

       If there are  any  errors  in  your  reminder  file,  the  "Queue..."  button  changes  to
       "Errors...".   Click  on  "Errors..." to see the Remind error output.  Click "OK" to close
       the error window; this makes  the  button  in  the  main  TkRemind  window  to  revert  to
       "Queue..."

BACKGROUND REMINDERS

       If  you  create  "timed"  reminders, TkRemind will queue them in the background and pop up
       boxes as they are triggered.  Additionally, if you created the  reminder  using  TkRemind,
       you  will  be  given  the  option  of  "turning off" the reminder for the rest of the day.
       TkRemind achieves queuing of background  reminders  by  running  Remind  in  server  mode,
       described later.

OPTIONS

       The  final  button  on the calendar window, Options, lets you configure certain aspects of
       TkRemind.  The configuration options are:

       Start up Iconified
              If this is selected, TkRemind starts up iconified.  Otherwise, it starts  up  in  a
              normal window.

       Show Today's Reminders on Startup
              If  this is selected, TkRemind shows a text window containing reminders which would
              be issued by "remind -q -a -r" on startup, and when the date changes at midnight.

       Confirm Quit
              If this is selected, you will be asked to confirm when you  press  Quit.   If  not,
              TkRemind quits without prompting.

       Automatically close pop-up reminders after a minute
              If  this  is  selected,  pop-up  reminder boxes will be closed after one minute has
              elapsed.  Otherwise, they remain  on  your  screen  forever  until  you  explicitly
              dismiss them.

       Beep terminal when popping up a reminder
              If selected, TkRemind beeps the terminal bell when a queued reminder pops up.

       Deiconify calendar window when popping up a reminder
              If selected, does what it says.

       Run command when popping up a reminder
              If  this  entry  is  not  blank, the specified command is run whenever a background
              reminder pops up.

       Feed popped-up reminder to command's standard input
              If selected, feeds the text of the reminder to the command  described  above.   The
              text  of  the  reminder  is  prefixed  by  "HH:MM ", where HH:MM is the time of the
              reminder.

       E-mail reminders here if popup not dismissed
              If you enter a non-blank e-mail address in this field, then  TkRemind  will  e-mail
              you  a  reminder  if  you  don't  dismiss the popup box within one minute.  This is
              useful if you need to leave your terminal but want your reminders to  "follow"  you
              via e-mail.

       Name or IP address of SMTP server
              TkRemind  uses a direct SMTP connection to send mail.  Enter the IP address of your
              SMTP server here.

       Text Editor
              This specifies a text editor to invoke  when  a  reminder  is  right-clicked.   The
              characters  "%d"  are  replaced  with  the  lined number of the file containing the
              reminder, and "%s" are replaced with the file name.  Useful strings might be "emacs
              +%d %s" or "gvim +%d %s"

       Extra Argument for Remind
              This  specifies  any extra arguments that should be passed to Remind when 0 you are
              doing, leave this blank.

       Change entry font...
              This button pops up a font selection dialog that lets you change the font  used  to
              draw calendar items in the calendar boxes.

       Change heading font...
              Similar  to  Change  entry font, but applies to calendar heading (the month and day
              names and the day numbers.)

       Once you've configured the options the way you like them, press Apply Options to put  them
       into   effect,   Save   Options   to   put   them   into   effect   and   save   them   in
       $HOME/.config/tkremindrc, or Cancel to cancel any changes you made.

KEYBOARD SHORTCUTS

       TkRemind's main window includes the following keyboard shortcuts:

       Ctrl-Q Quit

       Left Arrow
              Previous Month

       Right Arrow
              Next Month

       Home   Today

IMMEDIATE UPDATES

       If you are running TkRemind on Linux and Remind has been compiled with inotify(7) support,
       then  TkRemind redraws the calendar window immediately if $HOME/.reminders changes (or, if
       it is a directory, any files in that directory change.)

       This lets TkRemind react immediately to hand-edited reminders or to  reminder  files  that
       are  imported  from  another  calendar  system  (for example, you may have a cron job that
       periodically imports your Google Calendar entries into Remind format.)

ODDS AND ENDS

       TkRemind performs some basic consistency checks  when  you  add  or  preview  a  reminder.
       However,  if  you  edit  a  reminder  in the previewer, TkRemind does not check the edited
       reminder.  You can produce illegal reminders which may cause problems.  (This is one  good
       reason to isolate TkRemind's reminders in a separate file.)

       TkRemind  does  not  check  the  body  of the reminder in any way.  You can use the normal
       Remind substitution sequences in the body.  Furthermore, if you use expression-pasting  in
       the body, TkRemind does not validate the expressions.

       When TkRemind invokes Remind, it supplies the option:

            -itkremind=1

       on the command line.  So, in your Remind file, you can include:

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

       You  can  use  this  to  activate  certain  reminders  in different ways for TkRemind (for
       example).

       TkRemind uses tags to keep track of reminders in the script file. You  can  certainly  mix
       "hand-crafted"  reminders  with  reminders  created  by  TkRemind  if you are aware of the
       following rules and limitations:

       o      TkRemind uses TAGs of the form TKTAGnnn where nnn is a number.  You should not  use
              such TAGs in hand-crafted reminders.

       o      Hand-crafted  reminders  cannot be edited with TkRemind, and for hand-crafted timed
              reminders, you will not be presented with the "Don't remind me again"  option  when
              they pop up.

       However,  rather  than mixing hand-edited files with TkRemind-generated ones, it is better
       to make $HOME/.reminders a directory and keep your hand-edited files in a  separate  *.rem
       file than TkRemind's 100-tkremind.rem file.

SERVER MODE

       Remind  has  a  special  mode  for  interacting with programs like TkRemind.  This mode is
       called server mode and is selected by supplying the -zj option to Remind.

       In server mode, Remind operates similar to daemon mode, except it reads commands (one  per
       line) from standard input and writes status lines to standard output.  Each status line is
       a JSON object.

       The commands accepted in server mode are:

       EXIT   Terminate the Remind process.  EOF on standard input does the same  thing.   Remind
              exits immediately without printing a JSON status line.

       STATUS Return the number of queued reminders.  The JSON object looks something like this:

              {"response":"queued","nqueued":n,"command":"STATUS"}

              where n is the number of reminders queued.

       QUEUE or JSONQUEUE
              Returns the contents of the queue.  The JSON object looks something like this:

              {"response":"queue","queue":[ ... ],"command":"QUEUE"}

              The  value of the queue key is an array of JSON objects, each representing a queued
              reminder.

       REREAD Re-read the reminder file.  Returns the following status line:

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

       Additional status lines written are as follows:

       {"response":"reminder","ttime":tt,"now":now,"tags":tags,"body":body}

              In this line, tt is the trigger time of the reminder (expressed as a  string),  now
              is  the  current  time,  tags  (if  present) is the tag or tags associated with the
              reminder, and body is the body of the reminder.  This response causes  TkRemind  to
              pop up a reminder notification.

       {"response":"newdate"}

              This  line  is  emitted whenever Remind has detected a rollover of the system date.
              The front-end program should redraw its calendar or take whatever other  action  is
              needed.

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

              If  Remind was compiled with support for inotify(7), then if it detects a change to
              the top-level reminder file or directory, it issues the above response.  The front-
              end should redraw its calendar since this response indicates that a change has been
              made to the reminder file or directory.

       Please note that Remind can write a status message at any time and not just in response to
       a  command  sent  to  its standard input.  Therefore, a program that runs Remind in server
       mode must be prepared to handle asynchronous status messages.

AUTHOR

       TkRemind was written by Dianne Skoll <dianne@skoll.ca>

       TkRemind is Copyright 1996-2024 by Dianne Skoll.

FILES

       $HOME/.reminders -- default reminder file or directory.

       $HOME/.config/tkremindrc -- TkRemind saved options.

HOME PAGE

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

SEE ALSO

       remind, rem2ps, rem2pdf, rem2html