Source

zenirc / doc / zenirc.texi

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
\def\line{\hbox to\hsize}
\def\centerline#1{\line{\hss#1\hss}}
\input psfig
\input texinfo   @c -*-texinfo-*-
@c ----------------------------------------------------------------------
@c Time-stamp: <Fri Oct 11 1996 23:10:26 Stardate: [-31]8254.61 hwloidl>
@c
@c Hacked TeXInfo file (based on the zenirc.ascii file in version 2.107)
@c ----------------------------------------------------------------------

@c %**start of header
@setfilename zenirc.info
@settitle ZenIRC Info Pages
@c %**end of header

@comment New index for options
@c @defindex op
@c @syncodeindex op cp

@titlepage
@sp 10
@comment The title is printed in a large font.
@center @titlefont{ZenIRC Info Pages}
@center Version 2.107
@sp 1
@center October 1996
@sp 5
@c @center Hans-Wolfgang Loidl
@c @center @t{hwloidl@@dcs.gla.ac.uk}
@c The following two commands start the copyright page.
@page
@end titlepage

@c ----------------------------------------------------------------------

@ifinfo
@node   Top, Introduction, (dir), (dir)
@comment  node-name,  next,  previous,  up
@top ZenIRC Info Pages
@end ifinfo

Waste time on IRC using ZenIRC

With ZenIRC you can connect to IRC servers and waste time.
ZenIRC runs under Emacs-18, Emacs-19, Epoch and Xemacs.
This manual describes ZenIRC version 3.0.

@menu
* Introduction::                
* Using ZenIRC to waste time.::  
* It's working::                
* Function Index::              

 --- The Detailed Node Listing ---

Introduction

* Finding an IRC server and connecting to it.::  

Finding an IRC server and connecting to it.

* Changing default server (and attributes).::  
* Those servers are all down.::  
* The server doesn't let me on?!::  

Changing default server (and attributes).

* The $IRCSERVER way.::         
* The zenirc-server-alist way.::  
* Using ordinary variables.::   

Using ZenIRC to waste time.

* What goes on in the background?	::  
* Commands in ZenIRC major-mode.::  
* Keybindings in ZenIRC major-mode.::  

What goes on in the background?	

* Communicating with the server.::  
* Server communicating with you.::  

Commands in ZenIRC major-mode.

* Non ZenIRC specific commands.::  
* ZenIRC specific commands.::   
@end menu

@node Introduction, Using ZenIRC to waste time., Top, Top
@comment  node-name,  next,  previous,  up
@chapter Introduction



If ZenIRC is installed properly, starting ZenIRC without any
extensions is fairly easy--you just type `M-x zenirc' in your Emacs.

If ZenIRC isn't installed at all, you probably won't be able to read
this manual. Turn to the "INSTALL" file which comes with the
distribution of ZenIRC-3.0.

If ZenIRC is installed but you still can't start it, there's a big
chance that you can't connect to the default server.


@menu
* Finding an IRC server and connecting to it.::  
@end menu

@node Finding an IRC server and connecting to it.,  , Introduction, Introduction
@comment  node-name,  next,  previous,  up
@section Finding an IRC server and connecting to it.



There's only one default server for ZenIRC, irc.stealth.net. This
server might, of course, be down or unreachable. If this is so, you
need to connect to another server for ZenIRC to work.

ZenIRC comes with a list of servers maintained by Doug McLaren. The
list is from 1996-04-15 so it might not be correct. This list is
posted to the Usenet group alt.irc and alt.irc.questions twice a
month and a copy of it can be found via anonymous FTP at
 ftp.comco.com:/pub/irc/server-list-current


@menu
* Changing default server (and attributes).::  
* Those servers are all down.::  
* The server doesn't let me on?!::  
@end menu

@node Changing default server (and attributes)., Those servers are all down., Finding an IRC server and connecting to it., Finding an IRC server and connecting to it.
@comment  node-name,  next,  previous,  up
@subsection Changing default server (and attributes).



There's three different ways to change your default server. They're
listed below in the prefered order. If you use example 1.1.1.1 or
1.1.1.2 you'll get some redundancy example 1.1.1.3 can't give you.
1.1.1.3 is good if you want to start right away and set things up
later on in life.


@menu
* The $IRCSERVER way.::         
* The zenirc-server-alist way.::  
* Using ordinary variables.::   
@end menu

@node The $IRCSERVER way., The zenirc-server-alist way., Changing default server (and attributes)., Changing default server (and attributes).
@comment  node-name,  next,  previous,  up
@subsubsection The $IRCSERVER way.



By setting your environment variable $IRCSERVER you also change the
default servers for most other IRC clients around. How to set this
variable is different in different shells. 

	sh, bash, zsh;	IRCSERVER="some.server";export IRCSERVER
	csh, tcsh;	setenv IRCSERVER "some.server"

ZenIRC uses this variable just like ircII. The correct syntax is;

	server1[:port1[:password1[:nickname1[:username1]]]] server2[:port2...

To set your default server to irc.stealth.net with the nickname `ben'
and your secondary server to irc.funet.fi on port 6666 with the
nickname Vesa you would set $IRCSERVER to;

	irc.stealth.net:::ben: irc.funet.fi:6666::Vesa:


