Irssi HOWTO

From Global Shellz Wiki
Jump to: navigation, search

Contents

Introduction

Irssi is a modular IRC client that currently has only text mode user interface, but 80-90% of the code isn't text mode specific so other UI could be created pretty easily. Also, Irssi isn't really even IRC specific anymore, there's already a working SILC module available. Support for other protocols like ICQ could be created some day too; including Bitlbee.

Installing

Step one:

To launch irssi just type the following in the terminal:

irssi

or to start via GNU "screen" mode, hit:

screen irssi

Step two: Add the Network settings.

/NETWORK ADD -autosendcmd "/^msg nickserv ident pass;wait 2000" Freenode

Step three:

/SERVER ADD -network Freenode irc.freenode.net 6667

or to set it as AUTO connect to <Network>, hit:

/SERVER ADD -auto -network Freenode irc.freenode.net 6667

Step four:

Set a auto-join to #channel:

/CHANNEL ADD -auto #Global-Shellz Freenode 

Step five:

The important part, SAVE. Make sure you save the settings. (This will overide '/home/usr/.irssi/config' file).

/save

You're done!

Scripts

The first thing you have to do is move it to the proper scripts directory which is '~/.irssi/scripts'. You can do this using a FTP client (Filezilla/WinSCP etc) or alternativly use "wget" (GNU Wget (or just Wget) is a computer program that retrieves content from web servers, and is part of the GNU Project.) via Secure Shell (SSH). Once you've done that you need to load it, assuming you already in "/home/usr/.irssi/", you will have to create a new folder titled "scripts":

mkdir scripts
cd scripts
wget http://scripts.irssi.org/scripts/nickserv.pl  (for example)

To run the script, open your irssi window:

/script load nickserv.pl

Themes

Just as scripts can add functionality to irssi themes can be added that change the look of it. Adding themes is just like addming scripts, just copy them into the ~/.irssi folder. To use your new theme, execute:

/set theme <theme name>

Ignore

Some channels have alot of joins and quits, in Irssi you can add ignore on that in only those channels with:

/ignore -channel #channel_name * joins quits parts

Config file

Do NOT edit config file by hand! Use '/set' and '/save' instead.

  • TODO: Explain why the config file is needed here. (there is one working in a default installation)
servers = (
  {
   address = "irc.freenode.net";
   chatnet = "Freenode";
   port = "6667";
   autoconnect = "yes"; },
); 
chatnets = {
  Freenode =
  {
   type = "IRC";
        autosendcmd = "/msg chanserv identify TheWookie";
  };
}; 
channels = (
  { name = "#Global-Shellz"; chatnet = "Freenode"; autojoin = "yes"; },
  { name = "#irssi"; chatnet = "Freenode"; 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";
  UPTIME = "eval exec - expr `date +%s` - \\$F | awk '{print \"Irssi uptime: \"int(\\\\\\$1/3600/24)\"d \"int (\\\\\\$1/3600%24)\"h \"int(\\\\\\$1/60%60)\"m \"int(\\\\\\$1%60)\"s\" }'";
  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";
};
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}";
    # treated "normally", you could change the time/user name to whatever
    time = "{sb $Z}";
    user = "{sb $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:$T{sbmode $M}}";
    window_empty = "{sb $winref{sbservertag $tag}}";
    prompt = "{prompt $[.15]T}";
    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 = {
        barstart = { priority = "100"; };
        topic = { };
        topic_empty = { };
        barend = { priority = "100"; alignment = "right"; };
      };
    };
  };
};
#THIS SECTION DEALS WITH SETTINGS SUCH AS YOUR NAME AND TIMESTAMP FORMAT
settings = {
  core = {
    real_name = "Chester Bennington";
    user_name = "LP";
    nick = "Chester";
    timestamp_format = "%H:%M:%S";
  };
  "fe-text" = { scrollback_time = "24h"; };
  "fe-common/core" = { autolog = "yes"; };
};
#THIS SECTION DEALS WITH YOUR HILIGHTS
hilights = (
  { text = "Chester"; nick = "yes"; word = "no"; },
);
settings = {
        core = {
                settings_autosave = "no";
        }
};

Using a Vhost

When you launch irssi, use the following command:

irssi -h <vhost here>

After irssi is loaded, type: /SAVE

This will save your vhost in the config.

Alternatively you can use '/set hostname your.host.here' and '/save' for the same purpose. You would have to reconnect ('/server <network name or address here>' command) for the new setting to take place.

Installing on a Box

Debian-based:

apt-get install irssi

Gentoo:

emerge irssi

Red Hat:

yum install irssi

Resources


Credits & Support

Personal tools
Namespaces
Variants
Actions
Navigation
Toolbox