diff options
author | Florent Le Coz <louiz@louiz.org> | 2011-11-08 16:19:09 +0100 |
---|---|---|
committer | Florent Le Coz <louiz@louiz.org> | 2011-11-08 16:19:09 +0100 |
commit | 8f02b6eb8e022ed1d34e0a0b0c7376eaf58acc32 (patch) | |
tree | 8c71022d3ebee1bcf8ec6994df64214aafbde62f | |
parent | 2c99e6be9f587370abdfe9aa32979bb7d0f28840 (diff) | |
parent | d2c02174c865d62c40f3eb161fc96dd22a1ad9b9 (diff) | |
download | poezio-8f02b6eb8e022ed1d34e0a0b0c7376eaf58acc32.tar.gz poezio-8f02b6eb8e022ed1d34e0a0b0c7376eaf58acc32.tar.bz2 poezio-8f02b6eb8e022ed1d34e0a0b0c7376eaf58acc32.tar.xz poezio-8f02b6eb8e022ed1d34e0a0b0c7376eaf58acc32.zip |
Merge branch 'master' of http://git.louiz.org/poezio
-rw-r--r-- | CHANGELOG | 12 | ||||
-rw-r--r-- | Makefile | 3 | ||||
-rw-r--r-- | README | 27 | ||||
-rw-r--r-- | doc/en/keys.txt | 150 | ||||
-rw-r--r-- | doc/en/usage.txt | 59 | ||||
-rw-r--r-- | src/core.py | 5 |
6 files changed, 234 insertions, 22 deletions
@@ -4,11 +4,23 @@ http://dev.louiz.org/project/poezio/roadmap * Poezio 0.7.2 - dev +- Huge speed improvements in both memory usage, text + refresh speed and interface resize. - Chatstate notifications (in private AND in MUCs) - /message command to talk to any JID - /version command to get the software version of an entity - /bind command, and keys can be bound in the config file - Multiline edition +- xhtml-im messages can be sent and received +- 256 colors support +- themes are easier to create and load. They can use + up to 256 colors +- completion now works not only at the end of the input +- /affiliation and /role commands to administrate MUCs +- /export command to export your roster in a file +- data forms support (only for room configuration at the moment) +- documentation is now written in asciidoc format +- a *lot* of bugfixes * Poezio 0.7.1 - 2 Feb 2010 @@ -12,6 +12,7 @@ clean: find ./ -name \*.pyc -delete find ./ -name \*~ -delete find ./ -name "#*#" -delete + find ./ -name "*.html" -delete install: mkdir -p $(DESTDIR)$(prefix) @@ -39,4 +40,4 @@ doc: pot: xgettext src/*.py --from-code=utf-8 --keyword=_ -o locale/poezio.pot -.PHONY : doc
\ No newline at end of file +.PHONY : doc @@ -28,9 +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, you’ll need this fork of SleekXMPP http://github.com/louiz/SleekXMPP. -Additionally, you’ll need asciidoc to build the html documentation pages. -You can read the documentation using the .txt files, as well, if you don’t -have asciidoc, or read it on the web. +Additionally, you’ll need asciidoc and source-highlight to build the html +documentation pages. To read the documentation without these dependance, +just read the .txt files, or read it on the webpage. 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 @@ -45,13 +45,16 @@ you can then launch poezio with $ ./launch.sh or you can install it with (as root or with sudo) + $ make install + (`make uninstall' works, don't worry ;)) you can now simply launch `poezio' -You can edit the config file (~/.config/poezio/poezio.cfg by default) +You can edit the configuration file (~/.config/poezio/poezio.cfg by default) or data/default_config.cfg (if you want to edit the config before the -first launch). The default config file is fully commented. +first launch). The default config file is fully commented, but you can +also read the “configure” documentation page. Please, see the online documentation for more information on installing, configuring or using poezio: @@ -140,11 +143,13 @@ we merge it to “master” as well, of course). Thanks ======================= = People = - Link Mauve - Code, testing - Gaëtan Ribémont (http://www.bonbref.com) - Logo design - Ovart - Testing - Koshie - Donation - Gapan - Makefile - FlashCode (weechat dev) - Useful advices on how to use ncurses efficiently + - Link Mauve - Code, testing + - Gaëtan Ribémont (http://www.bonbref.com) - Logo design + - Ovart - Testing + - Koshie - Donation + - Gapan - Makefile + - FlashCode (weechat dev) - Useful advices on how to use ncurses efficiently + - And all the people using and testing poezio, and especially the one present + on the jabber chatroom doing bug reports and/or feature requests. = Project = Gajim - send_vcard method and common.py diff --git a/doc/en/keys.txt b/doc/en/keys.txt index eaae961d..f4b659f7 100644 --- a/doc/en/keys.txt +++ b/doc/en/keys.txt @@ -7,12 +7,14 @@ 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 +NOTE: 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. @@ -21,44 +23,174 @@ These keys work in *any* tab. *Ctrl-p*:: Go to the previous tab. -*Alt-number*:: Go to tab number x. +*Alt-number*:: Go to the tab with that number. *Alt-j*:: Waits for you to type a two-digits number. Go to tab number xx. +*Alt-e*:: Go to the tab with a higher priority (private message > + highlight > message > non-empty input). + +*Alt-z*:: Go to the previously selected tab. + +*Alt-r*:: Go to the roster tab. + +*F7*:: Shrink the information buffer. + +*F8*:: Grow the information buffer. + +*Ctrl-l*:: Refresh the screen. + + Input keys ~~~~~~~~~~ These keys concern only the inputs. +NOTE: The clipboard is common to all inputs. This lets you cut a text +from one input to paste it into an other one. + *Ctrl-a*:: Move the cursor to the beginning of line. *Ctrl-e*:: Move the cursor to the end of line. +*Ctrl-u*:: Delete the text from the start of the input until the cursor + and save it to the clipboard. + +*Ctrl-k*:: Delete the text from the cursor until the end of the input + and save it to the clipboard. + +*Ctrl-y*:: Insert the content of the clipboard at the cursor position. + + Chat tab input keys ~~~~~~~~~~~~~~~~~~~~~ -These keys work in any conversation tab (MultiUserChat, Private or Conversation tabs) +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 Up*:: Scroll up in the conversation by x lines, where x is the +height of the conversation window - 1. + +*Page Down*:: Like Page Up, but down. + +*Alt-/*:: Complete what you’re typing using the "recent" words from the + current conversation, if any. + +*Alt-v*:: Move the separator at the bottom of the tab. + + +MultiUserChat tab input keys +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +These keys work only in the MultiUserChat tab. + +*Alt-u*:: Scroll the user list down. + +*Alt-y*:: Scroll the user list up. + +*tabulation*:: Complete a nick. + + +MultiUserChat List tab input keys +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +These keys work only in the MultiUserChat List tab (obtained with /list <server>). + +*Up*:: Go up one row. + +*Down*:: Go down one row. + +*j*:: Join the MultiUserChat currently selected. + +*J*:: Join the MultiUserChat currently selected, without giving focus to iuts tab. + +*Ctrl-M*:: Join the MultiUserChat currently selected (same as "j"). + +*PageUp*:: Scroll a page of chats up. + +*PageDown*:: Scroll a page of messages down. + + +Roster tab input keys +~~~~~~~~~~~~~~~~~~~~~ + +These keys work only in the Roster tab (the tab number 0). + +*/*:: Open a prompt for commands. + +*s*:: Start a search on the contacts. + +*S*:: Start a (slow) search with approximation on the contacts. + +*Alt-u*:: Move the cursor to the next group. + +*Alt-y*:: Move the cursor to the previous group. + +*Ctrl-c*:: Cancel the input (search or command) + +NOTE: The following will not work if you can still write things in the +input (meaning you previously typed _s_ or _/_): + +*Space*:: Fold/Unfold the current item. + +*Up*:: Move the cursor down one contact. + +*Down*:: Move the cursor up one contact. + +*o*:: Show the offline contacts. + +*PageUp*:: Scroll a page of contacts up. + +*PageDown*:: Scroll a page of contacts down. + + +Data Forms tab keys +~~~~~~~~~~~~~~~~~~~ +*Ctrl+y*:: Validate the form, send it and close the tab. + +*Ctrl+g*:: Cancel that form (do not send your changes) and close the + tab. + +*Up*:: Select the next field. + +*Down*:: Select the previous field. + +*Right/Left*:: Switch between possible values, in a jid-multi, + list-multi, list-single or text-multi field. + +*Space*:: Select that option + + +MultiUserChat List tab input keys +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +These keys work only in the MultiUserChat List tab (obtained with /list +<server>). + +*Up*:: Go up one row. + +*Down*:: Go down one row. + +*j*:: Join the MultiUserChat currently selected. + +*J*:: Join the MultiUserChat currently selected, without giving focus to + iuts tab. -*Page Down*:: Likfe Page Up, but down. +*Ctrl-M*:: Join the MultiUserChat currently selected (same as _j_). -*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 +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 +And enter any key. .Turn Alt-i into a tab key (completion, etc) ================== diff --git a/doc/en/usage.txt b/doc/en/usage.txt new file mode 100644 index 00000000..be6809ba --- /dev/null +++ b/doc/en/usage.txt @@ -0,0 +1,59 @@ +Usage +===== + +Commands +-------- + +Command listing +~~~~~~~~~~~~~~~ + +The commands are shown like this: + +/command <mandatory argument> [optional argument] + +Global commands +^^^^^^^^^^^^^^^ + +These commands work in *any* tab. + +*/join [room_name][@server][/nick] [password]*:: Join the specified room. You can specify a nickname after a slash (/). If no nickname is specified, you will use the default_nick in the configuration file. You can omit the room name: you will then join the room you're looking at (useful if you were kicked). You can also provide a room_name without specifying a server, the server of the room you're currently in will be used. You can also provide a password to join the room. + +- Examples: +* /join room@server.tld +* /join room@server.tld/John +* /join room2 +* /join /me_again +* /join +* /join room@server.tld/my_nick password +* /join / password + +*/exit*:: Just disconnect from the server and exit poezio. + +*/quit*:: Like /exit. + +*/next*:: Go to the next room. + +*/prev*:: Go to the previous room. + +*/win <number>*:: Go to the specified room. + +*/w <number>*:: Like /win. + +*/status <availability> [status message]*:: Set your availability and (optionaly) your status message. The <availability> argument is one of "available, chat, away, afk, dnd, busy, xa" and the optional [status] argument will be your status message.' + +*/bookmark [roomname][/nick]*:: Bookmark the specified room (you will then auto-join it on each poezio start). This commands uses the same syntax as /join. Type /help join for syntax examples. Note that when typing /bookmark on its own, the room will be bookmarked with the nickname you're currently using in this room (instead of default_nick). + +*/set <option> [value]*:: Sets the value to the option in your configuration file. You can, for example, change your default nickname by doing "/set default_nick toto" or your resource with "/set resource blabla". You can also set an empty value (nothing) by providing no [value] after <option>. + +*/theme*:: Reload the theme defined in the config file. + +*/list [server.tld]*:: Get the list of public chatrooms in the specified server. + +*/message <jid> [optional message]*:: Open a conversation with the specified JID (event if it is not in our roster), and send a message to him, if specified. + +*/version <jid>*:: Get the software version of the given JID (usually its XMPP client and Operating System). + +*/server_cycle [server.tld] [message]*:: Disconnect and reconnect in all the rooms of server.tld. + +*/bind <key> <eq>*:: Bind a key to another key or to a "command". For example, "/bind ^H KEY_UP" makes Control + h behave the same way than the Up key. + diff --git a/src/core.py b/src/core.py index a9c97022..b0b4a913 100644 --- a/src/core.py +++ b/src/core.py @@ -114,7 +114,7 @@ class Core(object): 'available': (self.command_avail, _("Usage: /available [message]\nAvailable: Sets your availability to available and (optionaly) your status message. This is equivalent to '/status available [message]'"), None), 'bookmark': (self.command_bookmark, _("Usage: /bookmark [roomname][/nick]\nBookmark: Bookmark the specified room (you will then auto-join it on each poezio start). This commands uses the same syntaxe as /join. Type /help join for syntaxe examples. Note that when typing \"/bookmark\" on its own, the room will be bookmarked with the nickname you\'re currently using in this room (instead of default_nick)"), None), 'set': (self.command_set, _("Usage: /set <option> [value]\nSet: Sets the value to the option in your configuration file. You can, for example, change your default nickname by doing `/set default_nick toto` or your resource with `/set resource blabla`. You can also set an empty value (nothing) by providing no [value] after <option>."), None), - 'theme': (self.command_theme, _('Usage: /theme\nTheme: Reload the theme defined in the config file.'), None), + 'theme': (self.command_theme, _('Usage: /theme [theme_name]\nTheme: Reload the theme defined in the config file. If theme_name is provided, set that theme before reloading it.'), None), 'list': (self.command_list, _('Usage: /list\nList: get the list of public chatrooms on the specified server'), self.completion_list), 'message': (self.command_message, _('Usage: /message <jid> [optional message]\nMessage: Open a conversation with the specified JID (even if it is not in our roster), and send a message to it, if specified'), None), 'version': (self.command_version, _('Usage: /version <jid>\nVersion: get the software version of the given JID (usually its XMPP client and Operating System)'), None), @@ -1175,6 +1175,9 @@ class Core(object): self.xmpp.plugin['xep_0030'].get_items(jid=server, block=False, callback=list_tab.on_muc_list_item_received) def command_theme(self, arg): + args = arg.split() + if len(args) == 1: + self.command_set('theme %s' % (args[0],)) warning = theming.reload_theme() if warning: self.information(warning, 'Warning') |