This commit is contained in:
mathieui 2011-11-03 08:58:14 +01:00
commit 44ee989658
7 changed files with 519 additions and 4 deletions

View file

@ -34,5 +34,9 @@ uninstall:
rm -rf $(DESTDIR)$(DATADIR)/poezio
rm -rf $(DESTDIR)$(MANDIR)/man1/poezio.1
doc:
find doc -name \*.txt -exec asciidoc {} \;
pot:
xgettext src/*.py --from-code=utf-8 --keyword=_ -o locale/poezio.pot
.PHONY : doc

3
README
View file

@ -28,6 +28,9 @@ You need python 3.0 (and the associated devel package, to build C modules)
or higher, and the SleekXMPP python library.
In the developpement version, youll need this fork of SleekXMPP
http://github.com/louiz/SleekXMPP.
Additionally, youll need asciidoc to build the html documentation pages.
You can read the documentation using the .txt files, as well, if you dont
have asciidoc, or read it on the web.
The simplest way to have up-to-date dependencies and to be able to test
this developpement version is to use the update.sh script that downloads

View file

@ -112,9 +112,9 @@ alternative_nickname =
# 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 (default)
# -1: You will receive the maximum
# n: You will receive at most n messages
muc_history_length = -1
muc_history_length = 50
# set to 'true' if you want to save logs of all the messages
# in files.
@ -149,7 +149,7 @@ beep_on = highlight private
# Theme
# If themes_dir is not set, logs will searched for in $XDG_DATA_HOME/poezio/themes,
# i.e. in ~/.local/share/poezio/themes/. Si you should specify the directory you
# 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
themes_dir =
@ -158,7 +158,7 @@ themes_dir =
# in the theme_dir directory.
# If the file is not found (or no filename is specified) the default
# theme will be used instead
theme = poezio
theme =
# The nick of people who join, part, change their status, etc. in a MUC will
# be displayed using their nick color if true.

265
doc/en/configure.txt Normal file
View file

@ -0,0 +1,265 @@
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 *doesnt* mean that the default value will be used. Thats
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 doesnt do anything at all if youre using your own JID.
*port*:: 5222
The port youll 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 wont 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 dont 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 wont 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

94
doc/en/install.txt Normal file
View file

@ -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 didnt 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
============================

66
doc/en/keys.txt Normal file
View file

@ -0,0 +1,66 @@
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 youre 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
To know exactly what the code of a key is, just run
==================
python3 src/keyboard.py
==================
And enter any keys
.Turn Alt-i into a tab key (completion, etc)
==================
M-i = ^I
==================

83
doc/poezio.txt Normal file
View file

@ -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.