Irssi Settings Guide


This isn't my work. I just noticed that the original source was down and found it cached at Google. This is simply here to preserve it for my use or the use of anyone else who needs it. - Brian

Irssi 0.8.9 settings notes. Gathered through much effort by Rocco Caputo <rcaputo at cpan dot org> (aka "dngor"). Includes the assistance of Nei and irc.freenode.net #irssi.

Given to the world with one string attached: Give us credit if you use/abuse/publish this in your own work. Thanks!

This is not an attempt to document Irssi completely. It should be used along with the documents at <http://irssi.org/?page=docs> for more complete understanding of how irssi works. For example, the startup HOWTO and tips/tricks show sample uses for these settings, including some very useful stuff.


2005-06-05:

Tweaked an example to use the same command the surrounding text said it was.

2005-05-04:

Not terribly significant. All edits happened in the introduction.


[completion]

completion_auto = OFF

Tell irssi to detect incomplete nicknames in your input and look up their completions automatically. Incomplete nicknames are detected when you input text that matches /^(\S+)${completion_character}/. For example:

vis: hello

will be expanded to

visitors: hello

when you press enter. So will:

      vis:hello
      Vis::Hello(12);

This will eventually bite you.

completion_char = :

The text that irssi puts after a tab-completed nickname, or that it uses to detect nicknames when you have completion_auto turned on.

completion_keep_privates = 10

The number of nicknames from private messages to keep around for quicker completion.

TODO - Is this list maintained by people who privately message you, who you privately message, or both?

completion_keep_publics = 50

The number of nicknames from public messages to keep around for quicker completion.

TODO - Is this list maintained by watching who you speak to, who speak to you, or both?

completion_nicks_lowercase = OFF

When enabled, irssi forces completed nicknames to lowercase. Manually typed nicknames retain their case.

completion_strict = OFF

When on, nicknames are matched strictly. That is, the partial nickname you enter must be at the beginning of a nickname in one of irssi's lists.

When off, irssi will first try a strict match. If a strict match can't be found, irssi will look for nicknames that match when their leading non-alphanumeric characters are removed. For

example

vis: hello

With strict completion on, it will only match nicknames beginning with "vis". With strict completion off, it may match "visitors" or "visitors" or "[visitors]", and so on.

[dcc]

dcc_autoaccept_lowports = OFF

When this setting is OFF, irssi will not auto-accept DCC requests from privileged ports (those below 1024) even when auto-accept is otherwise on.

dcc_autochat_masks =

Set dcc_autochat_masks with user masks to auto-accept chat requests from. When unset, irssi's auto-accept settings work for everyone who tries to DCC chat you.

dcc_autoget = OFF

Turn DCC auto-get on or off. When on, irssi will attempt to auto-get files sent to you.

dcc_autoget_masks =

Set dcc_autoget_masks with user masks to automatically accept files sent to you via DCC. When unset, irssi's auto-get settings will work for everyone who attempts to send you files.

dcc_autoget_max_size =

Set to nonzero to limit the size of files that irssi will auto-get.

Note: Because of the way DCC works, someone may advertise a file at once size but try to send you something larger. According to src/irc/dcc/dcc-autoget.c, this only filters the request based on the advertised size.

dcc_autorename = OFF

Turn this setting to automatically rename received files so they don't overwrite existing files.

I think this setting thwarts dcc_autoresume. The auto-resume setting looks for filename conflicts and assumes you want to resume a previous download. Auto-renaming the download makes sure that filenames never conflict.

dcc_autoresume = OFF

Irssi will automatically try to resume a file transfer when getting a file that already exists.

I think this option clashes with dcc_autorename. See dcc_autorename for more information.

Dcc_autoresume is ignored if dcc_autoget is off.

dcc_download_path = ~

The path where DCC downloads will be stored.

dcc_file_create_mode = 644

The mode in which new files are created.

      644 is read/write by you, and readable by everybody else.
      600 is read/write by you, nobody else can read or write.

dcc_mirc_ctcp = OFF

Tells irssi to send CTCP messages that are compatible with mIRC clients. This lets you use "/me" actions in DCC chats with mIRC users, among other things.

dcc_own_ip =

When set, DCC requests will always come from dcc_own_ip, and irssi will always bind to this address when answering DCC requests.

Otherwise irssi determines your address on its own.

dcc_port = 0

The smallest port number that irssi will use when initiating DCC requests. Irssi picks a port at random when this is set to zero.

Dcc_port can be two ports, separated by a space. In that case, irssi will pick a port between the two numbers, inclusively.

/set dcc_port 10000 20000

