poezio/doc/source/commands.rst
mathieui 00396c158a
Fix #2847 (SASL External support)
- Add two new options, keyfile and certfile, which must be both set for
  the auth to work.
- if both are set, then poezio doesn’t force-prompt a password if there
  is none specified
- add /cert_add, /cert_fetch, /cert_disable, /cert_revoke and /certs
  commands.
- add a page of documentation on the process
2014-12-11 22:28:44 +01:00

626 lines
18 KiB
ReStructuredText
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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 commands described in this page are shown like this:
``/command <mandatory argument> [optional argument]``
You can get the same help as below from inside poezio with the :term:`/help` command.
.. note:: Use command parameters like this:
- Do not use quotes if they are unnecessary (words without special chars or spaces)
- If the command takes several agrguments, you need to put quotes around arguments containing special chars such as backslashes or quotes
- If the command always takes only one argument, then do not use quotes even for words containing special chars
.. _global-commands:
Global commands
~~~~~~~~~~~~~~~
These commands work in *any* tab.
.. glossary::
:sorted:
/help
**Usage:** ``/help [command]``
If called without an argument, this command will list the
available commands. If it has a valid command as an argument, this command
will show the usage and the help for the given command.
/join
**Usage:** ``/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``
/destroy_room
**Usage:** ``/destroy_room [room JID]``
Try to destroy the room given as a parameter, or the current room
is not parameter is given and the current tab is a chatroom.
You need to be the owner of a room or a server admin to destroy it.
/exit
/quit
Just disconnect from the server and exit poezio.
/load
**Usage:** ``/load <plugin name> [<other plugin> …]``
Load or reload one or several plugins.
/unload
**Usage:** ``/unload <plugin name> [<other plugin> …]``
Unload one or several plugins.
/plugins
List the loaded plugins.
/next
Go to the next room.
/prev
Go to the previous room.
/win
/w
**Usage:** ``/win <number>``
Go to the specified room.
/status
**Usage:** ``/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
**Usage:** ``/bookmark [roomname][/nick] [autojoin] [password]``
Bookmark the specified
room. This command uses almost 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). You can specify an optional *autojoin* and *password* if you
call it with the full line (/bookmark alone will put the room in autojoin
without password). The bookmarks stored with this command are stored on your
xmpp server.
/bookmark_local
**Usage:** ``/bookmark_local [roomname][/nick]``
Bookmark the specified room (you will
then auto-join it on each poezio start). This commands uses almost 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). The bookmarks stored
with this command will be stored locally. They have priority over the ones
stored online.
/remove_bookmark
**Usage:** ``/remove_bookmark [room_jid]``
Remove the bookmark on *room_jid* or the one on the current tab, if any.
/bookmarks
Show the current bookmarks.
/set
**Usage:** ``/set [plugin|][section] <option> <value>``
Set 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". Doing so will write in the main config file, and in the main
section ([Poezio]). But you can also write to another section, with ``/set
bindings M-i ^i``, to a plugin configuration with ``/set mpd_client| host
main`` (notice the **|**, it is mandatory to write in a plugin), or even to
another section in a plugin configuration ``/set plugin|other_section option
value``. **toggle** can be used as a special value for a boolean option. It
just set the option to true if its currently false, and to false if its
currently true.
/set_default
**Usage:** ``/set_default [section] <option>``
Set the value of an option back to the default. For example,
``/set_default resource`` will reset the ``resource`` option.
/toggle
**Usage:** ``/toggle <option>``
Toggle an option, shortcut for :term:`/set` <option> toggle.
/move_tab
**Usage:** ``/move_tab <source> <destination>``
Move tab <source> to <destination>. If the :term:`create_gaps` option
is true, then it will leave a gap at the <source> position, leading
to usual behaviour. If create_gaps is not enabled, then the tabs will
number from 0 to your actual tab number, without gaps (which means
their number will change if you close a tab on the left of the list).
A value of ``.`` for a parameter means the current tab.
/theme
**Usage:** ``/theme [theme_name]``
Reload the theme defined in the config file. If
*theme_name* is given, this command will act like :samp:`/set theme {theme_name}` then
/theme.
/presence
**Usage:** ``/presence <jid> [type] [status]``
Send a directed presence to *jid* using
*type* and *status* if provided.
/rawxml
**Usage:** ``/rawxml <stanza>``
Send a custom XML stanza.
/xml_tab
Open an XML tab.
/list
**Usage:** ``/list [server.tld]``
Get the list of public chatrooms in the specified server (open a :ref:`listtab`)
/message
**Usage:** ``/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/her, if specified.
/version
**Usage:** ``/version <jid>``
Get the software version of the given JID (usually its XMPP
client and Operating System).
/invite
**Usage:** ``/invite <jid> <room> [reason]``
Invite *jid* to *room* with *reason* (if
provided).
/invitations
Show the pending invitations.
/activity
**Usage:** ``/activity [<general> [specific] [comment]]``
Send your current activity to your contacts (use the completion to cycle
through all the general and specific possible activities).
Nothing means "stop broadcasting an activity".
/mood
**Usage:** ``/mood [<mood> [comment]]``
Send your current mood to your contacts (use the completion to cycle
through all the possible moods).
Nothing means "stop broadcasting a mood".
/gaming
**Usage:** ``/gaming [<game name> [server address]]``
Send your current gaming activity to your contacts.
Nothing means "stop broadcasting a gaming activity".
/last_activity
**Usage:** ``/activity <jid>``
Show the last activity of a contact or a server (its
uptime, in that case).
/server_cycle
**Usage:** ``/server_cycle [server.tld] [message]``
Disconnect and reconnect in all the
rooms of server.tld.
/bind
**Usage:** ``/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 as the Up key. See the
*key bindings documentation page* for more details.
/runkey
**Usage:** ``/runkey <key>``
Execute the action defined for *key*. For example,
``/runkey KEY_PPAGE`` will scroll up, or ``/runkey ^N`` will go to the next tab.
/self
Reminds you of who you are and what your status is.
/close
Close the tab.
.. note:: The /close command will work everywhere, except in the Roster tab,
which cant be closed.
.. _chattab-commands:
Chat tab commands
~~~~~~~~~~~~~~~~~
These commands will work in any conversation tab (MultiUserChat, Private, or
Conversation tabs).
.. glossary::
:sorted:
/correct
**Usage:** ``/correct <corrected message>``
Replace the content of the last sent message with *corrected message*.
/say
**Usage:** ``/say <message>``
Just send the message (only useful it you want your message
to begin with a **/**). Note that you can also send message starting with a **/**
by starting it with **//**.
/xhtml
**Usage:** ``/xhtml <custom xhtml>``
Send a custom xhtml message to the current tab.
/clear
Clear the current buffer.
.. _muctab-commands:
MultiUserChat tab commands
~~~~~~~~~~~~~~~~~~~~~~~~~~
.. glossary::
:sorted:
/clear [MUCTab version]
**Usage:** ``/clear``
Clear the messages buffer.
/ignore
**Usage:** ``/ignore <nickname>``
Ignore a specified nickname.
/invite [MUCTab version]
**Usage:** ``/invite <jid> [reason]``
Invite *jid* to this room with *reason* (if
provided).
/unignore
**Usage:** ``/unignore <nickname>``
Remove the specified nickname from the ignore list.
/kick
**Usage:** ``/kick <nick> [reason]``
Kick the user with the specified nickname. You can
also give an optional reason.
/topic
**Usage:** ``/topic <subject>``
Change the subject of the room. You might want to knwow
that entering ``/topic [tab]`` will autocomplete the topic.
/query
**Usage:** ``/query <nick> [message]``
Open a :ref:`privatetab` with <nick>. This nick
has to be present in the room youre currently in. If you specified a message
after the nickname, it will be sent to this user.
/part
**Usage:** ``/part [message]``
Disconnect you from a room. You can specify an optional
message.
/nick
**Usage:** ``/nick <nickname>``
Change your nickname in the current room.
**Except for gmail users** because gmail.com sucks and will do weird things
if you change your nickname in a MUC.
/recolor
**Usage:** ``/recolor [random]``
Re-assign a color to all the participants in the current
room, based on the last time they talked. Use this if the participants
currently talking have too many identical colors. If a random argument is
given, the participants will be shuffled before they are assigned a color.
/cycle
**Usage:** ``/cycle [message]``
Leave the current room an rejoint it immediatly. You can
specify an optional quit message.
/info
**Usage:** ``/info <nickname>``
Display some information about the user in the room:
his/her role, affiliation, status, and status message.
/version
**Usage:** ``/version <nickname or jid>``
Get the software version of the given nick in
room or the given jid (usually its XMPP client and Operating System).
/configure
Configure the current room through a form (Open a :ref:`dataformtab`).
/names
Get the list of the users in the room, their number, and the list
of the people assuming different roles.
.. _privatetab-commands:
Private tab commands
~~~~~~~~~~~~~~~~~~~~
.. glossary::
:sorted:
/info
Display some info about this user in the MultiUserChat.
/unquery
Close the tab.
/version
Get the software version of the current interlocutor (usually its
XMPP client and Operating System).
.. _conversationtab-commands:
Normal Conversation tab commands
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. glossary::
:sorted:
/info
Display the status of this contact.
/unquery
Close the tab.
/version
Get the software version of the current interlocutor (usually its
XMPP client and Operating System).
.. _rostertab-commands:
Roster tab commands
~~~~~~~~~~~~~~~~~~~
.. glossary::
:sorted:
/accept
**Usage:** ``/accept [jid]``
Authorize the provided JID (or the selected contact in the
roster) to see your presence.
/deny
**Usage:** ``/deny [jid]``
Prevent the provided JID (or the selected contact in the
roster) from seeing your presence.
/add
**Usage:** ``/add <jid>``
Add the specified JID to your roster and authorize him to see
your presence. If he accepts you, the subscription will be mutual (and if he
doesnt, you can still /remove him).
/name
**Usage:** ``/name <jid> <name>``
Set the given JIDs name in your roster.
/password
**Usage:** ``/password <password>``
Change your password.
/groupadd
**Usage:** ``/groupadd <jid> <group>``
Add the given JID to the given group (if the group
does not exist, it will be created).
/groupmove
**Usage:** ``/groupmove <jid> <old_group> <new_group>``
Move the given JID from one group
to another (the JID has to be in the first group, and the new group may not
exist).
/groupremove
**Usage:** ``/groupremove <jid> <group>``
Remove the given JID from the given group (if
the group is empty after that, it will get deleted).
/remove
**Usage:** ``/remove [jid]``
Remove the specified JID from your roster. This will
unsubscribe you from its presence, cancel its subscription to yours, and
remove the item from your roster.
/reconnect
Disconnect from the remote server (if connected) and then
connect to it again.
.. note:: The following commands only exist if your server announces it
supports them.
.. glossary::
:sorted:
/block
**Usage:** ``/block [jid]``
Block the following JID using simple blocking. You will not
receive any of his messages and wont be able to send some to him either.
/unblock
**Usage:** ``/unblock [jid]``
Unblock a previously blocked JID using simple blocking. You
will be able to send and receive messages from him again.
/list_blocks
List the blocked JIDs.
/certs
List the remotely stored X.509 certificated allowed to connect
to your accounts.
/cert_add
**Usage:** ``/cert_add <name> <certificate file> [management]``
Add a client X.509 certificate to the list of the certificates
which grand access to your account. It must have an unique name
the file must be in PEM format. ``[management]`` is true by
default and specifies if the clients connecting with this
particular certificate will be able to manage the list of
authorized certificates.
/cert_disable
**Usage:** ``/cert_disable <name>``
Remove a certificate from the authorized list. Clients currently
connected with the certificate identified by ``<name>`` will
however **not** be disconnected.
/cert_revoke
**Usage:** ``/cert_revoke <name>``
Remove a certificate from the authorized list. Clients currently
connected with the certificate identified by ``<name>`` **will**
be disconnected.
/cert_fetch
**Usage:** ``/cert_fetch <name> <path>``
Download the public key of the authorized certificate identified by
``name`` from the XMPP server, and store it in ``<path>``.
.. note:: The following commands do not comply with any XEP or whatever, but they
can still prove useful when you are migrating to an other JID.
.. glossary::
:sorted:
/export
**Usage:** ``/export [/path/to/file]``
Export your contacts into :file:`/path/to/file` if
specified, or :file:`$HOME/poezio_contacts` if not.
/import
**Usage:** ``/import [/path/to/file]``
Import your contacts from :file:`/path/to/file` if
specified, or :file:`$HOME/poezio_contacts` if not.
.. _xmltab-commands:
XML tab commands
~~~~~~~~~~~~~~~~
.. glossary::
:sorted:
/clear [XML tab version]
Clear the current buffer.
/dump
**Usage:** ``/dump <filename>``
Write the content of the XML buffer into a file.
/reset
Reset the stanza filters.
/filter_id
**Usage:** ``/filter_id <id>``
Filter by stanza id attribute.
/filter_xpath
**Usage:** ``/filter_xpath <xpath>``
Filter with an XPath selector.
/filter_xmlmask
**Usage:** ``/filter_xmlmask <xml mask>``
Filter using an XML mask
/filter_jid
**Usage:** ``/filter_jid <jid>``
Filter by JID, both ``to`` and ``from``.
/filter_to
**Usage:** ``/filter_to <jid>``
Filter by JID for the ``to`` attribute.
/filter_from
**Usage:** ``/filter_from <jid>``
Filter by JID for ``from`` attribute.