User Tools

Site Tools


irssi

This is an old revision of the document!


IrSSi

Best Command line irc client.

Few simple things before you start using.

Common IRC commands

To register your nick on IRC
/msg nickserv register PASSWORD EMAIL
To verify your password
/msg nickserv identify PASSWORD
List Channel
/list
Join Channel
/join #<channel_name>
list all user
/who #<channel_name>
Give OP to all user
/op -YES *

IrSSi Settings

Environment File
~/.irssi/config
Save environment
/save
How to change theme on irssi
/set theme easyeye
Set DCC download folder
/set dcc_download_path /home/username
Set file permission after download
/set dcc_file_create_mode 660

NOTE : For security do not set mod with (x)

My Environment

| ~/.irssi/config
servers = (
  { address = "irc.stealth.net"; chatnet = "IRCnet"; port = "6668"; },
  { address = "irc.efnet.org"; chatnet = "EFNet"; port = "6667"; },
  { 
    address = "irc.undernet.org";
    chatnet = "Undernet";
    port = "6667";
  },
  { address = "irc.dal.net"; chatnet = "DALnet"; port = "6667"; },
  { 
    address = "irc.quakenet.org";
    chatnet = "QuakeNet";
    port = "6667";
    use_ssl = "no";
    ssl_verify = "no";
    autoconnect = "yes";
  }
);
 
chatnets = {
  IRCnet = {
    type = "IRC";
    max_kicks = "4";
    max_msgs = "5";
    max_whois = "4";
    max_query_chans = "5";
  };
  EFNet = { 
    type = "IRC";
    max_kicks = "4";
    max_msgs = "3";
    max_whois = "1";
  };
  Undernet = {
    type = "IRC";
    max_kicks = "1";
    max_msgs = "3";
    max_whois = "30";
  };
  DALnet = {
    type = "IRC";
    max_kicks = "4";
    max_msgs = "3";
    max_whois = "30";
  };
  QuakeNet = {
    type = "IRC";
    max_kicks = "1";
    max_msgs = "3";
    max_whois = "30";
  }
};
 
channels = (
  { name = "#irssi"; chatnet = "ircnet"; autojoin = "No"; },
  { name = "silc"; chatnet = "silc"; autojoin = "No"; },
  { name = "#linux"; chatnet = "QuakeNet"; autojoin = "yes"; }
);
 
aliases = {
  J = "join";
  WJOIN = "join -window";
  WQUERY = "query -window";
  LEAVE = "part";
  BYE = "quit";
  EXIT = "quit";
  SIGNOFF = "quit";
  DESCRIBE = "action";
  DATE = "time";
  HOST = "userhost";
  LAST = "lastlog";
  SAY = "msg *";
  WI = "whois";
  WII = "whois $0 $0";
  WW = "whowas";
  W = "who";
  N = "names";
  M = "msg";
  T = "topic";
  C = "clear";
  CL = "clear";
  K = "kick";
  KB = "kickban";
  KN = "knockout";
  BANS = "ban";
  B = "ban";
  MUB = "unban *";
  UB = "unban";
  IG = "ignore";
  UNIG = "unignore";
  SB = "scrollback";
  UMODE = "mode $N";
  WC = "window close";
  WN = "window new hide";
  SV = "say Irssi $J ($V) - http://irssi.org/";
  GOTO = "sb goto";
  CHAT = "dcc chat";
  RUN = "SCRIPT LOAD";
  CALC = "exec - if which bc &>/dev/null\\; then echo '$*' | bc | awk '{print \"$*=\"$$1}'\\; else echo bc was not found\\; fi";
  SBAR = "STATUSBAR";
  INVITELIST = "mode $C +I";
  Q = "QUERY";
  "MANUAL-WINDOWS" = "set use_status_window off;set autocreate_windows off;set autocreate_query_level none;set autoclose_windows off;set reuse_unused_windows on;save";
  EXEMPTLIST = "mode $C +e";
  ATAG = "WINDOW SERVER";
};
 
