Linux Blog

MCABBER

Section: (1)
Updated: 11/03/2007
Index Return to Main Contents
 

NAME

mcabber - a simple Jabber console client  

SYNOPSIS

mcabber [ -h | -V | -f configfile ]

 

DESCRIPTION

mcabber(1) is a small Jabber console client. For now it needs a configuration file to start, so please copy the sample mcabberrc file and adapt your connection settings.

You also need to have an existing Jabber account to use this software, as it cannot (un)register accounts yet.

Here are some of the features of mcabber:

* SSL support.

* MUC support (Multi-User Chat).

* PGP support

* Chat States support (typing notifications)

* History logging: If enabled (see the CONFIGURATION FILE section), mcabber can save discussions to history log files.

* Commands completion: If possible, mcabber will try to complete your command line if you hit the Tab key.

* Input line history: Any message or command entered is in the input line history and can be reused easily.

* External actions: Some events (like receiving a message) can trigger an external action such as a shell script if you enable it in your configuration file. A sample events script ("eventcmd") is provided with mcabber source code, in the contrib directory.
 

OPTIONS

--help, -h

Quick help usage message

-f configfile

Use configuration file configfile
 

WINDOWS/PANES

The mcabber(1) screen is divided into 4 regions. The roster, alias buddylist, is on the left. The chat window, or chat buffer, is on the right. The input line lies at the bottom of the screen, under a small log window.

Two status lines surround the log window. The bottom status line is the "main status line" and reflects mcabber general status. The other line is the "chat status line" and shows the status of the currently selected buddy.

To display buddies chat buffers, you will have to enter chat mode. You can enter chat mode by pressing enter, and leave chat mode with the ESC key. Simply sending a message will also enable chat mode.

There are several advantages to the two-mode implementation: first, it allows accurate "unread" message functionality, as described in the next section; without this, merely scrolling to a specific buddy will "read" the new messages of all buddies in-between. Second, it allows quickly hiding the conversation with a single keystroke. Third, it allows jumping between the few buddies with whom you are conversing with the /roster alternate command described in another section, without having to manually scroll back and forth.

 

KEYS

Text typing occurs in the input line; basic operations are supported (left arrow, right arrow, home/end keys, insert, delete, backspace...).

PageUp and PageDown keys are used to move in the roster.

Up and Down arrow keys can be used to move in the input line history; they jump to the previous/next line from the history beginning with the same string (from first column to the cursor column).

To send a message, move to the choosen buddy in the buddylist, type your message and hit enter. If the line begins with a slash, this will be interpreted as a command (see the COMMAND section below). Hit escape to leave the chat mode.

Here is a quick description of the key bindings:

Esc

Disable chat mode


Ctrl-d

Send/terminate a multi-line message


Ctrl-p/Ctrl-n

Scroll up/down half a screen in the buffer window (chat mode)


Ctrl-Left

Move the cursor back to the start of the current or previous word


Ctrl-Right

Move the cursor forward to the end of the current or next word


Ctrl-u

Delete from beginning of the line to the cursor


Ctrl-k

Delete from the cursor to the end of line


Ctrl-w

Backward kill word


Ctrl-t

Transpose chars


Ctrl-o

Accept line and put the next history line in the input line (accept-line-and-down-history)


Ctrl-a

Go to the beginning of the input line


Ctrl-e

Go to the end of the input line


Ctrl-l

Force a refresh


Up/Down

Move in the input line history


PgUp/PgDown

Move inside the roster (buddylist)


Tab

Complete current word, in the input line


Ctrl-g

Cancel completion


Ctrl-c

Abort multi-line messages and completions


Additional key bindings may be specified using the /bind command described in the COMMANDS section.

 

MCABBER'S ROSTER

The first listed resource on the roster is [status], which keeps a log of everything that appears in the short log window below the main chat area. While the log window was designed for showing the latest few elements, the dedicated [status] buffer allows more comfortable viewing of the log, as well as scrolling it in a standard manner.

Group names are displayed above the resources that are within them, and are indicated by --- to the left of the name.

For every real Jabber resource, the roster displays four pieces of information: the resource's name or alias, its online status, its authorization status, and whether there are unread messages from the resource waiting for you.

The online status is one of the following:

o

online


C

a conference room in which you are participating


