Add ircii configuration (except *.private files) - dotfiles - leot's dotfiles
(HTM) hg clone https://bitbucket.org/iamleot/dotfiles
(DIR) Log
(DIR) Files
(DIR) Refs
---
(DIR) changeset 1f005e65a9b8c82b84fab409a9fd22dde88354e2
(DIR) parent 98aeef9d2c035c49af16a4cdf0471c8801fb7123
(HTM) Author: Leonardo Taccari <iamleot@gmail.com>
Date: Sun, 23 Sep 2018 23:42:06
Add ircii configuration (except *.private files)
Diffstat:
irc/aliases | 36 ++++
irc/autoidentify | 24 +++
irc/binds | 19 ++
irc/compl.mods | 397 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
irc/prec | 68 +++++++++
irc/silent | 21 ++
ircrc | 52 +++++++
7 files changed, 617 insertions(+), 0 deletions(-)
---
diff -r 98aeef9d2c03 -r 1f005e65a9b8 irc/aliases
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/irc/aliases Sun Sep 23 23:42:06 2018 +0200
@@ -0,0 +1,36 @@
+# log window
+alias wlog {
+ ^window name log
+ ^window nostatus
+ ^window notify_level beep
+ ^eval window logfile ${HOME}/.irc/logs/log
+ ^window log on
+}
+
+# Freenode stuffs
+alias freenode ^window name freenode;^window server -SSL chat.freenode.net:6697
+alias fja {
+ ^window addgroup freenode channel #netbsd bind #netbsd
+ ^window addgroup freenode channel #netbsd-code bind #netbsd-code
+ ^window addgroup freenode channel #netbsd-it bind #netbsd-it
+ ^window addgroup freenode channel #pkgsrc bind #pkgsrc
+}
+alias fjo {
+ ^window name freenode-others
+ ^window addgroup freenode-others channel #bitreich-en bind #bitreich-en
+ ^window addgroup freenode-others channel #gopherproject bind #gopherproject
+}
+
+# OFTC stuffs
+alias oftc ^window name oftc;^window server -SSL irc.oftc.net:6697
+alias oja {
+ ^window addgroup oftc channel #pwmt bind #pwmt
+}
+
+# bitlbee stuffs
+alias bitlbee ^window name bitlbee;^window server -IRC localhost:6667
+
+# identify stuffs
+alias identify ^msg NickServ IDENTIFY
+alias ghost ^msg NickServ GHOST
+alias release ^msg NickServ RELEASE
diff -r 98aeef9d2c03 -r 1f005e65a9b8 irc/autoidentify
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/irc/autoidentify Sun Sep 23 23:42:06 2018 +0200
@@ -0,0 +1,24 @@
+alias .freenode_identify ^msg NickServ IDENTIFY $FREENODE_PASSWD
+alias .oftc_identify ^msg NickServ IDENTIFY $OFTC_PASSWD
+alias .bitlbee_identify ^msg NickServ IDENTIFY $BITLBEE_PASSWD
+
+on ^notice "NickServ % This nickname is registered. Please choose a different nickname, or identify via /msg NickServ identify <password>." {
+ echo $1 *$0* $2-
+ if (match(*.freenode.net $S) && match($FREENODE_NICK $N)) {
+ timer 1 .freenode_identify
+ }
+}
+
+on ^notice "NickServ % This nickname is registered and protected. If it is your nickname, you may" {
+ echo $1 *$0* $2-
+ if (match(*.oftc.net $S) && match($OFTC_NICK $N)) {
+ timer 1 .oftc_identify
+ }
+}
+
+on ^372 "* This server is running BitlBee *" {
+ echo $2-
+ if (match(localhost $S) && match($BITLBEE_NICK $N)) {
+ timer 1 .bitlbee_identify
+ }
+}
diff -r 98aeef9d2c03 -r 1f005e65a9b8 irc/binds
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/irc/binds Sun Sep 23 23:42:06 2018 +0200
@@ -0,0 +1,19 @@
+bind meta1-1 parse_command ^window swap 1
+bind meta1-2 parse_command ^window swap 2
+bind meta1-3 parse_command ^window swap 3
+bind meta1-4 parse_command ^window swap 4
+bind meta1-5 parse_command ^window swap 5
+bind meta1-6 parse_command ^window swap 6
+bind meta1-7 parse_command ^window swap 7
+bind meta1-8 parse_command ^window swap 8
+bind meta1-9 parse_command ^window swap 9
+
+bind meta1-0 beginning_of_line
+bind meta1-b backward_word
+bind meta1-w forward_word
+bind meta1-$ end_of_line
+
+bind ^C parse_command ^window new hide_others
+bind ^D parse_command ^window kill
+bind ^N parse_command ^window next
+bind ^P parse_command ^window prev
diff -r 98aeef9d2c03 -r 1f005e65a9b8 irc/compl.mods
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/irc/compl.mods Sun Sep 23 23:42:06 2018 +0200
@@ -0,0 +1,397 @@
+# $eterna: compl.mods,v 1.3 2003/12/08 05:05:59 mrg Exp $
+#
+# Complete Modules by Ian Frechette
+# Last updated 2-2-94
+# example modules
+# Don't let the size scare you. This is a whole collection of
+# examples and comments about the design of modules
+# meat of all this are the interface functions to 'complete'
+# compl.add, and compl.list (soon to be compl.del)
+# the function that does the work is compl.parse which is very small
+# and whatever parsing routine it calls.
+
+# These should actually all be in their individual modules
+# but this is just an example file..
+
+# Note.. compl.list is internal to complete.. shoulnd't normally be used
+if (compl.list == [])
+{
+# Note here.. Currently, if you compl.add /blah blahparse
+# followed by compl.add /blah otherparse only the latter will
+# called. No conflict message is shown unless you replace the
+# default 'null' and 'nomatch' parsers.
+ compl.add -null -nomatch defaultparse
+ compl.add /c chanparse
+ compl.add /channel chanparse
+ compl.add /l chanparse
+ compl.add /leave chanparse
+ compl.add /part chanparse
+}
+
+
+# testparse <cmd> <stuff....pat>
+# this is called by the complete routines.
+@ dp.tmp = [0 :]
+# [0 :] represents a count of 0.. and a null pattern :<pat>
+alias defaultparse {
+ @ dp.cnt = [$*]
+ @ dp.cnt = #dp.cnt
+ ^assign -dp.pat
+ @ dplist = chanusers($C)
+ # all the cnt stuff is in case you do /command word1 word2 pattern<tab>
+ @ dp.pat = [$(${dp.cnt - 1})]
+ # '/command pattern ' leaves <pat> null
+ # '/command pattern' sets <pat> to a new pattern
+ # important because smartparse may leave a space
+ if (right(1 $L) != [ ]) {@ dp.tmp = [0 :$dp.pat]}
+
+ # call testparse with current cnt :<pat> <listname> <newpat>
+ @ dp.tmp = smartparse($dp.tmp dplist $dp.pat)
+ # note dp.tmp accounts for two arguments.. and is modified and saved
+
+ if (left(1 $word(1 $dp.tmp)) == [,])
+ { }
+ {if (left(1 $word(1 $dp.tmp)) == [.])
+ { }}
+}
+
+alias chanparse {
+ @ cp.cnt = [$*]
+ @ cp.cnt = #cp.cnt
+ ^assign -cp.pat
+ @ cplist = mychannels()
+ # all the cnt stuff is in case you do /command word1 word2 pattern<tab>
+ @ cp.pat = [$(${cp.cnt - 1})]
+ # '/command pattern ' leaves <pat> null
+ # '/command pattern' sets <pat> to a new pattern
+ # important because smartparse may leave a space
+ if (right(1 $L) != [ ]) {@ cp.tmp = [0 :$cp.pat]}
+
+ # call testparse with current cnt :<pat> <listname> <newpat>
+ @ cp.tmp = smartparse($cp.tmp cplist $cp.pat)
+ # note cp.tmp accounts for two arguments.. and is modified and saved
+
+ if (left(1 $word(1 $cp.tmp)) == [,])
+ { }
+ {if (left(1 $word(1 $cp.tmp)) == [.])
+ { }}
+}
+
+# message parser module.. Compatible with included tabscript
+# currently calls the tabkey script under 3 conditions
+# the input line has more than 2 argments on it.. '/msg bob thud<TAB>'
+# the input line has nothing on it '<TAB>'
+# the input line has only one argument and the character before the
+# cursor is a space '/msg bob <TAB>'
+# plus it now does nickname completion
+# /m D<TAB> expands to /m Daemon and so on
+alias messparse {
+ if (([$1] != []) && ([$2] == []))
+ {
+ if (right(1 $*) != [ ])
+ {
+ # this is the simple match.. just match first occurance
+ # and expand
+ if (mp.cnt = match($(1)* $tk.msglist))
+ {
+ parsekey delete_previous_word
+ # in case one does /m =ni<TAB> it must delete the =
+ if (index(#=% $1) >= 0) {parsekey backspace}
+ xtype -literal $word(${mp.cnt - 1} $tk.msglist)
+ xtype -literal ${[ ]}
+ }
+ }
+ {
+ ^tk.getmsg 1 $tk.msglist
+ }
+ }
+ {
+ ^tk.getmsg 1 $tk.msglist
+ }
+}
+
+
+# connect module for opers.. easily changeable to kicks, bans.. etc..
+# simply use /connect <TAB> for list or /connect <uniqid tag><TAB>
+# eg. /connect pen<TAB> expands to /connect penfold.ece.uiuc.edu
+# It always expands first matching string. Look at testparse for
+# a more intelligent way to do it.
+
+@ connlist = [irc.uiuc.edu goren1.u.washington.edu ircserver.iastate.edu w6yx.stanford.edu hamblin.math.byu.edu freedom.nmsu.edu dreamtime.unm.edu ircserver.santafe.edu irc.netsys.com irc-2.mit.edu cs-mail.bu.edu]
+
+alias connparse {
+ if ([$1] != [])
+ {
+ @ cp.line = [$*]
+ if ((right(1 $*) == [ ]) && ([$2] == [])&& ([$0] == [/connect]))
+ {
+ xtype -literal 6667;xtype -literal ${[ ]}
+ # note.. if converted to use smartparse.. the port number must
+ # be removed here.. the above logic conflicts with SP
+ }
+ {
+ # expand only the first match found (See 'testparse' for better way
+ if (cp.cnt = match($(${#cp.line -1})* $connlist))
+ {
+ delword
+ xtype -literal $word(${cp.cnt - 1} $connlist)
+ xtype -literal ${[ ]}
+ }
+ {
+ echo *** connlist $connlist
+ }
+ }
+ }
+ {
+ echo *** connlist $connlist
+ }
+}
+
+# Load module
+# /load net<TAB> expand to /load netsplit and so on.
+# Note the problem right now is that it only finds and expands the first
+# name in the list I think we can get around this.
+@ loadlist = [netsplit ircgrep cut-paste compl.mods]
+alias loadparse {
+ if ([$1] != []) {
+ if (lp.cnt = match($(1)* $loadlist))
+ {
+ parsekey delete_previous_word
+ xtype -literal $word(${lp.cnt - 1} $loadlist)
+ }
+ }
+ {
+ echo *** loadlist = $loadlist
+ }
+ ^assign -lp.cnt
+}
+
+# ############ stuff related to SMARTPARSE ###################
+# The new testparse rewritten to use the
+# extremely awsome smartparse routine.
+
+if (!match(/test $compl.list)) {compl.add /test testparse}
+
+# just a quick alias for making LINKS lists.. /makelist testlist *.edu
+# will make a list of all *.edu servers.. Note that just * is
+# generally too big a list for ircII
+alias makelist {
+ if ([$1])
+ {
+ ^on ^364 * push $0 $$1
+ links $1-
+ wait -cmd eval ^on 364 -\;echo *** makelist finished
+ }
+}
+
+@ testlist = [aone atwo athree bone btwo bthree ircserver.iastate.edu ircserver.santafe.edu]
+
+# testparse <cmd> <stuff....pat>
+# this is called by the complete routines.
+@ tp.tmp = [0 :]
+# [0 :] represents a count of 0.. and a null pattern :<pat>
+alias testparse {
+ # ignore this first line..
+ @ tp.cnt = [$*]
+ @ tp.cnt = #tp.cnt
+ ^assign -tp.pat
+ # all the cnt stuff is in case you do /command word1 word2 pattern<tab>
+ if (tp.cnt > 1)
+ {
+ @ tp.pat = [$(${tp.cnt - 1})]
+ # '/command pattern ' leaves <pat> null
+ # '/command pattern' sets <pat> to a new pattern
+ # important because smartparse may leave a space
+ if (right(1 $L) != [ ]) {@ tp.tmp = [0 :$tp.pat]}
+
+ # Uncomment the following line to see how it works from here.. debugging
+ # echo smartparse\($tp.tmp testlist $tp.pat\)
+
+ # call testparse with current cnt :<pat> <listname> <newpat>
+ @ tp.tmp = smartparse($tp.tmp testlist $tp.pat)
+ # note tp.tmp accounts for two arguments.. and is modified and saved
+
+ if (left(1 $word(1 $tp.tmp)) == [,])
+ {echo *** no match for pattern [$tp.pat] found in list}
+ {if (left(1 $word(1 $tp.tmp)) == [.])
+ {echo *** testlist: $testlist}}
+ }
+ {
+ echo *** testlist : $testlist
+ }
+}
+
+alias test echo *** TEST: You've matched: $*
+
+# test module
+# Trying to make some sort of intelligent handling of the tab lists.
+@ sp.cnt = 0
+
+# call it with smartparse <cnt> :<pat> <listname> <newpat>
+# $0 $1 $2 $3
+# returns <counter> [:,.]<pattern>
+# : == successful match , == no match . == null
+#
+# Look at how testparse uses it.. you shouldn't have to touch any
+# smartparse vars.. It's all handled through the interface.. basically
+# you're telling it where to start looking in the list and how
+# long the list is.. Each time smartparse is called it returns a counter
+# value indicating where it left off last time. You can save it
+# or not.. testparse saves it.. and passes it back as the new
+# starting position <cnt>
+#
+# Assuming the counter, pattern, and list are maintained through each call
+# it'll assume you're searching forward in the list from some place
+# after the last word matched in the list..
+#
+# If you feed it a <newpat> for which <pat> is not a subset, it'll reassign
+# <pat> to <newpat> and restart the process..
+# It defaults to expansion.. so.. <pat> = blah
+# will match blahone, blahtwo etc. Works with wildcards.. *a* matches a lot
+# Try it.
+
+^assign -sp.tmp
+alias smartparse {
+# int sp.tmp - index of last match found
+# int sp.cnt - position in list
+# int sp.max - max number of elements in list
+# string sp.pat - match pattern
+ if ([$3] != [])
+ {
+ # Extract <pat> from :<pat> Note.. It may be null
+ @ sp.pat = mid(1 50 $1)
+ @ sp.max = [$(#$2)]
+ @ sp.cnt = [$0]
+ # set pattern. Determine if we've changed the base pattern or not
+ if (sp.pat == [])
+ {@ sp.pat = [$3]}
+ { if (!match($(sp.pat)* $3)) {@sp.pat = [$3]} }
+ @ sp.run = 1
+
+ while (((sp.list = words($sp.cnt $sp.max $($2))) != []) && (!sp.tmp) && sp.run)
+ {
+ # look for match in list
+ if (sp.tmp = match($(sp.pat)* $sp.list))
+ {
+ # sp.cnt is absolute position in list. Jump over found item.
+ # to set up for the next call to smartparse
+ @ sp.cnt = sp.cnt + sp.tmp
+
+ # parsekey delete_previous_word
+ delword
+ xtype -literal $word(${sp.tmp - 1} $sp.list)
+ xtype -literal ${[ ]}
+ }
+ {
+ # nothing found.. drop out of loop
+ # for this condidtion to occur we must be at the beginning
+ # of the loop... either first pass.. or just looped back
+ if (!sp.cnt && !sp.tmp)
+ {
+ # notfound condition set for return value later
+ @ sp.notfound = [$sp.cnt ,$sp.pat]
+ @ sp.run = 0
+ # echo *** smartparse: no matching pattern
+ }
+ # loop back
+ @ sp.cnt = 0
+ }
+ }
+ ^assign -sp.tmp
+ if (!sp.list) {@sp.cnt = 0}
+ ^assign -sp.list
+ if (sp.notfound == [])
+ {@ function_return = [$sp.cnt :$sp.pat]}
+ {@ function_return = sp.notfound;^assign -sp.notfound}
+ }
+ {
+ # echo *** sp NULL
+ # echo *** $2: $($2)
+ @ function_return = [$sp.cnt .$sp.pat]
+ }
+ ^assign -sp.run
+}
+
+# alias words.. usage $word(<begin> <end> <words>)
+# words(0 2 zero one two three ... ) == 'zero one two' and so on
+alias words {
+ @ function_return = [$(${[$0]+2}-${[$1] +2})]
+}
+
+# This is like DELETE_PREVIOUS_WORD except that it delets to the
+# previous space which is much more useful than the current
+# behavior of deleting to the previos non- [a-zA-Z0-9] char. :-?
+alias delword {
+ parsekey erase_to_end_of_line
+ if ((dw.char = right(1 $L)) != [ ]) {@ dw.nw = 0} {@dw.nw = 1}
+ while (((dw.char != [ ]) || dw.nw) && (dw.char != []))
+ {
+ parsekey backspace
+ if ((dw.char = right(1 $L)) != [ ]) {@ dw.nw = 0}
+ }
+ ^assign -dw.char;^assign -dw.nw
+}
+
+
+# it is of course possible to do command completion with something like
+alias expand.con parsekey erase_to_beg_of_line;type /connect $()
+# /con<tab> expands to /connect
+
+# Be careful though.. note the $() at the end of the line.
+# Without this 'complete' sends expand.con /con and the above
+# alias will add the '/con' back onto the end of the line resulting
+# in /connect /con on the input line when you're done
+
+
+# # # # # # # # # # MODULE WRITING PHILOSOPHY # # # # # # # # # #
+# Some thoughts about using complete and designing complete modules.
+#
+# Basically for any given time you hit TAB there are three states
+# normal, null, and nomatch
+# normal - there is something on the command line to process
+# and the command is in the command list maintained by 'complete'
+# The associated command parser is called with the contents of the
+# input line in its entirety as the arguments.
+# null - there is nothing at all on the command line and some
+# default action must be taken. No parser need be called at all as well.
+# nomatch - the command at the head of the input line is not
+# found in the list of commands maintained by 'complete'.
+# A default 'nomatch' parser may or may not be called but if it is called
+# it's passed the entire contents of the input line.
+#
+# This is not the end of the story however.
+# If you're writing a completion module of some sort there are the same
+# 3 states plus 1 more. Let's say you want to write something to
+# find a match for a given keyword prefix out of a list when you hit
+# TAB. e.g. /eat ap<TAB> looks for matching words that start with ap
+# The 4 actions are
+# normal - There is a single match for ap and it expands /eat apple
+# multiple matches - There is more than one match for ap and thus
+# a choice must be made. Possible choices include
+# 1. do nothing
+# 2. list possible matches (like ^D) or set showmatch in tcsh shell
+# *** matches for prefix 'ap': apple apricot apendage
+# 3. match only the first occurance Currently what the /connect module
+# does /eat apple
+# 4. cycle through the possible matches for the keyword 'ap'.
+# The 'testparse' modules uses this scheme and it's my favorite
+# albiet a tad more expensive in terms of CPU cycles and responce
+# time. (I'm sure someone could see the diff.. I can't ;)
+# /eat ap<TAB> -> /eat apple<TAB> -> /eat apricot<TAB> etc..
+# 5. display worthless error message
+# *** non-unique matches found
+# nomatch - as as before, nomatching keywords are found, the choices are
+# limited to things like displaying the whole list or just cycling through
+# to the next item in the list like the 'tabkey' script's 'messparse' does.
+# null - This one is more likely to happen only if 'complete' saw the
+# input line as null, but then the null action is ussually special anyway.
+# Otherwise this may occur when you say just /eat<TAB> and the obvious
+# thing to do here is just to display the list of items to choose from
+# in an appropriate format.
+
+# Just remember.. the parsing routine can really do anything it wants..
+# it could simply 'sendline' the line on to the server and push a
+# button to start WWIII when you hit tab.. It doesn't have to mess with the
+# command line but it's more useful that way. Although.. you could write
+# a tab completion module that when tab was hit.. it spell checked
+# the line.. anything is possible..
diff -r 98aeef9d2c03 -r 1f005e65a9b8 irc/prec
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/irc/prec Sun Sep 23 23:42:06 2018 +0200
@@ -0,0 +1,68 @@
+# $eterna: prefix,v 1.2 2001/08/12 15:57:11 mrg Exp $
+#
+# prefix each message with date and channel name
+
+alias log {
+ if ( match(log $windows()) ) {
+ xecho -window log $*
+ }
+}
+
+on ^action * {
+ echo $1 *$0* $2-
+ if (!MATCH($1 &bitlbee)) {
+ log $STRFTIME($TIME() %d/%m/%Y) $Z $1 *$0* $2-
+ }
+ if (MATCH($N $STRIP(:,.!?<> $2-))) {
+ beep
+ }
+}
+on ^msg * {
+ echo $0 <$0> $1-
+ log $STRFTIME($TIME() %d/%m/%Y) $Z $0 <$0> $1-
+ beep
+}
+on ^notice * {
+ echo $1 *$0* $2-
+ log $STRFTIME($TIME() %d/%m/%Y) $Z $1 *$0* $2-
+ beep
+}
+on ^public * {
+ echo $1 <$0> $2-
+ if (!MATCH($1 &bitlbee)) {
+ log $STRFTIME($TIME() %d/%m/%Y) $Z $1 <$0> $2-
+ }
+ if (MATCH($N $STRIP(:,.!?<> $2-))) {
+ beep
+ }
+}
+on ^public_msg * {
+ echo $1 \($0) $2-
+ if (!MATCH($1 &bitlbee)) {
+ log $STRFTIME($TIME() %d/%m/%Y) $Z $1 \($0) $2-
+ }
+}
+on ^public_other * {
+ echo $1 <$0> $2-
+ if (!MATCH($1 &bitlbee)) {
+ log $STRFTIME($TIME() %d/%m/%Y) $Z $1 <$0> $2-
+ }
+}
+on ^send_action * {
+ echo $0 *$N* $1-
+ if (!MATCH($0 &bitlbee)) {
+ log $STRFTIME($TIME() %d/%m/%Y) $Z $0 *$N* $1-
+ }
+}
+on ^send_msg * {
+ echo $0 <$N> $1-
+ log $STRFTIME($TIME() %d/%m/%Y) $Z $0 <$N> $1-
+}
+on ^send_public * {
+ echo $0 <$N> $1-
+ if (!MATCH($0 &bitlbee)) {
+ log $STRFTIME($TIME() %d/%m/%Y) $Z $0 <$N> $1-
+ }
+}
+
+set input_prompt $T>
diff -r 98aeef9d2c03 -r 1f005e65a9b8 irc/silent
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/irc/silent Sun Sep 23 23:42:06 2018 +0200
@@ -0,0 +1,21 @@
+# $eterna: silent,v 1.2 2001/08/12 15:57:12 mrg Exp $
+#
+# This is necessary when you join crowded channels like #report...
+# All the join,leave,quit,nick and mode change messages do not appear
+# on the screen, unless you have %U somewhere in your STATUS_FORMAT,
+# then the changes will be displayed in your status line, which is
+# a lot less annoying and distracting. ;-)
+
+on ^join * set status_user join: $0 \($1\)
+on ^leave * set status_user leave: $0 \($1\)
+on ^signoff * set status_user signoff: $0
+on ^nick * set status_user nick: $0 -> $1
+on ^mode * set status_user mode: $*
+on ^topic * set status_user topic: $0: $1-
+
+on ^icb_status sign-on * set status_user signon: $1
+on ^icb_status sign-off * set status_user signoff: $1
+on ^icb_status join * set status_user join: $1 \($2\)
+on ^icb_status leave * set status_user leave: $1 \($2\)
+
+# lynx91
diff -r 98aeef9d2c03 -r 1f005e65a9b8 ircrc
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/ircrc Sun Sep 23 23:42:06 2018 +0200
@@ -0,0 +1,52 @@
+set channel_name_width 64
+set clock off
+set continued_line
+set display_encoding UTF-8
+set help_prompt off
+set history 2000
+set indent on
+set input_encoding UTF-8
+set input_prompt $T>
+set irc_encoding UTF-8
+set lastlog 20000
+set lastlog_level PUBLIC MSGS NOTICES WALLS WALLOPS NOTES OPNOTES SNOTES ACTIONS BEEP
+set novice off
+set scroll on
+set show_away_once on
+set show_channel_names on
+set star_prefix ***
+set status_user
+
+eval set logfile ${IRCLOG}
+set log off
+
+alias c channel
+alias j join
+alias l leave
+alias ll lastlog
+alias m msg
+alias q query
+alias w window
+
+# XXX: this can SIGSEGV on older ircii when doing `/^I'
+bind ^I command_completion
+bind ^W delete_previous_word
+
+# ircii default scripts
+load fkeys
+
+# Remap keys assigned by fkeys
+assign fk.1 scroll_start
+assign fk.4 scroll_end
+
+load aliases
+load aliases.private
+load binds
+load prec
+load silent
+
+load passwd.private
+load autoidentify
+
+load complete
+load compl.mods