statusbar = {
  # formats:
  # when using {templates}, the template is shown only if it's argument isn't
  # empty unless no argument is given. for example {sb} is printed always,
  # but {sb $T} is printed only if $T isn't empty.
 
  items = {
    # start/end text in statusbars
    barstart = "{sbstart}";
    barend = "{sbend}";
 
    topicbarstart = "{topicsbstart}";
    topicbarend = "{topicsbend}";
 
    # treated "normally", you could change the time/user name to whatever
    time = "{sb $Z}";
    user = "{sb {sbnickmode $cumode}$N{sbmode $usermode}{sbaway $A}}";
 
    # treated specially .. window is printed with non-empty windows,
    # window_empty is printed with empty windows
    window = "{sb $winref:$tag/$itemname{sbmode $M}}";
    window_empty = "{sb $winref{sbservertag $tag}}";
    prompt = "{prompt $[.15]itemname}";
    prompt_empty = "{prompt $winname}";
    topic = " $topic";
    topic_empty = " Irssi v$J - http://irssi.org/help/";
 
    # all of these treated specially, they're only displayed when needed
    lag = "{sb Lag: $0-}";
    act = "{sb Act: $0-}";
    more = "-- more --";
  };
 
  # there's two type of statusbars. root statusbars are either at the top
  # of the screen or at the bottom of the screen. window statusbars are at
  # the top/bottom of each split window in screen.
  default = {
    # the "default statusbar" to be displayed at the bottom of the window.
    # contains all the normal items.
    window = {
      disabled = "no";
 
      # window, root
      type = "window";
      # top, bottom
      placement = "bottom";
      # number
      position = "1";
      # active, inactive, always
      visible = "active";
 
      # list of items in statusbar in the display order
      items = {
        barstart = { priority = "100"; };
        time = { };
        user = { };
        window = { };
        window_empty = { };
        lag = { priority = "-1"; };
        act = { priority = "10"; };
        more = { priority = "-1"; alignment = "right"; };
        barend = { priority = "100"; alignment = "right"; };
      };
    };
 
    # statusbar to use in inactive split windows
    window_inact = {
      type = "window";
      placement = "bottom";
      position = "1";
      visible = "inactive";
      items = {
        barstart = { priority = "100"; };
        window = { };
        window_empty = { };
        more = { priority = "-1"; alignment = "right"; };
        barend = { priority = "100"; alignment = "right"; };
      };
    };
 
    # we treat input line as yet another statusbar :) It's possible to
    # add other items before or after the input line item.
    prompt = {
      type = "root";
      placement = "bottom";
      # we want to be at the bottom always
      position = "100";
      visible = "always";
      items = {
        prompt = { priority = "-1"; };
        prompt_empty = { priority = "-1"; };
        # treated specially, this is the real input line.
        input = { priority = "10"; };
      };
    };
 
    # topicbar
    topic = {
      type = "root";
      placement = "top";
      position = "1";
      visible = "always";
      items = {
        topicbarstart = { priority = "100"; };
        topic = { };
        topic_empty = { };
        topicbarend = { priority = "100"; alignment = "right"; };
      };
    };
  };
};
settings = {
  core = {
    real_name = "Ketan";
    user_name = "ketan";
    nick = "ketan";
    awaylog_level = "MSGS HILIGHT";
    awaylog_file = "~/irc/away.log";
  };
  "fe-text" = { actlist_sort = "refnum"; };
  "fe-common/core" = {
    theme = "thirdeye";
    autolog = "yes";
    autolog_path = "~/irc/%Y/$tag/$0.%m-%d.log";
    autolog_level = "ALL -CRAP -CLIENTCRAP -CTCPS";
    completion_auto = "yes";
    BEEP_WHEN_AWAY = "yes";
    window_auto_change = "yes";
  };
};
hilights = ( { text = "nick"; nick = "yes"; word = "yes"; } );
logs = { };
| ~/.irssi/default.theme
# When testing changes, the easiest way to reload the theme is with /RELOAD.
# This reloads the configuration file too, so if you did any changes remember
# to /SAVE it first. Remember also that /SAVE overwrites the theme file with
# old data so keep backups :)
 
# TEMPLATES:
 
# The real text formats that irssi uses are the ones you can find with
# /FORMAT command. Back in the old days all the colors and texts were mixed
# up in those formats, and it was really hard to change the colors since you
# might have had to change them in tens of different places. So, then came
# this templating system.
 
# Now the /FORMATs don't have any colors in them, and they also have very
# little other styling. Most of the stuff you need to change is in this
# theme file. If you can't change something here, you can always go back
# to change the /FORMATs directly, they're also saved in these .theme files.
 
