diff options
-rw-r--r-- | data/poezio.1 | 158 | ||||
-rw-r--r-- | src/tabs.py | 6 |
2 files changed, 162 insertions, 2 deletions
diff --git a/data/poezio.1 b/data/poezio.1 index 769bab60..235ee950 100644 --- a/data/poezio.1 +++ b/data/poezio.1 @@ -1,9 +1,9 @@ .\" Copyright 2010 Le Coz Florent .\" This man page is distributed under the GPLv3 license. .\" See COPYING file -.TH "Poezio" "1" "August 1, 2010" "Poezio dev team" "" +.TH "Poezio" "1" "September 26, 2011" "Poezio dev team" "" .SH "NAME" -Poezio \- a ncurses jabber client +Poezio \- a ncurses jabber client written in python3 .SH "SYNOPSIS" .B poezio [\-f \fICONFIG_FILE\fR] [\-d \fIDEBUG_FILE\fR] [\-h] .SH "DESCRIPTION" @@ -20,10 +20,164 @@ Log debug from both poezio and SleekXMPP in \fIDEBUG_FILE\fR. Debug contains inc .TP \fB\-h\fR Display an help message + +.SH "TABS" +A \fItab\fR, in Poezio, is the base structure of the interface. A tab may contains one or more \fIwindows\fR, and can be of different types: +.RS +.TP 6 +.I Roster \fRtab +It contains a list of your contacts on the left, as well as an info window on the right. +.TP +.I MUC \fRtab +MUC stands for "Multi-User Chat". +.TP +.I Conversation \fRtab +It is used for one-to-one communication, usually when using a real Jabber account. +.TP +.I Private \fRtab +It is used to privately communicate with someone in a MUC. + +.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 begining 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 /recolor +Change the color of the nicknames in the conversation. Useful when a few people are talking and their random color happen to be the same: using this command will let you differentiate them more easily. +.TP +.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 http://dev.louiz.org/project/poezio. You can also find us on the Jabber chatroom poezio@kikoo.louiz.org + .SH "AUTHORS" Written by Florent Le Coz <louiz@louiz.org> + +Later completed by Baptiste Jonglez <baptiste--poezio@jonglez.org> diff --git a/src/tabs.py b/src/tabs.py index 1b0406f2..63fd2c96 100644 --- a/src/tabs.py +++ b/src/tabs.py @@ -681,6 +681,7 @@ class MucTab(ChatTab): """ if not self.visible: return + self.need_resize = False text_width = (self.width//10)*9 self.topic_win.resize(1, self.width, 0, 0) self.v_separator.resize(self.height-3, 1, 1, 9*(self.width//10)) @@ -1065,6 +1066,7 @@ class PrivateTab(ChatTab): def resize(self): if self.core.information_win_size >= self.height-3 or not self.visible: return + self.need_resize = False self.text_win.resize(self.height-3-self.core.information_win_size, self.width, 0, 0) self.text_win.rebuild_everything(self._room) self.info_header.resize(1, self.width, self.height-3-self.core.information_win_size, 0) @@ -1217,6 +1219,7 @@ class RosterInfoTab(Tab): def resize(self): if not self.visible: return + self.need_resize = False roster_width = self.width//2 info_width = self.width-roster_width-1 self.v_separator.resize(self.height-2, 1, 0, roster_width) @@ -1574,6 +1577,7 @@ class ConversationTab(ChatTab): def resize(self): if self.core.information_win_size >= self.height-3 or not self.visible: return + self.need_resize = False self.text_win.resize(self.height-4-self.core.information_win_size, self.width, 1, 0) self.text_win.rebuild_everything(self._room) self.upper_bar.resize(1, self.width, 0, 0) @@ -1691,6 +1695,7 @@ class MucListTab(Tab): def resize(self): if not self.visible: return + self.need_resize = False self.upper_message.resize(1, self.width, 0, 0) column_size = {'node-part': (self.width-5)//4, 'name': (self.width-5)//4*3, @@ -1825,6 +1830,7 @@ class SimpleTextTab(Tab): def resize(self): if not self.visible: return + self.need_resize = False self.text_win.resize(self.height-2, self.width, 0, 0) self.input.resize(1, self.width, self.height-1, 0) |