Merge pull request #15 from glyptodon/update-usage

GUAC-1221: Update general usage documentation
diff --git a/src/chapters/administration.xml b/src/chapters/administration.xml
index 4c4ad38..b0f2f33 100644
--- a/src/chapters/administration.xml
+++ b/src/chapters/administration.xml
@@ -14,27 +14,90 @@
         extension, this chapter probably does not apply to you, and the management options will not
         be visible in the Guacamole interface. If, on the other hand, you are using one of the
         database authentication providers, and you are logged in as a user with sufficient
-        privileges, you will see management options within the user menu.</para>
+        privileges, you will see management sections listed within the settings screen:</para>
     <informalfigure>
         <mediaobject>
             <imageobject>
-                <imagedata fileref="images/manage-button.png" format="PNG" contentwidth="1.5in"/>
+                <imagedata fileref="images/guacamole-settings-sections.png" format="PNG"
+                    contentwidth="1.5in"/>
             </imageobject>
             <caption>
-                <para>Management options within the Guacamole user menu.</para>
+                <para>Sections within the Guacamole settings screen.</para>
             </caption>
         </mediaobject>
     </informalfigure>
-    <para>Clicking any of these options will take you to a corresponding screen where you can
-        perform administrative tasks.</para>
+    <para>Clicking any of these options will take you to a corresponding management section where
+        you can perform administrative tasks.</para>
+    <section xml:id="session-management">
+        <title>Managing sessions</title>
+        <indexterm>
+            <primary>session management</primary>
+        </indexterm>
+        <para>Clicking "Active Sessions" navigates to the session management screen. The session
+            management screen displays all active sessions and allows system administrators to kill
+            them as needed.</para>
+        <para>When any user accesses a particular remote desktop connection, a unique session is
+            created and will appear in the list of active sessions in the session management screen.
+            Each active session is displayed in a sortable table, showing the corresponding user's
+            username, how long the session has been active, the IP address of the machine from which
+            the user is connecting, and the name of the connection being used.</para>
+        <informalfigure>
+            <screenshot>
+                <mediaobject>
+                    <imageobject>
+                        <imagedata fileref="images/manage-sessions.png" format="PNG"
+                            contentwidth="5in"/>
+                    </imageobject>
+                    <caption>
+                        <para>Session management interface</para>
+                    </caption>
+                </mediaobject>
+            </screenshot>
+        </informalfigure>
+        <para>To kill one or more sessions, select the sessions by clicking their checkboxes. Once
+            all desired sessions have been selected, clicking "Kill Sessions" will immediately
+            disconnect those users from the associated connection.</para>
+        <section xml:id="filtering-sessions">
+            <title>Filtering and sorting</title>
+            <para>The table can be resorted by clicking on the column headers. Clicking any column
+                will resort the table by the values within that column, while clicking a column
+                which is already sorted will toggle between ascending and descending order.</para>
+            <para>The content of the table can be limited through search terms specified in the
+                "Filter" field. Entering search terms will limit the table to only sessions
+                containing those terms. For example, to list only connections by the user
+                "guacadmin" which have been active since March, 2015, you would enter: "guacadmin
+                2015-03". Beware that if a search term needs to contain spaces, it must be enclosed
+                in double quotes to avoid being interpreted as multiple terms.</para>
+            <informalfigure>
+                <mediaobject>
+                    <imageobject>
+                        <imagedata fileref="images/session-filter-example-1.png" format="PNG"
+                            contentwidth="5in"/>
+                    </imageobject>
+                </mediaobject>
+            </informalfigure>
+            <para>If you wish to narrow the content of the table to only those connections which
+                originate from a particular block of IP addresses, you can do this by specifying the
+                block in standard CIDR notation, such "10.0.0.0/8" or "2001:db8:1234::/48". This
+                will work with both IPv4 and IPv6 addresses.</para>
+            <informalfigure>
+                <mediaobject>
+                    <imageobject>
+                        <imagedata fileref="images/session-filter-example-2.png" format="PNG"
+                            contentwidth="5in"/>
+                    </imageobject>
+                </mediaobject>
+            </informalfigure>
+        </section>
+    </section>
     <section xml:id="user-management">
         <title>User management</title>
         <indexterm>
             <primary>user management</primary>
         </indexterm>
