Irssi

From wikinotes


irssi is a cross platform irc client. It can be run right in your terminal. It is fantastic except for managing splits, which is a real pain. I can't swap wndows, or consistently show/hide windows. It's really too bad because it hsa a lot of potential.


Summary

Sources
http://billnye.blinkenshell.org/irssi/hilighted_statusbars_in_irssi.txt

|}

~/.irssi/startup
startup irssi custom startup commands script
~/.irssi/config
config irssi configuration file
~/.irssi/scripts/autorun/notify.pl
notify.pl send notifications to notify-send
Window Splits
/ws #archlinux
create new windowsplit, show #archlinux in it
/wh
get rid of currently selected split
/w #archlinux
show #archlinux within the current window or windowsplit
CLI
/connect irc.freenode.net
connect to an additional server (switch between active server with Ctrl+x)
/j #archlinu
custom alias to create a window, join a channel, and name the window after the channel so that you can use
/window goto #archlinux
/w #archlinux
custom alias to switch to window
/wc
close current window.
/l
search scrollback for matches to a word
/g
goto a particular time in the scrollback (meant to be used with /l)
/q
quit
/ls
list all windows
/window show/hide #archlinux
create or hide split in current window (only horiz splits)
Hotkeys
 Esc 
vim-mode on irssi inputline
 Ctrl + x 
toggle between active servers. (/server 1stserver, /connect 2ndserver, /connect 3rdserver etc)
 Alt + j/k 
scroll up/down in scrollback
 Alt+g / Alt+G 
top of scrollback, bottom of scrollback
 Alt+K / Alt+J 
grow/shrink selected window
 Alt+h / Alt+l			|| || select split up/down
|-
!colspan=3| Unused Hotkeys
|-
| <pre>Alt + A
Navigate to any page that has changed since you last looked at it. (Act: on your status bar is your activity bar. White means it has changed since you looked at it, pink means someone has specifically used your nick.
Meta + num
Switch pages based on index number. (alt is meta, but esc works as well.)
Favourite Channels:
irc.freenode.net:
  #archlinux
  #freebsd
  #gentoo
  #ubuntu
  #linux

Commands

Standard Commands

/server
connect to a server
/join
join channel on server
/quit
quit irssi
/server add -network <networkHandleName> <irc.handle.net>

/server list
remember given server. -auto flag connects to it automatically when irssi starts.

Window Commands

/window <indexnum>
show window in current pane (or if both visible, chat the prompt belongs to)
/window new
create split window
/window show <indexnum>
show a hidden window in new tab
ctrl n/p
next/prev window
/window shrink/grow 10
grow/shrink split pane


Example Session:
----# login, open two chats
/server irc.freenode.com
/nick kaivai
/msg nickserv identify <password>
/join #archlinux                            (becomes window 3)
/join #linux                                (becomes window 4)

----# split window, 
/window new 3                               (now screen is split, window 3 top, window 4 bottom)
/window 3                                   (prompt is now window 3, both visible)
/window 4                                   (prompt is now window 4, both visible)

cycling windows changes the bottom window only, these are not like multiple workspaces.
the top window is sticky, it will not move unless you close the split.

Setup

Registration

## It is a good idea to register your identity in irc with the 
## nickserv server. Most linux channels won't even allow you to
## connect without a confirmed identity.
/connect chat.freenode.net
/nick kaivai
/msg nickserv register <password> email@host.com



Settings

  ## Standard Settings
/set gives you a window with all of the settings

/set autostick_split_window on
/set nick kaivai
/save

Starts freenode automatically on boot
/server add -network freenode -auto irc.freenode.net 6667


  ## Aliases
/alias j /window new hidden;/join $0;/window name $0
/alias w /window goto $0;


  ## Split Window with Joins Quits etc
/foreach window /window level ALL -JOINS -PARTS -QUITS
/set window_default ALL -JOINS -PARTS -QUITS
/set window_default_level ALL -JOINS -PARTS -QUITS
/set window_check_level_first ON
/save


/window new HIDDEN
/window name junk
/window level -ALL JOINS PARTS QUITS
/window grow 10


  ## Window Levels:
CRAP, MSGS, PUBLIC, NOTICES, SNOTES, CTCPS, ACTIONS, JOINS, PARTS
  QUITS, KICKS, MODES, TOPICS, WALLOPS, INVITES, NICKS, DCC, DCCMSGS,
  CLIENTNOTICE, CLIENTCRAP, CLIENTERROR

Plugins

vim_mode

configs
~/.irssi/vim_moderc
link irssi vim_mode config
project
https://github.com/shabble/irssi-scripts/tree/master/vim-mode vim mode mainpage
https://github.com/shabble/irssi-scripts/tree/master/prompt_info uberprompt mainpage
Insert Mode (personal)
<Esc><Esc> Enter Command Mode
Command Mode Hotkeys
<:> Ex Mode
Irssi Ex Commands:
:ls list all channels
:map map commands within irssi vim_mode


Irssi's vim_mode plugin requires the uberprompt for command-mode and ex-mode. vim_mode keybindings are specific to working within command-mode, all other keybindings are meant to be run from irssi's default insert-mode command line.

setup

### from irssi prompt
#discontinued /set vim_mode_cmd_seq j						# this allows 'jj' to enter command_mode. Cannot bind two chars, this is similar to alt+j. Will get used to it.

Notifications

## http://lewk.org/blog/2006/05/19/irssi-notify
~/.irssi/scripts/autorun/notify.pl								# scripts in this folder will be sourced automatically when you open irssi

## Every time that you get a pm, or your nick is mentioned this script will trigger notify-send. Make sure
## It is executable

Ref: http://www.irssi.org/documentation/startup#c2
https://pthree.org/2010/03/12/irssi-handling-joinspartsquits/