84311
|
1 \input texinfo
|
|
2 @c %**start of header
|
84329
|
3 @setfilename ../../info/rcirc
|
84311
|
4 @settitle rcirc Manual
|
|
5 @c %**end of header
|
|
6
|
|
7 @copying
|
106815
|
8 Copyright @copyright{} 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
|
84311
|
9
|
|
10 @quotation
|
|
11 Permission is granted to copy, distribute and/or modify this document
|
99709
|
12 under the terms of the GNU Free Documentation License, Version 1.3 or
|
84311
|
13 any later version published by the Free Software Foundation; with no
|
|
14 Invariant Sections, with the Front-Cover texts being ``A GNU Manual'',
|
|
15 and with the Back-Cover Texts as in (a) below. A copy of the license is
|
95937
|
16 included in the section entitled ``GNU Free Documentation License''.
|
84311
|
17
|
95874
|
18 (a) The FSF's Back-Cover Text is: ``You have the freedom to copy and
|
|
19 modify this GNU manual. Buying copies from the FSF supports it in
|
|
20 developing GNU and promoting software freedom.''
|
84311
|
21 @end quotation
|
|
22 @end copying
|
|
23
|
|
24 @dircategory Emacs
|
|
25 @direntry
|
|
26 * Rcirc: (rcirc). Internet Relay Chat (IRC) client.
|
|
27 @end direntry
|
|
28
|
|
29 @titlepage
|
|
30 @title rcirc Manual
|
|
31 @page
|
|
32 @vskip 0pt plus 1filll
|
|
33 @insertcopying
|
|
34 @end titlepage
|
|
35
|
102059
|
36 @contents
|
|
37
|
84311
|
38 @ifnottex
|
|
39 @node Top, Basics, (dir), (dir)
|
|
40 @top rcirc Manual
|
|
41
|
|
42 @code{rcirc} is an Emacs IRC client.
|
|
43
|
|
44 IRC (Internet Relay Chat) is a multi-user chat protocol. Users
|
|
45 communicate with each other in real-time. Communication occurs both in
|
|
46 topic channels which are collections of many users, or privately, with
|
|
47 just one other user.
|
|
48
|
102059
|
49 @insertcopying
|
|
50
|
|
51 @end ifnottex
|
|
52
|
84311
|
53 @menu
|
|
54 * Basics::
|
|
55 * Reference::
|
87344
|
56 * Fighting Information Overload::
|
84311
|
57 * Hacking and Tweaking::
|
|
58 * GNU Free Documentation License::
|
|
59 * Key Index::
|
|
60 * Variable Index::
|
|
61 * Index::
|
|
62
|
|
63 @detailmenu
|
|
64 --- The Detailed Node Listing ---
|
|
65
|
|
66 Basics
|
|
67
|
|
68 * Internet Relay Chat::
|
|
69 * Getting started with rcirc::
|
|
70
|
|
71 Reference
|
|
72
|
|
73 * rcirc commands::
|
|
74 * Useful IRC commands::
|
|
75 * Configuration::
|
|
76
|
87344
|
77 Fighting Information Overload
|
|
78
|
|
79 * Channels::
|
|
80 * People::
|
|
81 * Keywords::
|
|
82 * Notices::
|
|
83
|
84311
|
84 Hacking and Tweaking
|
|
85
|
|
86 * Skipping /away messages using handlers::
|
|
87 * Using fly spell mode::
|
|
88 * Scrolling conservatively::
|
|
89 * Changing the time stamp format::
|
|
90 * Defining a new command::
|
|
91 * Reconnecting after you have lost the connection::
|
|
92
|
|
93 @end detailmenu
|
|
94 @end menu
|
|
95
|
|
96 @node Basics, Reference, Top, Top
|
|
97 @chapter Basics
|
|
98
|
|
99 This chapter contains a brief introduction to IRC (Internet Relay Chat),
|
|
100 and a quick tutorial on @code{rcirc}.
|
|
101
|
|
102 @menu
|
|
103 * Internet Relay Chat::
|
|
104 * Getting started with rcirc::
|
|
105 @end menu
|
|
106
|
|
107 @node Internet Relay Chat, Getting started with rcirc, Basics, Basics
|
|
108 @section Internet Relay Chat
|
|
109 @cindex internet relay chat
|
|
110 @cindex irc
|
|
111
|
|
112 @cindex channel
|
|
113 @dfn{Internet Relay Chat} (IRC) is a form of instant communication over the
|
|
114 Internet. It is mainly designed for group (many-to-many) communication
|
|
115 in discussion forums called channels, but also allows one-to-one
|
|
116 communication.
|
|
117
|
|
118 @cindex instant messaging, comparison
|
|
119 @cindex server
|
|
120 @cindex network
|
|
121 Contrary to most Instant Messenger (IM) systems, users usually don't
|
87353
|
122 connect to a central server. Instead, users connect to a random
|
|
123 server in a network, and servers relay messages from one to the next.
|
84311
|
124
|
|
125 Here's a typical example:
|
|
126
|
|
127 @cindex redirection to random servers
|
|
128 When you connect to the Freenode network
|
|
129 (@code{http://freenode.net/}), you point your IRC client at the
|
|
130 server @code{irc.freenode.net}. That server will redirect your client
|
|
131 to a random server on the network, such as @code{zelazny.freenode.net}.
|
|
132
|
|
133 @cindex channel name
|
|
134 @cindex # starts a channel name
|
|
135 Once you're connected, you can send messages to all other users
|
|
136 connected to the same network, and you can join all channels on the same
|
|
137 network. You might join the @code{#emacs} and the @code{#rcirc}
|
|
138 channels, for example. (Typically, channel names begin with a hash
|
|
139 character.)
|
|
140
|
|
141 Once you have joined a channel, anything you type will be broadcast to
|
|
142 all the other users on the same channel.
|
|
143
|
|
144 @cindex addressing other people
|
|
145 @cindex other people, addressing them
|
|
146 @cindex talk to other people
|
|
147 If you want to address someone specifically, for example as an answer to
|
|
148 a question, it is customary to prefix the message with the nick followed
|
|
149 by a colon, like this:
|
|
150
|
|
151 @example
|
|
152 deego: fsbot rules!
|
|
153 @end example
|
|
154
|
|
155 @cindex nick completion
|
|
156 @cindex completion of nicks
|
|
157 @kindex TAB
|
|
158 Since this is so common, you can use @key{TAB} to do nick completion.
|
|
159
|
|
160 @node Getting started with rcirc, , Internet Relay Chat, Basics
|
|
161 @section Getting started with rcirc
|
|
162 @cindex getting started
|
|
163 @cindex connecting to a server
|
|
164
|
|
165 @cindex irc command
|
|
166 Use the command @kbd{M-x irc} to connect using the defaults.
|
|
167 @xref{Configuration}, if you want to change the defaults.
|
|
168
|
|
169 Use @kbd{C-u M-x irc} if you don't want to use the defaults, eg. if you
|
|
170 want to connect to a different network, or connect to the same network
|
|
171 using a different nick. This will prompt you for four things:
|
|
172
|
|
173 @table @asis
|
|
174 @cindex server, connecting
|
|
175 @cindex Freenode network
|
87353
|
176 @item IRC Server
|
84311
|
177 What server do you want to connect to? All the servers in a particular
|
|
178 network are equivalent. Some networks use a round-robin system where a
|
|
179 single server redirects new connections to a random server in the
|
|
180 network. @code{irc.freenode.net} is such a server for the Freenode
|
|
181 network. Freenode provides the network ``for the Free and Open Source
|
96372
|
182 Software communities, for not-for-profit organizations and for related
|
84311
|
183 communities and organizations.''
|
|
184
|
|
185 @cindex port, connecting
|
|
186 @cindex 6667, default IRC port
|
87353
|
187 @item IRC Port
|
84311
|
188 All network connections require a port. Just as web servers and clients
|
|
189 use port 80 per default, IRC uses port 6667 per default. You rarely
|
|
190 have to use a different port.
|
|
191
|
|
192 @cindex nick, connecting
|
|
193 @cindex changing nick
|
|
194 @cindex name changes
|
87353
|
195 @item IRC Nick
|
84311
|
196 @vindex user-login-name
|
|
197 Every users needs a handle on-line. You will automatically be assigned
|
|
198 a slightly different nick if your chosen nick is already in use. If
|
|
199 your @code{user-login-name} is @code{alex}, and this nick is already
|
|
200 in use, you might for example get assigned the nick @code{alex`}.
|
|
201
|
|
202 @cindex channels, connecting
|
|
203 @cindex initial channels
|
|
204 @cindex startup channels
|
87353
|
205 @item IRC Channels
|
84311
|
206 A space separated list of channels you want to join when connecting.
|
|
207 You don't need to join any channels, if you just want to have one-to-one
|
|
208 conversations with friends on the same network. If you're new to the
|
|
209 Freenode network, join @code{#emacs}, the channel about all things
|
|
210 Emacs, or join @code{#rcirc}, the channel about @code{rcirc}.
|
|
211 @end table
|
|
212
|
|
213 @cindex server buffer
|
|
214 When you have answered these questions, @code{rcirc} will create a server
|
|
215 buffer, which will be named something like @code{*irc.freenode.net*},
|
|
216 and a channel buffer for each of the channels you wanted to join.
|
|
217
|
|
218 @kindex RET
|
|
219 @cindex talking
|
|
220 @cindex communicating
|
87353
|
221 To talk in a channel, just type what you want to say in a channel
|
84311
|
222 buffer, and press @key{RET}.
|
|
223
|
|
224 @kindex C-c C-c
|
|
225 @cindex multiline messages
|
|
226 @cindex messages, multiple lines
|
|
227 @cindex pasting multiple lines
|
|
228 @cindex edit message before sending
|
|
229 If you want to paste multiple lines, such as source code, you can use
|
|
230 @kbd{C-c C-c} to edit your message in a separate buffer. Use @kbd{C-c
|
|
231 C-c} to finish editing. You still need to press @key{RET} to send it,
|
|
232 though. Generally, IRC users don't like people pasting more than around
|
|
233 four lines of code, so use with care.
|
|
234
|
87353
|
235 @comment This section copied from the Channels section.
|
|
236 @comment All index markers should point to the original!
|
|
237 Once you are connected to multiple channels, or once you've turned you
|
|
238 attention to other buffers in Emacs, you probably want to be notified
|
|
239 of any activity in channels not currently visible. All you need to do
|
|
240 is switch channel tracking on using @kbd{M-x rcirc-track-minor-mode}.
|
|
241 To make this permanent, add the following to your init file:
|
87344
|
242
|
|
243 @example
|
|
244 (rcirc-track-minor-mode 1)
|
|
245 @end example
|
|
246
|
87353
|
247 Use @kbd{C-c C-@key{SPC}} to switch to these buffers.
|
|
248
|
87344
|
249 @node Reference, Fighting Information Overload, Basics, Top
|
84311
|
250 @chapter Reference
|
|
251 @cindex reference
|
|
252
|
|
253 This is the reference section of the manual. It is not complete. For
|
|
254 complete listings of @code{rcirc} features, use Emacs built-in
|
|
255 documentation.
|
|
256
|
|
257 @menu
|
|
258 * rcirc commands::
|
|
259 * Useful IRC commands::
|
|
260 * Configuration::
|
|
261 @end menu
|
|
262
|
|
263 @node rcirc commands, Useful IRC commands, Reference, Reference
|
|
264 @section rcirc commands
|
|
265 @cindex rcirc commands
|
|
266 @cindex commands
|
|
267
|
|
268 @kindex C-h m
|
|
269 This is a list of commands that you may use in @code{rcirc}. It is not
|
|
270 complete. For a complete listing, press @kbd{C-h m} in an @code{rcirc}
|
|
271 buffer.
|
|
272
|
|
273 In addition to using regular Emacs key bindings, you can call them by
|
|
274 typing them into an @code{rcirc} buffer.
|
|
275
|
|
276 @cindex call commands
|
|
277 @cindex typing commands
|
|
278 @cindex commands
|
|
279 For instance, instead of using the command @kbd{C-c C-j} to join a new
|
|
280 channel, you may type this in an @code{rcirc} buffer, and press @key{RET}:
|
|
281
|
|
282 @example
|
|
283 /join #emacs
|
|
284 @end example
|
|
285
|
|
286 @cindex / starts a command
|
|
287 @cindex messages starting with a slash disappear
|
|
288 @cindex disappearing messages if starting with a slash
|
|
289 @cindex slash hides message
|
|
290 This is why you cannot start a message with a slash. You will have to
|
|
291 precede the command with a space, or rewrite your message in order to
|
|
292 send it to a channel.
|
|
293
|
|
294 @cindex multiple words as parameters
|
|
295 @cindex string delimiters
|
|
296 @cindex quotes
|
|
297 @cindex double-quotes
|
|
298 Many commands take parameters. IRC commands usually ignore string
|
|
299 delimiters. Neither quote nor double-quote have special meanings in
|
|
300 IRC.
|
|
301
|
|
302 @example
|
|
303 /nick "alex schroeder"
|
|
304 @end example
|
|
305
|
|
306 This will try to change your nick to @code{"alex}. Usually this will
|
92148
|
307 fail because the double quote character is not a valid character for
|
84311
|
308 nicks.
|
|
309
|
|
310 @cindex case insensitive commands
|
|
311 These commands are case insensitive.
|
|
312
|
|
313 @cindex new command
|
|
314 @cindex unknown command
|
|
315 @cindex command unknown
|
|
316 If a command isn't known by @code{rcirc}, it will simply be sent along to the
|
|
317 server. There is a list of some useful commands like that in the next
|
|
318 section.
|
|
319
|
|
320 @table @kbd
|
|
321 @item C-c C-j
|
|
322 @kindex C-c C-j
|
|
323 @cindex /join
|
|
324 @cindex join channels
|
|
325 @cindex other channels
|
|
326 @cindex rooms, joining
|
|
327 @cindex discussion, joining
|
|
328 This joins a channel such as @code{#rcirc} or @code{#emacs}. On most
|
|
329 networks, anybody can create new channels. If you want to talk with
|
|
330 some friends, for example, all you have to do is agree on a valid
|
|
331 channel name and join that channel. (Also @code{/join #emacs}.)
|
|
332
|
|
333 @item C-c C-p
|
|
334 @kindex C-c C-p
|
|
335 @cindex /part
|
|
336 @cindex part a channel
|
|
337 @cindex leave a channel
|
|
338 @cindex disconnect from a channel
|
|
339 @cindex stop talking on a channel
|
|
340 @cindex kill channel buffer
|
|
341 This leaves the current channel. You can optionally provide a reason
|
|
342 for parting. When you kill a channel buffer, you automatically part the
|
|
343 corresponding channel. (Also @code{/part you are too weird!}.)
|
|
344
|
|
345 @item C-c C-r
|
|
346 @kindex C-c C-r
|
|
347 @cindex /nick
|
|
348 @cindex change name
|
|
349 @cindex nick changing
|
|
350 @cindex rename yourself
|
|
351 @cindex other name
|
|
352 This changes your nick to some other name. Your nick must be unique
|
|
353 across the network. Most networks don't allow too many nick changes in
|
|
354 quick succession, and have restrictions on the valid characters in nick
|
|
355 names. (Also @code{/nick alex-test})
|
|
356
|
|
357 @item C-c C-w
|
|
358 @kindex C-c C-w
|
|
359 @cindex /whois
|
|
360 @cindex who are these people
|
|
361 @cindex identifying people
|
|
362 @cindex channels other people are on
|
|
363 @cindex what channels people are on
|
|
364 Gives you some basic information about a nick. This often includes what
|
|
365 other channels people are on. (Also @code{/whois fsbot}.)
|
|
366
|
|
367 @item C-c C-q
|
|
368 @kindex C-c C-q
|
|
369 @cindex /query
|
|
370 @cindex starting a private conversation
|
|
371 @cindex one-to-one conversation
|
|
372 @cindex talk privately
|
|
373 @cindex private conversation
|
|
374 @cindex contact one person only
|
|
375 @cindex query a person
|
|
376 Starts a one-to-one conversation with another person on the same
|
|
377 network. A new buffer will be created for this conversation. It works
|
|
378 like a channel with only two members. (Also @code{/query fsbot}.)
|
|
379
|
|
380 @item C-c @key{RET}
|
|
381 @kindex C-c RET
|
|
382 @cindex /msg
|
|
383 @cindex single message
|
|
384 @cindex message sending
|
|
385 This sends a single message to a nick. Like with @kbd{C-c C-q}, a new
|
|
386 buffer is created, where the response from the other party will show
|
|
387 up. (Also @code{/msg nickserv identify secret}.)
|
|
388
|
|
389 @item C-c C-x
|
|
390 @kindex C-c C-x
|
|
391 @cindex /quit
|
|
392 @cindex quit
|
|
393 @cindex disconnect
|
|
394 @cindex kill connection
|
|
395 @cindex connection end
|
|
396 @cindex part all channels
|
|
397 @cindex end connection
|
|
398 @cindex server buffer killing
|
|
399 @cindex reason for quitting
|
|
400 This disconnects from the server and parts all channels. You can
|
|
401 optionally provide a reason for quitting. When you kill the server
|
|
402 buffer, you automatically quit the server and part all channels. (Also
|
|
403 @code{/quit ZZZzzz...}.)
|
|
404 @end table
|
|
405
|
|
406 @node Useful IRC commands, Configuration, rcirc commands, Reference
|
|
407 @section Useful IRC commands
|
|
408 @cindex irc commands
|
|
409 @cindex commands
|
|
410
|
|
411 As mentioned, if a command isn't known by @code{rcirc}, it will simply be sent
|
|
412 along to the server. Some such commands are available on nearly all IRC
|
|
413 servers, such as:
|
|
414
|
|
415 @table @code
|
|
416 @item /away
|
|
417 @cindex /away
|
|
418 @cindex away status
|
|
419 @cindex pause status
|
|
420 @cindex unavailable status
|
|
421 @cindex set away status
|
|
422 This sets your status as ``being away'' if you provide a reason, or sets
|
|
423 your status as ``being back'' if you do not. People can use the
|
|
424 @kbd{C-c C-w} command to check your status. Example: @code{/away food}.
|
|
425 @end table
|
|
426
|
|
427 @cindex irc resources
|
|
428 @cindex help about irc
|
|
429 Typical IRC servers implement many more commands. You can read more
|
|
430 about the fantastic world of IRC online at
|
|
431 @uref{http://www.irchelp.org/, the Internet Relay Chat (IRC) help
|
|
432 archive}.
|
|
433
|
|
434 @node Configuration, , Useful IRC commands, Reference
|
|
435 @section Configuration
|
|
436 @cindex configuring rcirc
|
|
437
|
|
438 These are some variables you can change to configure @code{rcirc} to your
|
|
439 liking.
|
|
440
|
|
441 @table @code
|
87351
|
442 @item rcirc-server-alist
|
|
443 @vindex rcirc-server-alist
|
|
444 @cindex channels, configuration
|
|
445 @cindex initial channels, configuration
|
|
446 @cindex startup channels, configuration
|
|
447 @cindex servers, configuration
|
|
448 @cindex initial servers, configuration
|
|
449 @cindex startup servers, configuration
|
87353
|
450 This variable contains an alist of servers to connect to by default
|
|
451 and the keywords parameters to use. The keyword parameters are
|
|
452 optional. If you don't provide any, the defaults as documented below
|
|
453 will be used.
|
87351
|
454
|
87353
|
455 The most important parameter is the @code{:channels} parameter. It
|
87351
|
456 controls which channels you will join by default as soon as you are
|
|
457 connected to the server.
|
|
458
|
|
459 Here's an example of how to set it:
|
84311
|
460
|
87351
|
461 @example
|
|
462 (add-to-list 'rcirc-server-alist
|
|
463 '("otherworlders.org"
|
|
464 :channels ("#FUDGE" "#game-design")))
|
|
465 @end example
|
|
466
|
|
467 By default you will be connected to the @code{rcirc} support channel:
|
|
468 @code{#rcirc} on @code{irc.freenode.net}.
|
|
469
|
|
470 @table @code
|
|
471 @item :nick
|
|
472 This overrides @code{rcirc-default-nick}.
|
|
473
|
|
474 @item :port
|
|
475 This overrides @code{rcirc-default-port}.
|
|
476
|
|
477 @item :user-name
|
|
478 This overrides @code{rcirc-default-user-name}.
|
|
479
|
|
480 @item :full-name
|
|
481 This overrides @code{rcirc-default-full-name}.
|
|
482
|
|
483 @item :channels
|
87353
|
484 This describes which channels to join when connecting to the server.
|
|
485 If absent, no channels will be connected to automatically.
|
87351
|
486
|
|
487 @end table
|
84311
|
488
|
|
489 @item rcirc-default-nick
|
|
490 @vindex rcirc-default-nick
|
87353
|
491 This variable is used for the default nick. It defaults to the login
|
87351
|
492 name returned by @code{user-login-name}.
|
84311
|
493
|
|
494 @example
|
87351
|
495 (setq rcirc-default-nick "kensanata")
|
84311
|
496 @end example
|
|
497
|
87351
|
498 @item rcirc-default-port
|
|
499 @vindex rcirc-default-port
|
|
500 @cindex port
|
87353
|
501 This variable contains the default port to connect to. It is 6667 by
|
87351
|
502 default and rarely needs changing.
|
|
503
|
|
504 @item rcirc-default-user-name
|
|
505 @vindex rcirc-default-user-name
|
|
506 @cindex user name
|
87353
|
507 This variable contains the default user name to report to the server.
|
|
508 It defaults to the login name returned by @code{user-login-name}, just
|
|
509 like @code{rcirc-default-nick}.
|
87351
|
510
|
|
511 @item rcirc-default-user-full-name
|
84311
|
512 @vindex rcirc-default-user-full-name
|
|
513 @cindex full name
|
|
514 @cindex real name
|
|
515 @cindex surname
|
87353
|
516 This variable is used to set your ``real name'' on IRC. It defaults
|
|
517 to the name returned by @code{user-full-name}. If you want to hide
|
|
518 your full name, you might want to set it to some pseudonym.
|
84311
|
519
|
|
520 @example
|
|
521 (setq rcirc-default-user-full-name "Curious Minds Want To Know")
|
|
522 @end example
|
|
523
|
87351
|
524 @item rcirc-authinfo
|
84311
|
525 @vindex rcirc-authinfo
|
|
526 @cindex authentification
|
|
527 @cindex identification
|
|
528 @cindex nickserv
|
|
529 @cindex login
|
87351
|
530 This variable is an alist used to automatically identify yourself on
|
87353
|
531 networks. Each sublist starts with a regular expression that is
|
|
532 compared to the server address you're connecting to. The second
|
|
533 element in the list is a symbol representing the method to use,
|
|
534 followed by the arguments this method requires.
|
84311
|
535
|
|
536 Here is an example to illustrate how you would set it:
|
|
537
|
|
538 @example
|
|
539 (setq rcirc-authinfo
|
|
540 '(("freenode" nickserv "bob" "p455w0rd")
|
|
541 ("freenode" chanserv "bob" "#bobland" "passwd99")
|
|
542 ("bitlbee" bitlbee "robert" "sekrit")))
|
|
543 @end example
|
|
544
|
|
545 And here are the valid method symbols and the arguments they require:
|
|
546
|
|
547 @table @code
|
|
548 @item nickserv
|
|
549 @cindex nickserv authentification
|
|
550 Use this symbol if you need to identify yourself as follows when
|
|
551 connecting to a network: @code{/msg nickserv identify secret}. The
|
|
552 necessary arguments are the nickname you want to use this for, and the
|
|
553 password to use.
|
|
554
|
|
555 Before you can use this method, you will have to register your nick and
|
|
556 pick a password for it. Contact @code{nickserv} and check out the
|
|
557 details. (Using @code{/msg nickserv help}, for example.)
|
|
558
|
|
559 @item chanserv
|
|
560 @cindex chanserv authentification
|
|
561 Use this symbol if you need to identify yourself as follows if you want
|
|
562 to join a particular channel: @code{/msg chanserv identify #underground
|
|
563 secret}. The necessary arguments are the nickname and channel you want
|
|
564 to use this for, and the password to use.
|
|
565
|
|
566 Before you can use this method, a channel contact must tell you about
|
|
567 the password to use. Contact @code{chanserv} and check out the details.
|
|
568 (Using @code{/msg chanserv help}, for example.)
|
|
569
|
|
570 @item bitlbee
|
|
571 @cindex bitlbee authentification
|
|
572 Use this symbol if you need to identify yourself in the Bitlbee channel
|
|
573 as follows: @code{identify secret}. The necessary arguments are the
|
|
574 nickname you want to use this for, and the password to use.
|
|
575
|
|
576 @cindex gateway to other IM services
|
|
577 @cindex instant messaging, other services
|
|
578 @cindex Jabber
|
|
579 @cindex AIM
|
|
580 @cindex ICQ
|
|
581 @cindex MSN
|
|
582 @cindex Yahoo!
|
|
583 Bitlbee acts like an IRC server, but in fact it is a gateway to a lot of
|
|
584 other instant messaging services. You can either install Bitlbee
|
|
585 locally or use a public Bitlbee server. There, you need to create an
|
|
586 account with a password. This is the nick and password you need to
|
|
587 provide for the bitlbee authentification method.
|
|
588
|
|
589 Later, you will tell Bitlbee about your accounts and passwords on all
|
|
590 the other instant messaging services, and Bitlbee will log you in. All
|
|
591 @code{rcirc} needs to know, is the login to your Bitlbee account. Don't
|
|
592 confuse the Bitlbee account with all the other accounts.
|
87344
|
593
|
84311
|
594 @end table
|
|
595
|
87351
|
596 @end table
|
|
597
|
87344
|
598 @node Fighting Information Overload, Hacking and Tweaking, Reference, Top
|
|
599 @chapter Fighting Information Overload
|
|
600 @cindex information overload
|
|
601
|
|
602 This is the section of the manual that caters to the busy person
|
87353
|
603 online. There are support channels with several hundred people in
|
|
604 them. Trying to follow a conversation in these channels can be a
|
|
605 daunting task. This chapters tells you how @code{rcirc} can help.
|
87344
|
606
|
|
607 @menu
|
|
608 * Channels::
|
|
609 * People::
|
|
610 * Keywords::
|
|
611 * Notices::
|
|
612 @end menu
|
|
613
|
|
614 @node Channels, People, Fighting Information Overload, Fighting Information Overload
|
|
615 @section Channels
|
|
616 @cindex channels
|
|
617 @cindex modeline
|
|
618
|
87353
|
619 @comment This section copied to the Getting started with rcirc section
|
84311
|
620 @kindex C-c C-SPC
|
|
621 @vindex rcirc-track-minor-mode
|
|
622 @cindex switching channels
|
|
623 @cindex tracking activity
|
|
624 @cindex active channel
|
|
625 @cindex abbreviated channel names
|
|
626 @cindex modeline tracks activity
|
|
627 Most people want a notification when something is said on a channel they
|
|
628 have joined, particularly if they have been addressed directly. There
|
|
629 is a global minor mode that will do this kind of tracking for you. All
|
|
630 you need to do is switch it on using @kbd{M-x rcirc-track-minor-mode}.
|
|
631 To make this permanent, add the following to your init file:
|
|
632
|
|
633 @example
|
|
634 (rcirc-track-minor-mode 1)
|
|
635 @end example
|
|
636
|
|
637 When other people say things in buffers that are currently buried (no
|
|
638 window is showing them), the mode line will now show you the abbreviated
|
|
639 channel or nick name. Use @kbd{C-c C-@key{SPC}} to switch to these
|
|
640 buffers.
|
|
641
|
|
642 @vindex rcirc-mode-hook
|
|
643 If you prefer not to load @code{rcirc} immediately, you can delay the
|
|
644 activation of this mode:
|
|
645
|
|
646 @example
|
|
647 (add-hook 'rcirc-mode-hook
|
|
648 (lambda ()
|
|
649 (rcirc-track-minor-mode 1)))
|
|
650 @end example
|
|
651
|
87344
|
652 @cindex busy channels
|
|
653 If you've joined a very active support channel, tracking activity is
|
87353
|
654 no longer useful. The channel will be always active. Switching to
|
87344
|
655 active channels using @kbd{C-c C-@key{SPC}} no longer works as
|
|
656 expected.
|
|
657
|
|
658 @kindex C-c C-l
|
|
659 @cindex low priority channels
|
102151
|
660 The solution is to mark this channel as a low priority channel.
|
87353
|
661 Use @kbd{C-c C-l} to make the current channel a low-priority channel.
|
|
662 Low priority channels have the modeline indicator ``LowPri''.
|
87344
|
663 @kbd{C-c C-@key{SPC}} will not switch to low priority channels unless
|
|
664 you use the @kbd{C-u} prefix.
|
|
665
|
|
666 @kindex C-c TAB
|
|
667 @cindex ignored channels
|
|
668 If you prefer a channel to never show up in the modeline, then you
|
87353
|
669 have to ignore it. Use @kbd{C-c @key{TAB}} to ignore the current
|
87344
|
670 channel.
|
|
671
|
|
672 @node People, Keywords, Channels, Fighting Information Overload
|
|
673 @section People
|
|
674 @cindex people, how to ignore
|
|
675 @cindex nicks, how to ignore
|
|
676 @cindex friends
|
|
677 @cindex buddies
|
|
678 @cindex trolls
|
|
679
|
|
680 The most important command available to the discerning IRC user is
|
87353
|
681 @code{/ignore}. It's the big equalizer online: If people aggravate
|
87344
|
682 you, just ignore them.
|
|
683
|
|
684 This is of course a crude all-or-nothing solution. Fear not,
|
|
685 @code{rcirc} offers alternatives: You can ``brighten'' your buddies
|
|
686 and ``dim'' certain other nicks that you don't want to ignore
|
|
687 altogether.
|
|
688
|
|
689 @table @code
|
|
690 @item /ignore
|
|
691 @cindex /ignore
|
|
692 @cindex ignoring other people
|
|
693 @cindex trolls, ignoring
|
|
694 @cindex hide some posts
|
|
695 @cindex idiots online
|
|
696 This command toggles the ignore status of a nick, if you provide one.
|
|
697 If you don't provide a nick, the command lists all the nicks you are
|
|
698 ignoring. All messages by ignored nicks are---you guessed it---ignored.
|
|
699 Since only ``operators'' can kick people from channels, the
|
|
700 ignore command is often the only way to deal with some of the more
|
87357
|
701 obnoxious fellows online. Example: @code{/ignore rudybot}.
|
87344
|
702
|
|
703 @item /bright
|
|
704 @cindex /bright
|
|
705 @cindex highlight other people
|
|
706 @cindex friends, highlight
|
|
707 @cindex buddies, highlight
|
|
708 @cindex nicks, highlight
|
|
709 @cindex brighten nicks
|
|
710 This command toggles the bright status of a nick, if you provide one.
|
|
711 If you don't provide a nick, the command lists all the ``brightened''
|
|
712 nicks. All messages by brightened nicks are---you guessed
|
87353
|
713 it---brightened. Use this for your friends. Example: @code{/bright
|
87344
|
714 rcy}.
|
|
715
|
|
716 @item /dim
|
|
717 @cindex /dim
|
|
718 @cindex soft-ignore other people
|
|
719 @cindex obnoxious people online
|
|
720 @cindex rabble online
|
|
721 This command toggles the dim status of a nick, if you provide one. If
|
|
722 you don't provide a nick, the command lists all the ``dimmed'' nicks.
|
|
723 All messages by dimmed nicks are---you guessed it---dimmed. Use this
|
87353
|
724 for boring people and bots. If you are tracking channel activity,
|
|
725 messages by dimmed nicks will not register as activity. Example:
|
87344
|
726 @code{/dim fsbot}.
|
|
727 @end table
|
|
728
|
|
729
|
|
730 @node Keywords, Notices, People, Fighting Information Overload
|
|
731 @section Keywords
|
|
732 @cindex keywords
|
|
733
|
|
734 On a busy channel, you might want to ignore all activity (using
|
87353
|
735 @kbd{C-c @key{TAB}}) and just watch for certain keywords. The
|
87344
|
736 following command allows you to highlight certain keywords:
|
|
737
|
|
738 @table @code
|
|
739 @item /keyword
|
|
740 @cindex /keyword
|
|
741 This command toggles the highlighting of a keyword, if you provide
|
87353
|
742 one. If you don't provide a keyword, the current keywords are
|
|
743 listed. Example: @code{/keyword manual}.
|
87344
|
744 @end table
|
|
745
|
|
746 @node Notices, , Keywords, Fighting Information Overload
|
|
747 @section Notices
|
102151
|
748 @cindex part notices, how to omit
|
87344
|
749 @cindex join notices, how to omit
|
|
750 @cindex quit notices, how to omit
|
|
751 @cindex nick notices, how to omit
|
|
752
|
|
753 @kindex C-c C-o
|
|
754 @cindex low priority channels
|
|
755 In busy channels you might not be interested in all the joining,
|
87353
|
756 parting, quitting, and renaming that goes on. You can omit those
|
87344
|
757 notices using @kbd{C-c C-o}.
|
|
758
|
|
759 @vindex rcirc-omit-responses
|
|
760 @cindex away notices, how to omit
|
|
761 You can control which notices get omitted via the
|
87353
|
762 @code{rcirc-omit-responses} variable. Here's an example of how to
|
|
763 omit away messages:
|
87344
|
764
|
|
765 @example
|
|
766 (setq rcirc-omit-responses '("JOIN" "PART" "QUIT" "NICK" "AWAY))
|
|
767 @end example
|
|
768
|
|
769 @vindex rcirc-omit-threshold
|
|
770 Notice that these messages will not be omitted if the nick in question
|
87353
|
771 has recently been active. After all, you don't want to continue a
|
|
772 conversation with somebody who just left. That's why @code{rcirc}
|
87344
|
773 checks recent lines in the buffer to figure out if a nick has been
|
87353
|
774 active and only omits a message if the nick has not been active. The
|
87344
|
775 window @code{rcirc} considers is controlled by the
|
|
776 @code{rcirc-omit-threshold} variable.
|
|
777
|
|
778 @node Hacking and Tweaking, GNU Free Documentation License, Fighting Information Overload, Top
|
84311
|
779 @chapter Hacking and Tweaking
|
|
780 @cindex hacking and tweaking
|
|
781
|
|
782 Here are some examples of stuff you can do to configure @code{rcirc}.
|
|
783
|
|
784 @menu
|
|
785 * Skipping /away messages using handlers::
|
|
786 * Using fly spell mode::
|
|
787 * Scrolling conservatively::
|
|
788 * Changing the time stamp format::
|
|
789 * Defining a new command::
|
|
790 * Reconnecting after you have lost the connection::
|
|
791 @end menu
|
|
792
|
|
793 @node Skipping /away messages using handlers, Using fly spell mode, Hacking and Tweaking, Hacking and Tweaking
|
|
794 @section Skipping @code{/away} messages using handlers
|
|
795 @cindex /away messages
|
|
796
|
|
797 @cindex handlers
|
|
798 @cindex status codes
|
|
799 The IRC protocol specifies how certain events are signaled from server
|
|
800 to client. These events have numbers and are dealt with using so-called
|
|
801 handlers. You can override existing handlers by exploiting the naming
|
|
802 convention adopted for @code{rcirc}.
|
|
803
|
|
804 Here's how to stop @code{rcirc} from printing @code{/away} messages.
|
|
805 Since @code{rcirc} doesn't define a 301 handler, you don't need to
|
|
806 require @code{rcirc} before defining the handler:
|
|
807
|
|
808 @example
|
|
809 (defun rcirc-handler-301 (process cmd sender args)
|
|
810 "/away message handler.")
|
|
811 @end example
|
|
812
|
|
813 @node Using fly spell mode, Scrolling conservatively, Skipping /away messages using handlers, Hacking and Tweaking
|
|
814 @section Using fly spell mode
|
|
815 @cindex fly spell
|
|
816 @cindex spelling
|
|
817 @cindex spell-checking as you type
|
|
818 @cindex automatic spelling
|
|
819 @vindex rcirc-mode-hook
|
|
820
|
|
821 The following code activates Fly Spell Mode
|
|
822 for @code{rcirc} buffers:
|
|
823
|
|
824 @example
|
|
825 (add-hook 'rcirc-mode-hook (lambda ()
|
|
826 (flyspell-mode 1)))
|
|
827 @end example
|
|
828
|
|
829 @xref{Spelling, , Flyspell mode, emacs, The GNU Emacs Manual},
|
|
830 for details.
|
|
831
|
|
832 @node Scrolling conservatively, Changing the time stamp format, Using fly spell mode, Hacking and Tweaking
|
|
833 @section Scrolling conservatively
|
|
834 @cindex input line
|
|
835 @cindex scrolling
|
|
836 @vindex scroll-conservatively
|
|
837 @vindex rcirc-mode-hook
|
|
838
|
|
839 IRC buffers are constantly growing. If you want to see as much as
|
|
840 possible at all times, you would want the prompt at the bottom of the
|
|
841 window when possible. The following snippet uses a local value for
|
|
842 @code{scroll-conservatively} to achieve this:
|
|
843
|
|
844 @example
|
|
845 (add-hook 'rcirc-mode-hook
|
|
846 (lambda ()
|
|
847 (set (make-local-variable 'scroll-conservatively)
|
|
848 8192)))
|
|
849 @end example
|
|
850
|
|
851 @xref{Scrolling, , Scrolling conservatively, emacs, The GNU Emacs
|
|
852 Manual}, for details.
|
|
853
|
|
854 @node Changing the time stamp format, Defining a new command, Scrolling conservatively, Hacking and Tweaking
|
|
855 @section Changing the time stamp format
|
|
856 @cindex time stamp
|
|
857 @cindex date time
|
|
858 @cindex format time stamp
|
|
859 @vindex rcirc-time-format
|
|
860
|
|
861 @code{rcirc-time-format} is the format used for the time stamp. Here's
|
|
862 how to include the date in the time stamp:
|
|
863
|
|
864 @example
|
|
865 (setq rcirc-time-format "%Y-%m-%d %H:%M ")
|
|
866 @end example
|
|
867
|
|
868 @node Defining a new command, Reconnecting after you have lost the connection, Changing the time stamp format, Hacking and Tweaking
|
|
869 @section Defining a new command
|
|
870 @cindex defining commands
|
|
871 @cindex commands, defining
|
|
872 @cindex new commands, defining
|
|
873
|
|
874 Here's a simple new command, @code{/sv}. With it, you can boast about
|
|
875 your IRC client. It shows how you can use @code{defun-rcirc-command} to
|
|
876 define new commands.
|
|
877
|
|
878 We're waiting for the definition of this command until @code{rcirc} is loaded
|
|
879 because @code{defun-rcirc-command} is not yet available, and without
|
|
880 @code{rcirc} loaded, the command wouldn't do us much good anyway.
|
|
881
|
|
882 @smallexample
|
|
883 (eval-after-load 'rcirc
|
|
884 '(defun-rcirc-command sv (arg)
|
|
885 "Boast about rcirc."
|
|
886 (interactive "i")
|
|
887 (rcirc-send-message process target
|
|
888 (concat "I use " rcirc-id-string))))
|
|
889 @end smallexample
|
|
890
|
|
891 @node Reconnecting after you have lost the connection, , Defining a new command, Hacking and Tweaking
|
|
892 @section Reconnecting after you have lost the connection
|
|
893 @cindex reconnecting
|
|
894 @cindex disconnecting servers, reconnecting
|
|
895
|
|
896 If you're chatting from a laptop, then you might be familiar with this
|
|
897 problem: When your laptop falls asleep and wakes up later, your IRC
|
96374
|
898 client doesn't realize that it has been disconnected. It takes several
|
84311
|
899 minutes until the client decides that the connection has in fact been
|
|
900 lost. The simple solution is to use @kbd{M-x rcirc}. The problem is
|
|
901 that this opens an @emph{additional} connection, so you'll have two
|
|
902 copies of every channel buffer --- one dead and one live.
|
|
903
|
|
904 The real answer, therefore, is a @code{/reconnect} command:
|
|
905
|
|
906 @smallexample
|
|
907 (eval-after-load 'rcirc
|
|
908 '(defun-rcirc-command reconnect (arg)
|
|
909 "Reconnect the server process."
|
|
910 (interactive "i")
|
|
911 (unless process
|
|
912 (error "There's no process for this target"))
|
|
913 (let* ((server (car (process-contact process)))
|
|
914 (port (process-contact process :service))
|
|
915 (nick (rcirc-nick process))
|
|
916 channels query-buffers)
|
|
917 (dolist (buf (buffer-list))
|
|
918 (with-current-buffer buf
|
|
919 (when (eq process (rcirc-buffer-process))
|
|
920 (remove-hook 'change-major-mode-hook
|
|
921 'rcirc-change-major-mode-hook)
|
|
922 (if (rcirc-channel-p rcirc-target)
|
|
923 (setq channels (cons rcirc-target channels))
|
|
924 (setq query-buffers (cons buf query-buffers))))))
|
|
925 (delete-process process)
|
|
926 (rcirc-connect server port nick
|
|
927 rcirc-default-user-name
|
|
928 rcirc-default-user-full-name
|
|
929 channels))))
|
|
930 @end smallexample
|
|
931
|
|
932 @node GNU Free Documentation License, Key Index, Hacking and Tweaking, Top
|
|
933 @appendix GNU Free Documentation License
|
|
934 @include doclicense.texi
|
|
935
|
|
936
|
|
937 @node Key Index, Variable Index, GNU Free Documentation License, Top
|
|
938 @unnumbered Key Index
|
|
939 @printindex ky
|
|
940
|
|
941 @node Variable Index, Index, Key Index, Top
|
|
942 @unnumbered Variable Index
|
|
943 @printindex vr
|
|
944
|
|
945 @node Index, , Variable Index, Top
|
|
946 @unnumbered Index
|
|
947 @printindex cp
|
|
948
|
|
949 @bye
|
|
950
|
|
951 @ignore
|
|
952 arch-tag: 2589e562-3843-4ffc-8c2f-477cbad57c01
|
|
953 @end ignore
|