-        <para>Clicking "Users" within the user menu will take you to the user management screen.
-            Here you can add new users or edit the properties and privileges of existing
-            users.</para>
+        <para>Clicking "Users" within the list of settings sections will take you to the user
+            management screen. Here you can add new users or edit the properties and privileges of
+            existing users.</para>
         <para>To add a new user, type the username of the new user within the text box inside the
             user management screen, and click the "New User" button. The new user will be added and
             made available. The new user will have no access to any existing connections, nor any
@@ -54,10 +117,14 @@
             </screenshot>
         </informalfigure>
         <para>To edit a user, just click on the user you wish to edit. You will be taken to a screen
-            which allows you to change the user's password, add or remove administrative
-            permissions, and add or remove read access to specific connections or groups.</para>
+            which allows you to change the user's password, expire their password (such that it must
+            be changed at next login), add or remove administrative permissions, and add or remove
+            read access to specific connections or groups.</para>
         <para>If you have delete permission on the user, you will also see a "Delete" button.
-            Clicking this button will permanently delete the user.</para>
+            Clicking this button will permanently delete the user. Alternatively, if you only wish
+            to temporarily disable the account, checking "Login disabled" will achieve the same
+            effect while not removing the user entirely. If they attempt to log in, the attempt will
+            be rejected as if their account did not exist at all.</para>
         <informalfigure>
             <screenshot>
                 <mediaobject>
@@ -82,9 +149,9 @@
         <indexterm>
             <primary>groups</primary>
         </indexterm>
-        <para>Clicking "Manage Connections" within the user menu will take you to the connection
-            management screen. The connection management screen allows administrators to create and
-            edit connections and connection groups.</para>
+        <para>Clicking "Connections" within the list of settings sections will take you to the
+            connection management screen. The connection management screen allows administrators to
+            create and edit connections and connection groups.</para>
         <para>To add a new connection or group, click the "New Connection" or "New Group" button.
             This will take you to a screen where you will be allowed to enter the details of the new
             object, such as its location, parameters, and name. This name should be descriptive, but
@@ -155,66 +222,4 @@
             </informalfigure>
         </section>
     </section>
-    <section xml:id="session-management">
-        <title>Managing sessions</title>
-        <indexterm>
-            <primary>session management</primary>
-        </indexterm>
-        <para>Clicking "Active Sessions" navigates to the session management screen. The session
-            management screen displays all active sessions and allows system administrators to kill
-            them as needed.</para>
-        <para>When any user accesses a particular remote desktop connection, a unique session is
-            created and will appear in the list of active sessions in the session management screen.
-            Each active session is displayed in a sortable table, showing the corresponding user's
-            username, how long the session has been active, the IP address of the machine from which
-            the user is connecting, and the name of the connection being used.</para>
-        <informalfigure>
-            <screenshot>
-                <mediaobject>
-                    <imageobject>
-                        <imagedata fileref="images/manage-sessions.png" format="PNG"
-                            contentwidth="5in"/>
-                    </imageobject>
-                    <caption>
-                        <para>Session management interface</para>
-                    </caption>
-                </mediaobject>
-            </screenshot>
-        </informalfigure>
-        <para>To kill one or more sessions, select the sessions by clicking their checkboxes. Once
-            all desired sessions have been selected, clicking "Kill Sessions" will immediately
-            disconnect those users from the associated connection.</para>
-        <section xml:id="filtering-sessions">
-            <title>Filtering and sorting</title>
-            <para>The table can be resorted by clicking on the column headers. Clicking any column
-                will resort the table by the values within that column, while clicking a column
-                which is already sorted will toggle between ascending and descending order.</para>
-            <para>The content of the table can be limited through search terms specified in the
-                "Filter" field. Entering search terms will limit the table to only sessions
-                containing those terms. For example, to list only connections by the user
-                "guacadmin" which have been active since March, 2015, you would enter: "guacadmin
-                2015-03". Beware that if a search term needs to contain spaces, it must be enclosed
-                in double quotes to avoid being interpreted as multiple terms.</para>
-            <informalfigure>
-                <mediaobject>
-                    <imageobject>
-                        <imagedata fileref="images/session-filter-example-1.png" format="PNG"
-                            contentwidth="5in"/>
-                    </imageobject>
-                </mediaobject>
-            </informalfigure>
-            <para>If you wish to narrow the content of the table to only those connections which
-                originate from a particular block of IP addresses, you can do this by specifying the
-                block in standard CIDR notation, such "10.0.0.0/8" or "2001:db8:1234::/48". This
-                will work with both IPv4 and IPv6 addresses.</para>
-            <informalfigure>
-                <mediaobject>
-                    <imageobject>
-                        <imagedata fileref="images/session-filter-example-2.png" format="PNG"
-                            contentwidth="5in"/>
-                    </imageobject>
-                </mediaobject>
-            </informalfigure>
-        </section>
-    </section>
 </chapter>
