Manual page for xdiary(1)
xdiary - interactive daily diary and calendar for X
SYNOPSIS
xdiary [options] [date-string]
DESCRIPTION
xdiary is an X application that displays a calendar in one of two
formats and/or an interactive daily diary.
OPTIONS
xdiary accepts all of the standard toolkit command line options along
with the following:
- -lineWidth pixels
-
This option indicates how many pixels wide the lines composing the calendar
grid should be. This value must be between 1 and 10 inclusive. By default,
the grid lines are one pixel wide.
- -fullYearGeometry geometry
-
This option indicates the geometry to be used when determining the
size and position of the full year calendar. The full year
calendar will default to the minimum size needed to hold calendars
for all twelve months based on the specified font,
abbreviation, and language options.
- -oneMonthGeometry geometry
-
This option indicates the geometry to be used when determining the
size and position of the one month calendar. The one month
calendar will default to the minimum size needed to hold a calendar
for one month based on the specified font, abbreviation,
and language options.
- -diaryGeometry geometry
-
This option indicates the geometry to be used when determining the
size and position of the diary.
- -digitFont font-name
-
This option indicates the font to be used for the digits that will
appear in the calendar cells.
- -weekdayFont font-name
-
This option indicates the font to be used for the weekday names
that will appear above each column of cells in the calendar.
- -titleFont font-name
-
This option indicates the font to be used for the calendar
title(s) that will appear above each calendar specifying the
calendar's month and year.
- -digitGravity gravity
-
This option indicates the placement of the digits within the cells
of the calendars, where gravity is one of the following:
NorthWest, North, NorthEast, West, Center, East, SouthWest, South, SouthEast
The default gravity is Center.
- -startingWeekday day-name
-
This option indicates which day of the week should correspond to
the days in the left-most column of the calendar. Sunday is the
default.
- -language language-name
-
This option indicates what language the calendar should display all of its
text in. Currently English, Spanish, French, and German are available. Be
sure to specify fonts with complete Latin-1 character specifications when
specifying languages other than English.
- -diaryFile diary-filename
-
This option indicates the filename that will be used to read the
diary daily information from. Any changes to the diary will be
saved to this file when the Save menu option is selected.
By default, the file ~/.xdiary will be used.
- -templateFile template-filename
-
This option indicates the filename that will be used to read the diary entry
template from. By default, the file ~/.xdiary-template will be used.
If that file does not exist and if this option is not specified, then no diary
entry template will be used.
- -noCalendar
-
This option indicates that upon startup no calendar is to be
displayed along with the diary. By default, a calendar will be displayed.
- -noDiary
-
This option indicates that upon startup no diary is to be
displayed along with the calendar. By default, a diary will be displayed.
- -abbreviate count
-
This option indicates that the weekday names that will appear
above each column in the calendar(s) should be abbreviated to count
characters. By default, weekday names will be abbreviated to three characters.
- -long
-
This option indicates that the weekday names that will appear
above each column in the calendar(s) should not be abbreviated.
- -fullYear
-
This option indicates that a full year calendar is to be displayed. This
option and the -oneMonth option are mutually exclusive.
- -oneMonth
-
This option indicates that only a one month calendar is to be displayed. This
is true by default. This option and the -fullYear option are mutually
exclusive.
- date-string
-
A string specifying the date for the calendar and diary to display
upon startup. If no string is specified, the current date is
used. The string may be completely numeric or it may contain a
month name. However, if a language option is specified, the month
name must be in the specified language.
Several formats are accepted, as well as incomplete dates:
9/17/66
17.9.66
Sep 17, 1966
17 september 66
Sept 66
1966
Case is ignored and non-ambiguous abbreviations for the options and
arguments are accepted.
OPERATION
The day left and right arrows make the calendar and diary
display the previous day and next day respectively.
The month left and right arrows make the calendar display the
previous month and next month respectively. However, the diary
remains unchanged.
The year left and right arrows make the calendar display the
previous year and next year respectively. However, the diary remains
unchanged.
The entry left and right arrows make the diary display the previous
diary entry and next diary entry respectively. The calendar is kept in sync
with the current diary entry.
You can click with the left mouse button to select any date on the calendar
that is currently visible. The diary will then display the entry (if any) for
the selected date. The arrow keys may also be used to move around the
calendar.
When the pointer is in the diary text window, any text typed will
become part of the diary entry for the currently displayed date.
Clicking on the Option button will pull down a menu with the
following selections:
- Go To Today
-
Make the calendar display today's date and make the diary display
the corresponding diary entry.
- Go To Date ...
-
Pops up a dialog box and enables the user to type in a date for
the calendar and diary to display. The format of this date is
identical to that of the date-string described above. Any month
strings must be in the language specified. Pressing the return
key terminates input. Bogus dates will be quietly ignored.
- Hide (or Show) Diary
-
Hides (or Shows) the diary window. If the -noDiary command line option
was specified, or if the diary has already been hidden, this menu item brings
the diary back into view. If the diary is currently visible, this menu item
hides the diary.
- Hide (or Show) Calendar
-
Hides (or Shows) the calendar window. If the -noCalendar command line
option was specified, or if the calendar has already been hidden, this menu
item brings the calendar back into view. If the calendar is currently
visible, this menu item hides the calendar.
- One Month Calendar
-
Change the default calendar to a one month calendar. If the full year
calendar is currently being displayed, this menu item changes the full year
calendar into a one month calendar. If the -noCalendar option was
specified, or if the calendar is currently hidden, then the one month calendar
may be brought into view by selecting the Show Calendar menu item.
- Full Year Calendar
-
Change the default calendar to a full year calendar. If the one month
calendar is currently being displayed, this menu item changes the one month
calendar into a full year calendar. If the -noCalendar option was
specified, or if the calendar is currently hidden, then the full year calendar
may be brought into view by selecting the Show Calendar menu item.
- Save
-
Save the diary changes made during this session in the
diary file.
- Quit
-
Exit the xdiary application.
TEMPLATES
A template is a plain text file whose contents will be used for any diary
entry that did not exist prior to the invocation of the xdiary
application.
Templates allow you to customize the format of the diary entries. For
example, a template file could be created with the following contents:
7:00
8:00
9:00
10:00
11:00
noon
1:00
2:00
3:00
4:00
5:00
The above template would be useful for appointment scheduling and time
management. The following template would be useful for logging work:
Things to do today:
1.
2.
3.
Things done today:
1.
2.
3.
Once text is added to the template, the template becomes part of the diary
entry and can be edited for further customization.
If no template file is specified, and if the file ~/.xdiary-template does not
exist, then all diary entries that did not exist prior
to the invocation of the xdiary application will initially be empty.
DIARY FILE FORMAT
The format chosen for the diary file is very simple so that it is
possible to delete, add or change diary entries easily from a text
editor. The entry format is a newline terminated date string
followed by a newline terminated double quote enclosed information
string. Double quotes within the information string are
allowed, but they must be doubled (i.e. ""). A series of these
entries make up the diary file.
The following two diary entries illustrate the format of the diary file:
9/17/1966
"Meeting with Steve and Sally went as expected."
9/18/1966
"Dave said, ""Buy stock in Harris."" Tom
and Jane are for selling IBM short."
The entries may initially appear in any order, however they are
always saved in ascending order by the xdiary application.
CUSTOMIZATION
The xdiary application class name is XDiary.
The xdiary application is divided into three independent parts:
- xdiary.fullYear
-
This references the top level window of the full year calendar part.
- xdiary.oneMonth
-
This references the top level window of the one month calendar
part.
- xdiary.diary
-
This references the top level window of the diary calendar part.
The fullYear and oneMonth calendar parts have a large number of resources
that can be specified to customize their appearance. See the documentation
for the CalendarWidget for a list of these resources.
The diary's appearance can also be customized. In addition, the text
widget has few hard coded resources and can be customized in many ways.
WIDGET HIERARCHY
In order to specify resources, it is useful to know the hierarchy of the
widgets that compose xdiary. In the notation below, indentation
indicates hierarchical structure. The widget class name is given first,
followed by the widget instance name.
XDiary xdiary
Shell oneMonth
Paned paned
ButtonBox buttons
MenuButton option
Form form
Label month
Command dec
Command inc
Form form
Label year
Command dec
Command inc
Form form
Calendar calendar
Shell fullYear
Paned paned
ButtonBox buttons
MenuButton option
Form form
Label year
Command dec
Command inc
Form form
Calendar january
Calendar february
Calendar march
Calendar april
Calendar may
Calendar june
Calendar july
Calendar august
Calendar september
Calendar october
Calendar november
Calendar december
Shell diary
Paned paned
ButtonBox buttons
MenuButton option
Form form
Label day
Command dec
Command inc
Form form
Label entry
Command dec
Command inc
Label label
Form form
AsciiText text
Shell menu
SimpleMenu menuGoToToday
SimpleMenu menuGoToDate
SimpleMenu menuToggleDiary
SimpleMenu menuToggleCalendar
SimpleMenu menuOneMonth
SimpleMenu menuFullYear
SimpleMenu menuSave
SimpleMenu menuQuit
Shell enterDate
Dialog dialog
Command okay
Command cancel
Shell diaryModified
Dialog dialog
Command save
Command quit
Command cancel
APPLICATION RESOURCES
Resources that reflect command line options:
- xdiary*noCalendar: Boolean
-
Same as the -noCalendar option.
- xdiary*noDiary: Boolean
-
Same as the -noDiary option.
- xdiary*language: Language
-
Same as the -language option.
- xdiary*abbreviate: Integer
-
Same as the -abbreviate option.
- xdiary*long: Boolean
-
Same as the -long option.
- xdiary*diaryFile: Filename
-
Same as the -diaryFile option.
- xdiary*templateFile: Filename
-
Same as the -templateFile option.
- xdiary*fullYear: Boolean
-
Same as the -fullYear option.
- xdiary*oneMonth: Boolean
-
Same as the -oneMonth option.
- xdiary*Calendar*lineWidth: Integer
-
Same as the -lineWidth option.
- xdiary*fullYear.geometry: Geometry
-
Same as the -fullYearGeometry option.
- xdiary*oneMonth.geometry: Geometry
-
Same as the -oneMonthGeometry option.
- xdiary*diary.geometry: Geometry
-
Same as the -diaryGeometry option.
- xdiary*oneMonth*digitFont: Font
-
Same as the -digitFont option.
- xdiary*oneMonth*weekdayFont: Font
-
Same as the -weekdayFont option.
- xdiary*oneMonth*titleFont: Font
-
Same as the -titleFont option.
- xdiary*digitGravity: Gravity
-
Same as the -digitGravity option.
- xdiary*startingWeekday: Weekday
-
Same as the -startingWeekday option.
The following resources may be specified in a resource file as a comma
separated list of quoted strings:
- xdiary*Calendar*weekdayNames: StringTable
-
Specify the names of the weekdays to be used in the calendar(s).
Seven strings must be specified. When specifying weekday names as
a resource, the -language, -long, and -abbreviate
options must not be specified (they will override the resources).
- xdiary*Calendar*monthNames: StringTable
-
Specify the names of the months to be used in the calendar(s).
Twelve strings must be specified.
- xdiary*Calendar*digitNames: StringTable
-
Specify the names of the digits to be used in the calendar(s).
Thrity-one strings must be specified. Added mostly for orthogonality,
but could be used to specify characters in a specialized calendar
font or to specify Roman numerals, etc.
ACTIONS
The following actions are available for use in translations:
- day-inc
-
Causes the calendar to select and highlight the date after the currently
selected date. The diary will change accordingly.
- day-dec
-
Causes the calendar to select and highlight the date before the currently
selected date. The diary will change accordingly.
- week-inc
-
Causes the calendar to select and highlight the date one week after the
currently selected date. The diary will change accordingly.
- week-dec
-
Causes the calendar to select and highlight the date one week before the
currently selected date. The diary will change accordingly.
- year-inc
-
Causes the calendar to show the month one year after the currently showing
month. The diary is unaffected.
- year-dec
-
Causes the calendar to show the month one year before the currently showing
month. The diary is unaffected.
- month-inc
-
Causes the calendar to show the month one month after the currently showing
month. The diary is unaffected.
- month-dec
-
Causes the calendar to show the month one month before the currently showing
month. The diary is unaffected.
- entry-inc
-
Causes the calendar to select and highlight the next date with a diary entry
that occurs after the currently selected date. The diary will change
accordingly.
- entry-dec
-
Causes the calendar to select and highlight the previous date with a diary entry
that occurs before the currently selected date. The diary will change
accordingly.
- goto-today
-
Causes the calendar to display today's date and make the diary display
the corresponding diary entry.
- goto-date
-
Causes a dialog box to pop up enabling the user to type in a date for
the calendar and diary to display.
- save
-
Save the diary changes made during this session in the diary file.
- toggle-calendar
-
If the calendar is currently showing, it will be hidden. If it is currently
hidden, it will be shown.
- toggle-diary
-
If the diary is currently showing, it will be hidden. If it is currently
hidden, it will be shown.
You can set the *oneMonth*translations, *fullYear*translations and
*diary*translations resources individually, or simply use "*translations" to
apply translations to the entire application.
FILES
- ~/.xdiary
-
The default diary file.
- ~/.xdiary-template
-
The default template file.
SEE ALSO
X(1), xrdb(1), the Athena Widget Set, Cal.ps
DIAGNOSTICS
xdiary attempts to recover from syntax errors in the diary file, however
there's no limit to the number of error messages produced so feeding it an
entirely bogus file is not recommended.
Specifying fonts that do not exist will result in an X Protocol BadName
fatal error.
BUGS
xdiary doesn't do any file locking, so if multiple xdiaries are
running based off the same diary file, the last one to save its diary wins.
The diary entries in the diary file do not append, therefore the last
entry with a given date will replace any previous entries with the same
date, and the previous entries will be lost after xdiary saves the diary
(if any changes have been made). This is only a problem if the diary
file is edited by a text editor other than the one provided by xdiary.
COPYRIGHT
Copyright (c) 1994 Harris Computer Systems Division
The X Consortium, and any party obtaining a copy of these files from the X
Consortium, directly or indirectly, is granted, free of charge, a full and
unrestricted irrevocable, world-wide, paid up, royalty-free, nonexclusive
right and license to deal in this software and documentation files (the
"Software"), including without limitation the rights to use, copy, modify,
merge, publish, distribute, sublicense, and/or sell copies of the Software,
and to permit persons who receive copies from any such party to do so.
This license includes without limitation a license to do the foregoing
actions under any patents of the party supplying this software to the X
Consortium.
BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR
THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
REPAIR OR CORRECTION.
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL
ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
SUCH DAMAGES.
AUTHOR
Jason Baietto
Jason.Baietto@mail.csd.harris.com
Created by unroff & hp-tools.
© by Hans-Peter Bischof. All Rights Reserved (1997).
Last modified 21/April/97