From 4e40512ff9e09eaf7336d67a9e6cb20a6a74347a Mon Sep 17 00:00:00 2001
From: Florent Le Coz <louiz@louiz.org>
Date: Tue, 1 Nov 2011 23:25:52 +0100
Subject: First example of a documentation page + makefile to build the doc

---
 doc/poezio.txt | 83 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 83 insertions(+)
 create mode 100644 doc/poezio.txt

(limited to 'doc')

diff --git a/doc/poezio.txt b/doc/poezio.txt
new file mode 100644
index 00000000..47497434
--- /dev/null
+++ b/doc/poezio.txt
@@ -0,0 +1,83 @@
+Poezio documentation
+====================
+
+This page is the documentation for poezio.
+
+Poezio is an XMPP console client mostly written in python and a little
+bit in C.
+
+It uses curses to draw its user interface.
+
+It has been written to create an XMPP client that could very easily be used by
+any IRC user. Its interface tries to be like the ones of famous clients such
+as irssi or weechat.
+
+:numbered:
+== Usage ==
+
+Poezio is composed of tabs which can be of various types. Each tab type has
+a distinct interface, list of commands and list of key shortcuts, in addition
+to the global commands and key shortcuts.
+
+
+=== Commands ===
+
+Commands start with the */* character and can take a list of any number
+of arguments, separated by spaces. If an argument should contain a space,
+you can use the *"* character to surround this argument.
+
+.The command nick with only one argument
+==========================================
+/nick "my new nick"
+==========================================
+
+.The command status with two arguments
+==========================================
+/status away "on vacation"
+==========================================
+
+.Note
+The character *'* cannot be used instead of *"*.
+
+
+To know the list of all available commands, use the *help* command with no
+argument. To know more about the command (what it does and how to use it),
+use the *help* command and pass the command name as its first argument.
+
+The list of all global commands is as follow:
+
+[horizontal]
+*help*:: [command_name] + 
+  Displays the list of all available commands in the current tab, or displays
+  the usage of the given command.
+*message*:: <jid> [message] + 
+  Open a conversation with the specified JID, and send a message to it,
+  if specified.
+
+
+
+
+
+.Get information on the status command
+==========================================
+/help status
+==========================================
+
+
+=== Tabs ===
+This section lists and describes all the tab types.
+
+
+==== Roster Tab ====
+This is the first tab that you will see when starting poezio.
+
+It contains your roster
+
+[glossary]
+== Glossary ==
+
+This glossary explains some terms that are used in this documentation.
+
+[glossary]
+Roster::
+  The list of contacts, sorted by groups, status, or anything the client wishes.
-- 
cgit v1.2.3


From 971aad1e0e4646515d846794bee38557a2c80e1b Mon Sep 17 00:00:00 2001
From: mathieui <mathieui@mathieui.net>
Date: Tue, 1 Nov 2011 23:52:22 +0100
Subject: Doc: how to install poezio

---
 doc/en/install.txt | 94 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 94 insertions(+)
 create mode 100644 doc/en/install.txt

(limited to 'doc')

diff --git a/doc/en/install.txt b/doc/en/install.txt
new file mode 100644
index 00000000..75cc0ea8
--- /dev/null
+++ b/doc/en/install.txt
@@ -0,0 +1,94 @@
+Install
+=======
+
+
+Poezio in the GNU/Linux distributions
+-------------------------------------
+
+As far as I know, Poezio is available in the following distributions, you just have to install it by using the package manager of the distribution, if you're using one of these.
+
+* *Archlinux*: A poezio and poezio-git packages are in AUR (use your favourite AUR wrapper to install them)
+* *Frugalware*: Just use pacmang-g2 to install the poezio package. (Thanks to its maintainer, Kooda)
+* *Debian*: Use an other distro.
+
+(If an other distribution provides a poezio package, please tell us and we will add it to the list)
+
+
+Install poezio from the sources
+-------------------------------
+
+You can download poezio's https://dev.louiz.org/project/poezio/download[stable sources] or fetch the development version (trunk), using git:
+============================
+git clone https://git.louiz.org/poezio
+============================
+
+In order for poezio to correctly work, you need the libs SleekXMPP and dnspython. You can install them by downloading it from the https://github.com/fritzy/SleekXMPP/[SleekXMPP] page and the http://www.dnspython.org/[dnspython] page , but you'll need the development versions. Alternatively, you can download poezio's sources including SleekXMPP and dnspython, that's the easier way.
+
+As for dnspython, you will have to use our python3 fork, or poke them to accept patches.
+
+=== Dependencies ===
+
+
+If you want to install SleekXMPP and dnspython yourself, follow these instructions. Else, go to the next section.
+
+
+Download SleekXMPP
+============================
+git clone git://github.com/louiz/SleekXMPP.git
+============================
+
+Make sure you're using the develop branch by typing
+============================
+cd SleekXMPP
+
+git checkout develop
+============================
+
+Install SleekXMPP with
+============================
+python3 setup.py build
+
+su -c "python3 setup.py install"
+============================
+
+Clone the repository at http://hg.louiz.org/dnspython (this is a fork, because upstream is unresponsive and didn’t fix an important bug).
+============================
+hg clone http://hg.louiz.org/dnspython
+
+cd dnspython
+============================
+
+And do the same again:
+============================
+python3 setup.py build
+
+su -c "python3 setup.py install"
+============================
+
+
+=== Poezio installation ===
+
+If you skipped the installation of the dependencies and you only want to test poezio without a system-wide install, do, in the _poezio_ directory:
+============================
+sh update.sh
+============================
+
+If you have git and hg installed, it will download and update locally the libraries for you.
+
+
+If you don't want to install poezio but just test it, do:
+============================
+ ./launch.sh
+============================
+
+
+To install poezio, do, as root (or sudo with ubuntu or whatever):
+============================
+make install
+============================
+
+And then start it with:
+============================
+poezio
+============================
+
-- 
cgit v1.2.3


From ebef15ec4036f9fdeb23011b561b1cd4c0852ae7 Mon Sep 17 00:00:00 2001
From: Florent Le Coz <louiz@louiz.org>
Date: Wed, 2 Nov 2011 20:21:09 +0100
Subject: Add configure and keys documentation, also edit some default
 configuration values.

---
 doc/en/configure.txt | 266 +++++++++++++++++++++++++++++++++++++++++++++++++++
 doc/en/keys.txt      |  60 ++++++++++++
 2 files changed, 326 insertions(+)
 create mode 100644 doc/en/configure.txt
 create mode 100644 doc/en/keys.txt

(limited to 'doc')

diff --git a/doc/en/configure.txt b/doc/en/configure.txt
new file mode 100644
index 00000000..dd1e4b02
--- /dev/null
+++ b/doc/en/configure.txt
@@ -0,0 +1,266 @@
+Configure
+=========
+
+The configuration is located in the file *~/.config/poezio/poezio.cfg*
+On its first startup, poezio will create that file (and its containing
+directories) with the default configuration. You can edit that file manually
+or use the */set* command to edit some of its values directly from poezio.
+This file is also used to configure key bindings, but this is explained
+in the _keys_ documentation file.
+
+That file is read at each startup and the configuration is saved when poezio
+is closed.
+
+This configuration file *requires* all the options to be in a section
+named [Poezio].
+
+An option is formatted with the form
+======================
+option = value
+======================
+
+An empty value *doesn’t* mean that the default value will be used. That’s
+just an empty value. To use the default value, just comment or remove the
+option entirely.
+
+Here is a list of all the avalaible configuration options, their meaning
+and their default value.
+
+Configuration options
+---------------------
+
+[horizontal]
+*server*:: anon.louiz.org
+
+  The server to use for *anonymous* authentication.
+  Make sure it accepts anonymous authentification
+  Note that this option doesn’t do anything at all if you’re using your own JID.
+
+*port*:: 5222
+
+ The port you’ll use to connect.
+
+*resource*:: [empty]
+
+  the resource you will use
+  If it's empty, your resource will be chosen (most likely randomly) by the server
+  It is not recommended to use a resource that is easy to guess, because it can lead
+  to presence leak.
+
+
+*default_nick*:: [empty]
+
+  the nick you will use when joining a room with no associated nick
+  If this is empty, the $USER environnement variable will be used
+
+
+*jid*:: [empty]
+
+  Jabber identifiant. Specify it only if you want to connect using an existing
+  account on a server. This is optional and useful only for some features,
+  like room administration, nickname registration.
+  The 'server' option will be ignored if you specify a JID (Jabber identifiant)
+  It should be in the form nickname@server.tld
+
+*password*:: [empty]
+
+  A password is needed only if you specified a jid. It will be ignored otherwise
+  If you leave this empty, the password will be asked at each startup
+
+
+
+*rooms*:: poezio@muc.poezio.eu
+
+  the rooms you will join automatically on startup, with associated nickname or not
+  format : room@server.tld/nickname:room2@server.tld/nickname2
+  default_nick will be used if "/nickname" is not specified
+
+*completion*:: normal
+
+  the completion type you will use to complete nicknames
+  if "normal", complete the entire name to the first available completion
+  and then cycle through the possible completion with the next TABs
+  if "shell", if there's more than one nick for this completion, complete
+  only the part that all then nicks have in common (like in a shell)
+
+
+*after_completion*:: ,
+
+  what will be put after the name, when using autocompletion
+  a SPACE will always be added after that
+
+*highlight_on*:: [empty]
+
+  a list of words (separated by a colon (:)) that will be
+  highlighted if said by someone on a room
+
+*enable_xhtml_im*:: true
+
+  XHTML-IM is an XMPP extension letting users send messages
+  containing XHTML and CSS formating. We can use this to make
+  colored text for example.
+  It is disabled by default because this is only in an experimental
+  state: you could miss some part of a message (mainly the URL)
+  but you can still send colored messages. You just won’t be able te see
+  the colors, though
+  Set to true if you want to see colored messages
+
+*hide_status_change*:: 120
+
+  Set a number for this setting.
+  The join OR status-change notices will be
+  displayed according to this number.
+  -1: the notices will ALWAYS be displayed
+   0: the notices will NEVER be displayed
+   n: On any other number, the notices will only be displayed
+      if the user involved has talked since the last n seconds
+  if the value is incorrect, -1 is assumed
+  Default setting means :
+   - status changes won't be displayed unless
+     the user talked in the last 2 minutes
+
+*hide_exit_join*:: -1
+
+  Exact same thing than hide_status_change, except that it concerns
+  the quit message, and that it will be hidden only if the value is 0.
+  Default setting means:
+   - all quit and join notices will be displayed
+
+
+*information_buffer_popup_on*:: error roster warning help info
+
+  Some informational messages (error, a contact getting connected, etc)
+  are sometimes added to the information buffer. These settings can make
+  that buffer grow temporarly so you can read these information when they
+  appear.
+
+  A list of message types that should make the information buffer grow
+  Possible values; error, roster, warning, info, help
+
+*popup_time*:: 4
+
+  The time the message will be visible in the information buffer when it
+  pops up.
+  If the message takes more than one line, the popup will stay visible
+  two more second per additional lines
+
+*autorejoin*:: false
+
+  set to 'true' if you want to automatically rejoin the
+  room when you're kicked
+
+*alternative_nickname*:: [empty]
+
+  If you want poezio to join
+  the room with an alternative nickname when
+  your nickname is already in use in the room you
+  wanted to join, put a non-empty value.
+  Else, poezio won't join the room
+  This value will be added to your nickname to
+  create the alternative nickname.
+  For example, if you set "\_", and wanted to use
+  the nickname "john", your alternative nickname
+  will be "john_"
+
+*muc_history_length*:: 50
+
+  Limit the number of messages you want to receive when the
+  multiuserchat rooms send you recent history
+  0: You won't receive any
+  -1: You will receive the maximum
+  n: You will receive at most n messages
+  Note that if you set a huge number (like the default value), you
+  may not receive that much messages. The server has its own
+  maximum too
+
+*use_log*:: true
+
+  set to 'false' if you don’t want to save logs of all the messages
+  in files.
+
+
+*log_dir*:: [empty]
+
+  If log_dir is not set, logs will be saved in $XDG_DATA_HOME/poezio/logs,
+  i.e. in ~/.local/share/poezio/logs/. So, you should specify the directory
+  you want to use instead. This directory will be created if it doesn't exist
+
+*show_inactive_tabs*:: true
+
+  If you want to show all the tabs in the Tab bar, even those
+  with no activity, set to true. Else, set to false
+
+
+*beep_on*:: highlight private
+
+  The terminal can beep on various event. Put the event you want in a list
+  (separated by spaces).
+  The events can be
+  - highlight (when you are highlighted in a MUC)
+  - private (when a new private message is received, from your contacts or
+             someone from a MUC)
+  - message (any message from a MUC)
+
+*themes_dir*:: [empty]
+
+  If themes_dir is not set, themes will searched for in $XDG_DATA_HOME/poezio/themes,
+  i.e. in ~/.local/share/poezio/themes/. So you should specify the directory you
+  want to use instead. This directory will be created at startup if it doesn't
+  exist
+
+
+*theme*:: [empty]
+
+  The name of the theme file (without the .py extension) that will be used.
+  The file should be located in the theme_dir directory.
+  If the file is not found (or no filename is specified) the default
+  theme will be used instead
+
+*send_chat_states*:: true
+
+  if true, chat states will be sent to the people you are talking to.
+  Chat states are, for example, messages informing that you are composing
+  a message or that you closed the tab, etc
+  Set to false if you don't want people to know these information
+  Note that you won’t receive the chat states of your contacts
+  if you don't send yours.
+
+
+*send_poezio_info*:: true
+
+  if true, information about the software (name and version)
+  will be sent if requested by anyone
+  Set to false if you don't want people to know these information
+
+
+*send_os_info*:: true
+
+  if true, information about the Operation System you're using
+  will be sent when requested by anyone
+  Set to false if you don't want people to know these information
+  Note that this information will not be sent if send_poezio_info is False
+
+*send_time*:: true
+
+  if true, your current time will be sent if asked
+  Set to false if you don't want people to know that information
+
+
+*max_messages_in_memory*:: 2048
+
+  Configure the number of maximum messages (for each tab) that
+  can be kept in memory. If poezio consumes too much memory, lower these
+  values
+
+*max_lines_in_memory*:: 2048
+
+  Configure the number of maximum lines (for each tab) that
+  can be kept in memory. If poezio consumes too much memory, lower these
+  values
+
+*lazy_resize*:: true
+
+  Defines if all tabs are resized at the same time (if set to false)
+  or if they are really resized only when needed (if set to true).
+  “true” should be the most comfortable value
+
diff --git a/doc/en/keys.txt b/doc/en/keys.txt
new file mode 100644
index 00000000..e4267cdf
--- /dev/null
+++ b/doc/en/keys.txt
@@ -0,0 +1,60 @@
+Keys
+====
+
+This file describes the default keys of poezio and explains how to
+configure them.
+
+By default, most keys manipulating the input (where you type your
+messages and commands) behave like emacs does.
+
+Note that keys are case sensitive. Ctrl-X is not the same than Ctrl-x
+
+Key bindings listing
+--------------------
+Some key bindings are available only in some tabs, others are global.
+
+Global keys
+~~~~~~~~~~~
+These keys work in *any* tab.
+
+*Ctrl-n*:: Go to the next tab.
+
+*Ctrl-p*:: Go to the previous tab.
+
+*Alt-number*:: Go to tab number x.
+
+*Alt-j*:: Waits for you to type a two-digits number. Go to tab number xx.
+
+Input keys
+~~~~~~~~~~
+These keys concern only the inputs.
+
+*Ctrl-a*:: Move the cursor to the beginning of line.
+
+*Ctrl-e*:: Move the cursor to the end of line.
+
+Chat tab input keys
+~~~~~~~~~~~~~~~~~~~~~
+These keys work in any conversation tab (MultiUserChat, Private or Conversation tabs)
+
+*Key Up*:: Use the previous message from the message history.
+
+*Key Down*:: Use the next message from the message history.
+
+*Page Up*:: Scroll up in the conversation by x lines, where x is the height of the conversation window - 1.
+
+*Page Down*:: Likfe Page Up, but down.
+
+*Alt-/*:: Complete what you’re typing using the "recent" words from the current conversation, if any.
+
+Key configuration
+-----------------
+Bindings are keyboard shortcut aliases. You can use them
+to define your own keys to replace the default ones.
+where ^x means Control + x
+and M-x means Alt + x
+.Make 
+==================
+zouzou
+==================
+
-- 
cgit v1.2.3


From 027b2e2148eb79b314bb9b632c823b6d814e07f3 Mon Sep 17 00:00:00 2001
From: Florent Le Coz <louiz@louiz.org>
Date: Wed, 2 Nov 2011 20:24:23 +0100
Subject: Fix the key configuration example

---
 doc/en/keys.txt | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

(limited to 'doc')

diff --git a/doc/en/keys.txt b/doc/en/keys.txt
index e4267cdf..eaae961d 100644
--- a/doc/en/keys.txt
+++ b/doc/en/keys.txt
@@ -53,8 +53,14 @@ Bindings are keyboard shortcut aliases. You can use them
 to define your own keys to replace the default ones.
 where ^x means Control + x
 and M-x means Alt + x
-.Make 
+
+To know exactly what the code of a key is, just run
 ==================
-zouzou
+python3 src/keyboard.py
 ==================
+And enter any keys
 
+.Turn Alt-i into a tab key (completion, etc)
+==================
+M-i = ^I
+==================
-- 
cgit v1.2.3


From 0872d69eb4180d8266e12299bccd08f813807bd7 Mon Sep 17 00:00:00 2001
From: mathieui <mathieui@mathieui.net>
Date: Thu, 3 Nov 2011 00:00:43 +0100
Subject: Add the configuration "help"

---
 doc/en/configure.txt | 9 +++++++++
 1 file changed, 9 insertions(+)
 create mode 100644 doc/en/configure.txt

(limited to 'doc')

diff --git a/doc/en/configure.txt b/doc/en/configure.txt
new file mode 100644
index 00000000..cfcb4fa3
--- /dev/null
+++ b/doc/en/configure.txt
@@ -0,0 +1,9 @@
+Configure poezio
+================
+
+On its first startup, poezio will create the file ~/.config/poezio/poezio.cfg.
+
+You can edit this file, it is read at each poezio startup.
+
+This page doesn't contain more information, because an english explanation of each option is available directly in the configuration file, read it for more details.
+(last version can be read online, here) 
-- 
cgit v1.2.3