diff --git a/src/chapters/images/edit-user.png b/src/chapters/images/edit-user.png
index 2cdf0d8..768bad4 100644
--- a/src/chapters/images/edit-user.png
+++ b/src/chapters/images/edit-user.png
Binary files differ
diff --git a/src/chapters/images/guac-menu-disconnect.png b/src/chapters/images/guac-menu-disconnect.png
new file mode 100644
index 0000000..028c2c1
--- /dev/null
+++ b/src/chapters/images/guac-menu-disconnect.png
Binary files differ
diff --git a/src/chapters/images/guacamole-client-interface.png b/src/chapters/images/guacamole-client-interface.png
index ed71cbd..5a9e327 100644
--- a/src/chapters/images/guacamole-client-interface.png
+++ b/src/chapters/images/guacamole-client-interface.png
Binary files differ
diff --git a/src/chapters/images/guacamole-home-screen.png b/src/chapters/images/guacamole-home-screen.png
index cf2ba75..ba20c61 100644
--- a/src/chapters/images/guacamole-home-screen.png
+++ b/src/chapters/images/guacamole-home-screen.png
Binary files differ
diff --git a/src/chapters/images/guacamole-preferences.png b/src/chapters/images/guacamole-preferences.png
new file mode 100644
index 0000000..b751e8d
--- /dev/null
+++ b/src/chapters/images/guacamole-preferences.png
Binary files differ
diff --git a/src/chapters/images/guacamole-settings-sections.png b/src/chapters/images/guacamole-settings-sections.png
new file mode 100644
index 0000000..4677804
--- /dev/null
+++ b/src/chapters/images/guacamole-settings-sections.png
Binary files differ
diff --git a/src/chapters/images/manage-connections.png b/src/chapters/images/manage-connections.png
index beb649f..5af894a 100644
--- a/src/chapters/images/manage-connections.png
+++ b/src/chapters/images/manage-connections.png
Binary files differ
diff --git a/src/chapters/images/manage-sessions.png b/src/chapters/images/manage-sessions.png
index 475cf70..f0fd5b5 100644
--- a/src/chapters/images/manage-sessions.png
+++ b/src/chapters/images/manage-sessions.png
Binary files differ
diff --git a/src/chapters/images/manage-users.png b/src/chapters/images/manage-users.png
index 0460945..7d7ce53 100644
--- a/src/chapters/images/manage-users.png
+++ b/src/chapters/images/manage-users.png
Binary files differ
diff --git a/src/chapters/images/touchpad.png b/src/chapters/images/touchpad.png
new file mode 100644
index 0000000..fa9df42
--- /dev/null
+++ b/src/chapters/images/touchpad.png
Binary files differ
diff --git a/src/chapters/images/touchscreen.png b/src/chapters/images/touchscreen.png
new file mode 100644
index 0000000..85d669c
--- /dev/null
+++ b/src/chapters/images/touchscreen.png
Binary files differ
diff --git a/src/chapters/using.xml b/src/chapters/using.xml
index 8bca010..2fbf48d 100644
--- a/src/chapters/using.xml
+++ b/src/chapters/using.xml
@@ -14,11 +14,12 @@
         possible.</para>
     <section xml:id="home-screen">
         <title>Home screen</title>
