xnotes+ [-c ] [--sb ] [--sv ] [--ns ] [--na ] [--nn ] [--help/-?/-h ] [--bs ] [--notedir ] [--interval ] [--nw ] [--ao ] [--tmpdir ] [--printcmd ] [--emailcmd ] [--calendarcmd ] [--homedir ] [--xpmdir ] [--audiocmd ] [--audiodir ] [--noaudio ] [--addrdir ] [--pilotdir ] [--rgbfile ] [--defaults ] [--install ] [--version ]
The "plus" side of XNotesPlus includes its interface with the 3Com PalmPilot(R) handheld PDA (personal digital assitant). You can upload XNotes to the Pilot, download Pilot Memos into XNotes, do backups and syncing of backups of your Pilot, and retrieve (later to upload) data from the Pilot's Address database. The Pilot Address database is fully supported under the Address Manager, which provides an interface much like the Pilot's for listing entries in the database. Additionally, you can filter the entries, making it much easier to find a particular entry in any given category. Another plus is the Envelope printing feature. This feature is linked directly to the Address Manager, so selecting an entry there will automatically update the To field in the Envelope dialog. The Email dialog is also linked to the Address Manager, so finding an address to email a note is now much easier!
Note: Envelope printing makes use of the Nenscript tool, the source of which is included with XNotesPlus. The Pilot Tool feature is a wrapping around the very useful PilotLink set of tools. These, however, are not included with the XNotesPlus source.
Each individual note, referred to as "XNotes", is a seperate window on the screen. When xnotes+ is first invoked, it creates a small window, known as the Plaid Window, with the XNotesPlus logo (historically, this window used to have the 3M Plaid logo, but I changed it so 3M wouldn't be upset with me). This is the plaid window for xnotes+. If any notes were previously saved (see below) then they will be placed on the screen at their last locations, unless they were hidden when last saved (see below). The Plaid Window is the main plaid window for XNotesPlus. To access basic features, the right mouse button is clicked, opening the main menu. This menu provides access to the main features, such as creating new notes, managing the notes in general and access to the Palm Pilot and Address Manager features.
XNotePlus is available with either a Motif (or LessTif) interface or one based on Gtk. This choice, along with a series of other options, can be configured at compile time. See the config.h file for details.
XNotesPlus has a very large number of command line options. In the Motif version you can use the application defaults file instead of the command line options to set these. In the GTK version you can use the XNotesPlus.cfg file. The command line options will override configuration file settings. The Motif version of XNotesPlus accepts all of the standard X Toolkit command line options (such as -geometry), and both versions accept the additional options listed below. Since the 3.0 release, all command line options, in both versions, use two dashes (--) instead of one (as the previous versions had done).
The Motif version of XNotesPlus understands all of the core X Toolkit resource names and classes as well as those listed below, which are all of class XNotesPlus. All of the resources listed are also available as command line arguments and can be specified using the ``XNotesPlus'' resources file. This file, which is simply the XNotesPlus.ad file from the source distribution renamed (according to X standard naming conventions), should be installed, but only if modified by the user, in the users $HOME/app-defaults directory. The XAPPLRESDIR environment variable should be set to that same directory name.
The file XNotesPlus.ad in the srcm-d directory of the source code distribution can be edited prior to compiling. If you do this, then XNotesPlus will be compiled with these settings and you don't need to install this file in your $HOME/app-defaults file.
The resources below are listed with their respective command line arguments. See the OPTIONS section for details on their meanings.
Note that it doesn't make any sense to specify the Help, Version, or Defaults resources in the ``XNotesPlus'' application resources file since all of these will cause XNotesPlus to immediately exit.
The Gtk version can be configured in two ways. The first is the standard gtkrc file, which describes the look and feel of the buttons, labels, etc. The gtkrc file should be stored in the ``notedir'' (see the OPTIONS section).
The other cofiguration file, XNotesPlus.cfg, works like the Motif Application Resources file. This file is fairly well self explanatory, but here are the basic meaning of all the options available from within this file. Options in this file are either "Yes" or "No". The meaning of Yes and No depends on the option. This is all described in better detail in the file itself.
Note: The name of the gtkrc file can be changed using the appropriate XNotesPlus.cfg option.
XNotesPlus uses several windows to manage the notes and access other features. These include the Plaid Window, the XNotes windows, the Address Manager and Print Envelopes window, the PalmPilot Interface window, the Projects windows, the Alarm window and file selection windows, along with various dialogs for text input and ordinary messages.
The Plaid Window is the small window that opens when you start the program. It is a relatively small window whose maximum size is fixed (it can be made smaller using window manager controls, if desired). XNotesPlus allows four operations to be performed from its Plaid Window. Clicking (ie pressing and then releasing) the left mouse button in the plaid window will cause all XNotes on the screen to be raised to the top - that is, they rise above all other windows on the display. Pressing the middle mouse button in the plaid window will cause all XNotes notes on the screen to be lowered to the bottom of all other windows. Pressing the right mouse button in the plaid window opens the xnotes+ main menu. Finally, pressing the left mouse button down, holding it there, and dragging it out of the Plaid Window will open a new note window. This is called "tearing off" a new note. Once the note is opened you can release the mouse button.
Users with 2 button mice will need to check with the X Server documentation as to how a 3 button mouse can be emulated and how the 2 buttons will be mapped to match a 3 button mouse.
The xnotes+ main menu provides the following selections:
The Create Notes Submenu This menu allows you a choice of creating a few different sizes of notes. The sizes of the notes, specified in inches, is actually fairly accurate, although probably not exact. XNote windows may or may not need to be positioned using the window manager. This depends on the window manager you are using and the use of dynamic placement features within that window manager. If possible (and/or necessary), you should turn dynamic window placement off for XNotes so that the notes will pop up in their old spots.
The default size for a note created by dragging the mouse, left button down, out of the Plaid Window is 3x3.
This dialog pops up from the ``Hidden Notes'' option of the xnotes+ main menu. The list is a scolled list of all notes that are currently hidden. If there are not enough hidden notes to fill the visible list then no scrollbar will be present. If more hidden notes exist than can fit in the visible list, then a scrollbar will become available for you to scroll through the list.
Note that currently if you have this window open and then hide a note, that note will not automatically show up in the list. In this case you need to close the list window and then reopen it.
Each XNote is made up of two parts (plus the scrollbar): A text window where the text of the note is stored and a menu bar. To enter text into an XNote, simply move the mouse cursor into the text window and start typing. Use the mouse buttons and arrow keys to move around the window and for manipulating the selections for cut-and-paste operations. A number of translations - ie keyboard shortcuts - are available. See the section on Keyboard Shortcuts for more details.
The menu bar has four icons, each with its own menu. The first two icons are, by default, small gray circles. The leftmost circle is for alarms, the next one for anchors. The next icon, the file icon is for file operations such as saving or emailing the note. The last icon is the notes icon, which is used to access features such as naming the note, assigning it to a project or inserting a calendar.
Clicking the left mouse button on the first icon shows the alarms menu. There are two options: Set Alarm and Disable Alarm. To set a notes alarm, select ``Set Alarm'' from the alarms pull down menu. A window pops up with month, day, hour and minute fields. The default for each of these is the last alarm time that had been set (if no alarm had ever been set for a note then the time is actually the time the note was created). Use the arrow buttons on either side of each value to set each field to the day and time you wish the alarm to go off. You can use the Toggle button to reset the fields to the current time. When the alarm expires, a small window will pop up reminding you for which note the alarm had been set.
Beneath the alarm settings is a scrolled list of audio files you can choose to play when the alarm goes off. You don't have to play an audio file, its just available if you'd like to. A few default audio files should have been in the distribution you received. If you choose an audio file to play you will also need to select the number of times to play it. The Repeat field should be set to something other than 0 or else the audio alarm won't play.
Playing audio alarms requires that an application that can play the files be installed and XNotesPlus is configured to use it properly. See the section on Configuring The Audio Command.
If you wish to save this value between invokations you should use either the notes ``Save'' option or the ``Save All Notes'' option from the plaid windows menu. When a notes alarm is set the gray icon will be replaced with an icon of a clock (or wristwatch, if you like).
To turn off the a notes alarm, select ``Unset Alarm'' from the menu. This will disable the alarm for that note and remove the clock icon from the menu bar, returning it to the gray circle.
Next to the alarms menu is the anchor menu. This menu has only two options: Set Anchor and Disable Anchor. These do pretty much as you'd expect. An anchored note is one that will be at the bottom of the stack of notes when you cascade them. Only one of the two options in this menu will be active at any given time. If the "Set Anchor" option is active, then the note is not currently anchored. If the "Disable Anchor" is active, then the note is currently set as an anchored note. When anchored, the anchor icon changes from the gray dot to an icon in the shape of an anchor.
The File menu contains options pertaining to file input and output:
Note that the ``Save'' menu item will not allow you to save unless something has been typed in the text window of the note, the name of the note has been changed, the project has changed for the note, or the text of the note has been erased. This is a good way of checking if you've made changes to the note. If the Save menu item is "insensitive" (grayed-out) then you haven't made any changes to the Text of the note. NOTE : it is important to remember that if you have disabled the auto-save (--sv) feature then the note will not be saved until you have pressed the ``Save'' button. You can also make sure changed notes get saved on exit by enabling the Save on Exit feature.
The Notes menu contains items for managing individual notes: Hide, Erase, Destroy, Name, Project, Insert Calendar and Insert Date.
The File Selection Window will be either the well known Motif or Gtk version. In the Motif version, a text field at the top of the window can be used to filter the current directory. The left-side scrolled window is the set of directories available from the current directory and the right side (if shown) is the list of files in that directory. Double clicking in either window will select the appropriate directory or file.
In the Gtk version, you can do pretty much the same thing, but to filter you simply type in a name in the Selection text field and type a TAB. This will update the directory and file lists. Hitting the ENTER key will do the same thing unless the name in that field is an existing file. In that case, the file is selected for whatever purpose the window was opened. You can also create directories and delete files from this dialog, if desired.
The File Selection windows are used for saving, opening, and exporting files. It is also used by the Pilot Tool feature to select a directory in which to store backups. In this latter case the right-side scrolled window (the one that list files in the current directory) will not be displayed. This is because with the Pilot Tool feature you only need to select a directory to use.
Clicking on a entry in the scrolled window of filenames will cause that file to be selected. If you are opening a file then the file chosen will be added to the current note at the location of the cursor in that note. Be sure to set the cursor to where you want to import text before opening a file. If you are exporting a file then the text of the file will be written to the file chosen. If the file already exists then you will be prompted as to whether you really want to overwrite it or not.
In order to use your systems mailer with the Email feature of XNotesPlus, you need to configure the appropriate mailer command using either the -emailcmd command line option, the .emailCmd resource (for Motif) or the EmailCmd entry in the config file (for GTK). The format for these is the same: a double-quoted string which contains the name of the mailer command, the option for providing the subject line, and the addressee. By default the Unix command "mail" is used. For most users this default will work just fine and you don't need to change a thing.
If you wish to use another mail command, or if for some reason the ``mail'' program is not on your system, you can configure XNotesPlus accordingly. Note: the following discussion is a little technial and intended for those people who understand a little about C programming.
The default email command is defined in the XNotesPlus application defaults file (and in the source code fallback resources) as:
"mail -s\"%s\" %s"
The format is the standard format used by printf(). The first string parameter is the subject line. The backslashes are required so that the following double quotes are passed properly to the command. If these are left out the subject will be truncated to the first word of the first string parameter and an attempt will be made by the mailer to send mail to non-existant recipients. The second string is the addressee. The order of the string parameters is significant (subject first, addressee second) - it must be this order no matter what mailer you use. The mailer command must also accept the text of the mail via standard input. This too is required.
As an example of using a different mailer, if you use elm, you might want to change the mailer commad to:
"elm -s\"%s\" %s > /dev/null"
The difference here is that elm prints out a few messages when it runs in batch mode and you should send those to /dev/null.
A Project is just a name and a color, nothing more. You specify a project name, give it a color, and later assign notes to that project. Once assigned, the notes text background will assume the color specified for that project.
Projects are defined through the Projects dialog, accessible from the main menu's ``Projects'' option. The Motif dialog has two scrolled windows: a list of the colors defined in the rgb.txt color database and a list of configured projects. Below the latter is a text field where you can type in the name of a project, or edit the name of the currently selected project. The Gtk version uses the Gtk Color Selection dialog to choose a color. This is a little nicer than the Motif one since you're only likely to get available colors in the Gtk version no matter what color depth to which your display is set. To select a color in Motif, select an entry from the list of color names. To select a color in Gtk, left mouse click on the "Sample Note Text".
The Motif Version of Projects
To add a new project in the Motif version, type in its name in the text
field. Then select a color from the list of color names. On low color
displays you may have to search for awhile till you find one that works.
If the color can be allocated for use, the sample text below the text
field where you typed the projects name will change colors to show you
how the note will look. When you've got the right color, click on the Accept
button and the project will be added to the scrolled projects list.
The Gtk Version of Projects
In the Gtk version you need only type in the new Project name and then
click on the "Sample Note Text" to open the Color Selection dialog. Once
you've selected a color, close the Color Selection dialog, then click on
the Accept button in the Projects dialog. The new project will be added
to the end of the list of available projects.
In either version you can change the color of an existing project by clicking on the projects name. The project name is displayed in the text field and the sample text background is updated with the currently configured color. Just select another color and click on the Accept button. The update is immediate. When you are done with configuring projects just click on the Close button at the bottom of the dialog.
A sample projects file for both the Gtk and Motif versions should have been part of the distribution you received. This file is ordinary text and you can hand edit it by hand if you prefer. However, note that the Gtk and Motif versions of this file are not the same. You're probably better off letting XNotesPlus manage this file for you.
In order to assign a note to a specific project you simply choose the ``Projects'' option from the notes menu in the XNote you wish to update. The Change Project dialog opens with a scrolled list of projects to choose from and a bit of sample text to show what the effect will be. When you've made your selection, click on the Accept button and the note will automatically be updated. Don't forget to save the note!
Alarms in XNotesPlus can be set to go off at any time, allowing you to use the program as a automated reminder service. Earlier versions of XNotesPlus simply popped up a window to let you know the alarm has expired. Now, using an audio player of your choice, you can have an audio reminder to go with the visual one.
To configure an audio player, use the --audiocmd command line option, the .audioCmd resource (for Motif) or the audiocmd entry in the config file (for GTK). The format of the command string follows the same conventions as the email command, where printf() style arguments are used to specify the volume to play the audio file and the file name, in that order.
The default audio program configured is the ubiquitous sox. This tool works well on both Linux and Solaris systems and I suspect it will work well with other Unix OS's. The format of the default command is as follows:
"sox -v %d %s -t .au /dev/audio"
The %s represents the name of the audio file and the %d is the volume to play the file. The volume setting may not actually work with some versions of Sox, but it's still a required parameter. I know I couldn't get it to work properly no matter what volume settings I passed sox.
Audio players must be capable of playing whatever audio files you place in the audio directory (usually $HOME/.xnotesplus/audio-d). The audio files you received with the XNotesPlus package should have contained a set of .wav audio files, but you can add whatever other audio files you like as long as the audio player understands how to play them.
One of the newest features to be added to XNotesPlus is the Pilot Tool. A recent gift of a Palm Pilot Pro enticed me to find the pilot-link software, a set of command line tools used to communicate between the Pilot and a Unix system. These tools are quite simple to use and lend themselves well to being called from other programs. Naturally I decided it was time to update XNotePlus so I could sync memos with my notes.
The Pilot Tool dialog is broken into 3 main pieces: Pilot Memos, Pilot Addresses, and Pilot Sync. Pilot Memos consists of a scrolled list, two toggle buttons and two push buttons. The toggle buttons determine which direction you're going to go: Import means you are importing Pilot Memos into XNotes, Export means you are exporting XNotes out to the Pilot as Memos. The Fetch push button will retrieve either the list of XNotes (for exporting) or the list of memos from the Pilot (if importing) and place them in the scrolled list. You can select one or more of these from the list and then click on the Process button. This will determine which XNotes to convert to Memos or which Memos to convert to XNotes.
The Pilot Addresses feature is the simplest of the bunch: just click on the button and the Pilot's Addresses database will be retrieved. The data is stored in a file called xnaddresses, generally under the $HOME/.xnotesplus/pilot directory, although this is configurable with command line options, etc.
Pilot Sync will do backups of your Pilot to local directories. There are actually 4 types of backups: Backup, Restore, Sync and Update. Check with the pilot-link software for details to what each of these really does. Generally, you can use the Backup type to make backups and Restore to restore them should your Pilot crash for some reason. Sync will simply update an existing backup so it matches the current Pilot data.
The file button will open a File Selection window that allows you to specify a directory to use for backups. The default directory (or any directory you select from the File Selection window) is displayed in the text field next to the file button. You can type in any directory you want there as well. If the directory does not exist then it will be created, if possible, before the backup process is started. Additionally, you can remove or rename the directory specified using one of the appropriate buttons (``Remove Dir'' or ``Rename Dir''). When you are ready to start the backup or restore process, click on the Start Transfer button.
Once any communication with the Pilot is about to begin you will be prompted to press the Hot Sync button on the Pilot's cradle. Once the data transfer has started you won't be able to do anything else with XNotesPlus until the transfer completes. In future versions I may try to fix this. It depends on if anyone complains about it or not.
Before you can even have access to the Pilot Tool you must set the following environment variables. If these are not set you will not get the Pilot Tool option in the Plaid Window's main menu.
WARNING : In order to use the Address Manager you must download your address database from the Pilot again (using the Pilot Tool feature), even if you've already done so in the past. The Address Manager relies on some new features in the Pilot-Link software in order to obtain category information. If you try to run Address Manager using the old format of the xnaddress file, XNotesPlus may crash! If you're version of Pilot Link doesn't support these features then you'll have to use the old version of xnaddress and will only be able to use the old Envelope feature - Address Manager will not be available. See the config.h file for details about how to find out if your Pilot-Link software is compatible with the Address Manager.
The dialog window for the Address Manager contains a scrollable list of names on the left. On the right is a menu of available categories, just as they are in the Pilot. Selecting a new category will filter the names on the left to only those entries in that category. Below the categories menu is a menu for filtering the list of names even more. You can filter on the last name field, first name field, or city or state fields. Below this menu is a text field for entering a string to filter on in the selected field. The string is case insensitive and does not have to be a complete word.
Below the Filter options is a text area with an XNotesPlus logo. Here is where the complete contents of the currently selected Address entry is displayed. Click on any entry in the list and this area is updated automatically. If you deselect the current entry (ie no names are selected) then an appropriate message is displayed here. Note that only one entry from the list of names can be selected at any given time.
At the bottom of the dialog are two buttons, one for closing the dialog (the Close button) and one for opening the Print Envelopes dialog.
Another recent feature addition to XNotesPlus is the Envelopes dialog. This window allows you to specify simple headers for printing on either #6 (letter) or #10 (legal) sized envelopes. The window contains 2 scrolled text windows, an options menu of Point Sizes to use for the printed text, a set of toggle buttons for choosing the envelope size, a toggle to use Bold characters and a text input field for specifying the name of the printer to use.
NOTE : The Print Envelopes dialog works slightly differently depending on if the Address Manager is enabled or not. It is also opened differently - with the Address Manager you access it from the Address Manager dialog. Without Address Manager it is accessed from the Plain Window's main menu. See below for the different ways this dialog functions.
The scrolled window labeled ``From:'' will be filled with your personal address from the ``id'' file normally found in your $HOME/.xnotesplus directory. If this file does not exist then this field will be blank. You can type in any text you want for the From: address. Pressing the Save button just below the scrolled window will save the text to your id file.
The To: Window without Address Manager
Without Address Manager, the scrolled window labeled ``To:'' works like the ``From:'' window except it has a Load button. This button will open a scrolled list of addresses taken from your Palm Pilot's Addresses database, if any. If no entries exist then an error dialog is presented stating the local database could not be opened. To access the Pilot's databases you first need to use the Addresses Fetch feature of the Pilot Tool dialog. See the section on USING PILOT TOOL for more information.
The To: Window with Address Manager
With Address Manager, the From: field is automatically filled in whenever you make a selection from the list of names in the Address Manager window. In this case, there is no Load button in the Print Envelope dialog (since it is no longer needed).
The point size menu gives the list of available point sizes for the output. The envelope will print in postscript using the nenscript program (which must be in your path in order to work). The point size is passed as an argument to nenscript. The printer field is also passed to nenscript, however this is different than the printer command used to print notes. With the Envelope dialog, the printer specified should be the printer name, not the command used to print. Nenscript will handle the printing - it just needs to know which printer to use. This is a little confusing and I hope to have a better solution for it in a future release with better Print support.
The toggles for setting the envelope size will simply determine how the temporary file passed to nenscript will be formatted. The formats are chosen to fit on their respective envelopes, but other than that the sizes are not really exact. Again, this will change with better support for printing, hopefully in the 4.0 release of XNotesPlus.
Many of XNotesPlus features are accessible directly from the keyboard. The key combinations, known as keyboard shortcuts, mnemonics, or accelerators, can be used while any XNote or the Plaid Window has keyboard focus - which means you have to click on the window first at least once or, if you're window manager supports it, have AutoFocus turned on so keyboard focus follows the mouse location.
Keyboard shortcuts are most useful when used from within the XNotes themselves. Note: Both the Motif and Gtk text widgets are configured to use their default keyboard editing functions, which I believe is mostly Emacs style editing (not that I know how anything about those bindings - I use vi).
The following describes the keyboard shortcuts available by default from any XNote and the functions associated with them. Note that the key sequences are case sensitive. Note Specific Options:
General Options
In General
The sizes of the XNotes are only as accurate as the display dimension and resolution returned by the server. On the Sun server and possibly others, this means they may not be all that accurate.
The Dialog used to name a note doesn't limit the number of characters that can be used in a name, although it does prevent (by use of translations) a user from putting a newline in the text. The drawback to not limiting the length of the name is that the dialog box's text field won't resize to the right as characters are typed off the right hand edge of the field, although it will scroll that way.
Color selection using the rgb file for low color displays using the Motif version sucks. I have some ideas for an alternative method, but don't know when I'll actually get around to implementing it. In the mean time, just hand edit the projects file with colors you already use for some of your other applications or window manager.
You can't delete projects from the Projects dialog yet. You also can't change the name of a project. To do either, edit the projects file by hand. Look at the xnprojects or xnprojects-gtk file in the data directory.
In the older XPostitPlus, the -c option was reported to not read in old notes properly. It would eat the first line. This can be worked around by adding a blank line to the old notes. However, I couldn't reproduce this problem. I suggest creating a backup of your old notes before trying to run with the -c option, just in case.
Without a color display for canary yellow notes and the logo in the Plaid Window, the aesthetic value of xnotes+ cannot be fully appreciated. GTK Version
The GTK version has a few bugs, mostly related to the GTkText widget. There are also some bugs in the widget that may cause XNotesPlus to crash. The GtkText widget is still a work in progress, so perhaps these problems will go away with time.
One other problem with GTK is that I haven't figured out how to prevent resizing of windows. Doing so can prevent odd redistributions of some window components - especially when there is no real need to resize. If you resize the windows (except the note window itself, of course), you're on your own!
No, the GTK port will not be part of GNOME, although if possible it will be GNOME compliant in the future. I also intend to make it KDE compliant. Probably for the 4.0 release. Motif Version
If you use LessTif, beware the window resizing that happens when you set alarms or anchor a note! What happens is that the icon in the menu bar changes, and for some reason that causes LessTif to resize the note window. This doesn't happen with Motif, so I assume it's a LessTif bug. I'll try to work around this in a future release.
XNotesPlus and XPostitPlus are both written and copyrighted by Michael J. Hammel (mjhammel@graphics-muse.org).
Post-It and the plaid design are registered trademarks of 3M.
The SOX (audio) software can be found at http://www.spies.com/Sox/. More recent versions (ie a new distribution) can be found at http://home.sprynet.com/sprynet/cbagwell/projects.html.
Nenscript, by Craig Southeren, is a freely redistributable program to convert ASCII files into Postscript. It is made available with XNotesPlus as a service to my users and through Craig's (and CSA's - his employer at the time) kind graces. Current releases can be found at http://www.im.lcs.mit.edu/~magnus/nenscript/.
The pilot-link software can be found at