jtalk: user manual

Every day use

In this section, we assume that jtalk is set up, and that jtalkd is running and connected to Jabber servers. If it is not, see below to do it.

To call Somebody, open a new command line terminal, and type jtalk_rl somebody@jabber.org. You will get a prompt. Everything you type at this prompt will be sent to Somebody, and everything Somebody sends you will be displayed above the prompt.

jtalk_rl is a readline-based jtalk front-end. Others front-ends are possible, but none are implemented yet.

Unlike the Unix talk system, starting jtalk somebody@jabber.org will not notify Somebody that you want to talk to him. You have to actually send him a line, maybe "Hi." or "Are you there?".

Unlike the Unix talk system, Jabber, and therefore jtalk, works on a line-by-line basis and not on a char-by-char basis. You must validate a line with enter to actually send it.

jtalk understands IRC-like commands starting with /. If you want to send a line that actually starts with /, put an extra slash at the start.

Starting jtalkd

To connect to your Jabber accounts and be able to send and receive messages, you have to start jtalkd. One jtalkd must be started per Jabber user on the system.

If invoked without option, jtalkd will simply run in foreground. Options are available to change that behavior:

-k
Instead of starting, jtalkd will try to kill an already-running jtalkd. If the option is given twice, jtalkd will repeatedly try to kill it until it is indeed dead. If the option is given thrice, jtalkd will continue to start after it is dead; else it will just exit.
-l
Instead of starting, jtalkd will print the PID of an already-running jtalkd.
-f
jtalkd will cleanly detach itself in the background.
-d pid
jtalkd will watch the process pid and exit when it exits. If pid is 0, the PID of the parent process will be used instead.

So if you want to start jtalkd along with your X11 session, you can put jtalkd -d 0 in your .xinitrc ou .xsession file.

Setting up jtalk

Setting up ~/.jtalk

The first time jtalk is started, it creates a directory ~/.jtalk which will keep the socket, the init file and the discussions transcripts. The socket itself lives in a subdirectory ~/.jtalk/socket. You chan change the path using the JTALK_BASE environment variable.

Setting up Jabber accounts and default options

Just after it has started, jtalkd reads ~/.jtalk/init as a list of commands (without the initial slash). This init file is useful to set default options (at this time, there are none), and, more importantly, to configure Jabber accounts. See the /account command description.

Commands

/account

The /account command takes a sequence of key[=value] options.

server=
the Jabber server. Required.
user=
the user name. Required.
pass=
the password. Spaces and % must be escaped as %20 and %25; others characters can be escaped the same way. Non-ASCII characters must be encoded as UTF-8. Required.
resource=
the resource; defaults to "jtalk".
jid=
the Jabber Id. Useful only if it is different from user@server.
tls
enable TLS (aka SSL)
port=
the TCP port; defaults to 5222 (5223 for TLS).