# Emacs, this is -*- Mode: Tcl -*- # # This is an example configuration file for tkirc2 with a lot of comments. # # Last modified: 2001-07-21 (atte) ############################################################################# # # # Copyright (C) 1996-2001 Andreas Gelhausen # # # # 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 # # # ############################################################################# # #### ### #### ##### ### # # ##### # # # # # # # # # # ## # # # #### ##### #### # # # # # # ### # # # # # # # # # # ## # # # # # # # # ### # # ##### # # # This part includes the basics of tkirc's configuration. Please # read (and maybe edit) it before you start tkirc with these # parameters! # Max entries of the history you can use with cursor up and down. set history_max 32 # Max number of lines you will see in a text field. set lines_max 512 # Where can tkirc find the ircII client? set ircpath "irc" # It's also possible to set the width of the margin. This value only # takes effect, if 'use_margin' is set to '1'. set margin_size(*) 70 set margin_size(0) 100 # If you also want to see the beeps, you can use 'beeptext'. # Here some examples for different text styles: #set beeptext "\x02¤\x02" ; # \x02 to turn on/off 'bold' set beeptext "\x16¤\x16" ; # \x16 to turn on/off 'reverse' #set beeptext "\x1f¤\x1f" ; # \x1f to turn on/off 'underlined' # The variable 'escape_sign' allows you to choose your own # escape-sign. Default value is "^". You can use escape-codes and # special characters with it. # Usage: # ^b : bold ^u : underlined ^r : reverse # ^s : special ^g : beep # # ^c##: colors (## is a decimal value) # ^x##: extra signs (## is a hex value) set escape_sign "^" # The following list allows you to set your own key bindings for # tkirc's entry widgets. If you don't know the exact expression for # the key bindings, add the line '{ {+puts stdout "%K"}}' # and start tkirc within a xterm. Then you will see the correct # expressions for all pressed keys. set entry_bindings { { {%W delete 0 end}} { {%W insert insert "¡"}} {<> {%W insert insert "ä" ; break}} {<> {%W insert insert "ü" ; break}} {<> {%W insert insert "ö" ; break}} {<> {%W insert insert "Ä" ; break}} {<> {%W insert insert "Ü" ; break}} {<> {%W insert insert "Ö" ; break}} {<> {%W insert insert "ß" ; break}} { {MsgHistoryUp "[string index "%W" 4]"}} } # Do you want to see one netsplit-message instead of many # signoff-messages on a detected netsplit? set react_to_netsplits 1 # If you want an alarm on possible channel takeovers, then set # 'react_to_takeover' to something different than '0'. tkirc will # sound an alarm, if more than or exact users # of the same host join a channel in seconds. # tkirc neither bans nor kicks for itself. You have to confirm each # action against channel takeovers within the request window. # The elements of 'takeover_kick_reasons' are used as messages for the # many kick-commands on a detected channel-takeover-try. # The host address looks like .... If you have # some elements (like 'slip-12-34-56' for example), you can add a # pattern to 'takeover_star_patterns' (e.g. 'slip*'). Matching # address elements are set to '*' within the address to ban. # tkirc scans the elements from left to right. If an address element # don't match any pattern of 'takeover_star_patterns', the other # elements won't be compared. set react_to_takeover 1 set takeover_users 3 set takeover_period 240 set takeover_kick_reasons { "Tschüs!" "Ciao!" "Bye!" "See you!" "Bis später!" "Ade!" "Tschö!" } set takeover_star_patterns { "slip*" "ppp*" "dial*" "kiosk*" } # Some CTCP-commands allow automatic response of your ircII. tkirc # will try to prevent that ircII floods the IRC-server, if you set # 'react_to_ctcp_flood' to '1'. If flooding from a certain host is # detected, all CTCPs and INVITEs from that host are ignored for # seconds. On flooding from # many different users/hosts tkirc ignores _all_ CTCPs and INVITEs # for seconds. set react_to_ctcp_flood 1 set host_flood_ignore_period 300 set global_flood_ignore_period 120 # Here you can choose your preferred nicknames. set preferred_nicknames { "bart" "lisa" "maggie" } # Do you have channels you often join? set preferred_channels { "#freebsd" "#linux" "#netbsd" "#netsplit" "#tkirc" } # Preferred values for the signoff command. set preferred_signoffmessages { "End of transmission" "Local kill from operator" "Idle time limit exceeded" } # Preferred values for the part or leave command. set preferred_partmessages { "I´ll be back!" "Bis später!" } # Preferred topics for your channels. set preferred_topics { "Please use your own default topic! =:^)" "Where do you want to join today?" } # Here you can set some reasons for the away command. set preferred_awayreasons { "be right back" "be back later" "busy working" } # If you want to kick someone, you can choose between the # following default kick messages. set preferred_kickreasons { "Ciao!" "Bye!" "Best wishes!" "Try it again please!" "Play outside!" } # Some servers and their port numbers... set preferred_servers { {"irc.server.com" 6667 "Example server #1"} {"irc.server.net" 6668 "Example server #2"} {"irc.server.org" 6667 "Example server #3"} } # New versions of the IRC server doesn't transmit away-messages # to other servers and users connected there. If someone wants to # send you a private message and he is connected to another IRC # server than you, he won't receive an away-message from you. Set # variable 'send_away_notice' to '1' and each user who sends you # you a private message/action will receive a notice like # "+nick+ nick is away: ". The awayreason is the same # you specified through command '/away'. The other user just # receive this away-notice from you once in a quarter hour except # you set a new away-message through command '/away'. set send_away_notice 1 # Many people forget to mark or unmark themselves away. The following # variables allows you to comission tkirc to do this job. # Set 'auto_mark_away' to something different than '0' and after # seconds tkirc will automatically mark you away # with the message "". # For variable 'auto_unmark_away' you can choose between the following # 3 values: # 0 : You will never automatically be unmarked. # 1 : You will only be unmarked after pressing , if # tkirc has _automatically_ marked you away before. # 2 : Press and you will always be unmarked, if # you was marked away before. set auto_mark_away 1 set auto_away_period 1200 set auto_away_text "automatically marked as being away after 1200 seconds" set auto_unmark_away 1 # Through procedure on_auto_away you are able to perform some # actions when you're automatically marked as being away. proc on_auto_away { } { global irc on_args # do something } # If you have more than one channel joined within one of tkirc's # windows, you can choose, whether you want to see the channel's # name on each received/sent message or just for messages of the # background channel. set show_only_background_channels 1 # Which browser or script do you want to start by clicking on a # highlighted Uniform Resource Locator (URL)? set on_urlclick {~/.tkirc2/netscape.sh "$url"} # Which tool/procedure do you want to execute by clicking on a # highlighted messageID? #set on_msgclick {echo "tkirc2: You have selected message id '$msgid'."} set on_msgclick {StringRequest "Which newsserver do you want to use?" "news.server.net" "Cancel|" "Show article|showarticle \"\$string\" {$msgid}"} proc on_url_detect { } { global irc on_args # Do NOT use one of tkirc's print-procedures here to prevent # infinite loops! (print2crap, print2text, etc.) exec echo "[longdate] $on_args(url)" >> ~/.tkirc2/IrcLog.urls } proc on_msgid_detect { } { global irc on_args # Do NOT use one of tkirc's print-procedures here to prevent # infinite loops! (print2crap, print2text, etc.) exec echo "[longdate] $on_args(msgid)" >> ~/.tkirc2/IrcLog.msgids } # If someone joins and leaves a channel within seconds, # the procedure 'on_channelhop' will be executed. set channelhop_period 3000 proc on_channelhop { } { global irc on_args # do something } # The TAB-key completes the nicks of the current channel and the # elements of this list. set words_to_complete { "/away " "/baninfos " "/clear" "/clearall" "/ctcp " "/describe " "/debug " "/join " "/kick * " "/leave *" "/lusers" "/msg " "/names " "/notify " "/quit " "/search " "/splits" "/suspect " "/topic " "/whois " "#freebsd" "#linux" "#netbsd" "#netsplit" } # If neither a nick nor an element of 'words_to_complete' could be found # for completion, this list of aliases will be searched. Through the usage # of TAB the certain alias will be replaced. Each element of the following # list includes the alias and its replacement: set tab_aliases { {"USA" "United States of Amerika"} {"FRG" "Federal Republic of Germany"} {"rose" "---<-'-@"} {"tkirc" "http://netsplit.de/tkirc2/"} } # If the just completed nick is the first word in your command # line, this suffix will be added. set nick_completion_suffix ": " # Each kind of text-message can have its own text style. # The elements of the follwing list include regular expression, # text-style, command and comment. # # Example: Set command to "bell" and you will get a beep on each # message of that kind. set user_styles { { {^(\*|\+|\*\*|\=)».*} {-foreground #00aa00} {} {# send private message/notice/action} } { {^((<|-)$me(>|-\ |»|\+)|\* $me( |»|\+)).*} {-foreground #007700} {} {# send message/notice/action to channel} } { {^(\*|\+|\*\* |\=)[^ *+].*} {-foreground #dd0000} {} {# receive private message/notice/action} } { {^(\-\-\-|\[ notify \]).+ (is here|was here).*$} {-foreground #cc9900} {} {# notify messages} } { {^(\-\-\-|\[ suspect \]).+ (is suspect|was suspect).*$} {-foreground #996600} {} {# suspect messages} } { {^(.*[^a-zA-Z0-9]|)($me|ircii)(|[^a-zA-Z0-9].*)$} {-foreground #aa0000} {} {# my/your nickname or ircII} } { {^(\( |)([0-9][0-9][0-9])(| \)).*} {-foreground #440044} {} {# numerics} } { {^(\*\*\*|\[ signoff \]).+ has signed off \(([^ .]+\.)+[^ .]+ ([^ .]+\.)+[^ ]+\)$} {-foreground #ff5500} {} {# faked netsplit-signoff} } { {^(\-\-\-.|\[ )Net(split|join).*} {-foreground #ff5500} {} {# netsplit or netjoin} } { {^(\-\-\-|\+\+\+|\[ (alert|error|failure|note|notify|warning) \]).*} {-foreground #aa0000} {} {# this program wants to tell you something} } { {^(\*\*\*|\[ ).*} {-foreground #000066} {} {# three stars messages} } } # With procedure 'write2irc' you can directly send any texts to # ircII. But if you directly send "/join #test" to ircII, tkirc has # NO information about it. Therefore it won't know the window for # the channel. You should prefer procedure 'send2tkirc'! # # The usage of procedure 'send2tkirc' will have the same # effect as typing a command within tkirc's commandline. # # 'send2tkirc' needs two parameters: # 1. window number # 2. text to send # # To send a message directly to your ircII you can use # procedure 'write2irc'. # # 'write2irc' needs two parameters too: # 1. number of ircII (See window titles! Example: "(#0)") # 2. text to send # tkirc doesn't pay regards to file '~/.ircrc', because ircII # will be executed with option '-q'. If you want to execute # some commands of 'ircII' after starting, you have to do it # here within the procedures 'on_tkircstart', 'on_ircIIstart' and # 'on_connect'. # # 'on_tkircstart' will be executed just after opening window 0. # At this moment ircII is not running and therefore you don't have # a connection to an IRC-server! Logfiles and additional windows can # be opened here for example. proc on_tkircstart { } { global irc margin on_args set margin(text) "example" write2crap $on_args(irc) "*** event='tkircstart'" } # Procedure 'on_ircIIstart' will always be executed just behind starting # ircII. Here you should set some of ircII's variables and define your # aliases. You are not connected to an IRC-server at this moment. Please # see the examples below! proc on_ircIIstart { } { global irc margin on_args set margin(text) "example" write2crap $on_args(irc) "*** event='ircIIstart'" write2irc $on_args(irc) "/set DISPLAY OFF" write2irc $on_args(irc) "/set TRANSLATION LATIN_1" write2irc $on_args(irc) "/set SHOW_AWAY_ONCE on" ## How to use the timer: # write2irc $on_args(irc) {/on #^timer 0 "*:00" time} write2irc $on_args(irc) {/alias think /say . o O \( $0- \)} write2irc $on_args(irc) {/alias nobitchx /mode * +b-b *%C=%n!*@* *%C=%n!*@*} write2irc $on_args(irc) "/set DISPLAY ON" } # 'on_connect' will be executed just before you usually get the 'Message # Of The Day' from your IRC-server. Here you can set your usermodes and # join your preferred channels. proc on_connect { } { global irc margin on_args set margin(text) "example" write2crap $on_args(irc) "*** event='connect'" ## Do you want to be invisible? write2irc $on_args(irc) "/umode +i" ## Maybe you want to join channel #tkirc in window 0: # send2tkirc 0 "/join #tkirc" } # ##### # # ##### ##### # # #### # # # # # # ## # # # # # ##### ### ### # # # # # # # # # # # # ## # # # # # # ##### ##### # # ####