dcc_send_replace_space_with_underscore = OFF

When enabled, replace spaces with underscores in the names of files you send. It should only be necessary when speaking with clients that don't support quoted filenames, or if you hate spaces in filenames.

dcc_timeout = 5min

How long to wait for answers to DCC requests.

dcc_upload_path = ~

The path where you keep public files available to send via DCC.

[flood]

autoignore_level =

The type or types of messages that will trigger auto-ignore.

autoignore_time = 5min

The amount of time to auto-ignore someone generating messages too quickly.

cmd_queue_speed = 2200msec

The time to wait between sending commands to an IRC server. Used to prevent irssi from flooding you off if you must auto-kick/ban lots of people at once.

cmds_max_at_once = 5

How many commands you can send immediately before server-side flood protection starts.

flood_max_msgs = 4
flood_timecheck = 8

Flood will be detected if more than flood_max_msgs messages are found during flood_timecheck seconds. In this case, five or more messages matching autoignore_level over the course of eight seconds will trigger flood protection.

max_ctcp_queue = 5

The maximum number of pending CTCP requests to keep. Requests beyond max_ctcp_queue will be discarded.

[history]

max_command_history = 100

How many of your own input lines to keep for recall.

rawlog_lines = 200

Irssi's raw log is a buffer of raw IRC messages. It's used for debugging irssi and maybe some other things. This setting tells irssi how many raw messages to keep around.

scroll_page_count = /2

How many pages to scroll the scrollback buffer when pressing page-up or page-down. Expressed as a number of lines, or as a fraction of the screen:

      /2  = Scroll half a page.
      .33 = Scroll about a third of a page.
      4   = Scroll four lines.
                TODO - It would be nice to patch irssi so that a negative
number
                would scroll "all but this many" lines.  That is, -1 would
scroll
                a full page - one line, for people who like that.

scrollback_burst_remove = 10

This is a speed optimization: Don't bother removing messages from the scrollback buffer until the line limit has been exceeded by scrollback_burst_remove lines. This lets irssi do its memory management in chunks rather than one line at a time.

TODO - Is this right?

scrollback_lines = 500

The maximum number of messages to keep in your scrollback history. Set to 0 if you don't want to limit scrollback by a line count. The scrollback_time setting will be used even if scrollback_lines is zero.

Setting scrollback_lines to zero also seems to thwart the scrollback_burst_remove optimization.

scrollback_save_formats = OFF

Turn on to save formats in the scrollback buffer, so that old messages are not changed by new themes. Turn off so the current theme applies to your entire scrollback buffer.

Although OFF doesn't seem to do anything.

scrollback_time = 1day

Keep at least scrollback_time worth of messages in the scrollback buffer, even if it means having more than scrollback_lines lines in the buffer.

window_history = OFF

When turned ON, command history will be kept per-window. When off, irssi uses a single command history for all windows.

[log]

autolog = ON

Automatically log.

autolog_colors = OFF

Whether to save colors in autologs.

autolog_level = all -crap -clientcrap -ctcps

The types of messages to auto-log.

autolog_path = ~/irclogs/$tag/$0.log

Where to put auto-logs.

See Appendix B for Irssi's special variables.

awaylog_colors = ON

Whether to store color information in /away logs.

awaylog_file = ~/.irssi/away.log

Where to log messages while you're away.

awaylog_level = msgs hilight

The types of messages to log to awaylog_file while you're away.

log_close_string = --- Log closed %a %b %d %H:%M:%S %Y

The message to log when logs are closed.

See Appendix C for the meanings of Irssi's time format codes.

log_create_mode = 600

The permissions to use when creating log files.

600 is read/write by you, but nobody else can see them. A sensible default mode. Set it to 644 if you want the rest of the world to read your logs.

log_day_changed = --- Day changed %a %b %d %Y

The message to log when a day rolls over.

See Appendix C for the meanings of Irssi's time format codes.

log_open_string = --- Log opened %a %b %d %H:%M:%S %Y

The message to log when a log is opened.

See Appendix C for the meanings of Irssi's time format codes.

log_theme =

Logs can have a different theme than what you see on the screen.

log_timestamp = %H:%M

The time format for log timestamps.

See Appendix C for the meanings of Irssi's time format codes.

[lookandfeel]

activity_hide_level =

Message levels that don't count towards channel activity. That is, channels won't be marked as "active" if messages of these types appear.

activity_hide_targets =

Sometimes you don't care at all about a channel's activity. This is a list of channels to never show activity.

activity_hilight_level = MSGS DCCMSGS

