User Tools

Site Tools


irssi

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
irssi [2009/08/05 06:44]
k2patel created
irssi [2011/09/22 15:07]
k2patel [Binding F Key]
Line 3: Line 3:
  
 Few simple things before you start using. Few simple things before you start using.
 +
 +==== Common IRC commands ====
 +== To register your nick on IRC ==
 +<code bash>
 +/msg nickserv register PASSWORD EMAIL
 +</​code>​
 +== To verify your password ==
 +<code bash>
 +/msg nickserv identify PASSWORD
 +</​code>​
 +== List Channel ==
 +<code bash>
 +/list
 +</​code>​
 +== Join Channel ==
 +<code bash>
 +/join #<​channel_name>​
 +</​code>​
 +== list all user ==
 +<code bash>
 +/who #<​channel_name>​
 +</​code>​
 +== Give OP to all user ==
 +<code bash>
 +/op -YES *
 +</​code>​
 +
 +==== Alias ====
 +
 +This is something really powerfull please be carefull.\\
 +you can use shell command to execute and print on channel.
 +
 +== Fortune ==
 +<code bash>
 +/alias fortune exec - -o /​usr/​bin/​fortune
 +</​code>​
 +
 +== Figlet ==
 +<code bash>
 +/alias figlet exec - -o /​usr/​bin/​figlet -f times $0-
 +</​code>​
 +
 +
 +=== From other pages ===
 +
 +
 +remove activity from all windows:
 +<code bash>
 +alias UNACT script exec foreach $$w (Irssi::​windows()) { Irssi::​command(“window goto $$w->​{refnum}”)\;​} ; window goto $winref
 +</​code>​
 +
 +calc with (10) decimals:
 +<code bash>
 +alias CALC exec – if which bc &>/​dev/​null\;​ then echo ‘scale=10\;​$*’ | bc | awk ‘{print “$*=”$$1}’\;​ else echo bc was not found\; fi
 +</​code>​
 +
 +Dump perl object (e.g. /dump Irssi::​active_win):​
 +<code bash>
 +alias DUMP script exec use Data::​Dumper\;​ print Data::​Dumper->​new([\\$0-])->​Dump
 +</​code>​
 +
 +Put output of a command in the current window (e.g. /here help blah) (does not work with whois, and other output coming from the server):
 +<code bash>
 +alias HERE script exec \$a=Irssi::​active_win\;​sub b{Irssi::​signal_remove(‘print text’,'​b’)\;​Irssi::​signal_stop()\;​\$a->​print(\$_[1],​\$_[0]->​{‘level’})\;​Irssi::​signal_add_first(‘print text’,'​b’)\;​}\;​Irssi::​signal_add_first(‘print text’,'​b’)\;​\$a->​command(“$*”)\;​
 +</​code>​
 +
 +do /lastlog, but for all windows… /alllast -HILIGHT would show all hilights in every buffer in the current window (like hilightwindow.pl,​ but not ‘life’)
 +<code bash>
 +alias ALLLASTLOG script exec foreach (Irssi::​windows()) {Irssi::​command(“lastlog – -window \$_->​{‘refnum’} $*”)\;}
 +</​code>​
 +
 +execute a command on a given server (e.g. “/tag ircnet join #irssi” would join irssi on ircnet (if you’re connected to ircnet)):
 +<code bash>
 +alias TAG script exec Irssi::​server_find_tag(‘$0′)->​command(‘$1-’);​
 +</​code>​
 +
 +list (say) your currently loaded scripts (just the names, on one line):
 +<code bash>
 +alias LISTSCRIPTS script exec foreach \$s (sort grep(s/::​\$//,​ keys %Irssi::​Script::​)) {\$a .= “\$s “\;}\; Irssi::​active_win->​command(“say \$a”)\;
 +</​code>​
 +
 +list (print) a list of servers you’re currently connected to, what nick you have there, and on which channels you are:
 +<code bash>
 +alias LISTCHANS script exec foreach (Irssi::​servers()){\$a=”\$_->​{‘chatnet’}(\$_->​{‘address’}) \$_->​{‘nick’}:​”\;​ foreach (\$_->​channels()) {\$a.=’ ‘.(\$_->​{‘ownnick’}->​{‘op’}?​’@':​\$_->​{‘ownnick’}->​{‘voice’}?​’+':​”).”\$_->​{‘name’}”\;​}\;​print \$a\;}
 +</​code>​
 +
 +mass-op all non-voiced (to op everyone just use /op *):
 +<code bash>
 +alias MOP script exec foreach \$n (Irssi::​active_win->​{‘active’}->​nicks()) {if (\$n->​{‘op’} == 0 && \$n->​{‘voice’} == 0) {\$a .= “\$n->​{‘nick’} “\;}}\; Irssi::​active_win->​command(“OP \$a”)\;
 +</​code>​
 +
 +Show for how long you have been connected to the current server:
 +<code bash>
 +alias CONNECTIONUPTIME script exec \$a=`date +%s` – Irssi::​active_win->​{‘active_server’}->​{‘connect_time’}\;​ Irssi::​print( int(\$a/​3600/​24).”d “.int(\$a/​3600%24).”h “. int(\$a/​60%60).”m “. int(\$a%60).”s”)\;​
 +</​code>​
 +
 +Goto to x’th last window (0 = last, 1 = second last)
 +<code bash>
 +alias window_goto_last_minus script exec Irssi::​command(“window goto “.(sort{\$b<​=>​\$a}map{\$_->​{refnum}}Irssi::​windows())[$0])
 +</​code>​
 +
 +Remove all bans set by you
 +<code bash>
 +alias mubmy script exec \$c=Irssi::​active_win->​{‘active’}\;​if(\$c){foreach \$ban (\$c->​bans()){if(\$ban->​{‘setby’} =~ /​^$N/​){\$unban.=\$ban->​{‘ban’}.’ ‘\;​}}}\;​\$c->​command(“unban \$unban”);​
 +</​code>​
 +
 +[[http://​wouter.coekaerts.be/​irssi/​aliases | source]]
 +
 +==== IrSSi Settings ====
  
 == Environment File == == Environment File ==
 <code bash> <code bash>
-~/.irssi +~/.irssi/config 
-</​bash>​+</code> 
 + 
 +== Save environment == 
 +<​code ​bash> 
 +/save 
 +</​code>​ 
 + 
 +== How to change theme on irssi == 
 +<code bash> 
 +/set theme easyeye 
 +</​code>​ 
 +== Set DCC download folder == 
 +<code bash> 
 +/set dcc_download_path /​home/​username 
 +</​code>​ 
 +== Set file permission after download == 
 +<code bash> 
 +/set dcc_file_create_mode 660 
 +</​code>​ 
 +NOTE : For security do not set mod with (x) 
 + 
 + 
 + 
 +==== Nice Scripts ==== 
 + 
 + 
 +=== window_switcher === 
 + 
 +[[ http://​wouter.coekaerts.be/​irssi/​scripts/​window_switcher.pl | Download ]] \\ 
 +[[http://​wouter.coekaerts.be/​irssi/​window_switcher | Source ]] 
 + 
 +<code text> 
 +  * Add the statusbar item: 
 +      /STATUSBAR window add window_switcher 
 +  * Type /ws followed by a window number or part of a window or channel name. 
 +  * When the right item is at the first place in the statusbar, press enter. 
 +  * For faster usage, do “/BIND ^G multi erase_line;​insert_text /ws “, type ctrl-G, and start typing… 
 +</​code>​ 
 + 
 +==== ShortCut'​s ==== 
 + 
 +<code bash> 
 +Ctrl-X to switch between network connections 
 +Alt-[0-9] switch to windows 
 +</​code>​ 
 + 
 + 
 +==== Binding F Key ==== 
 + 
 +<code bash> 
 +/bind meta2-P ​    key F1 
 +/bind meta2-Q ​    key F2 
 +/bind meta2-R ​    key F3 
 +/bind meta2-S ​    key F4 
 +/bind meta2-15~ ​  key F5 
 +/bind meta2-17~ ​  key F6 
 +/bind meta2-18~ ​  key F7 
 +/bind meta2-19~ ​  key F8 
 +/bind meta2-20~ ​  key F9 
 +/bind meta2-21~ ​  key F10 
 +/bind meta2-24~ ​  key F12 
 +/bind meta2-23~ ​  key F11 
 +/bind meta2-24~ ​  key F12 
 + 
 +/bind meta2-2P ​   key sF1 
 +/bind meta2-2Q ​   key sF2 
 +/bind meta2-2R ​   key sF3 
 +/bind meta2-2S ​   key sF4 
 +/bind meta2-15;2~ key sF5 
 +/bind meta2-17;2~ key sF6 
 +/bind meta2-18;2~ key sF7 
 +/bind meta2-19;2~ key sF8 
 +/bind meta2-20;2~ key sF9 
 +/bind meta2-21;2~ key sF10 
 +/bind meta2-24;2~ key sF12 
 +/bind meta2-23;2~ key sF11 
 +/bind meta2-24;2~ key sF12 
 +</​code>​ 
 + 
 +When you’ve done that, you can do, for example /bind F1 change_window 1 to bind something to F1, or /bind sF1 for shift-F1. 
 + 
 +[[http://​wouter.coekaerts.be/​irssi/​keybindings | Source]]
  
 ==== My Environment ==== ==== My Environment ====
-<code bash | ~/​.irssi>​+<code bash | ~/.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 = { }; 
 +</​code>​ 
 + 
 +<code bash | ~/​.irssi/​thirdeye.theme>​ 
 + 
 +####                                 ####​ 
 +####  ThirdEye 1.4                   ####​ 
 +####  by salo <salo at Xtrmntr.org> ​ #### 
 +####                                 ####​ 
  
 +replaces = { "​[]="​ = "​%K$0-%n";​ };
 +abstracts = {
 +  line_start = "--- ";
 +  timestamp = "​[$0-]";​
 +  hilight = "​%_$0-%_";​
 +  error = "​%G$0-%n";​
 +  channel = "​%c$0-%n";​
 +  nick = "​%_$0-%_";​
 +  nickhost = "​[$0-]";​
 +  server = "​%_$0-%_";​
 +  comment = "​[%_$0-%_]";​
 +  reason = "​{comment $0-}";
 +  mode = "​{comment $0-}";
 +  channick_hilight = "​%_$0-%_";​
 +  chanhost_hilight = "​{nickhost %c$0-%n}";​
 +  channick = "​%_$0-%_";​
 +  chanhost = "​{nick}";​
 +  channelhilight = "​%c$0-%n";​
 +  ban = "​%c$0-%n";​
 +  msgnick = "<​$1->​ %|";
 +  ownnick = "​%N$0-%n";​
 +  pubnick = "​%N$0-%n";​
 +  menick = "​%G$0-%n";​
 +  pubmsgnick = "​%c{msgnick $0 $1-%c}%N";​
 +  pubmsgmenick = "​%c{msgnick $0 $1-%c}%N";​
 +  pubmsghinick = "​%c{msgnick $1 %G$2-%n%c}%N";​
 +  ownmsgnick = "​%G{msgnick $0 %N$1-%G}%N";​
 +  msgchannel = "​%K:​%c$0-%n";​
 +  privmsg = "​[%C$0%K(%c$1-%K)%n] ";
 +  ownprivmsg = "​[%c$0%C(%n$1-%C)%n] ";
 +  ownprivnick = "​$0-";​
 +  ownprivmsgnick = "​%C<​%n$0%C>​%n ";
 +  privmsgnick = "​%c<​%n$0%c>​%n ";
 +  #  ownprivmsgnick = "​%G{msgnick ​ %N$0-%G}%n";​
 +  #  privmsgnick = "​%c{msgnick ​ %G$0-%c}%N";​
 +  action_core = "​%G>>>​ %g$0-";​
 +  action = "​{action_core $0-} ";
 +  ownaction = "​{action $0-}";
 +  ownaction_target = "​{action_core $0}%K:​%c$1%n ";
 +  pvtaction = "%W (*) $0-%n ";
 +  pvtaction_query = "​{action $0-}";
 +  pubaction = "​{action $0-}";
 +  ownnotice = "​[%r$0%K(%R$1-%K)]%n ";
 +  notice = "​%K-%M$0-%K-%n ";
 +  pubnotice_channel = "​%K:​%m$0-";​
 +  pvtnotice_host = "​%K(%m$0-%K)";​
 +  servernotice = "​%g!$0-%n ";
 +  ownctcp = "​[%r$0%K(%R$1-%K)] ";
 +  ctcp = "​%g$0-%n";​
 +  wallop = "​%W$0-%n:​ ";
 +  wallop_nick = "​%n$0-";​
 +  wallop_action = "%W * $0-%n ";
 +  netsplit = "​%R$0-%n";​
 +  netjoin = "​%G$0-%n";​
 +  names_nick = "​[%G$0%g$1-%n] ";
 +  names_users = "​$0-";​
 +  names_channel = "on %G$0-%n:";​
 +  dcc = "​%y$0-%n";​
 +  dccfile = "​%_$0-%_";​
 +  dccownmsg = "​[%b$0%B(%n$1-%B)] ";
 +  dccownnick = "​%W$0-%n";​
 +  dccownaction = "​{action $0-}";
 +  dccownaction_target = "​{action_core $0}%K:​%c$1%n ";
 +  dccmsg = "​[%Y(%y$1-%Y)%n] ";
 +  dccaction = "%W (*dcc*) $0-%n %|";
 +  sb_background = "​%4";​
 +  sb = "​%W[%n$0-%W]%n";​
 +  sbmode = "​(%c+%n$0-)";​
 +  sbaway = " (%GzZzZ%n)";​
 +  sbservertag = ":​$0";​
 +  sbmore = "%_-- more --%_";
 +  sblag = "{sb Lag: $0-}";
 +  sbmail = "{sb Mail: $0-}";
 +  sbact_act = "Act: $0-";
 +  sbact_det = "Det: $0-";
 +  sbact = "{sb {sbact_act $0}{sbact_det $1}}";
 +};
 +formats = {
 +  "​fe-common/​irc"​ = {
 +    whois = "%W$0 %K[%c$1@$2%K]%:​ ircname ​ :%W $3%n";
 +    whois_channels = " channels :%c $1%n";
 +    whois_server = " server ​  :%c $1 %K[%W$2%K]%n";​
 +    whois_oper = " operator :%W $1 is IRC Operator%n";​
 +    whois_away = " away     :%W $1%n";
 +    whois_idle = " idle     :%W $1 days, $2 hours, $3 mins, $4 secs%n";​
 +  };
 +  "​fe-common/​silc"​ = {
 +    whois = "%W$0 %K[%c$1@$2%K]%:​ nickname ​   :%W $3 ($4)%n";​
 +    whois_realname = " realname ​   :%W $0%n";
 +    whois_channels = " channels ​   :%c $0%n";
 +    whois_modes = " modes       :%c $0%n";
 +    whois_idle = " idle        :%W $0%n%";​
 +    whois_fingerprint = " fingerprint :%c $0%n%:End of WHOIS";​
 +  };
 +};
 </​code>​ </​code>​
irssi.txt · Last modified: 2020/08/10 02:35 (external edit)