# So .. the templates. They're those {blahblah} parts you see all over the
# /FORMATs and here. Their usage is simply {name parameter1 parameter2}.
# When irssi sees this kind of text, it goes to find "name" from abstracts
# block below and sets "parameter1" into $0 and "parameter2" into $1 (you
# can have more parameters of course). Templates can have subtemplates.
# Here's a small example:
#   /FORMAT format hello {colorify {underline world}}
#   abstracts = { colorify = "%G$0-%n"; underline = "%U$0-%U"; }
# When irssi expands the templates in "format", the final string would be:
#   hello %G%Uworld%U%n
# ie. underlined bright green "world" text.
# and why "$0-", why not "$0"? $0 would only mean the first parameter,
# $0- means all the parameters. With {underline hello world} you'd really
# want to underline both of the words, not just the hello (and world would
# actually be removed entirely).
 
# COLORS:
 
# You can find definitions for the color format codes in docs/formats.txt.
 
# There's one difference here though. %n format. Normally it means the
# default color of the terminal (white mostly), but here it means the
# "reset color back to the one it was in higher template". For example
# if there was /FORMAT test %g{foo}bar, and foo = "%Y$0%n", irssi would
# print yellow "foo" (as set with %Y) but "bar" would be green, which was
# set at the beginning before the {foo} template. If there wasn't the %g
# at start, the normal behaviour of %n would occur. If you _really_ want
# to use the terminal's default color, use %N.
 
#############################################################################
 
# default foreground color (%N) - -1 is the "default terminal color"
default_color = "-1";
 
# print timestamp/servertag at the end of line, not at beginning
info_eol = "false";
 
# these characters are automatically replaced with specified color
# (dark grey by default)
replaces = { "[]=" = "%K$*%n"; };
 