f

free for chat


a

away


n

not available (labeled extended away in some clients)


d

do not disturb


i

invisible (displayed only for your resource)


_

offline (or invisible to you)


?

unknown, usually meaning you are not authorized to see this resource's status


x

a conference room in which you are not participating


The authorization status indicates whether a resource is authorized to receive your online status updates, and is displayed by the brackets surrounding the resource's online status. Square brackets, like [o], indicate that this resource is authorized to receive your status. Curly braces, like {o}, indicate that they are not authorized to receive your status.

When there are unread messages from the resource which you have not looked at, a hash mark (#) appears in the leftmost section of the roster for that resource. The hash mark disappears once you view that resource's message log.

Examples:

--- Buds

This is a group named Buds


#[o] John

John is online, can see your status, and sent you a message that you did not read yet


{?} Sally

Neither you nor Sally have authorized each other to see your online status


{a} Jane

Jane is away, but she cannot see your online status


#[C] x@y.c

You are participating in x@y.c conference room, and there are unread messages


 

COMMANDS

Please refer to the online help (command /help), it is probably more up-to-date than this manpage. Furthermore, help files have been translated into several languages. You will find an overview of the mcabber commands in this manual.

 

COMMANDS RELATED TO MCABBER

/alias [name [= command line]]

Add "name" as an alias for "command line". Aliases are expanded only once, thus they can not be chained. "/alias name" displays the value associated with the "name" alias; "/alias name =" unsets the "name" alias. "/alias" displays a list of the existing aliases. Example: "/alias away = status away".

/bind [keycode [= command line]]

Bind a command line to the key with the "keycode" code number. Keycodes of unused keys are displayed by mcabber in the log window when pressing the key, for example "Unknown key=265". "/bind keycode" displays the command line bound to the given keycode; "/bind keycode =" unbinds the given keycode. "/bind" displays a list of the bound keycodes. Note: aliases can be used in key bindings. Example: "/bind 265 = status online" (265 is F1 for me, but it may depend on your ncurses installation).

/buffer clear|close|close_all|purge, /buffer top|bottom|date|%|search_backward|search_forward, /buffer scroll_lock|scroll_unlock|scroll_toggle

The buffer command manipulates the current buddy's buffer (chat window).
clear clear the current buddy chat window
close empty all contents of the buffer and close the current buddy chat window
close_all empty all contents of the chat buffers and close the chat windows
purge clear the current buddy chat window and empty all contents of the chat buffer
top jump to the top of the current buddy chat buffer
bottom jump to the bottom of the current buddy chat buffer
up [n] scroll the buffer up n lines (default: half a screen)
down [n] scroll the buffer down n lines (default: half a screen)
date date jump to the first line after the specified date in the chat buffer (date format: "YYYY-mm-dd[THH:MM:SS]", "-" and ":" are optional)
% n jump to position %n of the buddy chat buffer
search_backward text search for "text" in the current buddy chat buffer
search_forward text search for "text" in the current buddy chat buffer
scroll_lock lock buffer scrolling
scroll_unlock unlock buffer scrolling
scroll_toggle toggle buffer scrolling (lock/unlock)

/clear

The clear command is actually an alias for "/buffer clear".

/help [command]

Display generic help or help about a specific mcabber command.

/quit

Disconnect and leave mcabber(1).

/set option[=value]

Display or set an option value.

/source [file]

Read a configuration file.

/version

Display mcabber version
 

COMMANDS RELATED TO THE SERVER AND CONNECTION

/connect

Establish connection to the Jabber server.

/disconnect

Terminate connection to the Jabber server. Note: the roster is only available when the connection to the server is active, so the buddylist is empty when disconnected.

/event #n|* accept|ignore|reject, /event list

Tell mcabber what to do about a pending event. If the first parameter is "*", the command will apply to all queued events.
accept accept the event #n
ignore remove the event #n from the list
reject reject the event #n
list list all pending events

/rawxml send string

send string: send string (raw XML format) to the Jabber server. No check is done on the string provided. BEWARE! Use this only if you know what you are doing, or you could terminate the connection.

 

COMMANDS RELATED TO THE ROSTER AND JABBER RESOURCES

/add [jid [nickname]]

Add the "jid" Jabber user to our roster (default group), and send a notification request to this buddy. If no nickname is specified, the jid is used. If no jid (or an empty string "") is provided or if jid is ".", the current buddy is used.

/authorization allow|cancel|request|request_unsubscribe [jid]

Manage the presence subscriptions. If no jid is provided, the current buddy is used.
allow allow the buddy to receive your presence updates
cancel cancel the buddy' subscription to your presence updates
request request a subscription to the buddy's presence updates
request_unsubscribe request unsubscription from the buddy's presence updates

/del

Delete the current buddy from our roster, unsubscribe from its presence notification and unsubscribe it from ours.

/group fold|unfold|toggle

The group command changes the current group display.
fold fold (shrink) the current group tree in the roster
unfold unfold (expand) the current group tree in the roster
toggle toggle the state (fold/unfold) of the current tree

/info

Display info on the selected entry (user, agent, group...). For users, resources are displayed with the status, priority and status message (if available) of each resource.

/move [groupname]

Move the current buddy to the requested group. If no group is specified, then the buddy is moved to the default group. If the group groupname doesn't exist, it is created. Tip: if the chatmode is enabled, you can use "/roster alternate" to jump to the moved buddy.

/msay begin|verbatim|send|send_to|toggle|toggle_verbatim|abort

Send a multi-line message. To write a single message with several lines, the multi-line mode should be used. In multi-line mode, each line (except command lines) typed in the input line will be added to the multi-line message. Once the message is finished, it can be sent to the current selected buddy with the "/msay send" command (or Ctrl-d). The begin subcommand enables multi-line mode. Note that it allows a message subject to be specified. The verbatim multi-line mode disables commands, so that it is possible to enter lines starting with a slash. Only the "/msay" command (with send or abort parameters) can be used to exit verbatim mode. The toggle and toggle_verbatim subcommands can be bound to a key to use the multi-line mode quickly (for example, "bind M109 = msay toggle" to switch using the Meta-m combination).
begin [subject] enter multi-line mode
verbatim enter verbatim multi-line mode
send send the current multi-line message to the currently selected buddy
send_to jid send the current multi-line message to "jid"
toggle switch to/from multi-line mode (begin/send)
toggle_verbatim same with verbatim multi-line mode
abort leave multi-line mode without sending the message

/pgp disable|enable|force|info [jid], /pgp setkey [jid [key]]

Manipulate PGP settings for the specified jid (by default the currently selected contact). Please note that PGP encryption won't be used if no remote PGP support is detected, even if PGP is enabled with this command.
disable [jid] disable PGP encryption for jid (or the currently selected contact)
enable [jid] enable PGP encryption for jid (or the currently selected contact)
force [jid] enforce PGP encryption, even for offline messages, and always assume the recipient has PGP support
info [jid] show current PGP settings for the contact
setkey [jid [key]] set the PGP key to be used to encrypt message for this contact. If no key is provided, the current key is erased. You can use the shortcut-jid "." for the currently selected contact.

/rename name

Rename current buddy or group to the given name. Please note that a group name change is only done when the server's acknowledgment is received, so a slight delay can be noticed.

/request last|time|vcard|version [jid]

Send a "IQ" query to the current buddy, or to the specified Jabber user. If the resource is not provided with the jid, mcabber will send the query to all known resources for this user.

/room join|leave|names|nick|privmsg|remove|topic|unlock|destroy, /room invite|kick|ban|role|affil, /room bookmark [add|del] [-autojoin|+autojoin]

The room command handles Multi-User Chat room actions.
join [room [nick [pass]]] join "room", using "nick" as nickname. If no nickname is provided (or if it is an empty string), the "nickname" option value is used (see sample configuration file). If the currently selected entry is correctly recognized as a room by mcabber, the shortcut "." can be used instead of the full room id. A password can be provided to enter protected rooms. If your nickname contains space characters, use quotes.
whois nick display MUC information about "nick"
ban jid [reason] ban jid from the current room
invite jid [reason] invite jid to the current room
kick nick [reason] kick "nick" from the current room
role jid role [reason] change jid's role (role can be "none", "visitor", "participant", "moderator")
affil jid affil [reason] change jid's affiliation (affil can be "none", "member", "admin", "owner") bookmark add/update/remove a room bookmark, set/unset autojoin
leave [message] leave the current room
names [--detail|--short|--quiet] display the members of the current room
nick nick change your nickname in the current room
privmsg nick msg send private message "msg" to "nick"
remove remove the current room from the roster (you must have left this room before)
topic set topic for current room
unlock unlock current room (if you are the owner)
destroy [reason] destroy the current room (use with care!)

/roster bottom|top|up|down|group_prev|group_next, /roster alternate|unread_first|unread_next, /roster search bud, /roster hide_offline|show_offline|toggle_offline, /roster item_lock|item_unlock, /roster hide|show|toggle, /roster note [-|text]

The roster command manipulates the roster/buddylist. Here are the available parameters:
bottom jump to the bottom of the roster
search bud search for a buddy with a name or jid containing "bud" (only in the displayed buddylist)
hide_offline hide offline buddies
show_offline show offline buddies
toggle_offline toggle display of offline buddies
item_lock jid lock the roster item so it remains visible regardless of its status
item_unlock jid undo the effects of item_lock
hide hide roster (full-width chat window)
show show roster
toggle toggle roster visibility
note [text] display or set an annotation (if text is "-", the annotation is deleted). In the "status" buffer, it will display all annotations.
top jump to the top of the roster
up move up in the roster
down move down in the roster
group_prev jump to the previous group in the roster
group_next jump to the next group in the roster
alternate jump to alternate buddy. The "alternate" buddy is the last buddy left while being in chat mode (this command is thus especially useful after commands like "/roster unread_first")
unread_first jump to the first unread message
unread_next jump to the next unread message

/say text

Send the "text" message to the currently selected buddy. Can be useful if you want to send a message beginning with a slash, for example.

/say_to jid text

Send the "text" message to the specified jid. Please note that this command doesn't set the default resource for a contact, so if you want to send several messages to a specific resource you will have to use "/say_to" for each message.

/status [online|avail|invisible|free|dnd|notavail|away [-|StatusMessage]]

Show or set the current status. If no status is specified, display the current status. If a status message is specified, it will overrride the message* variables (these variables can be set in the configuration file). If no relevant message* variable is set and no status message provided, the current status message is kept. If StatusMessage is "-", the current status message is cleared.

/status_to jid online|avail|invisible|free|dnd|notavail|away [StatusMessage]

Send the requested status to the specified Jabber user. If the specified jid is ".", the current buddy is used. Note: this status will be overridden by subsequent "/status" commands. If you are using the auto-away feature, the status will overridden too. Note: The jid can include a resource (i.e. user@server/resource).
 

CONFIGURATION FILE

See the provided sample configuration file, which should be self-documenting.

 

FILES

The following files can be used by mcabber(1):

$HOME/.mcabber/mcabberrc    Default configuration file
$HOME/.mcabberrc            Configuration file used if no other has been found
$HOME/.mcabber/histo/       Default directory for storing chat history files, if enabled
 

BUGS

Certainly. Please tell me if you find one! :-)

 

AUTHOR

Written by Mikael BERTHE[1]. Originally based on Cabber[2], please consult the AUTHORS file for details.

 

RESOURCES

Main web site[3]

 

COPYING

Copyright (C) 2005, 2006, 2007 Mikael Berthe. Some portions are Copyright (C) 2002-2004 cabber@ajmacias.com[4].

Free use of this software is granted under the terms of the GNU General Public License (GPL).

 

REFERENCES

1.
Mikael BERTHE
mailto:mcabber@lilotux.net
2.
Cabber
http://cabber.sourceforge.net
3.
Main web site
http://www.lilotux.net/~mikael/mcabber/
4.
cabber@ajmacias.com
mailto:cabber@ajmacias.com


 

Index

NAME
SYNOPSIS
DESCRIPTION
OPTIONS
WINDOWS/PANES
KEYS
MCABBER'S ROSTER
COMMANDS
COMMANDS RELATED TO MCABBER
COMMANDS RELATED TO THE SERVER AND CONNECTION
COMMANDS RELATED TO THE ROSTER AND JABBER RESOURCES
CONFIGURATION FILE
FILES
BUGS
AUTHOR
RESOURCES
COPYING
REFERENCES




Random Man Pages:
arch_prctl
Benchmark
ldif
v4l