# config de BitchX par bennyben # pas mal de chans, une window par chan # raccourcis clavier a gogo, alias aussi # configuration pour gestion du flood ##### a configurer #### # le nickname par défaut /set NICK bennyben # s'il est pris... /set ALTNICK _bennyben_ # ce qui s'affiche dans le whois comme realname /set REALNAME éleveur de pingouins au pédigree pal #### options en tout genre ### /set auto_response ON /set auto_response_str benny # on détruit la fenetre en cours quand on quitte un chan /set WINDOW_DESTROY_PART ON # timestamp dans les phrases /set TIMESTAMP ON # format [HH:MM:SS] /set TIMESTAMP_STRING [%H:%M:%S] # changer le titre de l'xterm /set XTERM_TITLE ON # option obscure /set SHOW_NUMERICS off # nb de secondes avant reconnection au serveur /set MAX_SERVER_RECONNECT 10 # log general off /set LOG OFF # ajout à la fin des logs si on relance le bitchx /set APPEND_LOG ON # auto away apres kkes temps /set AUTO_AWAY OFF # /detach au logout, ou au signal SIGHUP /set DETACH_ON_HUP ON # les dcc vont dans le dossier ~/.BitchX/dw /set DCC_DLDIR ~/.BitchX/dw # heures au format 24h /set CLOCK_24HOUR ON # pas de beep au ^G /set BEEP OFF # largeur max d'un nom de chan /set CHANNEL_NAME_WIDTH 15 # on regarde l'IP à chaque query qu'on recois /set AUTO_NSLOOKUP ON # euh... /set auto_whowas on # affiche en Act seulement les messages et notices sur les chan /set notify_level none +msgs +notices # nouvelle window au nouveau chan /set join_new_window on # type de la nouvelle fenetre au chan ouvert /set JOIN_NEW_WINDOW_TYPE new hide swap last double on triple on notify_level msgs,notices # nouvelle window au nouveau query /set QUERY_NEW_WINDOW on # type de la nouvelle fenetre au query ouvert /set QUERY_NEW_WINDOW_TYPE new hide swap last double on triple on notify_level msgs,notices /set INPUT_PROMPT [$C$Q] # couleurs de base # cl = effacage de la couleur /eval @cl=$chr(27)[0m # blue /eval @blu=$chr(27)[34m # cyan /eval @cya=$chr(27)[36m # format de la barre de status 1 2 et 3 /set status_format [%T][%@%N%#%A]%M [%=%C%+%W] %Q %H%B %>%L %! %K %D /set status_format1 [%T][%@%N%#%A]%M [%=%C%+%W] %Q %H%B %>%L %! %K %D /set status_format2 %- /set status_format3 -%R- %F %w %X %Y %Z # @ cl = [\[0m # @ blu = [\[0m\\[34m # theme, pour chaque action # affichage /fset CTCP %@%K>%n>%W> %c$1 %K[%g$2%K]%g requested $4- from $3 /fset CTCP_CLOAK %@%K>%n>%W> %c$1 %K[%c$2%K]%c requested $4- from $3 /fset CTCP_CLOAK_FUNC %@%K>%n>%W> %c$1 %K[%c$2%K]%c requested $4- from $3 /fset CTCP_CLOAK_FUNC_USER %@%K>%n>%W> %c$1 %K[%c$2%K]%c requested $4- from you /fset CTCP_CLOAK_UNKNOWN %@%K>%n>%W> %c$1 %K[%c$2%K]%c requested unknown ctcp $4- from $3 /fset CTCP_CLOAK_UNKNOWN_USER %@%K>%n>%W> %c$1 %K[%c$2%K]%c requested unknown ctcp $4- from $3 /fset CTCP_CLOAK_USER %@%K>%n>%W> %c$1 %K[%c$2%K]%c requested $4- from you /fset CTCP_FUNC %@%K>%n>%W> %c$1 %K[%g$2%K]%g requested $4- from $3 /fset CTCP_FUNC_USER %@%K>%n>%W> %c$1 %K[%g$2%K]%g requested $4- from you /fset CTCP_REPLY %@$G %nCTCP %W$3 %nreply from %n$1: $4- /fset CTCP_UNKNOWN %@%K>%n>%W> %c$1 %K[%g$2%K]%g requested unknown ctcp $4- from $3 /fset CTCP_UNKNOWN_USER %@%K>%n>%W> %c$1 %K[%g$2%K]%g requested unknown ctcp $4- from %g$3 /fset CTCP_USER %@%K>%n>%W> %c$1 %K[%g$2%K]%g requested $4- from you /fset DCC_CONNECT %@$G %RDCC%n $1 with %W$2%K[%c$4:$5%K]%n established /fset DCC_ERROR %@$G %RDCC%n lost %w$1%w %rto $2 %K[%w$3-%K] /fset ACTION %@%K* %n$1 %n$4- /fset ACTION_AR %@%K* %Y$1 %n%Y$4- /fset ACTION_CHANNEL %@%K* %n$1 %n$4- /fset ACTION_OTHER %@%K* %n>%c$1 %n$3- /fset ACTION_OTHER_AR %@%K* %y>%c$1 %n$3- /fset ACTION_USER %@%K* %n>%c$1 %n$3- /fset ACTION_USER_AR %@%K* %y>%c$1 %n%Y$3- /fset CHANNEL_SIGNOFF %@ $G <- %n%cSignOff %y$1%n: $3 %K(%n%c$4-%K) /fset DESYNC %@ $G $1 is desynced from $2 at $0 /fset DISCONNECT %@ $G Use %G/Server%n to connect to a server /fset FRIEND_JOIN %@ $G %r$1 %K[%c$2%K]%n has joined $3 /fset IGNORE_INVITE %@ %K>%n>%W> You have been invited to $1- /fset IGNORE_MSG %@%K[%P$1%P$2%K(%p$3%K)]%n $4- /fset IGNORE_MSG_AWAY %@%K[%P$1%P$2%K(%p$3%K)]%n $4- /fset IGNORE_NOTICE %@%K-%P$2%K(%p$3%K)-%n $4- /fset IGNORE_WALL %@%K%P$1%n $2- /fset INVITE %@ %K>%n>%W> $1 Invites You to $2- /fset INVITE_USER %@ %K>%n>%W> Inviting $1 to $2- /fset JOIN %@ $G -> %y$1 %K[%c$2%K]%n has joined $3 /fset KICK %@ $G %n$3 was kicked off $2 by %c$1 %K(%n$4-%K) /fset KICK_USER %@ %K>%n>%W> %WYou%n have been kicked off %c$2%n by %c$1 %K(%n$4-%K) /fset KILL %@ %K>%n>%W> %RYou have been killed by $1 for $2- /fset LEAVE %@ $G <- %c$1 %K[%c$2%K]%n has left $3 %K[%c$4-%K] /fset MODE %@ $G %nmode%K/%c$3 %K[%c$4-%K]%n by %y$1 /fset MODE_CHANNEL %@ $G %nmode%K/%c$3 %K[%c$4-%K]%n by %y$1 /fset MSG %@%K[%W$1%K]%n $3- /fset MSG_GROUP %@%K-%W$1%K:%r$2%K-%n $3- /fset NAMES_NICKCOLOR %K[%y $[10]1%K] /fset NETADD %@ $G %nAdded: %W$1 $2 /fset NETJOIN %@ $G %nNetjoined: %W$1 $2 /fset NETSPLIT %@ $G %nNetSplit: %W$1%n split from %W$2 %K[%c$0%K] /fset NICKNAME %@ $G %y$1 %nis now known as %y$3 /fset NICKNAME_OTHER %@ $G %y$1 %nis now known as %y$4 /fset NICKNAME_USER %@ %K>%n>%W> %WYou%K(%n$1%K)%n are now known as %y$3 /fset NOTICE %@%K-%P$1%K(%p$2%K)-%n $3- /fset NOTIFY_SIGNOFF %@ $G %GSignoff%n by %r$1%K!%r$2%n at $0 /fset NOTIFY_SIGNON %@ $G %GSignon%n by %R$1%K!%R$2%n at $0 /fset PUBLIC %@%b<%n%y$1%n%b>%n $3- /fset PUBLIC_AR %@%B<%Y$1%B>%n %Y$3- /fset PUBLIC_MSG $(blu)%@$(cl) $1%n $4- /fset PUBLIC_MSG_AR %@%Y$1%n $4- /fset PUBLIC_NOTICE %@%K-%p$1%K:%p$3%K-%n $4- /fset PUBLIC_NOTICE_AR %@%K-%G$1%K:%g$3%K-%n %Y$4- /fset PUBLIC_OTHER %@%b<%n$1%K:%n%y$2%b>%n $3- /fset PUBLIC_OTHER_AR %@%b<%y$1%K:%n$2%b>%n %Y$3- /fset SEND_ACTION %@%K* %n$1 %n$3- /fset SEND_ACTION_OTHER %@%K* %n-> %n$1/%c$2 %n$3- /fset SEND_MSG %@%K[%y$2%K] %n$3- /fset SEND_NOTICE %@ %K[%rnotice%K(%W$1%K)] %n$3- /fset SEND_PUBLIC %@%r<%n%y$2%r>%n $3- /fset SEND_PUBLIC_OTHER %@%p<%n%y$2%K:%n$1%p>%n $3- /fset SIGNOFF %@$G <- %nSignOff: %y$1 %K(%n$3-%K) /fset TOPIC_CHANGE %@ $G Topic %K(%c$2%K):%n changed by %c$1%K:%n $3- /fset TOPIC_UNSET %@ $G Topic %K(%c$2%K):%n unset by %c$1%n /fset USERMODE %@ $G %nMode change %K[%c$4-%K]%n for user %c$3 /fset WHOIS_HEADER %G+=====---%g%G--%g==%G-%g======---%K=%g--%K==%g-%K=========--- -- - /fset WHOIS_NAME %G| %Wi%nrcname : $0- /fset WHOWAS_HEADER %G+-=====--%g=%G--%g==%G-%g======---%K=%g--%K==%g-%K=========--- -- - /fset WHOLEFT_HEADER %G+===== %WWho %G=====%g---%G===%g--%G=====%g-%G== %WChannel%g=== %wServer %G-%g==--%G==%g--%G====%g %wSeconds /fset SERVER_NOTICE_CLIENT_CONNECT %@ $G --> %y$1 %K[%c$2%K]%n $3- /fset SERVER_NOTICE_CLIENT_EXIT %@ $G <- %c$1 %K[%c$2%K]%n $3- # on tente un update des window :) /window update # gestion du flood # on n'ignore pas les services a cause du flood :) /ADDNOFLOOD chanserv /ADDNOFLOOD nickserv /ADDNOFLOOD memoserv /ADDNOFLOOD botserv /ADDNOFLOOD global /ADDNOFLOOD ezbounce # flood de ctcp apres 30 requetes... /set CTCP_FLOOD_AFTER 30 # pas de ban au ctcp /set CTCP_FLOOD_BAN OFF # delai de 1 /set CTCP_DELAY 1 # pas de kick auto si le gars est ban /set KICK_IF_BANNED OFF # oui, on peut kick les gens op :) /set KICK_OPS ON # parametres de flood.. a peu pres bon pour kick apres 4/5 lignes /set FLOOD_AFTER 4 /set FLOOD_rate 5 /set FLOOD_PROTECTION ON /set FLOOD_KICK ON /set FLOOD_WARNING ON # on ignore 5 secondes les floodeurs /set IGNORE_TIME 5 /set KICK_ON_PUBFLOOD 4 /set KICK_ON_DEOPFLOOD 5 /set KICK_ON_NICKFLOOD 5 /set KICK_ON_KICKFLOOD 5 /set KICK_ON_JOINFLOOD 7 /set KICKFLOOD ON /set pubflood on /set PUBFLOOD_TIME 2 # raccourcis clavier # ctrl-e: fin de ligne /bind ^E end_of_line # meta1 = touche meta (= windows chez moi) # win-n window next /bind META1-n SWAP_NEXT_WINDOW # win-p window previous /bind META1-p SWAP_PREVIOUS_WINDOW # win-x next /bind META1-x SWAP_NEXT_WINDOW # win-w previous /bind META1-w SWAP_PREVIOUS_WINDOW # win-k kill la window /bind META1-k WINDOW_KILL # win-l efface le chan/query en cours /bind META1-l CLEAR_SCREEN # win-j taper /j # /bind META1-j parse_command {type /j #} # win-h taper /jh # /bind META1-h parse_command {type /jh #} # win-i taper /ident /bind META1-i parse_command {type /ident } # win-o m'oper par chanserv sur le chan en cours /bind META1-o parse_command {eval msg chanserv op $winchan()} # win-O m'oper par chanserv sur tout les chans auquel j'ai droit /bind META1-O parse_command {eval msg chanserv op} # win-A passer ircop /bind META1-A parse_command {type /oper bennyben } # win-F1 passer à la fenetre 1 (win-F1 = ^[^[[11~) /BIND META1-^[[11~ WINDOW_SWAP_1 # meme chose pour F2...F9 /BIND META1-^[[12~ WINDOW_SWAP_2 /BIND META1-^[[13~ WINDOW_SWAP_3 /BIND META1-^[[14~ WINDOW_SWAP_4 /BIND META1-^[[15~ WINDOW_SWAP_5 # attention F6 = ^[^[[17~ /BIND META1-^[[17~ WINDOW_SWAP_6 /BIND META1-^[[18~ WINDOW_SWAP_7 /BIND META1-^[[19~ WINDOW_SWAP_8 /BIND META1-^[[20~ WINDOW_SWAP_9 # pour apres win-F9, c'est plus complique # c'est ^[^[[2*~ /BIND META38-2 META16_CHARACTER /BIND META38-3 META17_CHARACTER # win-F9 /BIND META16-0 META15_CHARACTER # win-F10 /BIND META16-1 META14_CHARACTER # win-F11 ou win-shift-F1 /BIND META16-3 META13_CHARACTER # win-F12 ou win-shift-F2 /BIND META16-4 META12_CHARACTER # shift-win-F3 /bind META16-5 META11_CHARACTER # shift-win-F4 /bind META16-6 META10_CHARACTER # shift-win-F5 /bind META16-8 META9_CHARACTER # shift-win-F6 /bind META16-9 META8_CHARACTER # pour ^[^[[3*~ # shift-win-F7 /bind META17-1 META7_CHARACTER # shift-win-F8 /bind META17-2 META6_CHARACTER # on se donne 18 window au max :) # win-F9 /BIND META15-~ WINDOW_SWAP_9 # win-F10 /BIND META14-~ WINDOW_SWAP_10 # win-F11/shift-win-F1 /BIND META13-~ parse_command {window swap 11} # win-F12/shift-win-F2 /BIND META12-~ parse_command {window swap 12} # shift-win-F3 -> shift-win-F8 /BIND META11-~ parse_command {window swap 13} /BIND META10-~ parse_command {window swap 14} /BIND META9-~ parse_command {window swap 15} /BIND META8-~ parse_command {window swap 16} /BIND META7-~ parse_command {window swap 17} /BIND META6-~ parse_command {window swap 18} # aliases # /init, fait tout et rien alias init { /wset * status_format $status_format /wset * status_format2 $status_format2 /window notify_level msgs,notices triple on } # /ident suivi du pass, s'identifie a chanserv alias ident { /quote PRIVMSG nickserv :identify $0 } # op sur tout les chans avec chanserv alias copall { /msg chanserv op } # op sur chan en cours avec chanserv alias cop { eval msg chanserv op $winchan() } # deop sur chan en cours avec chanserv alias cdop { eval msg chanserv deop $winchan() } # cree une nouvelle window niquel alias win { /window new hide swap last double on triple on notify_level $@ msgs,notices } # kill la window en cours alias wk winkill alias winkill { /window kill } # deop 4 fois de suite :) alias 4deop { /eval mode $winchan() -oooo $0 $0 $0 $0 } # voice 4 fois de suite alias 4voice { /eval mode $winchan() +vvvv $0 $0 $0 $0 } # unvoice 4 fois de suite alias 4unvoice { /eval mode $winchan() -vvvv $0 $0 $0 $0 } # /join = creation d'une nouvelle window avec le chan # /jh = ouverture du chan dans la window en cours alias rjoin join alias jf joinfirst alias jh joinfirst alias joinhere joinfirst alias joinfirst { window double on triple on notify_level msgs,notices logfile /var/log/irc/logs.$0 log on channel $0 # cset $0 PUBFLOOD_IGNORE_TIME 5 # cset $0 pubflood off # cset $0 KICK_ON_PUBFLOOD 20 } alias join { window $JOIN_NEW_WINDOW_TYPE logfile /var/log/irc/logs.$0 log on channel $0 # cset $0 PUBFLOOD_IGNORE_TIME 5 # cset $0 pubflood off # cset $0 KICK_ON_PUBFLOOD 20 } alias j join # idem pour les query alias rquery query alias rq query alias qf queryfirst alias queryhere queryfirst alias qh queryfirst alias queryfirst { window double on triple on notify_level msgs,notices logfile /var/log/irc/logs.$0 log on query $0 eval wset STATUS_USER1 $chr(27)[m$chr(27)[36m$chr(27)[44mHost: $convert($after(@ $userhost($0))) $userhost($0) } alias q query alias query { window $QUERY_NEW_WINDOW_TYPE logfile /var/log/irc/logs.$0 log on query $0 eval wset STATUS_USER1 $chr(27)[m$chr(27)[36m$chr(27)[44mHost: $convert($after(@ $userhost($0))) $userhost($0) } # /msg version dcc alias dccmsg { /msg =$0 $1- } # /dccchat alias dccchat { /dcc chat $0 /window $QUERY_NEW_WINDOW_TYPE logfile /var/log/irc/logs.$0 log on query =$0 } # /dcccl = ferme tout les dcc ouvert alias dcccl { /dcc closeall } # citation fortune 'tamere' sur le chan en cours alias tamere { /eval exec -msg $winchan() echo "$0: `/usr/games/fortune tamere`" } # ecriture en énorme des arguments sur le chan en cours alias figlet { exec -out echo "$*" | figlet -w 64 } # dessine une vache énorme qui parle alias cow { exec -out exec cowsay $0- } # affiche le code du pays en argument alias country { eval echo $0 -> $country($0) } # /upsud = se lance au démarrage pour lancer les chans alias upsud { /TOGGLE operview /window size 50 /window oper_view number 99 /jf #fleming /j #aurore /j #opers /j #hpman /j #glandeurspower /j #linux /j #linux-help /j #help /j #ffss /j #LaTeX /j #tv_orsay /cset * KICK_ON_PUBFLOOD 5 /cset * PUBFLOOD_IGNORE_TIME 5 /cset * pubflood off /cset #fleming pubflood on /cset #linux pubflood on /cset #linux-help pubflood on /cset #help pubflood on /cset #ffss pubflood on } # test alias rupsud { /window 1 channel #fleming /window 2 channel #aurore /window 3 channel #opers /window 4 channel #hpman /window 5 channel #glandeurspower /window 6 channel #linux /window 7 channel #linux-help /window 8 channel #help /window 9 channel #ffss /window 10 channel #LaTeX /window 11 channel #tv_orsay } # /upsud2 meme chose pour un 2eme client avec des autres chans alias upsud2 { /jf #yoggy /j #fuck /j #antireboot /j #megahal /j #linouxsh /j #iut /j #kuso /cset * KICK_ON_PUBFLOOD 5 /cset * PUBFLOOD_IGNORE_TIME 5 /cset * pubflood off } # bouncer alias bouncer { /win server irc.u-psud.fr:5555 } # evenements # /init lors de la connection on connect "*" { /init } # lorsque quelqu'un change de nick, # il faut changer le nick dans le query qu'on a ouvert avec la personne # REMARQUE: il faut etre sur un chan commun avec la personne avec laquelle on # query-se, sinon son nick ne sera pas rafraichi ON -nickname "*" { if ( querywin($0) > 0 ) { @ winnum = querywin($0) xeval -win $winnum { window query $1 } } } # pour swapper de window si query : on -msg "*" { @qw = querywin($0) if ( qw <= 0 ) { window new hide swap last double on triple on notify_level msgs,notices logfile /var/log/irc/logs.$0 log on query $0 date whois $0 eval wset STATUS_USER1 $chr(27)[m$chr(27)[36m$chr(27)[44mHost: $convert($after(@ $userhost($0))) $userhost($0) } } # pour etre plus discret...(mais pas bo) # on ^msg "*" { # @qw = querywin($0) # if ( qw <= 0 ) { # @n = winnum() # window new hide swap last double on triple on notify_level msgs,notices logfile /var/log/irc/logs.$0 log on query $0 # echo <$0> $1- # window swap $n # } # xeval -window $qw echo <$0> $1- # } #