User Tools

Site Tools


irssi

Differences

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

Link to this comparison view

irssi [2011/08/19 14:58]
k2patel
irssi [2020/08/10 02:35]
Line 1: Line 1:
-====== IrSSi ====== 
-Best Command line irc client. 
  
-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 == 
-<code bash> 
-~/​.irssi/​config 
-</​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>​ 
- 
-==== 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 ==== 
-<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>​ 
irssi.txt · Last modified: 2020/08/10 02:35 (external edit)