
---------------------------------------------------------------------
Short introduction to tkirc                            atte, 03-03-98
---------------------------------------------------------------------
                                         Version of this README: 1.70
                                        -----------------------------

0. Contents
-----------

	 1. What is tkirc?
	 2. Copyright
	 3. Before installation
	 4. How to install
	 5. Shell options
	 6. Hidden features
	 7. Notification
	 8. Additional commands
	 9. Credits
	10. The author
	11. tkirc's homepage



1. What is tkirc?
-----------------

tkirc is a frontend for unix's ircII (shell-client for the Internet Relay Chat)
based on Tcl/Tk. A nice graphical user interface brings you the world of
IRC. -- Together with ircII and Tcl/Tk it should run under nearly all
Unix-like operating systems.


2. Copyright
------------

Copyright (C) 1996-98 Andreas Gelhausen (atte@gecko.north.de)

This program is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free
Software Foundation; either version 2 of the License, or (at your option)
any later version.

This program is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc., 59
Temple Place - Suite 330, Boston, MA 02111-1307, USA


3. Before installation
----------------------

Before you start to install tkirc on your system, you should pay attention to
the following things:

    -  Make sure that you have installed a version of ircII that supports
       the options `-d' and `-q'. For example you can execute your ircII
       through `irc -v' and you will see its version number. -- Here I'm
       using ircII version 2.8.2 (19950405) and it works great. 

    -  tkirc needs Tcl/Tk and you should always try to use the newest
       version of it. Since version 8.0 Tcl/Tk is a lot faster through its
       on-the-fly compiler, but tkirc should also run with Tcl 7.5 and Tk
       4.1. -- If you don't know which version is installed on your system,
       you should start `wish' and execute `set tcl_version' and `set
       tk_version' within to check the version numbers. 

If you don't want to install these things, try another IRC client or use ircII
without this graphical user interface!


4. How to install
-----------------

First: 

    -  Install the packages of Tcl and Tk, if you have not already done. 

    -  Make sure that wish (Tcl/Tk's main program) and ircII (unix's IRC
       client) is in your path. ircII can usually be found as `irc'. 

Now you should already be able to start tkirc to get a first impression. It's
possible to select nickname and server via shell parameter.

Simple usage:
              tkirc [<nickname> [<server>]] 

Have you played a while with tkirc? -- Do you like this program? -- Then
continue:

    -  Copy the script `tkirc' to your preferred directory. (Examples:
       `/usr/local/X11/bin/', `~/bin/', ...) 

    -  Copy file `tkircrc-example' as `.tkirc/tkircrc' in your home
       directory and edit it. There you should find enough comments and
       examples to set all variables.

    -  Copy file `autoload/examples.tcl' to `~/.tkirc/autoload/examples.tcl'.
       It includes examples how to program own scripts and commands.