There are times when you want to highlight channel activity in a window. Like when someone sends you a private message, or a DCC message. Activity_highlight_level sets the kind of messages you think are extra important.

activity_msg_level = PUBLIC

Flag a channel as active when messages of this type are displayed there.

actlist_moves = OFF

When on, irssi rearranges the activity list so windows with more recent activity appear first. Otherwise windows are listed in numeric order.

autoclose_query = 0

Automatically close query windows after autoclose_query seconds of inactivity. Setting autoclose_query to zero will keep them open.

autoclose_windows = ON

Automatically close windows when nobody is in them.

autocreate_own_query = ON

Automatically create query windows when you /msg someone.

autocreate_query_level = MSGS DCCMSGS

Automatically create query windows when receiving these types of messages.

autocreate_split_windows = OFF

Automatically created windows will be created as split windows with this setting on.

Split windows are the kind where multiple windows are on one screen.

autocreate_windows = ON

When on, create new windows for new-window items. When off, dump everything into one window.

autofocus_new_items = ON

Switch the focus to a new item when it's created. This may be disturbing at first when combined with query window auto-creation.

autostick_split_windows = ON

TODO - What is this?

Nei^ says: Setting split windows to stick means that their content won't change. Best thing to come up with a viable description might be if you tried it.

beep_msg_level = HILIGHT

Beep when messages match this level mask.

beep_when_away = ON

Should beeps be noisy when you're /away?

beep_when_window_active = ON

Should beeps be noisy in a window you're watching?

bell_beeps = OFF

Do bells actually cause beeps? This doesn't seem to have an effect.

Nei^ says: Bell_beeps seems to cover the case when a beep is actually calused by a printed message/format. It's unrelated to activity beeps.

chanmode_expando_strip = OFF

When on, $M will not return mode parameters.

colors = ON

Enable or disable colors.

emphasis = ON

Enable or disable real underlining and bolding when someone says bold or underlined.

emphasis_multiword = OFF

Allow more than one word bold and multiple underlined words.

emphasis_replace = OFF

The emphasis replaces the * or _ characters that indicate emphasis.

expand_escapes = OFF

Detect escapes in input, and expand them to the characters they describe. For example

\t

Is literally '\' and 't' when expand_escapes is off, but it's the tab character (chr 9) when expand_escapes is on.

hide_colors = OFF

Hide mIRC and ANSI colors when turned on.

hide_server_tags = OFF

Server tags are prefixes to some messages (server messages?) that let you know which server the message came from. This option lets you hide them.

hide_text_style = OFF

Hide bold, blink, underline, and reverse attributes.

hilight_act_color = %M

The color to use to highlight window activity in the status bar. That's the section that shows "[Act: ...]".

See Appendix D for Irssi's color codes.

hilight_color = %Y

The default color for /hilight.

See Appendix D for Irssi's color codes.

hilight_level = PUBLIC DCCMSGS

The types of messages that can be highlighted.

hilight_nick_matches = ON

Whether to highlight nickname matches.

indent = 10

How many columns to indent subsequent lines of a wrapped message.

indent_always = OFF

Should we indent the long words that are forcibly wrapped to the next line?

Some terminals have commands to open a browser from URLs in the terminal, but they won't do it properly if the URL is indented. The indent space breaks the URL.

mirc_blink_fix = OFF

Some terminals interpret bright background colors as blinking text. mIRC doesn't support blinking at all. This fixes the blinky terminals by replacing high colors with their low equivalents.

From irssi's ChangeLog:

/SET mirc_blink_fix - if ON, the bright/blink bit is stripped from MIRC colors. Set this to ON, if your terminal shows bright background colors as blinking.

names_max_columns = 6

Maximum number of columns to use for /names listing. Also shown on channel join. Set to 0 for "as many as fit in your terminal".

names_max_width = 0

Maximum number of columns to consume with a /names listing. Overrides names_max_columns if non-zero. Set to 0 for "as many as fit in your terminal".

print_active_channel = OFF

Always print the channel with the nickname (like <nick:channel>) even if the message is from the channel you currently have active.

query_track_nick_changes = ON

Query windows will track nick changes when this is on. That is, it looks for a matching user@host if a message comes in with an unknown nick.

reuse_unused_windows = OFF

When set on, irssi will reuse unused windows when looking for a new window to put something in. Otherwise unused windows are ignored, and new ones are always created.

scroll = ON

Set scroll ON to have irssi scroll your screen when it fills up. Set it OFF to require manual scrolling.

show_away_once = ON

When on, only show /away messages in the window that's currently open. Otherwise the message will appear in every window you share with the away person.

show_names_on_join = ON