@node The zenirc-server-alist way., Using ordinary variables., The $IRCSERVER way., Changing default server (and attributes).
@comment  node-name,  next,  previous,  up
@subsubsection The zenirc-server-alist way.



By setting the ZenIRC variable zenirc-server-alist you can do the same
thing as with $IRCSERVER, this way you won't have the same defaults
for other clients though.

To do exactly as the example in 1.1.1.1, you should set
zenirc-server-alist as follows;

@example
	(setq zenirc-server-alist 
	  '(("irc.stealth.net" nil nil "ben" nil)
	    ("irc.funet.fi" 6666 nil "Vesa" nil)))
@end example

	
@node Using ordinary variables.,  , The zenirc-server-alist way., Changing default server (and attributes).
@comment  node-name,  next,  previous,  up
@subsubsection Using ordinary variables.



The only thing you actually _need_ to set is zenirc-server-default.

To set your default server, use zenirc-server-default;

@example
	(setq zenirc-server-default "irc.stealth.net")
@end example

To set your default nickname, use zenric-nick-default;

@example
	(setq zenirc-nick-default "ben")
@end example

To set your default password, use zenric-password-default;

@example
	(setq zenirc-password-default "mostly not used")
@end example

To set your default port, use zenirc-port-default;

@example
	(setq zenirc-port-default 6667)
@end example

To set your default username, use zenirc-user-login-name-default;
	
@example
	(setq zenirc-user-login-name-default "oedipus rpc.rexd")
@end example


@node Those servers are all down., The server doesn't let me on?!, Changing default server (and attributes)., Finding an IRC server and connecting to it.
@comment  node-name,  next,  previous,  up
@subsection Those servers are all down.



