<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
<!ENTITY appversion "0.5">
<!ENTITY manrevision "0.1">
<!ENTITY appname "Gobby">
]>
<!--<?yelp:chunk-depth 4?>-->
<!-- =============Document Header ============================= -->
<article id="index" lang="en">
<!-- please do not change the id; for translations, change lang to --><!-- appropriate code -->  <articleinfo>
    <title>&appname; Manual</title>
    <abstract role="description">
      <para>&appname; is a text editor that allows multiple
        persons to edit documents collaboratively over the network.</para>
    </abstract>
    <copyright>
      <year>2009</year>
      <holder>Philipp Kern</holder>
    </copyright>
    <authorgroup>
      <author role="maintainer">
        <firstname>Philipp</firstname>
        <surname>Kern</surname>
        <affiliation>
          <orgname>0x539 dev group</orgname>
          <address>
            <email>phil@0x539.de</email>
          </address>
        </affiliation>
      </author>
    </authorgroup>
    <revhistory>
      <revision>
        <revnumber>&appname; Manual &manrevision;</revnumber>
        <date>2009-05-10</date>
      </revision>
    </revhistory>
    <releaseinfo>This manual explains how to use Gobby &appversion;, a collaborative editor.</releaseinfo>
    <legalnotice>
      <title>Feedback</title>
      <para>To report a bug or make a suggestion regarding this manual,
        please file an issue on <ulink url="https://github.com/gobby/gobby/issues">https://github.com/gobby/gobby/issues</ulink>.</para>
      <para>The application <application>&appname;</application> and this manual
        are both licensed under the ISC license.  They are distributed in the
        hope that they will be useful, but WITHOUT ANY WARRANTY; without even
        the implied warrenty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
        PURPOSE.  Please see the full license text for more details.</para>
<!-- Translators may also add here feedback address for translations -->    </legalnotice>
  </articleinfo>
<!-- ============= Document Body ============================= --><!-- ============= Introduction ============================== -->  <sect1 id="intro">
    <title>Introduction</title>
    <para>
      <application>&appname;</application> is a text editor that allows multiple
      persons to edit documents collaboratively over the network.  Changes
      to the documents are instantly synced to other interested parties.
      It uses an algorithm which does not require locking or a central
      coordinator but instead merges the changes on all participating peers.
    </para>
    <para>
      That said, <application>&appname;</application> is currently relying on a
      central server that relays the editing actions to other users.
      A public server can be found on <command>gobby.0x539.de</command>.  If you
      want to host such a server yourself, please look at the
      <application>infinoted</application> daemon.  As it is not needed
      algorithmically future versions might be able to do real peer-to-peer
      communication.  Support for editing over the instant messaging
      protocol <application>Jabber/XMPP</application> is planed.
    </para>
    <para>
      Depending on the setup of the server, connections can be encrypted
      through <application>Transport Layer Security (TLS)</application>.
      There is no support for user authentication yet.
    </para>
    <para>
      <application>&appname;</application> is cross-platform and supports so far
      Microsoft Windows, Linux, Mac OS X and other Unix-like platforms.  It
      is developed on Linux and regularly tested on Windows.  As it is developed
      using the Gtk+ toolkit it integrates nicely into the GNOME desktop
      environment.
    </para>
    <para>
      In contrast to the older <application>Gobby 0.4</application> this
      version also supports local undo and redo, which means that you can undo
      your own changes regardless if someone else changed the document in the
      meantime.
    </para>
  </sect1>
  <sect1 id="getting-started">
    <title>Getting Started</title>
    <sect2 id="starting-gobby">
      <title>Starting Gobby</title>
      <para>Choose <menuchoice>
          <guimenu>Applications</guimenu>
          <guisubmenu>Internet</guisubmenu>
          <guimenuitem>Gobby Collaborative Editor (0.5)</guimenuitem>
        </menuchoice> to start the application.</para>
      <para>You may also start <application>&appname;</application> from
        the command line:</para>
      <programlisting>
