Author: Judd Montgomery

## J-Pilot User Manual

J-Pilot is a palm pilot desktop for Linux/Unix written by:
Judd Montgomery, judd@engineer.com, http://jpilot.org
J-Pilot has been reported to work on:

- Linux
- Solaris
- HP-UX
- Irix
- FreeBSD
- PowerPC

HP-UX J-Pilot should work with Palm Pilot models 1000, 5000, Personal, Professional, all III models, IIIc, V, VII, All Visors, Sonys, pretty much any Palm OS device.
01 Feb 2002:
Palm OS versions greater than 4.0 cannot have the password set on the handheld. This will be fixed in a later version.
USB Palms (m series) and Sony Clies will work, but require pilot-link 0.10.1 or greater, which is still unreleased at the time of this writing. J-Pilot will autodetect the newer version of pilot-link and build appropriately.

### Updates

This document was last updated 03 Feb 2002, for J-Pilot-0.99.2.

### Purpose of this document

Many things in this document are pretty much self explanatory, like a lot of the text on how to use J-Pilot. I have written this document for a user as well as someone who is thinking about being a user and wants to know the capabilities of J-Pilot before much time is wasted downloading and compiling it, etc. In the using J-Pilot section, I have marked some things with "*Hint*" that I think may not be right away obvious to a new user. If you are in a hurry, just read these.

### Installation

#### Prerequisites

