.\" Copyright 2010 Le Coz Florent
.\" This man page is distributed under the GPLv3 license.
.\" See COPYING file
.TH "Poezio" "1" "May 31, 2020" "Poezio dev team" ""
.SH "NAME"
Poezio \- a ncurses jabber client written in python
.SH "SYNOPSIS"
.B poezio [\-f \fICONFIG_FILE\fR] [\-d \fIDEBUG_FILE\fR] [\-h]
.SH "DESCRIPTION"
.B Poezio
is a console jabber (XMPP) client written in Python and using ncurses to draw its interface. It aims at being similar to the most famous IRC clients, like weechat or irssi. Some keyboard shortcuts are inspired from emacs. For more information on XMPP see http://xmpp.org and on Poezio see https://poez.io
.PP
.SH "OPTIONS"
.TP
\fB\-f\fR, \fB\-\-file \fICONFIG_FILE\fR
Run poezio using \fICONFIG_FILE\fR as the config file instead of ~/.config/poezio/poezio.cfg.
.TP
\fB\-d\fR, \fB\-\-debug \fIDEBUG_FILE\fR
Log debug from both poezio and slixmpp in \fIDEBUG_FILE\fR. Debug contains incoming and outgoing stanzas in addition to various message helping poezio's debugging.
.TP
\fB\-c\fR, \fB\-\-check\-config\fR
Display the list of modified/unmodified config options, with their changes from the default.
.TP
\fB\-h\fR, \fB\-\-help\fR
Display the poezio help message.

.SH "BASICS"

The following sections will give you a short overview on how to use poezio. Poezio has many more options, commands and key bindings, please refer to \fIpoezio.cfg(7)\fR, \fIpoezio.commands(7)\fR, \fIpoezio.keys(7)\fR or the full documentation which should have been provided alongside the source code, or check it online at https://doc.poez.io/.

A \fItab\fR, in Poezio, is the base structure of the interface. A tab may contains one or more \fIwindows\fR, the main types are:
.RS
.TP 6
.I Roster \fRtab
It contains a browsable list of your contacts on the left, as well as an info window on the right.
.TP
.I Chatroom \fRtab
This tab displays the contents of a multi-user chat.
.TP
.I Conversation \fRtab
It is used for one-to-one communication, usually when using a real Jabber account.

.SH "KEY BINDINGS"
While most of the keyboard shortcuts are common to all types of tabs, some of them are tab-specific.
.SS Text edition
These shortcuts work in any kind of tab; most of them are identical to emacs' ones.
.RS
.TP 8
.B Ctrl+A
Move the cursor to the beginning of the line.
.TP
.B Ctrl+E
Move the cursor to the end of the line.
.TP
.B Ctrl+W
Delete the word before the cursor.
.TP
.B Ctrl+K
Delete the text from the cursor to the end of the line and save it in the clipboard.
.TP
.B Ctrl+U
Delete the text from the beginning of the line to the cursor and save it in the clipboard.
.TP
.B Ctrl+Y
Insert the text in the clipboard after the cursor.
.TP
.B Ctrl+D
Delete the char after the cursor (same as the Suppr key)

.SS Navigation keybindings
.RS
.TP 8
.B F5, Ctrl+N
Go to the previous tab.
.TP
.B F6, Ctrl+P
Go to the next tab.
.TP
.B Alt+<number>
Go to the specified tab (from 0 to 9)
.TP
.B Alt+J <two-digits-number>
Go to the specified tab (from 00 to 99)
.TP
.B Alt+Z
Go to the last visited tab.
.TP
.B Alt+E
Go to the next important tab (private message, highlight, simple message)
.TP
.B F7
Decrease the information window size.
.TP
.B F8
Increase the information window size.
.TP
.B Alt+R
Go to the roster.
.TP
.B Ctrl+L
Redraw the screen.
.TP
.B Up, Down
Browse the history of the last messages or commands you've entered.

.SS Roster keybindings
.RS
.TP 8
.B o
Hide or show the offline contacts.
.TP
.B s
Search through your contact list.
.TP
.B Ctrl+G
Cancel a search.

.SS MUC-specific keybindings
.RS
.TP 8
.B Alt+V
Move the line separator at the bottom of the text window.
.TP
.B Tab
Complete the nickname that you're typing. If nothing has been entered, insert the nickname of the last user who spoke.
.TP
.B Alt+/
Complete the word that you're typing, based on the list of the recently said words in the conversation.

.SH "COMMANDS"
Most commands support tab completion, both for their names and for their arguments. You can use the \fI/help\fR command to list all available commands, and \fI/help <command>\fR for a complete description of <command>.

The following is a basic description of the most widely used commands; you should refer to \fI/help\fR inside poezio for more documentation. \fI<foo>\fR denotes a obligatory argument, while \fI[bar]\fR is an optional argument (without argument, the \fI/remove\fR command, for example, acts on the currently selected contact)
.SS Roster commands
.RS
.TP 5
.B /add <jid>
Add a JID to your roster.
.TP
.B /remove [jid]
Remove a contact from your roster.
.TP
.B /accept [jid]
Accept a JID that wants to subscribe to your presence.
.TP
.B /deny [jid]
The opposite of \fI/accept\fR.

.SS MUC-specific commands
.RS
.TP 5
.B /kick <user>
Kick the specified user from the room.
.TP
.B /show <status> [message]
Change your status, and status message, in the current room. You can use “avail”, “busy”, “away” and “xa” as your status, followed by an optional message.
.TP
.B /ignore <user>
Ignore the specified user.
.TP
.B /topic [topic text]
View or change the topic of the room.
.TP
.B /query <user>
Talk privately with the specified participant.
.TP
.B /part
Leave the current room.

.SH "BUGS"
Sure.

.SH "KNOWN ISSUES"
If you're using a terminal multiplexer such as \fIscreen\fR or \fItmux\fR, it may be setting $TERM to "screen", which breaks 256-color support. Consider setting your $TERM to something like "screen-256color".

.SH "FEEDBACK"
You are encouraged to report bugs or feature requests on https://lab.louiz.org/poezio/poezio.
You can also find us on the Jabber chatroom xmpp:poezio@muc.poez.io?join

.SH "AUTHORS"
Written by Florent Le Coz <louiz@louiz.org>

Later completed by Baptiste Jonglez <baptiste--poezio@jonglez.org>