Display the list of names in a channel when you join that channel.

show_nickmode = ON

Prefix nicknames with their channel status: voiced, half-op, op.

show_nickmode_empty = ON

If a person has no chanel modes, prefix their nickname with a blank space.

show_own_nickchange_once = OFF

Squash your own nick-change messages so they appear only once, not once in every window you have on that network.

show_quit_once = OFF

Only show a quit message once, otherwise display it in every channel you share with the quitter.

term_auto_detach = OFF

Automatically detach from the terminal when it disappears.

This doesn't actually work. Or if it does, there's currently no way to re-attach to the terminal. It may be useful for setting up daemons where you don't want to run nohup or screen.

term_force_colors = ON

Always display colors, even when the terminal type says colors aren't supported.

term_type = 8bit

Set the terminal type. Irssi will make special considerations for your type of terminal, which may be "utf-8", "big5", or "8bit". The term_type setting defaults to "8bit", even if set to some unknown value.

theme = default

Set the theme to use when displaying activity.

timestamp_format = %H:%M

How to format the time used in timestamps.

See Appendix C for the meanings of Irssi's time format codes.

timestamp_level = ALL

Types of messages to prefix a timestamp to. Once timestamping is temporarily turned on, it may stay on for timestamp_timeout seconds.

timestamp_timeout =

The amount of time to leave timestamps on after a timestamp_level message triggered timestamping. Useful for adding timestamps to the conversation that begins with some trigger.

timestamps = ON

Turn timestamps on or off. When off, not even timestamp_level will trigger them.

use_msgs_window = OFF

Use a single window for all private messages. This setting only makes sense if automatic query windows is turned off.

use_status_window = OFF

Create a separate window for all server status messages, so they don't clutter up your channels.

window_auto_change = OFF

Turn this on to automatically switch to newly-created windows. This may cause you to misdirect messages, so be careful.

window_check_level_first = OFF
window_default_level = NONE

From irssi's ChangeLog:

Added /SET window_check_level_first and /SET window_default_level. This allows you to keep all messages with specific level in it's own window, even if it was supposed to be printed in channel window. patch by mike@po.cs.msu.su

Try to choose better the window where we print when matching by level and multiple windows have a match. Should fix problems with query windows with a default msgs window + /SET window_check_level_first ON.

windows_auto_renumber = ON

When on, irssi will move windows down so there are no unused slots after a window is closed. Closing a window then renumbers all the windows after it.

[misc]

STATUS_OPER = *

The nick status reserved for irc opers.

auto_whowas = ON

Automatically try /whowas if you /whois someone who isn't online.

ban_type = normal

The default ban type to use: normal, user, host, domain, custom? See "/help ban" for a description of ban types.

channel_sync = ON

Set whether irssi should synchronize a channel on join. When enabled, irssi will gather extra information about a channel: modes, who list, ban list, ban exceptions, invite list.

cmdchars = /

Characters that tell irssi your input is a command rather than text to send.

ctcp_userinfo_reply = $Y

The reply to send when someone queries your user information. By default, it's "$Y", which is defined by the real_name setting.

http://irssi.org/?page=docs&doc=special_vars

ctcp_version_reply = irssi v$J - running on $sysname $sysarch

What to tell someone when they query your client's version.

group_multi_mode = ON

Consolidate multiple consecutive channel modes into a single message.

TODO - Does this delay the display of channel modes for a few seconds while it waits to see if multiple modes will arrive?

help_path = /usr/local/share/irssi/help

One or more paths where irssi will look for its help database. Multiple paths are separated by ":". It's very important that this is correct.

hide_netsplit_quits = ON

Don't display quit messages if they're the product of a netsplit.

ignore_signals =

Operating system signals to ignore. May be zero or more of: int, quit, term, alrm, usr1, usr2.

join_auto_chans_on_invite = ON

Automatically join a channel when invited to it.

kick_first_on_kickban = OFF

Kickban will normally ban first, then kick. This avoids unpleasantry if they're faster than you and can rejoin before the ban is set.

knockout_time = 5min

Knockouts are temporary kickbans. Knockout_time is the default amount of time before the temporary ban is lifted.

See /help knockout

lag_check_time = 1min

How long to wait between active lag checks. Irssi will passively check for lag when you're active, but sometimes it's necessary to actively check. This is the minimum amount of time between active checks.

lag_max_before_disconnect = 5min

Reconnect if your lag is this much.

lag_min_show = 1sec

Don't show lag shorter than this amount of time.

massjoin_max_joins = 3

If nonzero, detect mass joins. A mass join is when someone joins more than massjoin_max_joins per massjoin_max_wait seconds.