-        <para>Once you have successfully logged in, the first thing you will see is the Guacamole
-            home screen. The home screen is a list of available remote desktop connections. This
-            list contains all connections which you have been granted permission to access. If you
-            have used Guacamole in this specific web browser before, you will also see thumbnails of
-            recently used connections.</para>
+        <para>Once you have successfully logged in, you will be taken to either the Guacamole home
+            screen, where all available connections are listed, or directly to a connection, if you
+            only have access to one connection.</para>
+        <para>The list of connections on the home screen contains all connections for which you have
+            been granted access. If you have used Guacamole in this specific web browser before, you
+            will also see thumbnails of recently used connections.</para>
         <informalfigure>
             <screenshot>
                 <mediaobject>
@@ -49,17 +50,19 @@
                 <varlistentry>
                     <term>Home</term>
                     <listitem>
-                        <para>Navigates back to the home screen, if you are not already
-                            there.</para>
+                        <para>Navigates back to the home screen, if you are not already there. If
+                            you only have access to one connection, this will be replaced with a
+                            link to that connection.</para>
                     </listitem>
                 </varlistentry>
                 <varlistentry>
-                    <term>Change password</term>
+                    <term>Settings</term>
                     <listitem>
-                        <para>Changes the password for your account. This option may not be
-                            available if your user account lacks sufficient permissions, or if the
-                            authentication system installed does not provide for changing
-                            passwords.</para>
+                        <para>Navigates to the settings interface, which provides access to user
+                            preferences such as display language. If you have access to
+                            administrative functions, those are found within the settings interface,
+                            as well, and are discussed in more detail in <xref
+                                linkend="administration"/>.</para>
                     </listitem>
                 </varlistentry>
                 <varlistentry>
@@ -70,39 +73,11 @@
                     </listitem>
                 </varlistentry>
             </variablelist>
-            <para>If you have administrator-level access to Guacamole, you may also see options
-                specific to managing users, connection, or sessions. These are discussed in more
-                detail in <xref linkend="administration"/>.</para>
-            <variablelist>
-                <varlistentry>
-                    <term>Users</term>
-                    <listitem>
-                        <para>Shows all other Guacamole user accounts. Depending on your access
-                            level, users may be created, modified, and deleted.</para>
-                    </listitem>
-                </varlistentry>
-                <varlistentry>
-                    <term>Manage connections</term>
-                    <listitem>
-                        <para>Shows available Guacamole connections and connection groups. Depending
-                            on your access level, the connections displayed here may be created,
-                            modified, and deleted.</para>
-                    </listitem>
-                </varlistentry>
-                <varlistentry>
-                    <term>Active sessions</term>
-                    <listitem>
-                        <para>Shows all active Guacamole connections, the address from which the
-                            connection originates, and when the connection began. Administrators can
-                            select and kill active connections at will.</para>
-                    </listitem>
-                </varlistentry>
-            </variablelist>
         </section>
     </section>
     <section xml:id="client-screen">
         <title>Client screen</title>
-        <para>Once you open a connection, you will see a realtime view of the remote display. You
+        <para>Once you open a connection, you will see a real-time view of the remote display. You
             can interact with this display just as you would your normal desktop. Your mouse and
             keyboard will function as if they were connected directly to the remote machine.</para>
         <informalfigure>
@@ -177,6 +152,30 @@
             text within the remote desktop, you will see that text within the text area, and can
             manually copy it into the local clipboard if desired.</para>
     </section>
+    <section xml:id="client-user-menu">
+        <title>Disconnecting and navigation</title>
+        <para>When you are done using the current connection, or you wish to navigate elsewhere
+            temporarily, options to do so are within the user menu inside the Guacamole menu:</para>
+        <informalfigure>
+            <mediaobject>
+                <imageobject>
+                    <imagedata fileref="images/guac-menu-disconnect.png" format="PNG"
+                        contentwidth="6in"/>
+                </imageobject>
+                <caption>
+                    <para>The user menu within the Guacamole menu.</para>
+                </caption>
+            </mediaobject>
+            <para>The user menu within the Guacamole menu provides an additional "Disconnect" option
+                that allows you to explicitly close the current connection only. Clicking "Logout"
+                will also implicitly disconnect all active connections, including the current
+                connection.</para>
+            <para>Navigating back to the home screen or to the settings screen will not disconnect
+                you: your connection will continue running in the background while you change
+                settings or initiate another connection, and you can resume any active connection by
+                clicking on it within the home screen.</para>
+        </informalfigure>
+    </section>
     <section xml:id="file-transfer">
         <title>Transferring files</title>
         <indexterm>
