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: December 21, 2024 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: December 21, 2024 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: December 21, 2024 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: December 21, 2024 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: December 21, 2024 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: December 21, 2024 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: December 21, 2024 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: December 21, 2024 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: December 21, 2024 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: December 21, 2024 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: December 21, 2024 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: December 21, 2024 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: December 21, 2024 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: December 21, 2024