Now you only have to start `tkirc'. Please see also next section (tkirc's
shell options)!


5. Shell options
----------------

Synopsis:

   tkirc [-x <ircpath>] [-a] [-q] [-r] [-t <filename>]
            [<nickname> [<server>]]

Description:
    -x   <ircpath> 
                  You can declare another path for the ircII command.
                  It's also possible to start ircII from another host via
                  remote shell command `rsh'.
                  See also: /EXCHANGE
    -a
                  tkirc will give you a servers-request on startup.
                  The default server won't automatically be connected.
    -q
                  Start up tkirc quickly -- don't load file
                  `tkircrc'. 
    -r
                  Usually tkirc doesn't pay attention to file
                  `~/.ircrc'. If you use this option tkirc will try
                  to load two rc-files (`~/.tkirc/tkircrc' and
                  `~/.ircrc') during its startup. 
    -t   <filename>
                  This option allows you to specify a file that will be
                  loaded during start instead of `~/.tkirc/tkircrc'. 
    <nickname> 
                  Set the nickname (overrides the environment
                  variables `IRCNICK', `USER', `LOGNAME' and
                  tkirc's variable `preferred_nicknames'). 
    <server> 
                  Set the list of servers. See also ircII's manual for
                  OPTIONS (server list)! 


6. Hidden features
-----------------

This section will show you some of tkirc's features that you possibly will
never find, if you don't read this `readme' or file `tkircrc-example'. *grin*

nickname completion 

       If you have joined a channel, you can press TAB to complete the
       nicknames of other users. If the nickname is the first word in your
       command line, the value of variable `nick_completion_suffix' will be
       added. 

more than one channel per window 

       You are able to join more than one channel in one window. The
       channelname above the userlist will be changed into a menubutton.
       All channels you have joined in that window will be displayed in
       window's title. If you type something without leading `/', it will be
       sent to that channel you see above the userlist. 

nickname history 

       When you receive a private message or a private notice, the
       nickname of the sender will be added to the nickname-history.
       Press ALT-TAB and you will find a `/msg <nickname>' within your
       command line. Press ALT-TAB again and you will see that tkirc
       cycles the nicknames. Maximum length of nickname-history is set
       to 5 to prevent long sequences of ALT-TABs. 

user definable colors and text styles 

       You are able to choose your own colors and text styles for different
       kinds of messages, if you don't like the default values. See also
       variable `user_styles' in file `tkircrc-example'. 

function to detect netsplits and netjoins 

       If the value of variable `react_to_netsplits' is set to `1', tkirc will
       show you one message for netsplit or netjoin instead of long
       sequences of netsplit-signoffs or join-messages. 

highlighted URLs 

       URLs (addresses for the World Wide Web) will be highlighted (like
       buttons for example) and you can perform actions on them. See
       variables `on_urlclick' and `url_style'! 

highlighted message IDs 

       Message IDs (of news articles for example) will also be
       highlighted and you can also perform actions on them. See variables
       `on_msgclick' and `msgid_style'! 

function to detect and prevent channel takeovers 

       If value of variable `react_to_takeover' is set to `1', tkirc will give
       you an audible and visible alarm. In the case that you have channel
       operator privileges at the moment of takeover, a request window
       will be opened and you can react with one ban and multiple kicks.
       Nothing will automatically happen. You have the choice to do
       something against the takeover. See also variables
       `react_to_takeover', `takeover_users', `takeover_period',
       `takeover_kick_reasons' and `takeover_star_patterns' in file
       `tkircrc-example'! 

ctcp-flood protection 

       tkirc also include a protection against ctcp-flooding. This feature is
       based on some settings of ircII. See also variables
       `react_to_ctcp_flood', `host_flood_ignore_period' and
       `global_flood_ignore_period'! 

file request for your commands 

       If you include `:file' to your command (you typed within one of
       tkirc's command lines), this `:file' will be replaced by the name
       of the file you selected through the request window. Example: Try
       `/dcc send <nick> :file'! 

command history 

       On CURSOR-UP and CURSOR-DOWN the command history will
       be cycled. 

programmable commands through Tcl/Tk 

       Beside ircII's aliases you are able to creat your own Tcl/Tk
       commands and add your own menu to tkirc's graphical user
       interface. 

many other user definable features 

       This section is not a complete list of tkirc's features. You have to
       read the file `tkircrc-example' to see many more! 

ircII's commands 

       Besides tkirc's additional commands (listed in next section) you
       are able to use many of ircII's features and commands. 


7. Notification
---------------

Since version 1.200 tkirc has a new notification handling. You can choose 
between three kinds of notification:

    1. Notify

       Most IRC-servers understand and support command `/notify'. Try 
       `/help notify'!

    2. NoteServ

       This is a service that is supported by some servers of the 
       IRCnet. For more informations you should read 
       "http://irc.fu-berlin.de/noteserv/"!

    3. Note

       That's a very old one, but some users don't want to miss it. Try 
       `/help note'!

You can select your preferred kind of notification for single servers or 
groups of servers through address patterns. Examples:

       set notify(methods) {
         {"*fu-berlin.de"     "noteserv"}
         {"*uni-oldenburg.de" "note"}
         {"*.undernet.org"    "notify"}
         {"*"                 "notify"}
       }

Be aware that the address patterns must match server's name as displayed 
in all titles of tkirc's windows after connecting! If you take 
"irc.fu-berlin.de" for example and the server is called "fu-berlin.de", 
your settings won't be of any effect!

tkirc uses `notify' as default notification-method and usually you don't 
need to change that value. To notify some certain users you have to set 
the following list within your `tkircrc':

       set notify(users) {
         {"atte"  "atte@gecko.north.de"}
         {"ernie" "*@*.sesame.street.com"}
         {"bert"  "*@*"}
       }

If you have chosen `Notify' (default value) you only have to set the nicks 
and address patterns within `notify(users)' and tkirc will automatically 
send `/notify <many_nicks>' to the server after connecting.

`NoteServ' and `Note' try to minimize notification traffic on each connection.
The IRC-servers save the nicks/users you want to get a note for and they 
will automatically know them when you will connect again. If you have edited 
list `notify(users)' within your `tkircrc', it is not enough to reload your
`tkircrc' as for `Notify'. You must inform the server from your changes too.
tkirc supports additional commands for `NoteServ' and `Note':

       /noteserv update
       /note update

Use them to inform your server from your new notification-settings!


8. Additional commands
----------------------

It's possible to use nearly all commands of ircII. Try command `/help' and
you will see a list of tkirc's and of ircII's commands. This section lists the
additional commands of tkirc and shows their usage.


BANNICK 

Usage: /BANNICK <nick> 
       This command opens a new window you can select a banpattern
       with to ban user <nick> from the current channel. 


BANCOMMENT 

Usage: /BANCOMMENT <channel> (<number>|<pattern>) <comment> 
       This command allows you to set a comment to a ban of channel
       <channel>. <number> or <pattern> selects the certain ban of
       <channel>'s banlist. 


BANINFOS 

Usage: /BANINFOS <channel> 
       This displays more informations of <channel>'s bans than `/MODE
       <channel> b' 


CHAT 

Usage: /CHAT <nick1>[,<nick2>[...]] 
       A new window will be opened for a private conversation with all
       users specified through <nick1>[,<nick2>[...]]. 


CLEAR 

Usage: /CLEAR 
       The window you typed this command in will be cleared. 


CLEARALL 

Usage: /CLEARALL 
       All windows will be cleared. 


CLOSE 

Usage: /CLOSE 
       The window you typed this command in will be closed. 


CLOSECRAPLOG 

Usage: /CLOSECRAPLOG 
       The craplog will be closed. 


CLOSELOG 

Usage: /CLOSELOG (<channel>|<nick>) 
       The logfile you opened for conversation with <channel> or <nick>
       will be closed. 


CLOSELOGALL 

Usage: /CLOSELOGALL 
       The logfile for all kinds of irc-traffic will be closed. 


CLOSEMSGLOG 

Usage: /CLOSEMSGLOG 
       The logfile for whole traffic of private messages and notices will be
       closed. 


CRAPLOG 

Usage: /CRAPLOG <filename> [-d] 
       This command allows you to open file <filename> to log all kinds of
       crap in. Select option `-d' for additional time stamps. 


DCHAT 

Usage: /DCHAT <nick> 
       A new window will be opened for a direct client to client (DCC)
       conversation with user <nick>. 


EXCHANGE 

Usage: /EXCHANGE <ircpath> [<nick> [<server>]] 
       This command allows you to exchange the ircII command, tkirc is
       just running with. If you are able to use the remote shell command
       `rsh', you can start your ircII on another host. For example: 

       `/exchange "rsh <host> -l <your_login> <ircpath_on_that_host>"
           <nickname>'

       This command is also available as shell option `-x'. Try to start
       from shell: 

       ~> tkirc -x "rsh <host> -l <your_login> <irpath_on_that_host>"


LOADBANINFOS 

Usage: /LOADBANINFOS <channel> <filename> 
       This tries to update baninfos of channel <channel> with the
       includes of file <filename>. 


LOG 

Usage: /LOG (<channel>|<nick>) <filename> [-d] [-r] 
       The logfile <filename> will be opened for traffic of channel
       <channel> or for a private chat with user <nick>. Select option `-d'
       for additional time stamps or `-r' to log the messages how you
       receive them from your IRC-server. 


LOGALL 

Usage: LOGALL <filename> [-d] [-r] 
       The file <filename> will be opened to log the whole irc-traffic in.
       Select option `-d' for additional time stamps or `-r' for raw
       messages. 


LOGS 

Usage: /LOGS 
       A list of all opened logfiles will be displayed. 


MSGIDS 

Usage: /MSGIDS 
       A window will be opened that shows you a list of all message IDs
       detected in your tkirc session. 


MSGLOG 

Usage: /MSGLOG [-d] [-r] 
       This command allows you to open file <filename> to log all private
       messages and notices in. Select option `-d' for additional time
       stamps or `-r' for raw messages. 


NEWWIN 

Usage: /NEWWIN 
       This command opens a new traffic window. 


NOTIFIES 

Usage: /NOTIFIES 
       This command opens a window to display all notified nicknames. 


SAVEBANINFOS 

Usage: /SAVEBANINFOS <channel> <filename> 
       Tries to save baninfos of channel <channel> into file <filename>.
       You can load these baninfos, when you rejoin channel <channel>. 


SAVEBUFFER 

Usage: /SAVEBUFFER <tofile> 
       The buffer of the current window will be saved into file <tofile>. 


SEARCH 

Usage: /SEARCH <text> 
       This command highlights all occurrences of `<text>' in the text
       field and jumps to it/the next. 


SPLITS 

Usage: /SPLITS 
       Shows you a list of all detected netsplits. 


TAKEOVERS 

Usage: /TAKEOVERS 
       Shows you a list of all detected (possible) channel takeovers. 


URLS 

Usage: /URLS 
       A window will be opened that shows you a list of all URLs detected
       in your tkirc session. 


WJOIN 

Usage: /WJOIN <channel1>[,<channel2>[,...]] 
       This command opens a new window for each channel and joins all
       of them.


9. Credits
----------

Many people used tkirc and reported bugs and feature requests to me in the
past and still do. I wish to thank each of them, but I think the following list
won't be complete. Sorry for my bad memory!

Here they are (in no certain order):

	Nickname        Realname
	--------        --------
	giz             Klaus Weber
	cosinus         Christian Stelter
	Nobody          Ingo Wilken
	ill             Markus Illenseer
	Gio             Georg Mage
	Bach           	Thomas Witt
	DrMabuse        Matthias Lühr
	Optimizer       Aaron Digulla
	Mick            Michael Hohmann
	Joulupukk       Matthias Faust
	Faucon          Bastien Chevreux
	...


10. The author
--------------

If you have questions, bug reports, feature requests and so on, you can
reach me via snail mail... 

               Andreas Gelhausen
               Graf-Spee-Str. 23 b
               26123 Oldenburg
                 - Germany -

via email... 

               atte@gecko.north.de

and on the IRC... 

                    `atte'


11. tkirc's homepage
--------------------

tkirc has its own homepage. If you want to see and maybe download
the latest public version of tkirc, have a look at...

               http://home.pages.de/~tkirc/

It's also possible to click on the URL you find in window for
'About'. =;^)


---------------------------------------------------------------------
End of transmission                                    atte, 03-03-98
---------------------------------------------------------------------