@@ -297,6 +296,14 @@
                     "relative" mouse emulation. Relative mouse emulation provides a way to deal with
                     the need for accurate pointer control, when a true pointer device is not
                     present.</para>
+                <informalfigure>
+                    <mediaobject>
+                        <imageobject>
+                            <imagedata fileref="images/touchscreen.png" format="PNG"
+                                contentwidth="1.5in"/>
+                        </imageobject>
+                    </mediaobject>
+                </informalfigure>
             </section>
             <section xml:id="relative-mouse-emulation">
                 <title>Relative mode (touchpad)</title>
@@ -311,6 +318,14 @@
                     pinch-to-zoom will not work while relative mouse emulation is enabled. Instead,
                     the screen will automatically pan to keep the mouse pointer in view, and you can
                     zoom through the buttons in the menu.</para>
+                <informalfigure>
+                    <mediaobject>
+                        <imageobject>
+                            <imagedata fileref="images/touchpad.png" format="PNG"
+                                contentwidth="1.5in"/>
+                        </imageobject>
+                    </mediaobject>
+                </informalfigure>
             </section>
         </section>
         <section xml:id="text-input">
@@ -334,5 +349,60 @@
                 desktop.</para>
         </section>
     </section>
+    <section xml:id="preferences">
+        <title>Changing preferences</title>
+        <para>User preferences can be changed within the settings screen. These preferences are
+            stored locally within the browser, so if you use multiple computers to access Guacamole,
+            you can have different settings for each location. The settings screen allows users to
+            change the language of the Guacamole interface, to change the default input method used
+            by Guacamole connections, and to change the default mouse emulation mode for if a touch
+            device is used. If you have sufficient permissions, you may also change your password,
+            or administer the system.</para>
+        <informalfigure>
+            <screenshot>
+                <mediaobject>
+                    <imageobject>
+                        <imagedata fileref="images/guacamole-preferences.png" format="PNG"
+                            contentwidth="6in"/>
+                    </imageobject>
+                    <caption>
+                        <para>Guacamole preferences screen.</para>
+                    </caption>
+                </mediaobject>
+            </screenshot>
+        </informalfigure>
+        <section xml:id="display-language">
+            <title>Display language</title>
+            <para>The Guacamole interface is currently available in English, French, and Russian. By
+                default, Guacamole will attempt to determine the appropriate display language by
+                checking the language preferences of the browser in use. If this fails, or the
+                browser is using a language not yet available within Guacamole, English will be used
+                as a fallback.</para>
+            <para>If you wish to override the current display language, you can do so by selecting a
+                different language within the "Display language" field. The change will take effect
+                immediately.</para>
+        </section>
+        <section xml:id="changing-password">
+            <title>Changing your password</title>
+            <para>System administrators can restrict the ability of individual users to change their
+                own passwords, so this section may not always be available. If your account
+                    <emphasis>does</emphasis> have permission, the preferences screen will contain a
+                "Change Password" section.</para>
+            <para>To change your password, you must provide your current password, enter the desired
+                new password, and click "Update Password". You will remain logged in, and the change
+                will affect any future login attempt.</para>
+        </section>
+        <section xml:id="default-input-settings">
+            <title>Default input settings</title>
+            <para>Guacamole provides multiple keyboard input methods and multiple mouse emulation
+                modes. Many of these settings are specifically useful for touch devices, while
+                others are aimed mainly at traditional desktop use. By default, Guacamole will use
+                the keyboard and mouse modes most commonly preferred by users, but you can change
+                these defaults if they do not fit your tastes or your current device.</para>
+            <para>The choices available mirror those within the Guacamole menu discussed earlier in
+                this chapter, and changing these settings will affect the default values selected
+                within the Guacamole menu of future connections.</para>
+        </section>
+    </section>
 
 </chapter>