pkg://plan-1.9-13mdk.x86_64.rpm:339013/
usr/
lib64/
plan/plan.help
info downloads
#
# help pulldown choices
#
%% intro
INTRODUCTION
This program combines the functions of the various graphical calendar
tools, and an alarm facility such as calendar(1). In the main window,
a month calendar is displayed, consisting of 28..31 day boxes. Into
each of these day boxes, appointments may be entered that trigger on
that day, at a particular time.
To enter an appointment, click on the daybox the appointment should
go into. An appointment list popup appears. Click on the top "time"
button. A date appears next to it, and there is a cursor in the time
button. Enter a time, such as "11:00", and press Return. Skip the
length button by pressing Return again. Now the rightmost button
has a cursor in it; enter a short description of the appointment
and press Return again. The appointment is now added; you can enter
another one or press Done to exit the menu. The appointment has now
appeared in the day box of the month calendar.
An alternative way of entering appointments is the year calendar. It
is accessible from the Year pulldown menu of the main month calendar.
Its day boxes work exactly like those of the month calendar. Finally,
the week view allows editing appointments by double-clicking them.
In addition to simply adding an appointment by date, time, and note,
various options such as repetitive appointments, advance warnings,
message texts, automatic execution of shell scripts etc. are available
in the appointment list menus.
Appointments can also be entered from the command line, using a
command like
plan 1015 wake up and go home
The date and time is in date(1) format, [mmdd]hhmm.
When plan started up, it may have complained that no daemon is running,
and offered to start one. The daemon is a separate program that waits
for appointments to trigger, and takes appropriate action when one
does. This means that without the daemon, no alarm will ever trigger.
It also means that this interactive program does not have to run for
alarm triggers, only the daemon always exists.
plan reads appointments from files or from an IP server "netplan". The
File->File list can be used to configure file names and server hosts.
plan does not start netplan automatically; it must already run on the
specified hosts.
%% help
GETTING HELP
To get general help on a popup menu, press the Help button in that
popup menu.
To get help on a pulldown menu in the main month calendar window,
install the pulldown menu by pressing and releasing the left mouse
button on the menubar button, then press the HELP or F1 keyboard key.
Help on most buttons is available by choosing "On Context" in the Help
pulldown, and then pressing on a button or calendar. Every help window
contains a Context button that does the same thing as "On Context".
Normally, the Help or F1 keyboard keys are not very helpful, because
many of the interesting items either have no shadow (so you don't
know which tab group member has focus), or are drawn using Xlib.
%% trouble
TROUBLESHOOTING
* If you get the message "No type converter registered for 'Pixel' to
'String' conversion", you probably have a CDE system that overrides
standard resources with nonfunctional values. Run "plan -d >>
~/.Xdefaults; xrdb -merge" to fix.
* If the time display in the month view and in the icon title do not
update, and/or you get the message "X server fails to send timer
events, switching to synchronous file writing", there is something
wrong with your X server (probably XFree). The message shows that
plan has noticed this (after changing an appointment at least 40
seconds after startup) and will at least make sure that no data is
lost. There is no fix for the time display.
* If you get messages like "pland: .../.dayplan: illegal line:
y s--------- 1 1 0" or "pland: too many u stmts in .../.dayplan",
you are running the wrong pland version, 1.4.4 or earlier instead
of 1.4.7 or higher. Install the correct version of pland in the
directory specified as LIB in the Makefile (/usr/local/mi/lib by
default). Also make sure notifier, netplan, plan.help, and
plan_cal.ps are in the same directory.
* If you run netplan as root, and it can't open its home directory,
check whether NOB_UID and NOB_GID in the Makefile really contain
the user and group ID of the <nobody> account, and make sure that
<nobody> can access the netplan.dir home directory in $(LIB).
* if holidays are not shown in the month view, make sure that your
day number font (Plan*calNumberFont) is at least twice as large
as your note font (plan*calNoteFont).
* if holidays are not shown in the week view, there may not be enough
space, and you need to increase the bar height. Try this in your
.Xdefaults file: "Plan*weekBarHeight: 26" (without the quotes).
* pland does not execute scripts attached to appointments that were
read from a server, and will print an error message instead. This
is necessary because anybody could modify or attach a script to
one of your appointments, and have it executed under your user ID.
* If plan refuses to change appointments in other files that were
attached with the File->File list menu, saying "no permission",
make sure that you own the file. Having write permission is not
enough. You can override this safety feature by turning off the
"Only owner can write" mode in the Config->Calendar menu, but
do so with great care because multiple writers are not sequenced.
This applies only to files that are not read from netplan servers.
* If your screen saver stops working when plan is running, put two
lines "Plan*showIconTime: False" and "Plan*showIconDate: False"
into your ~/.Xdefaults file. If plan updates the time in the icon,
the screen saver timeout is restarted, and never reaches timout
because updates happen once every minute. Only some X servers
exhibit this problem.
* On SGI systems, if the icon doesn't show a picture, copy the icon
picture Plan.icon into your ~/.icons directory. If you don't have
one and don't want one, set the plan*noIcon resource to False in
your ~/.Xdefaults file. It may be necessary to restart 4Dwm to
register the icon after copying it to ~/.icons.
* If starting plan prints cpp errors to stderr (or pops up an error
dialog on SGIs if desktop error reporting is turned on), change
all '#' characters in your ~/.holiday to ':'. The comment
introducer was changed in version 1.3 to allow #include statements.
* If the main menu shows an incorrect time above the month calendar,
and alarms trigger an hour early or late, plan might have an
incorrect idea of your timezone and Daylight Saving Time status.
To correct this, choose "Adjust Time" from the Config pulldown,
and change the defaults.
* If the pulldowns in the main menu show labels like "button_3", add
-DNOMSEP to whatever xxx_C line you are using in the Makefile, and
recompile. If the problem persists, also add -DFIXMBAR.
* On some BSD-based systems, it takes a while for appointment
changes to propagate to the daemon. The result is that alarms that
trigger a few minutes after they were added or edited are ignored.
This is normal on these systems. However, if alarms don't trigger
at all, use the ps command (see man ps) to make sure that pland is
running, and verify that its process ID agrees with the number in
/tmp/.plandUID (with UID being your numerical user ID). Also, plan
may get out of sync if you start more than one, and answer Continue
in the warning dialog.
* Previous versions of plan contained a recommendation to put "killall
pland" into your .logout file. Don't do this, it kills the daemon
whenever you delete a window, and no more alarms will trigger.
* The plan program uses quite a few colormap entries. Although there
is a black&white fallback mode, you may have problems starting other
programs that also need many colormap entries. The only workaround
is to kill plan when you don't need it; alarms will trigger anyway.
* If radio and toggle buttons appear gray regardless of the colToggle
and colRed resources, make sure that the sgiMode resource is False.
In SGI desktop mode, colToggle and colRed are disabled because they
would override the desktop defaults. The sgiMode resource is True
only if plan was compiled with "make sgi5", add "plan*sgiMode: False"
to your ~/.Xdefaults file in this case, or recompile with "make sgi4".
* If you are using LessTif and the File->File list dialog is missing
all buttons except the toggles, upgrade to LessTif version 0.87.1
or later.
* The message "Warning: No type converter registered for 'Pixel' to
'String' conversion" on CDE systems such as Sun may mean that a
font was not found. Use plan -d to list all resources and verify
that all fonts exist, using the xfontsel program. If not, change
the lines with bad fonts and add them to your ~/.Xdefaults file.
If you have problems you can't resolve, or if you have suggestions
for new features, or porting instructions for new platforms, send mail
to me at thomas@bitrot.de. Note that the plan version on the
SGI Developer's Toolbox CD supports only SGI systems. If you mail, do
not forget to include your version number as reported by "plan -v".
%% files
FILES AND PROGRAMS
The calendar program is distributed as four programs and two data
files: plan, pland, notifier, netplan, plan.help, and plan_cal.ps.
Plan should be installed in the directory given as DIR in the Makefile,
by default /usr/local/bin, and the others in the directory given as
LIB, also /usr/local/bin by default. The distribution also contains
.holiday files for various countries.
"plan" is the main interactive calendar program that you are using at
the moment. It is used to view calendars and to enter appointments
at specified dates and times, with various optional parameters. It
depends on the plan.help file, and writes all configuration parameters
and appointments to two files ".dayplan" and ".dayplan.priv" in the
user's home directory. It signals the daemon (SIGHUP) when that file
changes, to force the daemon to re-read it.
"pland" is the daemon. Its purpose is to watch alarms and warnings,
and to perform the appropriate action if one triggers. The "plan"
program need not run to trigger an alarm. "pland" is a very small
program with no X code, to avoid excessive system load. It reads the
~/.dayplan* databases, but never writes to them. pland is normally
started by the user's .xsession or .sgisession file.
"notifier" displays an ascii text in a color-coded window. It is a
separate program to keep "pland" small. It handles snoozing all by
itself.
"netplan" is an IP server that must be started before plan and pland
start. It is sufficient to have one per network of hosts. If enabled
with the File->File list dialog, all plan's and pland's connect to
the netplan server to read and write appointments. netplan properly
sequences all events and informs connected programs of changes.
"plan.help" contains all help messages.
"plan_cal.ps" is a PostScript skeleton containing PostScript code
used by plan when printing calendars. This file can be used to change
the defaults for margins and fonts; future versions may use popup
menus for this task. Always keep the original version when editing it.
"Plan.icon" is an SGI RGB picture file that should be copied to the
~/.icons directory. On SGIs, the noIcon resource is set to True by
default to make 4Dwm use the full-color picture. It may be necessary
to restart 4Dwm to register the icon.
In the user's home directory, there are three files. ".dayplan" contains
the public appointments (the ones without the padlock icon in the
appointment list menu, which can be displayed in other users' week
views). ".dayplan.priv" contains the private appointments (the ones
with a padlock, which cannot be accessed by other users). ".holiday"
contains a description of public holidays and vacations as specified
with the Define Holidays popup in the Config pulldown. For a description
of the .dayplan* format, see the plan(4) manpage.
If the LIB directory (specified in the Makefile) contains a file
"holiday", it is read after ".holiday" to add system-wide holidays to
the user's holiday list.
Both plan and pland use the environment variables $PATH, $PLAN_PATH, a
built-in default path, and the directories DIR and LIB specified in the
Makefile for locating programs and plan.help.
plan does not start netplan automatically; it must already run on the
specified hosts.
plan can read database files created by the desktop database manager
"xmbase-grok", version 1.4 and later. Grok is a database manager that
includes a GUI builder to define custom database applications, and
comes with predefined applications such as a phone directory, a todo
list, a workplan manager, a bibliography and others. Grok is available
on the same servers as plan. The primary servers are ftp.fu-berlin.de
and ftp.x.org. See http://www.bitrot.de/index.html.
%% network
NETWORKING
netplan is an IP service. There is normally only one on a network of
hosts. It manages all appointment files for all plan and pland programs
on the network. The advantage over having these programs read files is
that multiple access is sequenced such that nobody overwrites or cancels
changes by others, and that everybody is immediately informed of changes
automatically.
netplan must be started manually before the first plan or pland is
started. It sits on a port on a specific host, by default port 5444.
It should be started as user "nobody", but any other user will work
as long as it can read and write netplan's home directory (defined in
netplan_if.h, by default /usr/local/lib/netplan.dir). If netplan is
started as root, it switches to "nobody". This is useful if netplan
is started from a boot script like /etc/rc2.d/S99netplan (System V)
or /etc/rc.local (BSD).
There are several security concerns. netplan does not provide access
authentification. Everybody can read and write any file managed by
netplan. For this reason, plan continues to keep private (padlocked)
appointments in a ~/.dayplan.priv file, not under netplan control.
SECURITY FEATURES
Apart from the ability for everybody to access everybody else's non-
private appointments, netplan must satisfy general security concerns.
In particular, it must not be usable to open network security holes
that allow access to files that have nothing to do with plan. The
security features are:
* if run by root or setuid root, netplan switches to "nobody". The
UID and GID of <nobody> is compiled in, not determined at runtime.
netplan will refuse to run setgid-but-not-setuid root.
* netplan does not execute other programs (this is one of the reasons
why there are still pland daemons).
* netplan cannot be used to access files that are not in its home
directory, /usr/local/lib/netplan by default. Absolute paths are
converted to paths relative to the home directory, and paths with
".." are rejected.
* netplan refuses to access softlinks and files that have more than
one hardlink. This may be inconvenient at times, but without this
the user who started netplan would be wide open to the entire net.
* netplan is not sendmail. All buffers are checked for overflows. It
is implemented as a single 1158-line C file and can be hand-checked
easily.
* netplan is Purify'd.
* the pland daemon does not execute scripts that were read from a server.
%% widgets
WIDGETS AND RESOURCES
plan uses the following environment variables:
PLAN_TZ provides defaults for the timezone and Daylight Saving Time.
TZ provides the defaults if PLAN_TZ is not set.
LOGNAME provides your user name for the default mailer command.
USER provides your user name if LOGNAME is undefined.
user provides your user name if LOGNAME and USER are both undefined.
HOME is your home directory, for locating .dayplan* and .holiday.
PLAN_PATH and PATH are colon-separated search paths for finding
programs. First, BIN and LIB from the Makefile are searched, then
PLAN_PATH, then PATH, and finally a built-in default search path.
Note that the latter contains the current directory.
To get a list of default X resources of the "plan" program, run it with
the -d option. The output can be directly appended to the .Xdefaults
file in your home directory or saved into a file "Plan" in your
app-defaults directory. If you install a system wide app-default file
make sure that lines do not start with "plan"; otherwise users might
not be able to override the setup. Omit the application name or use
the application class name "Plan". The "notifier" program also supports
a -d option.
For example, for a much smaller month calendar, append these lines
to your ~/.Xdefaults file or modify your app-defaults file:
Plan*colGrid: #909090
Plan*menubar*fontList: -*-helvetica-bold-*-normal-*-14-*
Plan*fontList: -*-*-medium-r-*-*-14-*
Plan*calNumberFont: -*-helvetica-*-r-*-*-14-*
Plan*calBoxWidth: 40
Plan*calBoxHeight: 34
Plan*calBoxMargin: 10
Plan*calBoxTitle: 15
The resources of "notifier" can be set similarly. Its application class
name is "Notifier". Here are plan's main resources, listed by view, in
the order geometry, fonts, and colors:
GLOBAL RESOURCES
noIcon: don't draw anything into the icon. This should be used on
SGI systems so that 4Dwm uses the color picture as an icon.
The color icon should be moved to ~/.icons/Plan.icon .
showIconTime: if true, show the current time in the icon title. For
some reason, this may prevent the screen saver from kicking in.
showIconDate: if true, show the current date and time in the icon
title. For some reason, this may prevent the screen saver from
kicking in.
frameToday: put a black frame into today's day box in the month
view. This is useful on 1-bit black and white systems.
noMonthShadow: in the month view, only draw the days that actually
fall into this month, don't draw other days as shadows.
sgiMode: for SGI systems running IRIX 5.2 only. Switches plan to
the SGI desktop style if True. colToggle and colRed are ignored
in this mode. sgiMode is True by default if plan was compiled
with "make sgi5". sgiMode is far superior to classic Motif. You
may also set `useSchemes' to True, and set `scheme' to Lascaux.
When using schemes, many color and font resources are ignored.
startupAs: if set to ``smallmonth'', start with small month window
menubar*fontList: font for menubar and pulldowns
fontList: default font for buttons and titles
helpFont: font used in help popups
background: standard window background color
colStd: standard foreground color for button labels etc
colBack: standard background color
colWireFrame: used for exclusive-or'ed wireframe boxes when dragging
colGrayIcon: color of appt entry option icons if the option is disabled
colTextBack: all inset text entry buttons use this color, pink by default
colToggle: most toggle buttons use this color when the toggle is on
colRed: the pin toggle in appointment edit popups uses this color when on
noteWidth: the width of the note column in the appointment entry dialog,
in pixels (new in version 1.5)
MONTH VIEW RESOURCES
calBoxWidth: width of one day box
calBoxHeight: height of one day box, determines number of note lines
calBoxMargin: margin size at the edges of the inset calendar
calArrowWidth: width of the week popup arrows at the left edge
calBoxTitle: height of the title area with the weekday names
calNumberFont: large font used for day numbers, twice as large as note font
calNoteFont: very small and narrow font for notes
frameToday: put black frame in today's day box. Useful for 1-bit screens.
colCalBack: standard white month background color
colCalShade: boxes with days in them use this background color
colCalAct: no longer used, was day highlight before plan 1.7
colCalToday: today's daybox uses this color, green by default
colCalFrame: color of the thin frame that surrounds the grid
colGrid: color of the grid that surrounds the day boxes
colWeekday: color of weekday day numbers, black
colWeekend: color of weekend day numbers, dark red
colNote: color of note texts, something not too dark that doesn't stand out
colNoteOff: this color is used for suspended notes, much lighter
colHolidayBlack: color used when "black" is used in the holiday definition
colHolidayRed: color used when "red" is used in the holiday definition
colHolidayGreen: color used when "green" is used in the holiday definition
colHolidayYellow: color used when "yellow" is used in the holiday definition
colHolidayBlue: color used when "blue" is used in the holiday definition
colHolidayMagenta: color used when "magenta" is used in the holiday definition
colHolidayCyan: color used when "cyan" is used in the holiday definition
colHolidayWhite: color used when "white" is used in the holiday definition
YEAR VIEW RESOURCES
yearMargin: size of margin around the entire year
yearGap: size of gap between months
yearTitle: height of space reserved for year number at the top
yearBoxWidth: width of one day box
yearBoxHeight: height of one day box
colYearBack: background color of the entire year area
colYearBoxBack: background color of month boxes
colYearNumber: color of day numbers
colYearWeekday: color of weekday names
colYearMonth: color of month names
colYearTitle: color of the year number at the top
colYearGrid: color of the thin box that surrounds every month
yearTitleFont: large font used for the year number at the top
yearMonthFont: medium italics font used for month names
yearWeekdayFont: small italics font used for weekday names
yearNumberFont: small font used for day numbers
WEEK VIEW RESOURCES
weekMargin: size of margin around entire week view
weekGap: height of gap between days
weekDayWidth: width of the leftmost column with the weekday names in it
weekHourWidth: width of one hour column
weekBarHeight: height of an appointment bar
weekBarGap: height of gap between appointment bars
weekMaxNote: appointment note texts longer than this width are clipped
colWeekBack: background color of the entire week view
colWeekBoxback: shaded background color of the box that represents one day
colWeekTitle: color of the title at the top
colWeekGrid: color of the lines that separate hour columns
colWeekDay: color of the weekday names in the leftmost column
colWeekNote: color of note texts printed into or next to appointment bars
colWeekFrame: color of the thin lines around the edges of bars
colWeekWarn: color of the part of bars that represents advance-warning times
colWeekUser_0: color of user's own bars, and one of the file colors (blue)
colWeekUser_1: another color available for bars from other files.
... The colors are selectable in the File list popup.
colWeekUser_7: the last file color. eight colors total are available
weekTitleFont: font used for the title at the top giving the interval
weekDayFont: font used for weekday names in the leftmost column
weekHourFont: font used for hours above the bar chart
weekNoteFont: small font used for appointment notes inside or next to bars
DAY VIEW RESOURCES
Day views share most resources with the week view, with the following
exceptions that replace the corresponding week view resources:
dayMargin: margin all around the display and gap between days
dayGap: horizontal gap beetween appointment columns
dayHeadline: height of date at the top of each day box
dayHourWidth: width of the hour column at the left view edge
dayHourHeight: distance between two consecutive hour lines
dayBarWidth: width of an appointment box
YEAR OVERVIEW RESOURCES
yovWWidth: width of window showing the year overview
yovWHeight: height of window showing the year overview
yovDayWidth: width of one day in pixels when zoomed out all the way
(also uses weekMargin, weekGap, weekDayWidth, weekBarHeight, weekBarGap,
and weekMaxNote.)
%% languages
LANGUAGES
Language support in plan is simple. All messages are hardcoded in the
program in English, but may be substituted before being displayed.
Substitution is based on two files, both in the standard LIB directory
(/usr/local/lib by default): plan.lang.english is the reference file,
and plan.lang.L is the replacement file for language L. If a message in
plan matches line N in plan.lang.english, and language L is selected
with the Config->Language pulldown, line N of plan.lang.L is displayed.
To create a new language L, create a file plan.lang.L in the same
directory where plan.lang.english is located. Copy plan.lang.english to
plan.lang.L and translate every line. All ISO-8859 characters are legal.
Make sure that all %d and %s codes are present and in the correct order!
Also doublecheck that plan.lang.english and plan.lang.L have the same
number of lines; plan will reject the language otherwise. Send me a
copy of the new language file, as well as all others that you had to
change to ensure that all language files have the correct number of
lines (see below). Send mail to thomas@bitrot.de .
The plan.lang.english file must be sorted. All messages in plan must
match a line in this file exactly. Lines may contain \n (newline) and
\t (tab). When inserting a line into plan.lang.english after adding a
message to the plan sources, insert it in the SAME line in all other
plan.lang.*! If you do not know the translation, insert the English
string followed by an asterisk (*), which makes it easy for me to find.
If you see an asterisk * in a message and plan is less than six months
old, please send me a translation.
To create a help file for language L, copy the file plan_help to
plan_help.L, and translate all text freely except the words following
%% at the beginning of a line, which must remain unchanged.
Due to the difficulty of maintaining language files, there will always
be English-only strings. Also, there is no way to adjust accelerators
in pulldown menus.
#
# main window, menu bar and month calendar
#
%% pd_file
FILE PULLDOWN
File list -- list of appointment files. This dialog configures group
names (first button column in edit menus) to read either from a file
path or a netplan server.
Reread databases -- read .dayplan file and all other appointment files
configured with File->File list. Rechecks file permissions and owner-
ship if applicable.
Delete Past Entries -- removes all appointments before today's date,
except those that come from files with no write permission.
Print -- pop up a menu that prints PostScript calendars.
About -- prints the version number and my email address. Please mail
bug reports to that address.
Quit -- write data base back to the ~/.dayplan file if it has changed,
and exit the program. The daemon will continue to run.
%% pd_config
CONFIG PULLDOWN
Calendar views -- installs the main preference popup, with global
options, month view options, and week view options.
Adjust time -- define time-of-day corrections, time zone, and Daylight
Saving Time mode. Use this menu to adjust the time if appointments
appear early or late.
Alarm options -- pops up a menu that defines the actions taken when
an appointment triggers. The actions are taken by a daemon and are
independent of whether the interactive calendar program runs or not.
Define holidays -- pops up a window that allows specification of
holidays and vacations.
%% pd_search
LANGUAGE
Choose a new language. It will fully come into effect only after
restarting plan. See Help->Languages for more information.
%% pd_search
SEARCH PULLDOWN
Today -- print an appointment menu with today's items.
Tomorrow -- print an appointment menu with tomorrow's items.
This Week -- print an appointment menu with all items of the current
week.
Next Week -- print an appointment menu with all items of the week
after the current week.
This Month -- print an appointment menu with all items of the current
month.
All -- print an appointment menu with all items.
Search Keywords -- print an appointment menu with all items that
contain the specified string in their note, message, or script fields.
Private -- print an appointment menu with all private appointments.
One file -- print an appointment menu with all your own appointments
or all those in a particular file created with File->File list.
%% pd_view
VIEW PULLDOWN
All views either appear in their own windows (the default) or replace
the month view in the main window if this mode is enabled in the
Config -> Calendar views dialog.
Day -- show a day view for the current day that plots appointments
on the given day against a vertical hour axis. Pressing on the
upper half of month day boxes, or the upper left corner of year
day boxes, also switches to day mode.
Week -- show a week view for the current week. Week views plot
appointments as colored bars on a hour/day chart. The small
triangles at the left edge of month and year views also switch
to week mode.
Small month -- show the main month view, small window mode.
Large month -- show the main month view, large window mode. Pressing
a month name in the year view also switches to month mode.
Year -- pop up a year view menu with 12 month calendars for the
current year.
Year Overview -- pop up a linear 365-day year view menu that plots
multiday appointments in the current year. This is intended for
graphing vacations.
Goto today -- switch all views (day, week, month, year, year overview)
such that they contain today.
Goto -- popup a date entry menu, then switch all views such that they
contain the entered date.
#
# help popup
#
%% help_done
DISMISS
Remove the help popup.
#
# month view
#
%% cal_month
CURRENT MONTH
The month displayed in the month calendar below. It can be incremented
and decremented to show the next or previous month. The inc/dec arrows
will wrap to the next or previous year.
The currently displayed month can also be changed by pressing on any
month name in the year calendar (see Year pulldown).
To return to the current month, choose Goto today in the View pulldown.
%% cal_year
CURRENT YEAR
The year that the month shown below is in.
%% cal
MONTH CALENDAR VIEW
Displays the current month, as specified by the month and year
controls above. The format can be changed with the Config pulldown.
Each day box contains a list of appointments on that day, with time
and note string. Advance warnings that appear several days ahead of
the actual appointment are shown with "W:" inserted before the note.
The note string is grayed out if the appointment is suspended (the
button to the left of that appointment in the appointment list is
turned off). The appointment is not shown at all if it is "omitted"
using the exception popup that can be installed in the appointment
entry menu by pressing on the triangular warning sign button.
If there are more appointments than will fit in the box (usually 3),
only the first three are shown; the "Don't show today's past" option
in the Options pulldown determines which three. If there are more
appointments than will fit in the box, three dots are shown in the
lower right corner of the box.
If there is a full-line holiday on a day, the holiday name will use
the first line. Appointments that have no time ("-" was entered in
the day menu) come next, and finally the regular appointments.
Todays's day box is highlighted green. When a day box is opened by
pressing down on the lower half of it, a list of all appointments on
that day is popped up.
There is a small triangle to the left of every week row. Pressing one
of the arrows pops up a week view that displays the week in a hour vs.
day chart.
The mouse cursor changes as it is moved the calendar:
- over a triangle at the left edge, hand cursor:
* Call a week calendar for that week
- in the top part of a day box, hand cursor:
* Zoom up to a day calendar for that day
- in an appointment, four-sided arrow or pencil:
* Press and release the left mouse button to edit all appointments
on that day. This will call a list popup that can be used to
add, change, and delete appointments.
- in an appointment, four-sided arrow or pencil:
* Press and hold down the left mouse button and move the mouse to
move the appointment to a different date. Note that if the
appointment is set to repeat on certain weekdays or days of the
month, moving the appointment changes the first trigger date but
the weekday or month day setting does not change, which means
that the calender may seem unchanged after moving.
- in blank space, pencil:
* Press and release the left mouse button to enter a new appointment
on the day under the cursor
#
# year calendar window
#
%% year
YEAR CALENDAR VIEW
Displays the current year, as specified by the year controls in the
main month calendar, at the time the year menu was popped up. Later
changes to the year control will not change the year menu.
The year calendar basically consists of 12 small copies of the month
calendar. The day boxes work the same way. The current day is green.
Pressing on the bottom right corner of a day box (not the bottom half
as in month day boxes; they are too small for that) opens it and shows
the list of appointments on that day. Pressing the top left corner
switches to day view. There are also week view call triangles to the
left of every week row.
Pressing on a month name will switch the month calendar to that month.
The day boxes are too small for appointments and notes; if there is
at least one appointment on that day (suspended or not), a small
black square is shown in the day box. Appointment are ignored if they
are "omitted" using the exception popup that can be installed in the
appointment entry menu by pressing on the triangular warning sign
button.
Drag and drop is not supported in year views because no appointments
that could be dragged are visible.
#
# Time adjustment popup
#
%% adj
ADJUST TIME
This menu serves two purposes. First, it allows to adjust the system
clock, which on many systems or networks controlled by warring
timelords may be off by a few minutes. By adding a constant to the
system time, alarms can be made to trigger accurately.
Second, determining the timezone a system is in is a black art. There
are various incompatible TZ formats, unavailable or nonstandard
system calls, and Daylight Saving starting and ending dates that
have not been specified correctly by the system administrator. This
menu allows users to specify the regular timezone relative to GMT
(Greenwich Mean Time, or UTC). In addition, one hour can be added
while Daylight Saving Time (DST) is in effect.
DST can be either be taken from the system time, turned on or off
manually, or switched automatically from a begin and end day. These
days change every year, and can be entered with this menu. They are
entered as Julian dates (day numbers relative to January 1 in the
range 1..366). Julian dates can be determined with the Julian Dates
option in Config.
The "use system time" choice is available only on certain systems,
and is not tested well. Unfortunately this isn't as portable as it
should be. If you can contribute corrections or ports to new platforms,
please implement them in time.c, function guess_tzone, near line 238,
and send me the result (thomas@bitrot.de). This is EXPERIMENTAL!
Week number 1 is the first full week of the year means that the
first week in January is defined to be week number 1 only if all
seven days of that week fall in the current year. Alternatively,
the first week can be defined to be the first week whose Thursday
falls into the new year. The latter flag takes priority over the
former. If both flags are off, any partial week is counted as week
number 1.
This menu only affects your plan and its daemon, pland. The system
clock is not affected, and all programs other than your own plan
program will still believe in the official network time.
%% adj_time
ADJUST SYSTEM CLOCK
Enter a system clock correction constant here. For example, if your
system clock is fast by two minutes and 20 seconds, enter "-0:02:20".
If your system clock is slow, enter a positive time.
The correction applies only to plan and the plan daemon that waits
for alarms. The system clock and other programs are not affected.
%% adj_zone
TIMEZONE
At startup, the timezone is determined automatically. This may give
incorrect results on some system, especially if the system timezone
files are not configured properly. With the Timezone field, the
timezone can be set in hours:minutes relative to Greenwich Mean Time
(GMT or UTC). To revert to the system defaults, press the Guess
button.
While Daylight Saving Time is in effect, another hour is added to
the timezone.
%% adj_dst
DAYLIGHT SAVING
Many countries switch the time one hour forward in the summer. This
is normally done automatically by the system, but requires the system
administrator to change the timezone start and end dates every year.
If this configuration does not agree with reality, this menu allows
plan users to override it.
Daylight Saving can either be turned on permanently (in the summer),
turned off permanently (in the winter, or if your country does not
have Daylight Saving time), or turned on on a begin date and and end
date. The begin and end dates must be specifies as Julian dates; use
Julian Dates in Config to find out the numbers. Press the Guess button
to return to system defaults.
Daylight Saving is turned on and off at 2:00 in the morning on the
begin and end days, respectively, unless overridden by system files.
See "man timezone" for details.
%% adj_guess
GUESS TIMEZONE AND DST
Use system defaults for the timezone and Daylight Saving begin and
end dates. This function is of limited use because it depends on a
certain format of the $TZ environment variable, which is frequently
undefined or contains a description in a format not understood by
plan.
Note that plan does NOT attempt to use standard Unix functions for
guessing the time zone. There are too many exotic systems out there
for this to work reliably. Version 1.0 of plan attempted this, which
turned into a user support nightmare. This is not really satisfactory
for plan users, but very convenient and time-saving for the plan
author (me) who gets loads of email about plan anyway. Sorry.
%% adj_done
DONE
Remove time adjustment menu.
#
# Alarm Options popup
#
%% opt
ALARM OPTIONS
An appointment can trigger up to three times: at the specified alarm
time, and at the advance-warning times that can be entered in the
appointment list menu. For every type of trigger, the action taken
can be specified with this menu:
1. The green, yellow, or red window pops up at the trigger time. It
contains the appointment's message or note text. The window position
is randomized.
2. Mail is sent, using the "Mailer" command string. The string "%s"
in the mailer command is replaced with an appropriate subject string.
The appointment's message or note text is used as the body of the mail.
3. A program is executed. Playaiff or something else that makes
noises is a good choice. This is independent of the appointment's
script, which is always executed (at the alarm time only, not at
warning time). If the command string contains %s, it is replaced
with the appointment's note string (last column in appointment
entry dialog).
The daemon's PATH environment variable is used to locate the mailer
and the programs. Defaults are supplied if there is no PATH. In all
cases, the umask is set to 077.
%% opt_early
EARLY WARNING
This specification is used for early-warning triggers.
%% opt_early_w
GREEN WINDOW
The daemon pops up a green window when the early-warning time is
reached. The window contains the appointment's message or note text.
%% opt_early_m
EARLY WARNING MAIL
Mail is sent when the early-warning time is reached. The Mailer
button at the bottom specifies the program to use; "%s" is replaced
with an appropriate subject string.
%% opt_early_x
EARLY WARNING PROGRAM
The program specified in the text area on the left is executed when
the early-warning time is reached. If the command string contains %s,
it is replaced with the appointment's note string (last column in
appointment entry dialog).
%% opt_late
LATE WARNING
This specification is used for late-warning triggers.
%% opt_late_w
YELLOW WINDOW
The daemon pops up a yellow window when the late-warning time is
reached. The window contains the appointment's message or note text.
%% opt_late_m
LATE WARNING MAIL
Mail is sent when the late-warning time is reached. The Mailer
button at the bottom specifies the program to use; "%s" is replaced
with an appropriate subject string.
%% opt_late_x
LATE WARNING PROGRAM
The program specified in the text area on the left is executed when
the late-warning time is reached. If the command string contains %s,
it is replaced with the appointment's note string (last column in
appointment entry dialog).
%% opt_alarm
ALARM
This specification is used for main alarm triggers.
%% opt_alarm_w
RED WINDOW
The daemon pops up a red window when the main alarm time is reached.
The window contains the appointment's message or note text.
%% opt_alarm_m
ALARM MAIL
Mail is sent when the main alarm time is reached. The Mailer button
at the bottom specifies the program to use; "%s" is replaced with
an appropriate subject string.
%% opt_alarm_x
ALARM PROGRAM
The program specified in the text area on the left is executed when
the main alarm time is reached. If the command string contains %s,
it is replaced with the appointment's note string (last column in
appointment entry dialog).
%% opt_mailer
MAILER
Specifies the program to use to send mail. Mail is sent when one of
the "Send mail" buttons above is enabled. In the mailer string, "%s"
is replaced with an appropriate subject string, containing the
reason, date, and truncated note or message text.
The default is "Mail -s %s <username>".
%% opt_timeout
TIMEOUT
In this field, a time can be entered. If this field is blank, alarms
popped up by the pland daemon when the appointment's warning or alarm
time is reached will stay on the screen forever, until the Dismiss
button in the popup is pressed.
A window lifetime can be entered as hours:minutes. A window popped
up after this change will disappear by itself after the specified time.
%% opt_done
DONE
Remove the Alarm Options popup.
#
# calendar view config popup
#
%% calconfig
CONFIGURATION
All configuration data is saved in the ~/.dayplan file. The date and
time format is specified with this menu, the program does not use
X11R5 or Unix locale information. The menu is split in three parts:
GLOBAL OPTIONS:
Use main window for all views -- show all view modes (day, week,
month, year, year overview) in the main window instead of popping
up a separate window for each view.
Week begins with Sunday -- print Sunday in the first column, as in
US calendars, rather than in the last column.
Month/Day/Year date format -- print dates in month/day/year format,
rather than in day.month.year format.
12 hour am/pm time format -- print all times in US am/pm format,
rather than in the European 24-hour format.
Auto delete past entries -- automatically remove all expired
appointments before today's date.
MONTH VIEW OPTIONS:
Show Julian dates -- print the day number in each month day box,
beginning with 1 on January 1.
Show week numbers -- print the week number in each leftmost month day
box, in parentheses. The next option defines what kind of week number.
GPS week numbers -- week numbers, if enabled, are shown in GPS (Global
Positioning System) format, in square brackets. GPS weeks are defined
in the range 0..1023 only.
First week is full week -- normally, week number 1 in a year is the
the first partial week of the year. In full-week mode, the first
week is the first week with all seven days in the year.
First week is first week with Thursday -- another way to define the
first week: the first week is the first whose Thursday falls into
the new year. This flag has priority over the previous flag.
Colored background for other files -- if enabled, the note text that
appears in the day boxes in the month view has the background color
chosen in the "Group" column in this menu for this user, provided the
"Month" mode button is also on. This is useful for classifying
appointments quickly, but tends to make the month calendar look gaudy.
Bars in the week view always use the group color as background color.
Don't show today's past -- in today's daybox (shaded green), skip
all entries that are in the past, and only show the next three
future entry notes.
DAY AND WEEK VIEW OPTIONS:
These modes are used for both the day view and the week view, which
are in many ways similar.
The top text button allows configuring the number of days shown in
the week view. Minimum is 1, maximum is 28, and the default is 7.
The week view shows bars that represent appointments. The horizontal
position and length of the bar represents its trigger time and length.
The chart is clipped at the left and right edges at 8:00 and 20:00 by
default. These defaults can be changed with this popup.
Press on the text buttons to get a cursor, and enter the hour. Only
the hour can be entered, minutes are ignored. To set the end time to
midnight, both 0 and 24 are accepted.
If advance-warning times are enabled, show appointments' warning
periods as gray extensions at the left end of appointment bars.
If file names are enabled, the name of the appointment file are
displayed in the week menu is displayed in or next to the users's bars
in the week view. For adding files, such as appointments of other users
on the network, see the help for the File->File list popup.
Normally, entries without time ("-" in the time column in the entry
menu) are shown as a small triangle at the left edge of a week view
line. If the large-bar mode is enabled, they appear as a full line.
%% global_flags
GLOBAL OPTIONS
Use main window for all views -- show all view modes (day, week,
month, year, year overview) in the main window instead of popping
up a separate window for each view.
Week begins with Sunday -- print Sunday in the first column, as in
US calendars, rather than in the last column.
Month/Day/Year date format -- print dates in month/day/year format,
rather than in day.month.year format.
12 hour am/pm time format -- print all times in US am/pm format,
rather than in the European 24-hour format.
Auto delete past entries -- automatically remove all expired
appointments before today's date.
Run netplan scripts -- appointments with shell scripts that were read
from a netplan server are not normally executed because that makes
it easy for others to execute programs under your user ID, which is
a serious security risk that is not acceptable in most commercial
environments. However, on your home system you may not care and let
the daemon execute such scripts by enabling this flag. You have been
warned!
Only owner can write files -- if enabled (the default), you will not
be able to change appointments from other files even if you have write
permission. You need to be the owner too. This effectively ensures
that for each file, there is only one person who can write it, so
conflicts cannot happen. Turn this off at your own risk... If all
files are read from servers and not from disk paths, this mode has
no purpose and is grayed out.
%% month_flags
MONTH VIEW OPTIONS
Show Julian dates -- print the day number in each month day box,
beginning with 1 on January 1.
Show week numbers -- print the week number in each leftmost month day
box, in parentheses. The next option defines what the first week of
a year is.
First week is full week -- normally, week number 1 in a year is the
the first partial week of the year. In full-week mode, the first
week is the first week with all seven days in the year.
Colored background for other files -- if enabled, the note text that
appears in the day boxes in the month view has the background color
chosen in the "Group" column in this menu for this file, provided the
"Month" mode button is also on. This is useful for classifying
appointments quickly, but tends to make the month calendar look gaudy.
Bars in the week view always use the group color as background color.
Don't show today's past -- in today's daybox (shaded green), skip
all entries that are in