<chapter id="synchronization">
<title>Syncing your &handheld; with a PC</title>

<para>
This chapter describes the synchronization process that &kpilot; uses, focusing
on the &kpilot; daemon functionality.  You may sync your &handheld; using
the <link linkend="conduits">conduits</link>. Conduits allow external
applications to interface with the data on your &handheld;.
</para>

<para>
It is a good idea to make a backup
of your &handheld; regularly. Other than making backups, it should rarely be
necessary to do anything other than drop your &handheld; on the cradle and press
the &HotSync; button. The &kpilot; daemon icon in the system tray will flash
indicating that a sync is under way.
</para>


<screenshot>
<screeninfo>&kpilot; Daemon Pop-Up Menu</screeninfo>
<mediaobject>
<imageobject><imagedata fileref="daemon-menu.png" format="PNG"/></imageobject>
<textobject><phrase>&kpilot; daemon popup menu</phrase></textobject>
<caption><para>&kpilot; daemon popup menu</para></caption>
</mediaobject>
</screenshot>


<para>
To set which type of sync &kpilot; will perform next, you can use the main
application
<link linkend="menu-file">
<menuchoice>
<guimenu>File</guimenu>
</menuchoice>
menu</link>,
or right click the &kpilot; daemon icon located in the system tray,
and select one of the menu items under the
<menuchoice>
<guisubmenu>Next Sync</guisubmenu>
</menuchoice>
sub menu.
<tip><para>
If you hover over the &kpilot; daemon icon, a tooltip will appear showing you
what the type of sync &kpilot; will perform next.
</para></tip>

</para>



<para>
In short, the sync types are:
</para>

<itemizedlist>

<listitem><para>
<guilabel>HotSync (once)</guilabel>: this option offers
a nice balance between speed and data safety.
</para></listitem>

<listitem><para>
<guilabel>FullSync (once)</guilabel>: the safest option, but
takes the longest time to complete.
</para></listitem>

<listitem>
<para>
<guilabel>Copy Handheld to PC (once)</guilabel>: run all conduits and
sync all databases, but instead of merging the information from both sources,
just copy the handheld data to the PC.
<warning><para>Use with care, as this option erases the changes
you made in your PC since the last sync.</para></warning>
</para>
</listitem>

<listitem>
<para>
<guilabel>Copy PC to Handheld (once)</guilabel>: run all conduits and
sync all databases, but instead of merging the information from both sources,
just copy the PC data to the handheld.
<warning><para>Use with care, as this option erases the changes
you made in your handheld since the last sync.</para></warning>
</para>
</listitem>

</itemizedlist>


<para>
Alternatively, you can change the default syncing behavior of &kpilot; by
choosing the most suitable option in the <link linkend="page-hotsync">&HotSync;
configure dialog</link>.

<note><para>
To configure the conduits or the sync process, you do not need to open the main
&kpilot; application, as the
<menuchoice>
<guimenuitem>Configure KPilot...</guimenuitem>
</menuchoice>
menu item is available on the &kpilot; daemon popup menu as well.
</para></note>

</para>


<sect1 id="sync-s">
<title>Selecting the Synchronization Type</title>

<para>
There are two ways to sync your &handheld;, <guilabel>HotSync</guilabel>,
or <guilabel>FullSync</guilabel>.
</para>

<para>
When you press the &HotSync; button on your &handheld;, &kpilot; will run the
default sync operation (usually a <guilabel>HotSync</guilabel>). You can select
the default sync operation in the <link linkend="page-hotsync">&HotSync;
configure dialog</link>. Alternatively, you can click one of the sync options on
the main &kpilot; application
<menuchoice>
<guimenu>File</guimenu>
</menuchoice>
menu or on the &kpilot; daemon popup
<menuchoice>
<guisubmenu>Next Sync</guisubmenu>
</menuchoice>
submenu.

<important><para>
Using the <link linkend="page-hotsync">&HotSync; configure dialog</link>
is the only way to change the default sync operation.
The main &kpilot; application
<menuchoice>
<guimenu>File</guimenu>
</menuchoice>
menu items or the &kpilot; daemon popup
<menuchoice>
<guisubmenu>Next Sync</guisubmenu>
</menuchoice>
submenu items change only the type of sync that will be performed <emphasis>next</emphasis>.
</para></important>
</para>

<screenshot>
<screeninfo>&kpilot; Daemon Pop-Up Menu</screeninfo>
<mediaobject>
<imageobject><imagedata fileref="daemon-menu.png" format="PNG"/></imageobject>
<textobject><phrase>&kpilot; daemon popup menu</phrase></textobject>
<caption><para>&kpilot; daemon popup menu</para></caption>
</mediaobject>
</screenshot>


<para>
For more information on the sync types, please refer to the descriptions
available in <xref linkend="page-hotsync" />.
</para>


</sect1>

<sect1 id="conduits">
<title>Syncing your &handheld; Data Using Conduits</title>

<para>
Conduits are programs that interface your &handheld; data with
<acronym>PC</acronym> applications or sync your &handheld; data with files
that can be used by <acronym>PC</acronym> applications.
</para>

<para>
Conduits can be set up by selecting
<menuchoice>
<guimenu>Settings</guimenu>
<guimenuitem>Configure KPilot...</guimenuitem>
</menuchoice>, or using the daemon pop up menu and clicking the
<guimenuitem>Configure KPilot...</guimenuitem>
menu item.
</para>

<screenshot>
<screeninfo>&kpilot; Daemon Pop-Up Menu</screeninfo>
<mediaobject>
<imageobject><imagedata fileref="daemon-menu.png" format="PNG"/></imageobject>
<textobject><phrase>&kpilot; daemon popup menu</phrase></textobject>
<caption><para>&kpilot; daemon popup menu</para></caption>
</mediaobject>
</screenshot>

</sect1>

<sect1 id="conflicts">
<title>Resolving Conflicts</title>

<para>
Data records can be changed both on the &handheld; and
on the <acronym>PC</acronym>. If one record has incompatible changes
in both the &handheld; and the <acronym>PC</acronym> (such as
changing a phone number in different ways on both sides),
the conflicting change needs to be resolved so
that both the &handheld; and the <acronym>PC</acronym> are in sync again.
</para>

<para>
A popup dialog may appear, asking you how to resolve the
conflict, or you may have a general rule to automatically handle these
conflicts (depending on your <link linkend="page-hotsync">conflict resolution
choice</link>). Note that you can define different resolution choices
for different conduits in the <link linkend="config-conduits">conduits
configuration dialog</link>.
</para>

</sect1>
</chapter>