massjoin_max_wait = 5000

The amount of time to watch for mass-joins. I think 5000 is really 5 seconds.

max_wildcard_modes = 6

When set nonzero, don't mass op/deop/kick more than this many people. Commands that let you do things to other nicks can take wildcards. For example

/kick floodbot* flooding

would kick everybody whose nickname began with "floodbot". Unless there were more than max_wildcard_modes of them.

Prevents you from embarassment like:

/kick *

You can specify "-yes" if you really want to do it:

/kick -yes *

netjoin_max_nicks = 10

When non-zero, limits the number of nicknames to display during netjoins.

TODO - Is this correct?

netsplit_max_nicks = 10

When non-zero, limits the number of nicknames to display during netsplits.

TODO - Is this correct?

netsplit_nicks_hide_threshold = 15

Limit the number of nicks to display during netsplits to this many. Or don't limit them at all, if this is set to 0.

notify_check_time = 1min

How often to check for someone online when /notify is on.

notify_idle_time = 1hour

Notify you when someone you're watching becomes idle for this long.

notify_whois_time = 5min

How often to check /whois on a user who's online, to see if they're away or something.

opermode =

Irssi will set your modes to match opermode when you /oper up. For example, you might

/set opermode +s 1048575

override_coredump_limit = ON

Allow really really big coredumps if this is set on.

part_message =

Default message to send when parting a channel.

paste_detect_time = 5msecs

Irssi will detect pastes when your input has less than this much time between lines.

paste_verify_line_count = 5

Ask you whether you meant to paste something if it's longer than this many lines.

quit_message = leaving

Default message to send when /quit'ting.

settings_autosave = ON

Automatically save your settings when you quit irssi, or once per hour, rather than waiting for you to /save them yourself.

translation =

Set the translation table to use. See Appendix E.

usermode = +i

Default modes to set yourself once you've connected to a server.

wall_format = [Wall/$0] $1-

Format for wall messages.

write_buffer_size = 0

Amount of text (logs, etc) to buffer in memory before writing to disk. Useful for minimizing disk access.

write_buffer_timeout = 0

Amount of time to keep text in memory. A buffer is flushed to disk if the text in it is this old, even if the buffer isn't full.

[perl]

perl_use_lib = /usr/local/perl-582/i386-freebsd

Which perl library to use, in case you have many.

[proxy]

proxy_address =
proxy_port = 6667

The address and port of your IRC proxy.

proxy_password =

If the proxy is secured by a password, this is that.

proxy_string = CONNECT %s %d

How to tell your proxy to make a command.

I haven't found documentation for the codes used in proxy_string.

proxy_string_after =

Text to send after setting NICK and USER through a proxy.

use_proxy = OFF

Whether you actually use a proxy or not.

[server]

alternate_nick =

An alternate nickname to use if your preferred one is already taken.

hostname =

Your source hostname. Useful when you're on a multi-host system, and you want to look like you're at a particular host.

nick = troc

Your preferred nick.

real_name = ... the one-lobed man is king.

Your "real" "name".

resolve_prefer_ipv6 = OFF

If a host has ipv4 and ipv6 addresses, prefer the ipv6 one?

resolve_reverse_lookup = OFF

When connecting, resolve the server's IP address back into its hostname. Probably useful for figuring out exactly which server you're on after resolving a round-robin host.

server_connect_timeout = 5min

How long to wait for a connection to be established.

server_reconnect_time = 5min

How long to wait between reconnects to the same server. Some servers will k-line you if you reconnect too quickly.

skip_motd = OFF

Skip the server's message of the day?

ssl_cacert =
ssl_cafile =
ssl_cert =
ssl_pkey =
ssl_verify = OFF
use_ssl = OFF

SSL options. Set the certificates and keys, and stuff you'll use to connect to a secure server.

user_name = abuse

Set your system user name. This is used in times when you don't have working ident.

[servers]

channels_rejoin_unavailable = ON

Attempt to rejoin a channel if it's "temporarily unavailable". Channels may be unavailable during netsplits.


Appendix A: Levels

Levels are categories of messages that can be ignored or otherwise matched. Categories may be combined. For example, you may want to ignore only private messages (MSG) from someone, or you might really hate them and ignore MSGS and PUBLIC. Or even ALL.

