cf5463a3b1d79ae58f098c695aef9f9c5b940f2b
[riece] / doc / riece-en.texi
1 \input texinfo                  @c -*- mode: texinfo; coding: iso-2022-jp -*-
2 @c %**start of header
3 @setfilename riece-en.info
4 @settitle Riece -- An IRC client for Emacsen --
5 @c %**end of header
6 @set VERSION 1.0.7
7 @c @documentlanguage en
8
9 @dircategory GNU Emacs Lisp
10 @direntry
11 * Riece-en: (riece-en).   An IRC client for Emacsen
12 @end direntry
13
14 @ifinfo
15 This file describes Riece.
16
17 Copyright (C) 2003,2004 Daiki Ueno.
18
19 Permission is granted to copy, distribute and/or modify this document
20 under the terms of the GNU Free Documentation License, Version 1.1 or
21 any later version published by the Free Software Foundation; with no
22 Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
23 Texts.  A copy of the license is included in the section entitled "GNU
24 Free Documentation License".
25 @end ifinfo
26
27 @tex
28
29 @titlepage
30 @title Riece
31
32 @author by Daiki Ueno
33 @page
34
35 @vskip 0pt plus 1filll
36 Copyright @copyright{} 2003 Daiki Ueno.
37
38 Permission is granted to copy, distribute and/or modify this document
39 under the terms of the GNU Free Documentation License, Version 1.1 or
40 any later version published by the Free Software Foundation; with no
41 Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
42 Texts.  A copy of the license is included in the section entitled "GNU
43 Free Documentation License".
44 @end titlepage
45 @page
46
47 @end tex
48
49 @node Top, Overview, (dir), (dir)
50 @top Riece user's manual
51
52 Riece is a program to participate in IRC (Internet Relay Chat) from Emacs.
53
54 @menu
55 * Overview::                    What's Riece?
56 * Getting started::             
57 * Basic usage::                 Let's talk with other people.
58 * Index::                       
59 * Function Index::              
60 * Variable Index::              
61 @end menu
62
63 @node Overview, Getting started, Top, Top
64 @chapter Overview
65
66 Riece is a full rewrite of the predecessor product "Liece" (whose code
67 has been unmaintainable for a long time), while providing a user
68 interface (mostly) compatible with Liece.
69
70 There are noteworthy improvements as compared with Liece:
71
72 @itemize @bullet
73 @item
74 Several IRC servers may be used at the same time.
75
76 @item
77 Essential features can be built upon the extension framework (called
78 "add-on") capable of dependency tracking.
79
80 @item
81 Installation is easy.  Riece doesn't depend on other packages.
82
83 @item
84 Setup is easy.  Automatically save/restore the configuration.
85
86 @item
87 Step-by-step instructions are included.
88
89 @item
90 Mostly compliant with the latest IRC client protocol (RFC 2812).
91 @end itemize
92
93 For more details, please look at the following pages:
94
95 @itemize @bullet
96 @item http://www.nongnu.org/riece/
97 @item http://wiliki.designflaw.org/index.cgi?Riece&l=jp
98 @item http://www.unixuser.org/~ueno/liece/
99 @end itemize
100
101 @node Getting started, Basic usage, Overview, Top
102 @chapter Getting started
103
104 @menu
105 * Required Environments::       
106 * Installation::                
107 * Startup File::                
108 @end menu
109
110 @node Required Environments, Installation, Getting started, Getting started
111 @section Required Environments
112
113 We checked this version working on the following environments.
114
115 @itemize @bullet
116 @item Emacs 20.7 or later
117 @item XEmacs 21.4 or later
118 @end itemize
119
120 @node Installation, Startup File, Required Environments, Getting started
121 @section Installation
122
123 The latest version of Riece can be obtained from
124 @uref{http://wiliki.designflaw.org/riece.cgi}.  After unpacking the
125 tarball, you can install with the following commands:
126
127 @example
128 ./configure
129 make
130 make install
131 @end example
132
133 If you want to install Riece as an XEmacs package, use the following
134 commands instead of the above:
135
136 @example
137 ./configure --with-xemacs[=xemacs-21.4.15]
138 make package
139 make install-package
140 @end example
141
142 If you do not so, it is necessery to add autoload setting to your Emacs
143 startup file (probably @file{~/.emacs}) to be able to start Riece by
144 typing @kbd{M-x riece}.
145
146 @lisp
147 (autoload 'riece "riece" "Start Riece" t)
148 @end lisp
149
150 @node Startup File,  , Installation, Getting started
151 @section Startup file
152
153 In this section we describe Riece's startup files.
154
155 If you are attempting to use Riece by way of trial, nothing needed to be
156 written in startup files.  Thus you can skip this section.
157
158 Riece reads startup files under the directory pointed by the variable
159 @code{riece-directory} (by default, it has @file{~/.riece/} as the
160 value).  There are two kinds of startup files in the directory:
161
162 @table @code
163 @item riece-saved-variables-file
164 @vindex riece-saved-variables-file
165 Variables changed during the last session are automatically saved in this file.
166 (by default, it is located at @file{~/.riece/save})
167 @item riece-variables-file
168 @vindex riece-variables-file
169 Users can edit this file to configure their own settings (by default, it
170 is located at @file{~/.riece/init})
171 @end table
172
173 At startup, Riece will first read @code{riece-saved-variables-file},
174 and then @code{riece-variables-file}.  That is to say, automatically
175 saved variables may be refered/modified by user configuration.
176
177 @node Basic usage, Index, Getting started, Top
178 @chapter Basic usage
179
180 To start Riece, you just type @kbd{M-x riece}.  Then you will prompted
181 for the name of an IRC server.  A typical IRC network may consist of
182 several IRC servers and you will need to pick up appropriate one.  Most
183 of IRC networks provide a list of available servers on their Web pages:
184
185 @itemize @bullet
186 @item http://irc.kyoto-u.ac.jp
187 @item http://freenode.net
188 @end itemize
189
190 If your nickname is taken, you will be asked to use different one.  The
191 initial nickname can be set via the variable @code{riece-nickname}.  By
192 default, your nickname is generated from your login name.
193 @vindex riece-nickname
194
195 After successfully connecting to an IRC server, you can join a channel
196 and talk with people there.  To join a channel, type @kbd{C-c j}.  By
197 the way there is a channel called @samp{#Riece} on IRCnet, so feel free
198 to use it for testing.
199
200 Now you enter a message and it will be seen by everyone else on the
201 channel.  Messages from other people will appear on the top-left window.
202
203 @menu
204 * Windows::                     
205 * Indicators::                  
206 * Commands::                    
207 * Connecting to multiple servers::  
208 @end menu
209
210 @node Windows, Indicators, Basic usage, Basic usage
211 @section Windows
212
213 By default, Riece uses 5 windows to inform user of his status:
214
215 @example
216 +-----+-----------------+
217 |     |                 |
218 |     |                 |
219 | (1) |       (2)       |
220 |     |                 |
221 |     |                 |
222 +-----+-----------------+
223 |     |       (4)       |
224 |     +-----------------+
225 | (3) |                 |
226 |     |       (5)       |
227 |     |                 |
228 +-----+-----------------+
229 @end example
230
231 Each window is used for different purpose:
232
233 @enumerate
234 @item
235 "user list window" (@samp{*Users XXX*}).  Users on the current
236 channel are listed in this window.
237
238 @item
239 "channel window" (@samp{*Channel XXX*}).  This window keeps
240 dialogues on the current channel.
241
242 @item
243 "channel list window" (@samp{*Channels*}).  All channels you are
244 joined are listed in this window.
245
246 @item
247 "command window" (@samp{*Commands*}).  This window is used for either
248 sending messages or issueing commands.
249
250 @item
251 "others buffer" (@samp{*Others*}).  This window displays dialogues on
252 channels except the current channel.
253 @end enumerate
254
255 @node Indicators, Commands, Windows, Basic usage
256 @section Indicators
257
258 Indicators are characters which indicate your status.  Usually they are
259 put on the left side of the modeline like:
260
261 @example
262 Riece: --- ueno #Liece [n]
263 @end example
264
265 In this case, @samp{---} are indicators.  From left to right their
266 meanings are:
267
268 @enumerate
269 @item
270 You are not "away". (If you marked yourself as "away", it would be
271 @samp{A})
272
273 @item
274 You are not an IRC operator. (If you entered operator mode, it would be
275 @samp{O})
276
277 @item
278 The channel window is not locked.
279 (If it was locked, it would be @samp{F}.  If it was locked until next
280 send, it would be @samp{f})
281 @end enumerate
282
283 @node Commands, Connecting to multiple servers, Indicators, Basic usage
284 @section Commands
285
286 The buffer used for sending messages is called "command buffer".
287 You can issue various commands from the command buffer.
288
289 @subsection IRC commands
290 @table @kbd
291 @item RET
292 @findex riece-command-enter-message
293 Send the current line. (@code{riece-command-enter-message})
294 @item C-RET
295 @findex riece-command-enter-message-as-notice
296 Send the current line as NOTICE. (@code{riece-command-enter-message-as-notice})
297 @item C-c j
298 @findex riece-command-join
299 Join a channel. (@code{riece-command-join})
300 @item C-c C-p
301 @findex riece-command-part
302 Part from a channel. (@code{riece-command-part})
303 @item C-c p
304 @findex riece-command-enter-message-to-user
305 Send the current line to particular
306 user. (@code{riece-command-enter-message-to-user})
307 @item C-c q
308 @findex riece-command-quit
309 Quit from IRC. (@code{riece-command-quit})
310 @item C-c n
311 @findex riece-command-change-nickname
312 Change your nickname. (@code{riece-command-change-nickname})
313 @item C-c f
314 @findex riece-command-finger
315 Get information of a user. (@code{riece-command-finger})
316 @item C-c C-k
317 @findex riece-command-kick
318 Kick a user from the current channel. (@code{riece-command-kick})
319 @item C-c i
320 @findex riece-command-invite
321 Invite a user to the current channel. (@code{riece-command-invite})
322 @item C-c l
323 @findex riece-command-list
324 Issue a LIST command with specified pattern. (@code{riece-command-list})
325 @item C-c C-n
326 @findex riece-command-names
327 Issue a NAMES command with specified pattern. (@code{riece-command-names})
328 @item C-c w
329 @findex riece-command-who
330 Issue a WHO command with specified pattern. (@code{riece-command-who})
331 @item C-c t
332 @findex riece-command-topic
333 Set topic of the current channel. (@code{riece-command-topic})
334 @item C-c C-m
335 @findex riece-command-change-mode
336 Change the mode of the current channel. (@code{riece-command-change-mode})
337 @item C-c o
338 @findex riece-command-set-operators
339 Assign channel operator privilege to a user.  If a prefix argument
340 (@kbd{C-u}) is given, remove the privilege from a
341 user. (@code{riece-command-set-operators})
342 @item C-c v
343 @findex riece-command-set-speakers
344 Allow a user to speak in the current channel.  If a prefix argument
345 (@kbd{C-u}) is given, disallow a user to
346 speak. (@code{riece-command-set-speakers})
347 @item C-c V
348 @findex riece-version
349 Display version number of Riece.  If a prefix argument (@kbd{C-u}) is
350 given, use User-Agent format.
351 @item C-c /
352 @findex riece-command-raw
353 Send raw IRC command. (@code{riece-command-raw})
354 @end table
355
356 @subsection Window manipulating commands
357 @table @kbd
358 @item C-c r
359 @findex riece-command-configure-windows
360 Redraw windows. (@code{riece-command-configure-windows})
361 @item C-c C-j
362 @findex riece-command-next-channel
363 Switch to the next channel in the channel
364 list. (@code{riece-command-next-channel})
365 @item C-c <
366 @findex riece-command-previous-channel
367 Switch to the previous channel in the channel
368 list. (@code{riece-command-previous-channel})
369 @item C-c >
370 @findex riece-command-next-channel
371 Switch to the next channel in the channel
372 list. (@code{riece-command-next-channel})
373 @item C-c ^
374 @findex riece-command-list-addons
375 Browse add-ons currently insinuated. (@code{riece-command-list-addons})
376 @item C-c digit
377 @findex riece-command-switch-to-channel-by-number
378 Switch to @var{n}th channel in the channel
379 list. (@code{riece-command-switch-to-channel-by-number})
380 @item C-c C-c digit
381 @findex riece-command-switch-to-channel-by-number
382 Switch to @var{n} + 10th channel in the channel
383 list. (@code{riece-command-switch-to-channel-by-number})
384 @item C-c Home
385 @findex riece-command-beginning-of-buffer
386 Move point to the beginning of the buffer in the channel window.
387 (@code{riece-command-beginning-of-buffer})
388 @item C-c $
389 @findex riece-command-end-of-buffer
390 Move point to the end of the buffer in the channel window.
391 (@code{riece-command-end-of-buffer})
392 @item C-c SPC
393 @findex riece-command-scroll-up
394 Scroll text of the channel window up. (@code{riece-command-scroll-up})
395 @item C-c DEL
396 @findex riece-command-scroll-down
397 Scroll text of the channel window down. (@code{riece-command-scroll-down})
398 @end table
399
400 @subsection Status toggle commands
401 @table @kbd
402 @item C-c C-t c
403 @findex riece-command-toggle-channel-buffer-mode
404 Toggle visibility of the channel
405 window. (@code{riece-command-toggle-channel-buffer-mode})
406 @item C-c C-t C
407 @findex riece-command-toggle-channel-list-buffer-mode
408 Toggle visibility of the channel list
409 window. (@code{riece-command-toggle-channel-list-buffer-mode})
410 @item C-c C-t u
411 @findex riece-command-toggle-user-list-buffer-mode
412 Toggle visibility of the user list
413 window. (@code{riece-command-toggle-user-list-buffer-mode})
414 @item C-c C-t f
415 @findex riece-command-toggle-freeze
416 Disable scrolling of the channel window. (@code{riece-command-toggle-freeze})
417 @item C-c C-t o
418 @findex riece-command-toggle-own-freeze
419 Disable scrolling of the channel window until next
420 send. (@code{riece-command-toggle-own-freeze})
421 @item C-c C-t a
422 @findex riece-command-toggle-away
423 Mark or unmark yourself as "away". (@code{riece-command-toggle-away})
424 @end table
425
426 @node Connecting to multiple servers,  , Commands, Basic usage
427 @section Connecting to multiple servers
428
429 One of the most important features of Riece is that users can use
430 several IRC servers at the same time.
431
432 The procedure to use multiple servers consists (1) connecting to the
433 foreign server and (2) joinning a channel:
434
435 @enumerate
436 @item
437 Type @kbd{C-c O} (@code{riece-command-open-server}), and then you will
438 be asked the server name.
439
440 @item
441 Type @kbd{C-c j} (@code{riece-command-join}) to join a channel.  Here
442 the server name follows the channel name.  To input a space character,
443 use @kbd{C-q}.  For example, if you want to join the channel
444 @samp{#Riece} on the server @samp{irc6}, type @kbd{C-c j #Riece C-q SPC
445 irc6}.
446 @end enumerate
447
448 If you want to send IRC command without joinning a channel, @kbd{C-c M}
449 (@code{riece-command-universal-server-name-argument}) may be useful.
450
451 Commands used for connection management are listed below:
452
453 @table @kbd
454 @item C-c O
455 @findex riece-command-open-server
456 Connect to the foreign server. (@code{riece-command-open-server})
457 @item C-c C
458 @findex riece-command-close-server
459 Close the connection to the server. (@code{riece-command-close-server})
460 @item C-c M
461 @findex riece-command-universal-server-name-argument
462 Issue a command on the specified
463 server. (@code{riece-command-universal-server-name-argument})
464 @end table
465
466 @node Index, Function Index, Basic usage, Top
467 @chapter Index
468 @printindex cp
469
470 @node Function Index, Variable Index, Index, Top
471 @chapter Function Index
472 @printindex fn
473
474 @node Variable Index,  , Function Index, Top
475 @chapter Variable Index
476 @printindex vr
477
478 @summarycontents
479 @contents
480 @bye
481
482 @c End: