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

4th Berkeley Distribution                          2024-02-29                                        TKREMIND(1)