See "/help levels" for a better, probably more current explanation of the different kinds of levels irssi supports. Meanwhile:

  CRAP          - ?
  MSGS          - Match messages privately sent to you.
  PUBLIC        - Match messages sent to public channels.
  NOTICES       - Match NOTICE messages.
  SNOTES        - Match server notices.
  CTCPS         - Match CTCP messages.
  ACTIONS       - Match CTCP actions.
  JOINS         - Match join messages.
  PARTS         - Match part messages.
  QUITS         - Match quit messages.
  KICKS         - Match kick messages.
  MODES         - Match mode changes.
  TOPICS        - Match topic changes.
  WALLOPS       - Match wallops.
  INVITES       - Match invite requests.
  NICKS         - Match nickname changes.
  DCC           - DCC related messages.
  DCCMSGS       - Match DCC chat messages.

CLIENTNOTICE - Irssi's notices.
CLIENTCRAP - Miscellaneous irssi messages. CLIENTERROR - Irssi's error messages.

ALL - All previous message levels combined.

  HILIGHT       - Match highlighted messages.
  NOHILIGHT     - Don't check a message's highlighting.
  NO_ACT        - Don't trigger channel activity.
  NEVER         - Never ignore, never log.
  LASTLOG       - Never ignore, never log.

Appendix B: Special Variables and Expandos

Several settings allow special variables. These variables will be replaced by the text they represent at the time they're used. Not at the time you set the setting!

They are mostly used for formatting text in themes.

From http://irssi.org/?page=docs&doc=special_vars :

NOTE: This is just a slightly modified file taken from EPIC's help.

Special Variables and Expandos

Irssi supports a number of reserved, dynamic variables, sometimes referred to as expandos. They are special in that the client is constantly updating their values automatically. There are also numerous variable modifiers available.

     Modifier          Description
     $variable         A normal variable, expanding to the first match of:
                       |  1) an internal SET variable
                       |  2) an environment variable
     $[num]variable    Expands to the variables value, with 'num' width.  If
                       | the number is negative, the value is right-aligned.
                       | The value is padded to meet the width with the
                       | character given after number (default is space).
                       | The value is truncated to specified width unless
                       | '!' character precedes the number. If '.' character
                       | precedes the number the value isn't padded, just
                       | truncated.
     $#variable        Expands to the number of words in $variable. If
$variable
                       | is omitted, it assumes $*
     $@variable        Expands to the number of characters in $variable. if
                       | $variable is omitted, it assumes $*
     $($subvariable)   This is somewhat similar to a pointer, in that the
                       | value of $subvar is taken as the name of the
                       | variable to expand to.  Nesting is allowed.
     ${expression}     Permits the value to be embedded in another string
                       | unambiguously.
     $!history!        Expands to a matching entry in the client's command
                       | history, wildcards allowed.

Whenever an alias is called, these expandos are set to the arguments passed to it. If none of these expandos are used in the alias, or the $() form shown above, any arguments passed will automatically be appended to the last command in the alias.

     Expando   Description
     $*        expands to all arguments passed to an alias
     $n        expands to argument 'n' passed to an alias (counting from zero)
     $n-m      expands to arguments 'n' through 'm' passed to an alias
     $n-       expands to all arguments from 'n' on passed to an alias
     $-m       expands to all arguments up to 'm' passed to an alias
     $~        expands to the last argument passed to an alias

These variables are set and updated dynamically by the client. The case of $A .. $Z is important.


     Variable   Description
     $,         last person who sent you a MSG
     $.         last person to whom you sent a MSG
     $:         last person to join a channel you are on
     $;         last person to send a public message to a channel you are on
     $A         text of your AWAY message, if any
     $B         body of last MSG you sent
     $C         current channel
     $D         last person that NOTIFY detected a signon for
     $E         idle time
     $F         time client was started, $time() format
     $H         current server numeric being processed
     $I         channel you were last INVITEd to
     $J         client version text string
     $K         current value of CMDCHARS
     $k         first character in CMDCHARS
     $L         current contents of the input line
     $M         modes of current channel, if any
     $N         current nickname
     $O         value of STATUS_OPER if you are an irc operator
     $P         if you are a channel operator in $C, expands to a '@'
     $Q         nickname of whomever you are QUERYing
     $R         version of current server
     $S         current server name
     $T         target of current input (channel or nick of query)
     $U         value of cutbuffer
     $V         client release date (format YYYYMMDD)
     $W         current working directory
     $X         your /userhost $N address (user@host)
     $Y         value of REALNAME
     $Z         time of day (hh:mm, can be changed with /SET timestamp_format)
     $$         a literal '$'
     $versiontime         prints time of the irssi version in HHMM format
     $sysname             system name (eg. Linux)
     $sysrelease          system release (eg. 2.2.18)
     $sysarch             system architecture (eg. i686)
     $topic               channel topic
     $usermode            user mode
     $cumode              own channel user mode
     $cumode_space        like $cumode, but gives space if there's no mode.
     $tag                 server tag
     $chatnet             chat network of server
     $winref              window reference number
     $winname             window name
     $itemname            like $T, but use item's visible_name which may be
                          different (eg. $T = !12345chan, $itemname =
!chan)