If you don't want to restart Emacs and ZenIRC to try a new server,
type `M-x zenirc-select' and you will be asked a few questions.


@node The server doesn't let me on?!,  , Those servers are all down., Finding an IRC server and connecting to it.
@comment  node-name,  next,  previous,  up
@subsection The server doesn't let me on?!



The IRC administrators might not want people from everywhere to
connect to his server. I'd recomend you to use an as closeby server as
possible. The list of servers lists the server by country, the best
shot would be to use one as close to you as possible.

There's also a possiblity that the admin has banned your domain. If
this is true, talk to your system administrator about it.

Some servers won't let you connect if your system isn't running an
IDENT service. This breaks the RFC for IDENT so be sure to tell the
administrator of the server about this idiocy, then go on and pick a
better server.


@node Using ZenIRC to waste time., It's working, Introduction, Top
@comment  node-name,  next,  previous,  up
@chapter Using ZenIRC to waste time.



Once you've conected to a server, Emacs will enter ZenIRC
major-mode. This mode parses information from the server and shows it
to you in different ways, it also give you a nice interface to send
things to the server. ZenIRCs major-mode also understands CTCP and
parts of the DCC protocol.


@menu
* What goes on in the background?	::  
* Commands in ZenIRC major-mode.::  
* Keybindings in ZenIRC major-mode.::  
@end menu

@node What goes on in the background?	, Commands in ZenIRC major-mode., Using ZenIRC to waste time., Using ZenIRC to waste time.
@comment  node-name,  next,  previous,  up
@section What goes on in the background?	



Lots of things. If you don't know much elisp and just want to use the
client you couldn't be less bothered actually. If you really are
interested in the internals of ZenIRC you should join one or more of
the ZenIRC mailinglists, read the source and play around a little.
Changing small things and adding some small nifty hooks are pretty
trivial though, read more about that in SECTION and SECTION.
	

@menu
* Communicating with the server.::  
* Server communicating with you.::  
@end menu

@node Communicating with the server., Server communicating with you., What goes on in the background?	, What goes on in the background?	
@comment  node-name,  next,  previous,  up
@subsection Communicating with the server.



Sending stuff to the server is done by hitting return (^M). ZenIRC
parses the things you send to the server in two different ways,
depending on the first character you type. With a leading "/" (you can
change this by setting zenirc-commandchar) ZenIRC parses your line as
a command. Without the leading "/" ZenIRC sends your line as a message
to your current victim, this is done with PRIVMSG as described in
RFC1459.

Example, if the channel #se-opers is your zenric-current-victim and
you type;

@example
	Hello people^M
@end example

the clients on channel #se-opers will see your message. Use the /query
command to change zenirc-current-victim. :LINK:

On the other hand, if you type;

@example
	/part #se-opers^M
@end example

you will part the channel. Look in 2.2 for an extensive list of all
commands and how to use them.


@node Server communicating with you.,  , Communicating with the server., What goes on in the background?	
@comment  node-name,  next,  previous,  up
@subsection Server communicating with you.


ZenIRC parses all the information the servers sends to you in one way
or the other. On a few occasions ZenIRC might lack the information on
how to parse a certain thing, this is almost considered a bug (use M-x
zenirc-bug to report this behaviour).

To display the information, ZenIRC uses language catalogs. The default
catalog is English, but this can be changed easily. Writing your own
catalog is trivial and we'd love you if you wrote your own catalog and
mailed it in to the developers.

There's a lot of different variables you can change, and hooks to play
with if you feel adventureous. You can, for example, ignore people,
make ZenIRC beep when something special happens, have timestamps on
special messages and so forth. The variables are described in SECTION
and the hooks are described in SECTION. 

`zenirc.el' only contains the most important features, some very nice
features are placed in their own files. `zenirc-fill.el', for example,
fills certain messages for you so Emacs doesn't have to wrap long
lines in an ugly way. Read more about scripts in SECTION.


@node Commands in ZenIRC major-mode., Keybindings in ZenIRC major-mode., What goes on in the background?	, Using ZenIRC to waste time.
@comment  node-name,  next,  previous,  up
@section Commands in ZenIRC major-mode.



As already described, ZenIRC pareses lines with a leading "/" as a
command. Most of the commands are sent right off to the server, some
commands are ZenIRC specific though. 


@menu
* Non ZenIRC specific commands.::  
* ZenIRC specific commands.::   
@end menu

@node Non ZenIRC specific commands., ZenIRC specific commands., Commands in ZenIRC major-mode., Commands in ZenIRC major-mode.
@comment  node-name,  next,  previous,  up
@subsection Non ZenIRC specific commands.



A list of these commands can be found in RFC1459, this list is just a
brief description on how to use different commands. Go read RFC1459 if
you want to learn really nifty stuff.

Things inside []'s are optional. If the optional argument is a server,
using a nickname will list information about the server that nickname
is using.

@deffn Command /nick nickname			
	Change your nickname

@end deffn
@deffn Command /quit comment		
	Stop wasting time, with optional comment.

@end deffn
@deffn Command /join channel[,channel] [key[,key]]	
	Join one or more comma separated channels with given optional keys.
	zenirc-current-victim is set to the last joined channel.

@end deffn
@deffn Command /part channel[,channel] [comment]
	Part one or more comma separated channels, with optional comment.
	If you part your zenirc-current-victim, it is set to 'nil'.

@end deffn
@deffn Command /mode nickname [mode]
	Check or change modes for a given nickname. See RFC1459 for an
	extensive list of modes.

@end deffn
@deffn Command /mode channel [mode [person]]
	Check or change modes for a channel, or the mode of a nickname
	on a channel. See RFC1459 for an extensive list of modes.

@end deffn
@deffn Command /topic channel [topic]
	Check or change topic of a certain channel.

@end deffn
@deffn Command /names channel[,channel]
	See who's on one or more comma separated channels.

@end deffn
@deffn Command /list [channel[,channel] [server]]
	Lists all, one or a comma separated list of channels. With
	given server it lists channels from that servers view.

@end deffn
@deffn Command /invite nickname channel
	Invite person to given channel name.

@end deffn
@deffn Command /kick channel nickname [comment]
	Kick person on given channel with an optional comment.

@end deffn
@deffn Command /version [server]
	Returns version of current or given server.

@end deffn
@deffn Command /stats query [server]
	Returns information about that server (go read RFC1459).
	Read SECTION for an extensive list of query types.

@end deffn
@deffn Command /links [[<remote server>] <server mask>]
	Lists all links or links matching a given mask, with optional
	<remote server> it lists links seen from that server.

@end deffn
@deffn Command /time [server]
	Returns time from current or given server.

@end deffn
@deffn Command /trace nickname
	Returns the server route to given nickname.

@end deffn
@deffn Command /trace [server]
	Returns information on what's connected to the current server,
 	or a route to given server as well as things connected to it.

@end deffn
@deffn Command /admin [server]
	List administrative information for current or given server.

@end deffn
@deffn Command /info [server]
	List version, compile date, patchlevel, starttime and other
	various information about current or given server.

@end deffn
@deffn Command /privmsg nickname/channel text
	Send text as a PRIVMSG to nickname/channel.

@end deffn
@deffn Command /notice nickname/channel text
	Send text as a NOTICE to nickname/channel.

@end deffn
@deffn Command /who [<nick/user/server>mask [o]]
	List short information about everyone on IRC or given
	nickname, username or servername. With optional [o] argument
	it lists person with their IRC operator flag set.
	This command takes UNIX like masks ("?" and "*").

@end deffn
@deffn Command /whois [server] nickmask[,nickmask]
	List long information about given nickname, with optional
	server argument it lists information as seen from that server.

@end deffn
@deffn Command /whowas nickname [count [server]]
	List long information about nickname not currently on the
	connected servers but still in the WHOWAS database. With given
	argument count, list that many old entries from the database.
	With given server argument, list information as seen from that
	server.

@end deffn
@deffn Command /away [message]
	Remove away message, with optional argument it sets a new
	away message instead.

@end deffn
@deffn Command /users [server]
	List users logged in to current server or another server.

@end deffn
@deffn Command /summon user [server]
	Invite a user logged in to current server or another server.

@end deffn
@deffn Command /userhost nickname [nickname [nickname]]
	Returns short information about a whitespace separated list of
	nicknames.

@end deffn
@deffn Command /ison nickname [nickname [nickname]]
	Returns wheter given, whitespace separated, nicknames are
	on this IRC net.
@end deffn


@node ZenIRC specific commands.,  , Non ZenIRC specific commands., Commands in ZenIRC major-mode.
@comment  node-name,  next,  previous,  up
@subsection ZenIRC specific commands.



@deffn Command /action nickname/channel text
	Send text as a CTCP ACTION to given nickname/channel. To send
	text to more then one nickname/channel, use a comma separated
	list.

@end deffn
@deffn Command /commandchar char
	Change your commandchar to char, for example;

@example
	/commandchar &
@end example

	A good example is then;

@example
	&commandchar /
@end example

@end deffn
@deffn Command /ctcp nickname/channel <CTCP QUERY> 

	Send @code{<CTCP QUERY>} to a comma separated list of nicknames and
	channels. 

@end deffn
@deffn Command /language language

	Change your language catalog to given language. Read SECTION
	for more information about existing catalogs.

@end deffn
@deffn Command /m 
@deffnx Command /msg

	A shortcut for "/privmsg"

@end deffn
@deffn Command /me text

	Send text as a CTCP ACTION to zenirc-current-victim.

@end deffn
@deffn Command /ping nickname/channel

	Send CTCP PING to a comma separated list of nicknames and
	channels.

@end deffn
@deffn Command /query [nickname/channel]

	Show or change zenirc-current-victim to a comma separated list
	of nicknames and channels.

@end deffn
@deffn Command /quote text

	Sends text directly to the server. You might need this as
	ZenIRC uses the same name as the server on some commands,
	for example;

@example
	/quote ping server [<remote server>]
@end example
		Ping current server, with given <remote server>
		argument it pings the remote server instead.

@end deffn
@deffn Command /server [server [port [nickname]]]
	Connect to a server in a new ZenIRC-buffer.
	This is bound to zenirc-select. If no options are used, ZenIRC
	will ask you some questions.
@end deffn


@node Keybindings in ZenIRC major-mode.,  , Commands in ZenIRC major-mode., Using ZenIRC to waste time.
@comment  node-name,  next,  previous,  up
@section Keybindings in ZenIRC major-mode.



Hitting certain key combinations in ZenIRC will result in ZenIRC doing
stuff you didn't think it would. This is really nifty, when you
realize what actually happens HELLO PER

	2.3.1


	Hitting return ("\n" or "^M") will send the current line to the
server. If you're looking through the backlog and hit return, ZenIRC
will throw you to the end of the buffer.

Hitting ; or : at the beginning of the line will help you while
communicating to others then your zenirc-current-victim. For example;

@example
/msg omnion meep
/msg ace95 meep
*Omnion* meep meep
@end example

Hitting ";" now will result in ZenIRC adding "/msg ace95 " at the
beginning of the line.
Hitting ":" will result in ZenIRC adding "/msg omnion " at the
beginning of the line.

By using a few of the scripts which comes with ZenIRC you can get
tab-completion and a shell like history feature, more about that in
SECTION. 


@node It's working, Function Index, Using ZenIRC to waste time., Top
@comment  node-name,  next,  previous,  up
@chapter It's working, now I want it to Look Good and Feel Good.



The default look of ZenIRC is pretty sparse. 

@c ----------------------------------------------------------------------

@node    Function Index,  , It's working, Top
@comment node-name,    next,  previous,      up
@unnumbered Function Index

@printindex fn

@contents

@c @shortcontents


@bye