1 Waste time on IRC using ZenIRC
3 With ZenIRC you can connect to IRC servers and waste time.
4 ZenIRC runs under Emacs-18, Emacs-19, Epoch and XEmacs.
5 This manual describes ZenIRC version 3.0.
11 If ZenIRC is installed properly, starting ZenIRC without any
12 extensions is fairly easy--you just type `M-x zenirc' in your Emacs.
14 If ZenIRC isn't installed at all, you probably won't be able to read
15 this manual. Turn to the "INSTALL" file which comes with the
16 distribution of ZenIRC-3.0.
18 If ZenIRC is installed but you still can't start it, there's a big
19 chance that you can't connect to the default server.
22 \f 1.1--Finding an IRC server and connecting to it.
25 There's only one default server for ZenIRC, irc.stealth.net. This
26 server might, of course, be down or unreachable. If this is so, you
27 need to connect to another server for ZenIRC to work.
29 ZenIRC comes with a list of servers maintained by Doug McLaren. The
30 list is from 1996-04-15 so it might not be correct. This list is
31 posted to the Usenet group alt.irc and alt.irc.questions twice a
32 month and a copy of it can be found via anonymous FTP at
33 ftp.comco.com:/pub/irc/server-list-current
36 \f 1.1.1--Changing default server (and attributes).
39 There's three different ways to change your default server. They're
40 listed below in the prefered order. If you use example 1.1.1.1 or
41 1.1.1.2 you'll get some redundancy example 1.1.1.3 can't give you.
42 1.1.1.3 is good if you want to start right away and set things up
46 \f 1.1.1.1--The $IRCSERVER way.
49 By setting your environment variable $IRCSERVER you also change the
50 default servers for most other IRC clients around. How to set this
51 variable is different in different shells.
53 sh, bash, zsh; IRCSERVER="some.server";export IRCSERVER
54 csh, tcsh; setenv IRCSERVER "some.server"
56 ZenIRC uses this variable just like ircII. The correct syntax is;
58 server1[:port1[:password1[:nickname1[:username1]]]] server2[:port2...
60 To set your default server to irc.stealth.net with the nickname `ben'
61 and your secondary server to irc.funet.fi on port 6666 with the
62 nickname Vesa you would set $IRCSERVER to;
64 irc.stealth.net:::ben: irc.funet.fi:6666::Vesa:
67 \f 1.1.1.2--The zenirc-server-alist way.
70 By setting the ZenIRC variable zenirc-server-alist you can do the same
71 thing as with $IRCSERVER, this way you won't have the same defaults
72 for other clients though.
74 To do exactly as the example in 1.1.1.1, you should set
75 zenirc-server-alist as follows;
77 (setq zenirc-server-alist
78 '(("irc.stealth.net" nil nil "ben" nil)
79 ("irc.funet.fi" 6666 nil "Vesa" nil)))
82 \f 1.1.1.3--Using ordinary variables.
85 The only thing you actually _need_ to set is zenirc-server-default.
87 To set your default server, use zenirc-server-default;
89 (setq zenirc-server-default "irc.stealth.net")
91 To set your default nickname, use zenric-nick-default;
93 (setq zenirc-nick-default "ben")
95 To set your default password, use zenric-password-default;
97 (setq zenirc-password-default "mostly not used")
99 To set your default port, use zenirc-port-default;
101 (setq zenirc-port-default 6667)
103 To set your default username, use zenirc-user-login-name-default;
105 (setq zenirc-user-login-name-default "oedipus rpc.rexd")
108 \f 1.1.2--Those servers are all down.
111 If you don't want to restart Emacs and ZenIRC to try a new server,
112 type `M-x zenirc-select' and you will be asked a few questions.
115 \f 1.1.3--The server doesn't let me on?!
118 The IRC administrators might not want people from everywhere to
119 connect to his server. I'd recomend you to use an as closeby server as
120 possible. The list of servers lists the server by country, the best
121 shot would be to use one as close to you as possible.
123 There's also a possiblity that the admin has banned your domain. If
124 this is true, talk to your system administrator about it.
126 Some servers won't let you connect if your system isn't running an
127 IDENT service. This breaks the RFC for IDENT so be sure to tell the
128 administrator of the server about this idiocy, then go on and pick a
132 \f 2--Using ZenIRC to waste time.
135 Once you've conected to a server, Emacs will enter ZenIRC
136 major-mode. This mode parses information from the server and shows it
137 to you in different ways, it also give you a nice interface to send
138 things to the server. ZenIRCs major-mode also understands CTCP and
139 parts of the DCC protocol.
142 \f 2.1--What goes on in the background?
145 Lots of things. If you don't know much elisp and just want to use the
146 client you couldn't be less bothered actually. If you really are
147 interested in the internals of ZenIRC you should join one or more of
148 the ZenIRC mailinglists, read the source and play around a little.
149 Changing small things and adding some small nifty hooks are pretty
150 trivial though, read more about that in SECTION and SECTION.
153 \f 2.1.1--Communicating with the server.
156 Sending stuff to the server is done by hitting return (^M). ZenIRC
157 parses the things you send to the server in two different ways,
158 depending on the first character you type. With a leading "/" (you can
159 change this by setting zenirc-commandchar) ZenIRC parses your line as
160 a command. Without the leading "/" ZenIRC sends your line as a message
161 to your current victim, this is done with PRIVMSG as described in
164 Example, if the channel #se-opers is your zenric-current-victim and
169 the clients on channel #se-opers will see your message. Use the /query
170 command to change zenirc-current-victim. :LINK:
172 On the other hand, if you type;
176 you will part the channel. Look in 2.2 for an extensive list of all
177 commands and how to use them.
180 \f 2.1.2--Server communicating with you.
182 ZenIRC parses all the information the servers sends to you in one way
183 or the other. On a few occasions ZenIRC might lack the information on
184 how to parse a certain thing, this is almost considered a bug (use M-x
185 zenirc-bug to report this behaviour).
187 To display the information, ZenIRC uses language catalogs. The default
188 catalog is English, but this can be changed easily. Writing your own
189 catalog is trivial and we'd love you if you wrote your own catalog and
190 mailed it in to the developers.
192 There's a lot of different variables you can change, and hooks to play
193 with if you feel adventureous. You can, for example, ignore people,
194 make ZenIRC beep when something special happens, have timestamps on
195 special messages and so forth. The variables are described in SECTION
196 and the hooks are described in SECTION.
198 `zenirc.el' only contains the most important features, some very nice
199 features are placed in their own files. `zenirc-fill.el', for example,
200 fills certain messages for you so Emacs doesn't have to wrap long
201 lines in an ugly way. Read more about scripts in SECTION.
204 \f 2.2--Commands in ZenIRC major-mode.
207 As already described, ZenIRC pareses lines with a leading "/" as a
208 command. Most of the commands are sent right off to the server, some
209 commands are ZenIRC specific though.
212 \f 3.2.1--Non ZenIRC specific commands.
215 A list of these commands can be found in RFC1459, this list is just a
216 brief description on how to use different commands. Go read RFC1459 if
217 you want to learn really nifty stuff.
219 Things inside []'s are optional. If the optional argument is a server,
220 using a nickname will list information about the server that nickname
227 Stop wasting time, with optional comment.
229 /join channel[,channel] [key[,key]]
230 Join one or more comma separated channels with given optional keys.
231 zenirc-current-victim is set to the last joined channel.
233 /part channel[,channel] [comment]
234 Part one or more comma separated channels, with optional comment.
235 If you part your zenirc-current-victim, it is set to 'nil'.
237 /mode nickname [mode]
238 Check or change modes for a given nickname. See RFC1459 for an
239 extensive list of modes.
241 /mode channel [mode [person]]
242 Check or change modes for a channel, or the mode of a nickname
243 on a channel. See RFC1459 for an extensive list of modes.
245 /topic channel [topic]
246 Check or change topic of a certain channel.
248 /names channel[,channel]
249 See who's on one or more comma separated channels.
251 /list [channel[,channel] [server]]
252 Lists all, one or a comma separated list of channels. With
253 given server it lists channels from that servers view.
255 /invite nickname channel
256 Invite person to given channel name.
258 /kick channel nickname [comment]
259 Kick person on given channel with an optional comment.
262 Returns version of current or given server.
264 /stats query [server]
265 Returns information about that server (go read RFC1459).
266 Read SECTION for an extensive list of query types.
268 /links [[<remote server>] <server mask>]
269 Lists all links or links matching a given mask, with optional
270 <remote server> it lists links seen from that server.
273 Returns time from current or given server.
276 Returns the server route to given nickname.
279 Returns information on what's connected to the current server,
280 or a route to given server as well as things connected to it.
283 List administrative information for current or given server.
286 List version, compile date, patchlevel, starttime and other
287 various information about current or given server.
289 /privmsg nickname/channel text
290 Send text as a PRIVMSG to nickname/channel.
292 /notice nickname/channel text
293 Send text as a NOTICE to nickname/channel.
295 /who [<nick/user/server>mask [o]]
296 List short information about everyone on IRC or given
297 nickname, username or servername. With optional [o] argument
298 it lists person with their IRC operator flag set.
299 This command takes UNIX like masks ("?" and "*").
301 /whois [server] nickmask[,nickmask]
302 List long information about given nickname, with optional
303 server argument it lists information as seen from that server.
305 /whowas nickname [count [server]]
306 List long information about nickname not currently on the
307 connected servers but still in the WHOWAS database. With given
308 argument count, list that many old entries from the database.
309 With given server argument, list information as seen from that
313 Remove away message, with optional argument it sets a new
314 away message instead.
317 List users logged in to current server or another server.
319 /summon user [server]
320 Invite a user logged in to current server or another server.
322 /userhost nickname [nickname [nickname]]
323 Returns short information about a whitespace separated list of
326 /ison nickname [nickname [nickname]]
327 Returns wheter given, whitespace separated, nicknames are
331 \f 2.2.2--ZenIRC specific commands.
334 /action nickname/channel text
335 Send text as a CTCP ACTION to given nickname/channel. To send
336 text to more then one nickname/channel, use a comma separated
340 Change your commandchar to char, for example;
344 A good example is then;
348 /ctcp nickname/channel <CTCP QUERY>
349 Send <CTCP QUERY> to a comma separated list of nicknames and
353 Change your language catalog to given language. Read SECTION
354 for more information about existing catalogs.
358 A shortcut for "/privmsg"
361 Send text as a CTCP ACTION to zenirc-current-victim.
363 /ping nickname/channel
364 Send CTCP PING to a comma separated list of nicknames and
367 /query [nickname/channel]
368 Show or change zenirc-current-victim to a comma separated list
369 of nicknames and channels.
372 Sends text directly to the server. You might need this as
373 ZenIRC uses the same name as the server on some commands,
376 /quote ping server [<remote server>]
377 Ping current server, with given <remote server>
378 argument it pings the remote server instead.
380 /server [server [port [nickname]]]
381 Connect to a server in a new ZenIRC-buffer.
382 This is bound to zenirc-select. If no options are used, ZenIRC
383 will ask you some questions.
386 \f 2.3--Keybindings in ZenIRC major-mode.
389 Hitting certain key combinations in ZenIRC will result in ZenIRC doing
390 stuff you didn't think it would. This is really nifty, when you
391 realize what actually happens HELLO PER
396 Hitting return ("\n" or "^M") will send the current line to the
397 server. If you're looking through the backlog and hit return, ZenIRC
398 will throw you to the end of the buffer.
400 Hitting ; or : at the beginning of the line will help you while
401 communicating to others then your zenirc-current-victim. For example;
407 Hitting ";" now will result in ZenIRC adding "/msg ace95 " at the
408 beginning of the line.
409 Hitting ":" will result in ZenIRC adding "/msg omnion " at the
410 beginning of the line.
412 By using a few of the scripts which comes with ZenIRC you can get
413 tab-completion and a shell like history feature, more about that in
417 \f 3--It's working, now I want it to Look Good and Feel Good.
420 The default look of ZenIRC is pretty sparse.