For example, assume you have the following alias:

alias blah msg $D Hi there!

If /blah is passed any arguments, they will automatically be appended to the MSG text. For example:

     /blah oops                          /* command as entered */
     "Hi there! oops"                    /* text sent to $D */

Another useful form is ${}. In general, variables can be embedded inside strings without problems, assuming the surrounding text could not be misinterpreted as part of the variable name. This form guarantees that surrounding text will not affect the expression's return value.

     /eval echo foo$Nfoo                 /* breaks, looks for $nfoo */
     /eval echo foo${N}foo               /* ${N} returns current nickname */
     fooYourNickfoo                      /* returned by above command */

Appendix C: Time Formats

Messages that describe times are formatted according to the strftime() function in C. According to FreeBSD's strftime() man page, parts of the format represented with "%" and a letter code are expanded in the following ways.

%A is replaced by national representation of the full weekday name.

%a is replaced by national representation of the abbreviated weekday

name.

%B is replaced by national representation of the full month name.

%b is replaced by national representation of the abbreviated month

name.

%C is replaced by (year / 100) as decimal number; single digits are

preceded by a zero.

%c is replaced by national representation of time and date.

%D is equivalent to ``%m/%d/%y''.

%d is replaced by the day of the month as a decimal number (01-31).

%E %O

         POSIX locale extensions.  The sequences %Ec %EC %Ex %EX %Ey %EY %Od
         %Oe %OH %OI %Om %OM %OS %Ou %OU %OV %Ow %OW %Oy are supposed to
         provide alternate representations.
 
         Additionly %OB implemented to represent alternative months names
         (used standalone, without day mentioned).

%e is replaced by the day of month as a decimal number (1-31); single

digits are preceded by a blank.

%F is equivalent to ``%Y-%m-%d''.

%G is replaced by a year as a decimal number with century. This year

         is the one that contains the greater part of the week (Monday as
         the first day of the week).

%g is replaced by the same year as in ``%G'', but as a decimal number

without century (00-99).

%H is replaced by the hour (24-hour clock) as a decimal number

(00-23).

%h the same as %b.

%I is replaced by the hour (12-hour clock) as a decimal number

(01-12).

%j is replaced by the day of the year as a decimal number (001-366).

%k is replaced by the hour (24-hour clock) as a decimal number (0-23);

single digits are preceded by a blank.

%l is replaced by the hour (12-hour clock) as a decimal number (1-12);

single digits are preceded by a blank.

%M is replaced by the minute as a decimal number (00-59).

%m is replaced by the month as a decimal number (01-12).

%n is replaced by a newline.

%O the same as %E.

%p is replaced by national representation of either "ante meridiem" or

"post meridiem" as appropriate.

%R is equivalent to ``%H:%M''.

%r is equivalent to ``%I:%M:%S %p''.

%S is replaced by the second as a decimal number (00-60).

%s is replaced by the number of seconds since the Epoch, UTC (see

mktime(3)).

%T is equivalent to ``%H:%M:%S''.

%t is replaced by a tab.

%U is replaced by the week number of the year (Sunday as the first day

of the week) as a decimal number (00-53).

%u is replaced by the weekday (Monday as the first day of the week) as

a decimal number (1-7).

%V is replaced by the week number of the year (Monday as the first day

         of the week) as a decimal number (01-53).  If the week containing
         January 1 has four or more days in the new year, then it is week 1;
         otherwise it is the last week of the previous year, and the next
         week is week 1.

%v is equivalent to ``%e-%b-%Y''.

%W is replaced by the week number of the year (Monday as the first day

of the week) as a decimal number (00-53).

%w is replaced by the weekday (Sunday as the first day of the week) as

a decimal number (0-6).

%X is replaced by national representation of the time.

%x is replaced by national representation of the date.

%Y is replaced by the year with century as a decimal number.

%y is replaced by the year without century as a decimal number

(00-99).

%Z is replaced by the time zone name.

%z is replaced by the time zone offset from UTC; a leading plus sign

         stands for east of UTC, a minus sign for west of UTC, hours and
         minutes follow with two digits each and no delimiter between them
         (common form for RFC 822 date headers).

%+ is replaced by national representation of the date and time (the

format is similar to that produced by date(1)).

