Posts tagged irssi

Weechat + FiSH walkthrough vs. irssi

posted on 2016-01-17 00:30


For quite some time I used irssi as a console irc client and was quite happy with it. However all good things come to an end, and after a restart of the client (I tend to run it on a server withing a screen session.), irssi would not start anymore.

On another server I compiled both from scratch from the source cloned from the official git repositories, but I could not get FiSH to play with irssi at all. It just complained about ABI version mismatches. Since irssi is not known for its documentation (Honestly, it just sucks.), nothing could be found there, nor through a quick grep through the source or via google. Only a github ticket mentioned ABI problems but that was about it.

Weechat kept coming up as a mentioned alternative, so here we go now.

weechat vs. irssi

  • both are console-based
  • weechat is WAY easier to setup and extend
  • weechat needs less plugins out of the box
  • nicklist integrated automatically (irssi needs screen and a plugin for a buggy implementation of that)
  • bar separator to show last read line automatically in weechat
  • irssi seems to have more drawing bugs
  • weechat has more colors, but this improves readability (at least for me)

install and setup weechat

After getting the last version from pkg (its a FBSD system), simply start it on the shell via weechat.

Then from within, run through the quickstart guide for setting up your network and channel auto settings and stuff as described here.

Don't forget to set up your nick to be highlighted. :)


When in weechat:

# start scripts plugin

# search plugin
via pgdn and up/down search for ''

# install
# afterwards 'ia r' is next to the plugin
# which means: 'installed,autostarted,running'
alt + i to install

# close the window afterwards

Now after the plugin is usable, only setting your keys is left to do, like for a channel:

/blowkey set -server NETWORK #CHANNEL PASSWORD

# general help
/help blowkey


In general its almost the same as with irssi, only some things are a bit different:

ctrl-n           next window
ctrl-p           previous window
alt-<number>     jump to window <number>

# pressing several times toggles string and regex search
ctrl-r           search current chat history
alt-n            next search match
alt-p            previous search match

/close           close window
/quit            close weechat
/q               open query
/j               join channel

ctrl-n/p seem not to be mentioned in the weechat documentation, for switching channel windows. Still, you should be using Alt with numbers anyway, helps you a lot when using the hotlist.

Also, Alt+<number> pressed a second time does switch you back to your original window.

copy pasting stuff

alt-l is toggling the copy mode. (Hides the nick list and coloring, awesome.)

Also this might help, "so that new line char is not added at the end of each line displayed (it will not break URL selection)":

/set weechat.look.eat_newline_glitch on

tuning your hotlist

The hotlist is are the cryptic numbers popping up in the statusbar (over your input bar) when activity in other windows beside the currently active one. (It's the [H: ...] part, to be exact. There are numbers shown, signaling the window number followed by a colon, afterwards are the count of new lines is shown in parentheses.)

Since it'd be nice to have alerts only for new messages (and not join/part notifications) and also get the channel names shown, this will come in handy:

/set weechat.look.hotlist_names_level = 14
/set weechat.look.hotlist_names_merged_buffers on

irssi: with blowfish encryption

posted on 2015-03-10 00:50:46

To get a working irssi install, easiest approach is to build both irssi and the fish from source. (Installing irssi via package manager, and building the fish from this github code with the irssi github code will likely cause a segfault. I know it did for me.)


Remove any prior irssi installs. You can leave your config where it is, though.

Fish needs the openssl-devel package.

get code

mkdir src
cd src  
git clone -v --progress
git clone -v --progress

build and install irssi

/usr was chosen for install for both applications.

cd ~/src/irssi
./ --prefix=/usr
sudo make install

build the fish

cd ~/src/FiSH-irssi
./configure --with-irssi=~/src/irssi --prefix=/usr
sudo make install

Now irssi and the fish module should be installed. Read the info it gives you afterwards, it tells you where the will be installed.

For me it was at /usr/lib/irssi/modules/

make it startup automatically

echo "load /usr/lib/irssi/modules/" >> ~/.irrsi/startup

use it

Once irrsi starts without problems:

/keyx <nick>

<nick> is not your own nick of course, but the person you want to chat with. ;)

irssi: a proper introduction

posted on 2015-03-06 22:45:39


switching windows