gobby-0.5
</programlisting>
    </sect2>
    <sect2 id="main-window">
      <title>Main Window</title>
      <para>The <application>Gobby</application> main window is split into
        two parts: a document and server browser on the left and an editor
        part on the right.</para>
      <screenshot>
        <mediaobject>
          <imageobject>
            <imagedata fileref="figures/main_window.png" format="PNG"/>
          </imageobject>
          <caption>
            <para>Main Window</para>
          </caption>
        </mediaobject>
      </screenshot>
    </sect2>
  </sect1>
  <sect1 id="setting-preferences">
    <title>Setting Preferences</title>
    <para>Choose <menuchoice>
        <guimenu>Edit</guimenu>
        <guimenuitem>Preferences</guimenuitem>
      </menuchoice> to open <application>Gobby</application>&apos;s
      <guilabel>Preferences</guilabel> window.  The window has five tabs:
    </para>
    <itemizedlist>
      <listitem>
        <para><emphasis>User</emphasis> -
          personal settings like user name and user color (see 
          <xref linkend="user-settings"/>)
        </para>
      </listitem>
      <listitem>
        <para><emphasis>Editor</emphasis> -
          text editor settings like indentation and auto saving
          (see <xref linkend="editor-settings"/>)</para>
      </listitem>
      <listitem>
        <para><emphasis>View</emphasis> -
          control how the text files being edited should be presented
          on the screen (see <xref linkend="view-settings"/>)</para>
      </listitem>
      <listitem>
        <para><emphasis>Appearance</emphasis> -
          font and window layout settings (see <xref linkend="appearance-settings"/>)</para>
      </listitem>
      <listitem>
        <para><emphasis>Security</emphasis> -
          controls security parameters like trusted certificates and
          encryption enforcing (see <xref linkend="security-settings"/>)</para>
      </listitem>
    </itemizedlist>
    <sect2 id="user-settings">
      <title>Personalization</title>
      <screenshot>
        <mediaobject>
          <imageobject>
            <imagedata fileref="figures/preferences_user.png" format="PNG"/>
          </imageobject>
          <caption>
            <para>Preferences: User tab</para>
          </caption>
        </mediaobject>
      </screenshot>
    </sect2>
    <sect2 id="editor-settings">
      <title>Text Editing Preferences</title>
      <screenshot>
        <mediaobject>
          <imageobject>
            <imagedata fileref="figures/preferences_editor.png" format="PNG"/>
          </imageobject>
          <caption>
            <para>Preferences: Editor tab</para>
          </caption>
        </mediaobject>
      </screenshot>
      <itemizedlist>
        <listitem>
          <para><emphasis role="italic">Tab Stops</emphasis> - The <emphasis role="italic">Tab width </emphasis> setting controls the display of tab characters.  In conjunction with <emphasis role="italic">Insert spaces instead of tabs</emphasis> it also determins the amount of white space characters inserted into the text when the tab key is pressed.</para>
        </listitem>
        <listitem>
          <para><emphasis role="italic">Indentation</emphasis> -</para>
        </listitem>
        <listitem>
          <para><emphasis role="italic">Home/End Behavior</emphasis> - <emphasis role="italic">Smart home/end</emphasis> controls if the Home and End keys should move to the first/last non-space character before moving to the beginning/end of the line.</para>
        </listitem>
        <listitem>
          <para><emphasis role="italic">File Saving</emphasis> -</para>
        </listitem>
      </itemizedlist>
    </sect2>
    <sect2 id="view-settings">
      <title>Text View Preferences</title>
      <para>TODO</para>
    </sect2>
    <sect2 id="appearance-settings">
      <title>General Appearance</title>
      <para>TODO</para>
    </sect2>
    <sect2 id="security-settings">
      <title>Security Settings</title>
      <para>TODO</para>
    </sect2>
  </sect1>
  <sect1 id="shortcuts">
    <title>Shortcuts</title>
    <para>This section documents both the set of shortcuts denoted in the menus and those which do not have a corresponding menu entry.</para>
    <table frame="all">
      <title>Gobby&apos;s Shortcuts</title>
      <tgroup cols="2">
        <colspec colname="c1"/>
        <colspec colname="c2"/>
        <thead>
          <row>
            <entry>Shortcut</entry>
            <entry>Action</entry>
          </row>
        </thead>
        <tbody>
          <row>
            <entry>Ctrl-N</entry>
            <entry>New document</entry>
          </row>
          <row>
            <entry>Ctrl-O</entry>
            <entry>Open document</entry>
          </row>
          <row>
            <entry>Ctrl-S</entry>
            <entry>Save current document</entry>
          </row>
          <row>
            <entry>Ctrl-Shift-S</entry>
            <entry>Save current document under a different filename</entry>
          </row>
          <row>
            <entry>Ctrl-Shift-L</entry>
            <entry>Save all open documents</entry>
          </row>
          <row>
            <entry>Ctrl-Shift-H</entry>
            <entry>Export as HTML <emphasis role="italic">(since 0.4.93)</emphasis></entry>
          </row>
          <row>
            <entry>Ctrl-T</entry>
            <entry>Connect to Server <emphasis role="italic">(since 0.4.93)</emphasis></entry>
          </row>
          <row>
            <entry>Ctrl-W</entry>
            <entry>Close current document</entry>
          </row>
          <row>
            <entry>Ctrl-Q</entry>
            <entry>Exit Gobby</entry>
          </row>
          <row>
            <entry>Ctrl-M</entry>
            <entry>Switch to chat <emphasis role="italic">(since 0.4.93)</emphasis></entry>
          </row>
          <row>
            <entry>Ctrl-Shift-M</entry>
            <entry>Switch to text document <emphasis role="italic">(since 0.4.93)</emphasis></entry>
          </row>
          <row>
            <entry>Ctrl-Shift-C</entry>
            <entry>Reset user colors in the current document <emphasis role="italic">(since 0.4.93)</emphasis></entry>
          </row>
          <row>
            <entry>F9</entry>
            <entry>Toggle document browser visibility</entry>
          </row>
          <row>
            <entry>Shift-F9</entry>
            <entry>Toggle chat visibility <emphasis role="italic">(since 0.4.93)</emphasis></entry>
          </row>
          <row>
            <entry>Ctrl-F9</entry>
            <entry>Toggle document user list visibility </entry>
          </row>
          <row>
            <entry>Ctrl-Shift-F9</entry>
            <entry>Toggle chat user list visibility <emphasis role="italic">(since 0.4.93)</emphasis></entry>
          </row>
          <row>
            <entry>Ctrl-Z</entry>
            <entry>Undo</entry>
          </row>
          <row>
            <entry>Ctrl-Shift-Z</entry>
            <entry>Redo</entry>
          </row>
          <row>
            <entry>Ctrl-F</entry>
            <entry>Find</entry>
          </row>
          <row>
            <entry>Ctrl-G</entry>
            <entry>Find next</entry>
          </row>
          <row>
            <entry>Ctrl-Shift-G</entry>
            <entry>Find previous</entry>
          </row>
          <row>
            <entry>Ctrl-H</entry>
            <entry>Find and replace</entry>
          </row>
          <row>
            <entry>Ctrl-I</entry>
            <entry>Go to line</entry>
          </row>
        </tbody>
      </tgroup>
    </table>
    <table frame="all">
      <title>GtkTextView&apos;s Shortcuts</title>
      <tgroup cols="2">
        <colspec colname="c1"/>
        <colspec colname="c2"/>
        <thead>
          <row>
            <entry>Shortcut</entry>
            <entry>Action</entry>
          </row>
        </thead>
        <tbody>
          <row>
            <entry>Ctrl-Up</entry>
            <entry>Go to the beginning of the line</entry>
          </row>
          <row>
            <entry>Ctrl-Down</entry>
            <entry>Go to the end of the line</entry>
          </row>
          <row>
            <entry>Ctrl-Home</entry>
            <entry>Go to the beginning of the document</entry>
          </row>
          <row>
            <entry>Ctrl-End</entry>
            <entry>Go to the end of the document</entry>
          </row>
          <row>
            <entry>Ctrl-A</entry>
            <entry>Select all</entry>
          </row>
          <row>
            <entry>Shift-Ctrl-A</entry>
            <entry>Deselect all</entry>
          </row>
          <row>
            <entry>Insert</entry>
            <entry>Toggle overwrite mode</entry>
          </row>
          <row>
            <entry>F7</entry>
            <entry>Toggle caret visibility</entry>
          </row>
        </tbody>
      </tgroup>
    </table>
    <table frame="all">
      <title>GtkSourceView&apos;s Shortcuts</title>
      <tgroup cols="2">
        <colspec colname="c1"/>
        <colspec colname="c2"/>
        <thead>
          <row>
            <entry>Shortcut</entry>
            <entry>Action</entry>
          </row>
        </thead>
        <tbody>
          <row>
            <entry>Alt-Shift-Up</entry>
            <entry>Move viewport one line up</entry>
          </row>
          <row>
            <entry>Alt-Shift-Down</entry>
            <entry>Move viewport one line down</entry>
          </row>
          <row>
            <entry>Alt-Shift-PageUp</entry>
            <entry>Move viewport one page up</entry>
          </row>
          <row>
            <entry>Alt-Shift-PageDown</entry>
            <entry>Move viewport one page down</entry>
          </row>
          <row>
            <entry>Alt-Shift-Home</entry>
            <entry>Move viewport to the beginning of the document</entry>
          </row>
          <row>
            <entry>Alt-Shift-End</entry>
            <entry>Move viewport to the end of document</entry>
          </row>
        </tbody>
      </tgroup>
    </table>
  </sect1>
  <sect1 id="about">
    <title>About Gobby</title>
    <para><application>Gobby</application> was written by Armin Burgmeier and others.</para>
    <para>To report a bug or make a suggestion regarding this application or this
      manual, please file an issue on
      <ulink url="https://github.com/gobby/gobby/issues">https://github.com/gobby/gobby/issues</ulink>.
      Please include a reachable email address in your bug report as we often
      need to contact the reporters for further clarifications.</para>
    <sect2 id="mailinglists">
      <title>Mailinglists</title>
      <para>There are also two mailing lists which should provide a means of contact to other Gobby users and to the developers.</para>
      <itemizedlist>
        <listitem>
          <para><literal>obby-announce</literal>: A moderated list used to announce new releases of Gobby and its foundation libraries.</para>
        </listitem>
        <listitem>
          <para><literal>obby-users</literal>: Discussions about Gobby&apos;s usage and installation problems. The announcements are also posted there.</para>
        </listitem>
      </itemizedlist>
      <para>More information about how to subscribe can be found on <ulink url="https://github.com/gobby/gobby/wiki/Mailing%20Lists">
          <literal>https://github.com/gobby/gobby/wiki/Mailing%20Lists</literal>
        </ulink>.</para>
    </sect2>
    <sect2 id="irc">
      <title>IRC channel</title>
      <para>Questions can also be taken to the IRC channel <literal>
          <ulink url="irc://irc.freenode.net/infinote">#infinote</ulink>
        </literal> on Freenode (<literal>irc.freenode.net</literal>).  However, you might need to be patient due to you and the developers living in different time zones.</para>
    </sect2>
  </sect1>
</article>