abstracts = {
  ##
  ## generic
  ##
 
  # text to insert at the beginning of each non-message line
  line_start = "%B-%W!%B-%n ";
 
  # timestamp styling, nothing by default
  timestamp = "$*";
 
  # any kind of text that needs hilighting, default is to bold
  hilight = "%_$*%_";
 
  # any kind of error message, default is bright red
  error = "%R$*%n";
 
  # channel name is printed
  channel = "%_$*%_";
 
  # nick is printed
  nick = "%_$*%_";
 
  # nick host is printed
  nickhost = "[$*]";
 
  # server name is printed
  server = "%_$*%_";
 
  # some kind of comment is printed
  comment = "[$*]";
 
  # reason for something is printed (part, quit, kick, ..)
  reason = "{comment $*}";
 
  # mode change is printed ([+o nick])
  mode = "{comment $*}";
 
  ##
  ## channel specific messages
  ##
 
  # highlighted nick/host is printed (joins)
  channick_hilight = "%C$*%n";
  chanhost_hilight = "{nickhost %c$*%n}";
 
  # nick/host is printed (parts, quits, etc.)
  channick = "%c$*%n";
  chanhost = "{nickhost $*}";
 
  # highlighted channel name is printed
  channelhilight = "%c$*%n";
 
  # ban/ban exception/invite list mask is printed
  ban = "%c$*%n";
 
  ##
  ## messages
  ##
 
  # the basic styling of how to print message, $0 = nick mode, $1 = nick
  msgnick = "%K<%n$0$1-%K>%n %|";
 
  # message from you is printed. "msgownnick" specifies the styling of the
  # nick ($0 part in msgnick) and "ownmsgnick" specifies the styling of the
  # whole line.
 
  # Example1: You want the message text to be green:
  #  ownmsgnick = "{msgnick $0 $1-}%g";
  # Example2.1: You want < and > chars to be yellow:
  #  ownmsgnick = "%Y{msgnick $0 $1-%Y}%n";
  #  (you'll also have to remove <> from replaces list above)
  # Example2.2: But you still want to keep <> grey for other messages:
  #  pubmsgnick = "%K{msgnick $0 $1-%K}%n";
  #  pubmsgmenick = "%K{msgnick $0 $1-%K}%n";
  #  pubmsghinick = "%K{msgnick $1 $0$2-%n%K}%n";
  #  ownprivmsgnick = "%K{msgnick  $*%K}%n";
  #  privmsgnick = "%K{msgnick  %R$*%K}%n";
 
  # $0 = nick mode, $1 = nick
  ownmsgnick = "{msgnick $0 $1-}";
  ownnick = "%W$*%n";
 
  # public message in channel, $0 = nick mode, $1 = nick
  pubmsgnick = "{msgnick $0 $1-}";
  pubnick = "%N$*%n";
 
  # public message in channel meant for me, $0 = nick mode, $1 = nick
  pubmsgmenick = "{msgnick $0 $1-}";
  menick = "%Y$*%n";
 
  # public highlighted message in channel
  # $0 = highlight color, $1 = nick mode, $2 = nick
  pubmsghinick = "{msgnick $1 $0$2-%n}";
 
  # channel name is printed with message
  msgchannel = "%K:%c$*%n";
 
  # private message, $0 = nick, $1 = host
  privmsg = "[%R$0%K(%r$1-%K)%n] ";
 
  # private message from you, $0 = "msg", $1 = target nick
  ownprivmsg = "[%r$0%K(%R$1-%K)%n] ";
 
  # own private message in query
  ownprivmsgnick = "{msgnick  $*}";
  ownprivnick = "%W$*%n";
 
  # private message in query
  privmsgnick = "{msgnick  %R$*%n}";
 
  ##
  ## Actions (/ME stuff)
  ##
 
  # used internally by this theme
  action_core = "%W * $*%n";
 
  # generic one that's used by most actions
  action = "{action_core $*} ";
 
  # own action, both private/public
  ownaction = "{action $*}";
 
  # own action with target, both private/public
  ownaction_target = "{action_core $0}%K:%c$1%n ";
 
  # private action sent by others
  pvtaction = "%W (*) $*%n ";
  pvtaction_query = "{action $*}";
 
  # public action sent by others
  pubaction = "{action $*}";
 
 
  ##
  ## other IRC events
  ##
 
  # whois
  whois = "%# $[8]0 : $1-";
 
  # notices
  ownnotice = "[%r$0%K(%R$1-%K)]%n ";
  notice = "%K-%M$*%K-%n ";
  pubnotice_channel = "%K:%m$*";
  pvtnotice_host = "%K(%m$*%K)";
  servernotice = "%g!$*%n ";
 
  # CTCPs
  ownctcp = "[%r$0%K(%R$1-%K)] ";
  ctcp = "%g$*%n";
 
  # wallops
  wallop = "%W$*%n: ";
  wallop_nick = "%n$*";
  wallop_action = "%W * $*%n ";
 
  # netsplits
  netsplit = "%R$*%n";
  netjoin = "%C$*%n";
 
  # /names list
  names_prefix = "";
  names_nick = "[%_$0%_$1-] ";
  names_nick_op = "{names_nick $*}";
  names_nick_halfop = "{names_nick $*}";
  names_nick_voice = "{names_nick $*}";
  names_users = "[%g$*%n]";
  names_channel = "%G$*%n";
 
  # DCC
  dcc = "%g$*%n";
  dccfile = "%_$*%_";
 
  # DCC chat, own msg/action
  dccownmsg = "[%r$0%K($1-%K)%n] ";
  dccownnick = "%R$*%n";
  dccownquerynick = "%W$*%n";
  dccownaction = "{action $*}";
  dccownaction_target = "{action_core $0}%K:%c$1%n ";
 
  # DCC chat, others
  dccmsg = "[%G$1-%K(%g$0%K)%n] ";
  dccquerynick = "%G$*%n";
  dccaction = "%W (*dcc*) $*%n %|";
 
  ##
  ## statusbar
  ##
 
  # default background for all statusbars. You can also give
  # the default foreground color for statusbar items.
  sb_background = "%4%w";
 
  # default backround for "default" statusbar group
  #sb_default_bg = "%4";
  # background for prompt / input line
  sb_prompt_bg = "%n";
  # background for info statusbar
  sb_info_bg = "%8";
  # background for topicbar (same default)
  #sb_topic_bg = "%4";
 
  # text at the beginning of statusbars. sb-item already puts
  # space there,so we don't use anything by default.
  sbstart = "";
  # text at the end of statusbars. Use space so that it's never
  # used for anything.
  sbend = " ";
 
  topicsbstart = "{sbstart $*}";
  topicsbend = "{sbend $*}";
 
  prompt = "[$*] ";
 
  sb = " %c[%n$*%c]%n";
  sbmode = "(%c+%n$*)";
  sbaway = " (%GzZzZ%n)";
  sbservertag = ":$0 (change with ^X)";
  sbnickmode = "$0";
 
  # activity in statusbar
 
  # ',' separator
  sb_act_sep = "%c$*";
  # normal text
  sb_act_text = "%c$*";
  # public message
  sb_act_msg = "%W$*";
  # hilight
  sb_act_hilight = "%M$*";
  # hilight with specified color, $0 = color, $1 = text
  sb_act_hilight_color = "$0$1-%n";
};
irssi.1289405649.txt.gz · Last modified: 2020/08/10 02:30 (external edit)