c-n     next window
c-p     prev window
m-1..0  first / second / ... window

m- here means 'meta', or simply said, the 'alt' key.



m means meta, which is usually your alt key.

basic commands

    connects to freenode irc network
/j <channel>
    join <channel>
/m <nick> <message>
    privately messaging
    show users in channel
/topic [<newtopic>]
    show topic, or change to a new one
/q <nick>
    opens a query with <nick>
/away <message>
    set your away message
    window closing
/bye /quit
    close irssi

These should be the bare minimum to get by.

If you want to know more on the shortcuts without having to struggle with 'damned good' (i.e. NOT) documentation, just have a quick look at the alias section in ~/.irssi/config. There is no easier way.


There are a lot of tutorials and descriptions on how to do that from with irssi. No comment on that besides that I do not like that approach.

Here's my settings part of ~/.irrsi/config:

settings = {
  core = { real_name = "JL"; user_name = "sjas"; nick = "sjas"; };
  "fe-text" = { actlist_sort = "refnum"; };
  "irc/core" = { alternate_nick = "sjas``"; };
  "fe-common/core" = {
    autoclose_windows = "no";
    print_active_channel = "yes";
    autolog = "yes";
    autolog_level = "ALL";
    autolog_path = "~/.irclogs/%Y/$tag/$0.%m-%d.log";

At the core line above, you could add another option, so IPv6 Servers are preferred: (Don't forget the semicolon, if you add it at the end.)

resolve_prefer_ipv6 = "ON"


Thou shalt encrypt thee communication.

fish install

(The whole process is documented in more depth here.)

Download from github:

git clone -v --progress

Build it. (make might help? Just see install documentation on github.)

Afterwards link your irssi with the freshly compiled lib.

Create ~/.irssi/startup and put this in it:

load /usr/local/lib/irssi/modules/

Try the following, if the path doesn't work: (irssi will tell you in status window on start)


to find the path, otherwise if you cannot be bothered to install locate / mlocate / whatever, use brute force:

find / -iname

Depending on the location of your lib, fix the path above in the startup file.

fish usage

To have encrypted queries:

/keyx <nick-of-partner>

To have channel encryption:

/setkey <channelkey>

<channelkey> is the key all members agreed to use. Don't exchange him in plain sight. Use encrypted queries instead.

This blog covers .csv, .htaccess, .pfx, .vmx, /etc/crypttab, /etc/network/interfaces, /etc/sudoers, /proc, 10.04, 14.04, AS, ASA, ControlPanel, DS1054Z, GPT, HWR, Hyper-V, IPSEC, KVM, LSI, LVM, LXC, MBR, MTU, MegaCli, PHP, PKI, R, RAID, S.M.A.R.T., SNMP, SSD, SSL, TLS, TRIM, VEEAM, VMware, VServer, VirtualBox, Virtuozzo, XenServer, acpi, adaptec, algorithm, ansible, apache, apachebench, apple, applet, arcconf, arch, architecture, areca, arping, asa, asdm, autoconf, awk, backup, bandit, bar, bash, benchmarking, binding, bitrate, blackarmor, blockdev, blowfish, bochs, bond, bonding, booknotes, bootable, bsd, btrfs, buffer, c-states, cache, caching, ccl, centos, certificate, certtool, cgdisk, cheatsheet, chrome, chroot, cisco, clamav, cli, clp, clush, cluster, coleslaw, colorscheme, common lisp, configuration management, console, container, containers, controller, cron, cryptsetup, csync2, cu, cups, cygwin, d-states, database, date, db2, dcfldd, dcim, dd, debian, debug, debugger, debugging, decimal, desktop, df, dhclient, dhcp, diff, dig, display manager, dm-crypt, dmesg, dmidecode, dns, docker, dos, drivers, dtrace, dtrace4linux, du, dynamictracing, e2fsck, eBPF, ebook, efi, egrep, emacs, encoding, env, error, ess, esx, esxcli, esxi, ethtool, evil, expect, exportfs, factory reset, factory_reset, factoryreset, fail2ban, fbsd, fdisk, fedora, file, filesystem, find, fio, firewall, firmware, fish, flashrom, forensics, free, freebsd, freedos, fritzbox, fsck, fstrim, ftp, ftps, g-states, gentoo, ghostscript, git, git-filter-branch, github, gitolite, global, gnutls, gradle, grep, grml, grub, grub2, guacamole, hardware, haskell, hdd, hdparm, hellowor, hex, hexdump, history, howto, htop, htpasswd, http, httpd, https, i3, icmp, ifenslave, iftop, iis, imagemagick, imap, imaps, init, innoDB, innodb, inodes, intel, ioncube, ios, iostat, ip, iperf, iphone, ipmi, ipmitool, iproute2, ipsec, iptables, ipv6, irc, irssi, iw, iwconfig, iwlist, iwlwifi, jailbreak, jails, java, javascript, javaws, js, juniper, junit, kali, kde, kemp, kernel, keyremap, kill, kpartx, krypton, lacp, lamp, languages, ldap, ldapsearch, less, leviathan, liero, lightning, links, linux, linuxin3months, lisp, list, livedisk, lmctfy, loadbalancing, locale, log, logrotate, looback, loopback, losetup, lsblk, lsi, lsof, lsusb, lsyncd, luks, lvextend, lvm, lvm2, lvreduce, lxc, lxde, macbook, macro, magento, mailclient, mailing, mailq, manpages, markdown, mbr, mdadm, megacli, micro sd, microsoft, minicom, mkfs, mktemp, mod_pagespeed, mod_proxy, modbus, modprobe, mount, mouse, movement, mpstat, multitasking, myISAM, mysql, mysql 5.7, mysql workbench, mysqlcheck, mysqldump, nagios, nas, nat, nc, netfilter, networking, nfs, nginx, nmap, nocaps, nodejs, numberingsystem, numbers, od, onyx, opcode-cache, openVZ, openlierox, openssl, openvpn, openvswitch, openwrt, oracle linux, org-mode, os, oscilloscope, overview, parallel, parameter expansion, parted, partitioning, passwd, patch, pct, pdf, performance, pfsense, php, php7, phpmyadmin, pi, pidgin, pidstat, pins, pkill, plasma, plesk, plugin, posix, postfix, postfixadmin, postgres, postgresql, poudriere, powershell, preview, profiling, prompt, proxmox, ps, puppet, pv, pveam, pvecm, pvesm, pvresize, python, qemu, qemu-img, qm, qmrestore, quicklisp, quickshare, r, racktables, raid, raspberry pi, raspberrypi, raspbian, rbpi, rdp, redhat, redirect, registry, requirements, resize2fs, rewrite, rewrites, rhel, rigol, roccat, routing, rs0485, rs232, rsync, s-states, s_client, samba, sar, sata, sbcl, scite, scp, screen, scripting, seafile, seagate, security, sed, serial, serial port, setup, sftp, sg300, shell, shopware, shortcuts, showmount, signals, slattach, slip, slow-query-log, smbclient, snmpget, snmpwalk, software RAID, software raid, softwareraid, sophos, spacemacs, spam, specification, speedport, spi, sqlite, squid, ssd, ssh, ssh-add, sshd, ssl, stats, storage, strace, stronswan, su, submodules, subzone, sudo, sudoers, sup, swaks, swap, switch, switching, synaptics, synergy, sysfs, systemd, systemtap, tar, tcpdump, tcsh, tee, telnet, terminal, terminator, testdisk, testing, throughput, tmux, todo, tomcat, top, tput, trafficshaping, ttl, tuning, tunnel, tunneling, typo3, uboot, ubuntu, ubuntu 16.04, udev, uefi, ulimit, uname, unetbootin, unit testing, upstart, uptime, usb, usbstick, utf8, utm, utm 220, ux305, vcs, vgchange, vim, vimdiff, virtualbox, virtualization, visual studio code, vlan, vmstat, vmware, vnc, vncviewer, voltage, vpn, vsphere, vzdump, w, w701, wakeonlan, wargames, web, webdav, weechat, wget, whois, wicd, wifi, windowmanager, windows, wine, wireshark, wpa, wpa_passphrase, wpa_supplicant, x11vnc, x2x, xfce, xfreerdp, xmodem, xterm, xxd, yum, zones, zsh

Unless otherwise credited all material Creative Commons License by sjas