- GTK+, and glib (installed by default on most Linux distributions)
- pilot-link (comes with many distributions)
- pilot-link > 0.10.1 for Palm OS 4.x USB and Sony USB handhelds.

  To compile J-Pilot you need to have GTK+1.2 or later installed. You can find out what version you have by running "gtk-config --version". GTK+ requires glib. The glib version probably should match the gtk version. You can also do a "glib-config --version". You can get these at http://www.gtk.org

  Pilot link must be installed and working. What I mean by working is that you can use pilot-xfer, memos, or some other pilot-link program.

  Here is a visor USB howto I found: Handspring Visor and J-Pilot guide
  The HOWTO is also relevant for the clie devices.

  The pilot-link code and other helpful info can be found at http://www.pilot-link.org/

  If you are installing pilot-link from RPMs make sure that you also have the pilot-link-dev rpm installed for the header files so that J-Pilot can compile.

  #### Compiling

  To compile and install do the following:
  ./configure --prefix=/usr
  make
  make install
  jpilot
  ./configure --help will list all the options available.

  make uninstall is also an option, however I do not recommend using this ;)

  I have included a spec file so if you want to create your own RPM all you have to do is "rpm -tb jpilot-0.99.2.tar.gz"

  J-Pilot was written in such a way that it should be very safe to sync. There is always the possibility of something going wrong though. As with anything else, backup your data if you cannot afford to lose it. Just make sure your backup software doesn't destroy it first.

  #### Serial Port Setup

  When syncing, J-Pilot uses the port and speed settings out of the J-Pilot preferences screen. If the port is blank then J-Pilot will use the PILOTPORT environment variables, as does pilot-link. If these are blank also then J-Pilot will default to /dev/pilot.

  It is recommended, but not necessary to make a link from /dev/pilot to the correct serial port. So, if your cradle is on COM1, this is /dev/ttyS0 under Linux. You could execute the command "ln -s /dev/ttyS0 /dev/pilot". COM2 is /dev/ttyS1, and so on. The Linux serial ports cua[n] are going away. You should use the ttyS[n] ports instead. USB ports are usually /dev/ttyUSB1, or /dev/usb/tts/1 (for devfs), but some devices use /dev/ttyUSB0, or /dev/usb/tts/0.

  You must also give non-root users permissions to access the serial port. The command to do this is (as root) "chmod 666 /dev/ttyS0" for the first serial port, ttyS1, for the second, and so on.

  ### Color Files

  Make install will copy a few default color files to /usr/local/share/jpilot/ (unless you told configure to use another prefix). These will be selectable from the preferences menu. Also J-Pilot will look in $HOME/.jpilot/ for colors files. They must start with "jpilotrc". If you want to add new ones, or modify the current ones, just put the files in one of these directories and they will show up in the preferences menu.

  If you create your own cool jpilotrc files feel free to send them back to me and if I like it, I'll include it in the release.

  ### Use of the JPILOT_HOME environment variable

  J-Pilot uses the JPILOT_HOME environment variable to make it easy to allow multiple pilots to be synced under the same user. Just set JPILOT_HOME to the directory you want J-Pilot to use. Be sure to export it also.;nbsp For example, I have 2 palm pilots. I can sync the one I use all the time into /home/judd. The other one I can sync into /home/judd/palm2 by using this script:
  #!/bin/bash
  export JPILOT_HOME=/home/judd/palm2
  jpilot

  This is also handy for syncing xcopilot or pose into its own directory.

  ### Oops, Reverting

  You can always make the databases revert back to the last time that the pilot was synced. All you have to do is "rm ~/.jpilot/*.pc", or ~/.jpilot/*.pc3 for version 0.99 and above.
  Deleted records will come back, modified records will be un-modified, etc. Nothing is permanent until the sync/backup. You can do this if you make a mistake, or just to play around with J-Pilot and then delete the changed records without syncing them. For example if you want to restore the addresses to their last sync state you can remove ~/.jpilot/AddressDB.pc.

  Also, from the preferences menu, you can choose to show deleted records and then click on the deleted record and use "Copy" to get a copy of it back.

  ## Using J-Pilot

  ### Datebook Application

  #### Viewing Records

  You can browse through days on the calendar for the current month by pressing the days.

  *Hint*To go back to today's date, just hit the datebook application button again. The application buttons are the 4 large buttons with pictures on them on the left hand side of the screen.

  *Hint* Page up and Page down keys also work for scrolling through the days.
  The Home key takes you back to "today".

  #### Deleting a Record

  To delete a record, just highlight the record and hit the delete button on the right side of the screen.

  #### Adding a New Record

  To add a new record, first press the "New Record" button on the upper right hand side of the screen. Then fill in all of the details of the appointment and then press the "Add Record" button. New records will show up in a different color. Once they are synced they will be the same color as existing appointments.

  #### Modifying a Record

  To modify a record click on the record in the daily schedule, change the details of the record, and then press the "Apply Changes" button.

  ### Address Application

  #### Viewing Records

  On the left side of the screen there is a list of addresses. These can be viewed by category from the menu above them. They will appear in the same order as on the Palm Pilot. You can resort them by clicking the "Name/Company" heading.nbsp;

  #### Quick Find

  Just type in the quickfind box the first few letters of the record that you are looking for and the display will incrementally jump to the first matching record.

  #### Deleting a Record

  To delete a record, just highlight the record and hit the delete button on the right side of the screen.

  #### Adding a New Record

  To add a new record, first press the "New Record" button on the upper right hand side of the screen. Then fill in all of the details of the address and then press "Add Record". New records will show up in a different color. Once they are synced they will be the same color as existing appointments.

  #### Modifying a Record

  To modify a record, change the details of the address and then press the "Apply Changes" button.

  ### ToDo Application

  #### Viewing Records

  On the left side of the screen there is a list of todos. These can be viewed by category from the menu above them. They will appear in the same order as on the Palm Pilot. If you want change this, you must change it on the Palm Pilot under the menu in the todo program and then sync and switch to another application and back. You may also check the "Hide Completed ToDos" button if you don't want to see completed todos.

  #### Deleting a Record

  To delete a record, just highlight the record and hit the delete button on the right side of the screen.

  #### Adding a New Record

  To add a new record, Press the "New Record" button in the upper right hand corner of the window. Then fill in all of the details of the todo record and then press "Add Record". New records will show up in a different color. Once they are synced they will be the same color as existing records.

  #### Modifying a Record

  To modify a record select the record, change the details of the todo and then press the "Apply Changes" button.

  Also, todo items can be checked, or unchecked by clicking in the checkmark box.

  ### Memo Application

  #### Viewing Records

  On the left side of the screen there is a list of memos. These can be viewed by category from the menu above them. They are sorted alphabetically.

  #### Deleting a Record

  To delete a record, just highlight the record and hit the delete button on the right side of the screen.

  #### Adding a New Record

  To add a new record, Press the "New Record" button in the upper right hand corner of the window. Then fill in all of the details of the memo record and then press "Add Record". New records will show up in a different color. Once they are synced they will be the same color as existing records.

  #### Modifying a Record

  To modify a record select the record, change the details of the memo and then press the "Apply Changes" button.

  ### Expense Application Plugin

  #### This is an example plugin application

  I've written the expense application mostly for an example of a plugin and a proof of concept. The User Interface is pretty much the same as the other applications so I am not going to waste time being any more repetitive.

  ### SyncTime Plugin

  #### This is another plugin that comes with J-Pilot

  It is a GUI-less plugin. It will do something during the sync process, however, it does not have a GUI interface.
  During the sync process it will set the time on the Palm to the same time as on the desktop host computer. It should be accurate plus or minus 1 second. Palm OS 3.3 is broken and this plugin will crash a Palm running OS 3.3 during the sync. It auto detects the OS and should not do anything during a sync to Palm OS 3.3, so it should not hurt anything to have it enabled.

  ### Searching

  Search allows you to search for strings that may appear in records. Just type the search string into the "Search for" entry and hit enter. The "Case Sensitive" checkbox can be clicked for a case sensitive search. A list of found strings will be listed in the window. Just click on these records and the J-Pilot main window will go to the application and the record that matches the one that was selected.

  ### Installing files to the Palm Pilot

  The files entered here will be installed during the next sync. J-Pilot just keeps a pointer to the file, not a copy, so you shouldn't move the file, or delete it until after a sync. Just browse through the directory structure and select the files you are wishing to install. You can either double-click on them, or press the "Add" button after they are selected. They will show up in the "Files to be installed" window. You can always remove them from the "Files to be installed" window by selecting them and pressing the "Remove" button. When you are done press the "Done" button.

  ### Preferences screen

  #### Locale Tab

- Choose the character set for internationalization.
- Choose the localization for the short dates field.
- Choose the localization for the long dates field.
- Choose the localization of the time field.
- Choose the first day of the week.
- *Hint* Some displays will flicker with every change of the clock, so you may not want the clock updating every second. In this case, choose one of the time settings without seconds. Then the time will update every minute.

#### Settings Tab

- Select a GTK colors file. J-Pilot must be restarted for this change to take effect.
- Set the serial port. If this is empty, then the environment variable PILOTPORT will be used. If PILOTPORT is not set then the default of /dev/pilot is used.
- Set the serial rate. Some computers will not sync reliably above 9600. I am not sure why this is.
- Set the number of backup copies to keep. Everytime a backup is made it will go into a new backup directory of ~/.jpilot/backupMMDDhhmm where MM is the month, DD is the day and hhmm is the time. Backups over the number to be kept will be deleted.
- Set "show deleted records". Having this box checked means that deleted records will still be displayed as a different color. This can be confusing at times.
- Set "show modified deleted records". Having this box checked means that when a record is modified the original record will still be displayed as a different color. This can be very confusing at times.
- Set "Highlight calendar days with appointments". Having this box checked will make the datebook application highlight the calendar days that have appointments occurring on that day. This option will slow down the application noticeably on slower computers depending on the number of records in the datebook.
- Set "Use DateBk3/4 note tags". DateBk3 and DateBk4 is a rewrite of the Palm Datebook with added features. Some of them are implemented in J-Pilot and will be used if this button is checked.

  #### Alarms Tab

- Check "Open alarm windows for appointment reminders" to have J-Pilot open a window when an alarm occurs.
- Check "Execute this command" to have J-Pilot open a window when an alarm occurs. Enter in the command to be executed when an alarm occurs. This has the potential to be dangerous if an unwanted command is executed.

#### Conduits Tab

- Check which conduits you want to be executed during the sync process.

### Quit

To quit the program, use the quit button, or quit from the menu. You should not quit the program by killing its window. This causes a harsh death and the cleanup routines will not be executed.

### Sync

The sync button will sync four the main applications and any plugins that are installed.
If you get warnings about the palm having a different userID or a different username than the pilot that was last synced:
Every palm has a username and userid. These can be set by using install-user from the pilot-link set of tools. If you changed the name or ID and it is the same palm then you can go ahead and safely sync. If it is truly a different palm then you can still sync, just beware that any records pending modify/delete, etc. will try to be modified in the new palm. You can always remove the .pc3 files to prevent these. You can have multiple palms under the same user by using the JPILOT_HOME envirenment variable.
If you get warnings about the palm having a NULL userID:
J-Pilot cannot sync with this palm because it looks as though it has been hard-reset. If it has been hard-reset (cleared) DO NOT sync it unless you want to lose data. You should use pilot-xfer to restore the palm and then once the data is restored use install-user to create a username/ID on the palm and then sync.
If your palm has not been reset, but maybe just has always had a NULL userID because you never used the Windows or Mac desktop, then good for you! Just use install-user to add a username/ID and sync away. i.e.: install-user bob 1234
You can type install-user on the command line for instructions.

### J-Pilot Sync Daemon

I've included an additional sync program called jpilot-sync. It does not need j-pilot running in order to sync from the command line, or a script, so it can be handy for network syncs, or logging into a machine remotely.

### Backup

This will sync the main applications and any plugins that are installed and then do a backup of all databases and programs. It will only backup changed files, so the first time it will take a while. Subsequent backups will be a lot quicker.

### Restoring a Palm Pilot

This is not part of J-Pilot. J-Pilot stores its files in $HOME/.jpilot/ and $HOME/.jpilot/backupMMDDhhmm. A symbolic link of backup will be made to the most recent backup for convenience. To restore a palm pilot that has lost its data you can use the pilot-xfer program that comes with pilot-link. The easiest way to do this is to put every file that you want installed (or restored) back on the palm pilot in one directory. For this example, a directory called backup. Then you can execute "pilot-xfer -r backup". Do not install applications that are already in ROM on the palm pilot, such as the Address.prc, etc. You probably shouldn't install "Saved Preferences.prc" to a palm pilot that it didn't come from since this can throw off the screen calibration and make it very hard to re-calibrate.

Do not try to use j-pilot to sync data back into a reset palm pilot. It will overwrite the data on the desktop with the empty palm pilot files. This may change in a later release.

### Plugins

Plugins are shared libraries. They should end with a ".so" suffix. They should be placed in the ~/.jpilot/plugins/ directory, or [BASEDIR]/lib/jpilot/plugins/ directory, where BASEDIR is the directory that J-Pilot was installed under. The source compiled default is /usr/local/ and the RPM default is /usr/. The BASEDIR can be changed during the build by "configure --prefix=/this_dir/", etc. Once the plugin is there it will automatically appear in the J-Pilot menu. If it doesn't, then that probably means that J-Pilot was installed incorrectly, or the plugin isn't compatible.

### Feedback/Contributions

I always like to here feedback from users. Sometimes I get a little busy with email and my paying job, but I should always respond.
If you want to contribute some code just email me and tell me what you want to do, or have already done, etc. I may like it, and I may not. You are always free to do what you want to with the source code.
If you really want to give me something for my effort in putting together this program. You can send me a little donation. I collect coins from anywhere, anytime also.

Judd Montgomery
P.O. Box 665
Sunbury, OH 43074

FAQ
(Frequently Asked Questions)

Q: Why is it called J-Pilot? Its not written in Java.

A: Originally I wrote this program for Myself and my Wife to use. The J was for Judd or Jacki. Not much thought was put into this. Then, out of the goodness of my heart (ughh), I wanted to release it under the GPL. I asked around for some better names, but I didn't come up with one. gtkpilot would be more appropriate, but I hate typing gtk.

Q: Why do you give it away for free?

A: 1. Because I can. 2. World Domination.
I would like to see Linux, become the dominate desktop both in the workplace and at home. This is one of my contributions to help make it happen. The more people that use Linux at home, the more I benefit from the hardware support and commercial software that will become available. The more Linux/Unix is used in the office, the more pleasant my job becomes. If I drove cars for a living, I'd rather be driving Ferraris and Corvettes around than Chevettes and Yugos.

Q: Are you going to Gnome-ify it, or KDE-ify it?

A: I don't run KDE, or Gnome, and at this point I don't even know what it would take to do this. If someone else wants to do this, that is ok. My only requirement is that KDE, or Gnome isn't required to run J-Pilot. I take pride in the fact that Linux/Unix has many window managers available to use.

Q: How do I cut-and-paste?

A: Cut is ctrl-x, copy is ctrl-c and paste is ctrl-v.