%% is replaced by `%'.


Appendix D: Color Codes

Irssi defines codes to represent colors. They work like the strftime() codes in Appendix C.

From http://irssi.org/?page=docs&doc=formats :

Irssi's colors that you can use in text formats, hilights, etc. :

text text background


  %k      %K      %0      black           dark grey       black
  %r      %R      %1      red             bold red        red
  %g      %G      %2      green           bold green      green
  %y      %Y      %3      yellow          bold yellow     yellow
  %b      %B      %4      blue            bold blue       blue
  %m      %M      %5      magenta         bold magenta    magenta
  %p      %P              magenta (think: purple)
  %c      %C      %6      cyan            bold cyan       cyan
  %w      %W      %7      white           bold white      white
  %n      %N              Changes the color to "default color", removing
                          all other coloring and formatting. %N is always
                          the terminal's default color. %n is usually too,
                          except in themes it changes to "previous color",
                          ie. hello = "%Rhello%n" and "%G{hello} world"
                          would print hello in red, and %n would turn back
                          into %G making world green.
  %F                      Blinking on/off (think: flash)
  %U                      Underline on/off
  %8                      Reverse on/off
  %9      %_              Bold on/off
  %:                      Insert newline
  %|                      Marks the indentation position
  %#                      Monospace font on/off (useful with lists and GUI)
  %%                      A single %

In .theme files %n works a bit differently. See default.theme for more information.


Appendix E comes directly from
http://irc.fu-berlin.de/irc/help/SET/TRANSLATION.html :

Usage: SET TRANSLATION <character translation table> The TRANSLATION variable defines a character translation table. By default, ircII assumes that all text processed over the network is in the ISO 8859/1 map, also known as Latin-1. This is identical to standard ASCII, except that it is extended with additional characters in the range 128-255. Many environments by default use the Latin-1 map, such as X Windows, MS Windows, AmigaDOS, and modern ANSI terminals including Digital VT200, VT300, VT400 series and MS-Kermit. However, many older environments use non-standard extensions to ASCII, and yet others use 7-bit national replacement sets.

Some available settings for the TRANSLATION variable:

8-bit sets:

      CP437               Old IBM PC, compatibles and Atari ST.
      CP850               New IBM PC compatibles and IBM PS/2.
      DEC_MCS             DEC Multinational Character Set.
                          VAX/VMS.  VT320's and other 8-bit
                          Digital terminals use this set by
                          default, but I recommend changing to
                          Latin-1 in the terminal Set-Up.
      DG_MCS              Data General Multinational Character Set.
      HP_MCS              Hewlett Packard Extended Roman 8.
      LATIN_1             ISO 8859/1.  Default.
      MACINTOSH           Apple Macintosh computers and boat
                          anchors.
      NEXT                NeXT.

7-bit sets:

      ASCII               ANSI ASCII, ISO Reg. 006.  For American
                          terminals in 7-bit environments.  Use
                          this one if everything else fails.
      DANISH              Norwegian/Danish.
      DUTCH               Dutch.
      FINNISH             Finnish.
      FRENCH              ISO French, ISO Reg. 025.
      FRENCH_CANADIAN     French in Canada.
      GERMAN              ISO German, ISO Reg. 021.
      IRV                 International Reference Version, ISO
                          Reg. 002.  For use pedantic in ISO 646
                          environments.
      ITALIAN             ISO Italian, ISO Reg. 015.
      JIS                 JIS ASCII, ISO Reg. 014.  Japanese
                          ASCII hybrid.
      NORWEGIAN_1         ISO Norwegian, Version 1, ISO Reg. 060.
      NORWEGIAN_2         ISO Norwegian, Version 2, ISO Reg. 061.
      PORTUGUESE          ISO Portuguese, ISO Reg. 016.
      PORTUGUESE_COM      Portuguese on Digital terminals.
      RUSSIAN             Russian
      RUSSIAN_ALT         Alternative Russian.
      SPANISH             ISO Spanish, ISO Reg. 017.
      SWEDISH             ISO Swedish, ISO Reg. 010.
      SWEDISH_NAMES       ISO Swedish for Names, ISO Reg. 011.
      SWEDISH_NAMES_COM   Swedish.  Digital, Hewlett Packard.
      SWISS               Swiss.
      UNITED_KINGDOM      ISO United Kingdom, ISO Reg. 004.
      UNITED_KINGDOM_COM  United Kingdom on DEC and HP terminals.

Please forward any extra translation tables to the ircII development team by using the ircbug utility that comes with the package, or, failing that, sending mail to ircii-bugs@eterna.com.au directly.