xdiary(1) X Version 11 xdiary(1)
Release 6
NAME
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 some additional ones detailed below. Among useful toolkit options
are especially the -xrm one that can be used to set colors of
individual components of the xdiary widgets. For instance, use the
option
xdiary -xrm "*diary*text2*background: lavender"
to set the bottom diary text pane color to "lavender", and
xdiary -fullyear -xrm "*fullYear*paned.form.?.background: bisque"
to get xdiary run in fullyear mode (see below), with "bisque" as the
background color in the 12 month slots.
List of additional options:
-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
- 1 - Formatted: November 5, 2025
xdiary(1) X Version 11 xdiary(1)
Release 6
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.
-american This option indicates that dates will be written in
american format Month/Day/Year.
-european This option indicates that dates will be written in
european format Day.Month.Year.
-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.
- 2 - Formatted: November 5, 2025
xdiary(1) X Version 11 xdiary(1)
Release 6
-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. When templates are used, the
first template line should in principle be a blank line,
since it is normally used as a "title line" summarizing
the day activities; the format of the other lines is
absolutely at the user's convenience.
-editor name-of-editor-program
Name of the external text editor program to be used.
Default is "emacs".
-psviewer name-of-postscript-viewer
Name of the PostScript viewer program to use. The
PostScript viewer is only needed to preview the PostScript
monthly calendar before printing. Default is "gv" (an
alternative could be "ghostview").
-paper type Format of paper (the only available formats are a4 and
letter). Default is a4.
-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.
-backward count
Set the number of backward diary entries to be shown in
the diary lower text pane to be equal to count. Default is
4.
-forward count
Set the number of forward diary entries to be shown in the
diary lower text pane to be equal to count. Default is 4.
-long This option indicates that the weekday names that will
appear above each column in the calendar(s) should not be
abbreviated.
- 3 - Formatted: November 5, 2025
xdiary(1) X Version 11 xdiary(1)
Release 6
-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.
- 4 - Formatted: November 5, 2025
xdiary(1) X Version 11 xdiary(1)
Release 6
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.
- 5 - Formatted: November 5, 2025
xdiary(1) X Version 11 xdiary(1)
Release 6
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:
(first line usually blank)
(blank line)
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.
- 6 - Formatted: November 5, 2025
xdiary(1) X Version 11 xdiary(1)
Release 6
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
- 7 - Formatted: November 5, 2025
xdiary(1) X Version 11 xdiary(1)
Release 6
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 week
Command dec
Command inc
Form form
Label entry
Command dec
Command inc
Label label
Form form
AsciiText text1
- 8 - Formatted: November 5, 2025
xdiary(1) X Version 11 xdiary(1)
Release 6
Form form
AsciiText text2
Shell menu
SimpleMenu menuGoToToday
SimpleMenu menuGoToDate
SimpleMenu menuOneMonth
SimpleMenu menuFullYear
SimpleMenu menuToggleCalendar
SimpleMenu menuToggleDiary
SimpleMenu menuToggleItemList
SimpleMenu menuSetBackward
SimpleMenu menuSetForward
SimpleMenu menuEditTemplate
SimpleMenu menuRemoveTemplate
SimpleMenu menuPrintYear
SimpleMenu menuPrintMonth
SimpleMenu menuPrintHeaders
SimpleMenu menuPrintItems
SimpleMenu menuPrintDiary
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*backward: Integer
Same as the -backwardfP option.
- 9 - Formatted: November 5, 2025
xdiary(1) X Version 11 xdiary(1)
Release 6
xdiary*forward: Integer
Same as the -forwardfP 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*editor: Filename
Same as the -editor option.
xdiary*psViewer: Filename
Same as the -psviewer option.
xdiary*paper: type
Same as the -paper option.
xdiary*editor: Filename
Same as the -teditorfP 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.
- 10 - Formatted: November 5, 2025
xdiary(1) X Version 11 xdiary(1)
Release 6
xdiary*digitGravity: Gravity
Same as the -digitGravity option.
xdiary*startingWeekday: Weekday
Same as the -startingWeekday option.
xdiary*european: True
Same as the -european option.
xdiary*european: False
Same as the -american 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.
- 11 - Formatted: November 5, 2025
xdiary(1) X Version 11 xdiary(1)
Release 6
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.
write-diary
Write the diary changes made in the diary file during the current
session.
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.
print-calendar
A nice PostScript file showing the current month calendar and
moon phases is generated. A PostScript viewer such as "gv" is
then launched to view that calendar.
- 12 - Formatted: November 5, 2025
xdiary(1) X Version 11 xdiary(1)
Release 6
print-diary
A text file containing all diary entries starting from current
date is generated. A text editor such as "emacs" is then launched
so as to possibly edit or print that file.
set-backward
Set the number of backward diary entries to be shown in the diary
lower text pane. Default is 4.
set-forward
Set the number of forward diary entries to be shown in the diary
lower text pane. Default is 4.
quit Exit program.
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
- 13 - Formatted: November 5, 2025
xdiary(1) X Version 11 xdiary(1)
Release 6
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
- 14 - Formatted: November 5, 2025