Posts tagged irssi

Weechat + FiSH walkthrough vs. irssi
posted on 2016-01-17 00:30

foreword

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. :)

fish

When in weechat:

# start scripts plugin
/script

# search plugin
via pgdn and up/down search for 'fish.py'

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

# close the window afterwards
/close

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

usage

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.)

prerequisites

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

Fish needs the openssl-devel package.

get code

cd 
mkdir src
cd src  
git clone -v --progress https://github.com/irssi/irssi.git
git clone -v --progress https://github.com/falsovsky/FiSH-irssi.git

build and install irssi

/usr was chosen for install for both applications.

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

build the fish

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

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

For me it was at /usr/lib/irssi/modules/libfish.so.

make it startup automatically

echo "load /usr/lib/irssi/modules/libfish.so" >> ~/.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

shortcuts

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.

scrolling

pgup
pgdn
m-p
m-n

m means meta, which is usually your alt key.

basic commands

/c irc.freenode.org
    connects to freenode irc network
/j <channel>
    join <channel>
/m <nick> <message>
    privately messaging
/n
    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
/wc
    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.

logging

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"

fish

Thou shalt encrypt thee communication.

fish install

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

Download from github:

git clone -v --progress https://github.com/falsovsky/FiSH-irssi

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/libfish.so

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

updatedb
locate libfish.so

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

find / -iname libfish.so

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, arcconf, arch, architecture, areca, arping, asa, asdm, awk, backup, bandit, bar, bash, benchmarking, binding, bitrate, blackarmor, 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, 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, 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, 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, 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, pdf, performance, pfsense, php, php7, phpmyadmin, pi, pidgin, pidstat, pins, pkill, plesk, plugin, posix, postfix, postfixadmin, postgres, postgresql, poudriere, powershell, preview, profiling, prompt, proxmox, ps, puppet, pv, pvecm, pvresize, python, qemu, qemu-img, qm, qmrestore, quicklisp, 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, x2x, xfce, xfreerdp, xmodem, xterm, xxd, yum, zones, zsh

View posts from 2017-02, 2017-01, 2016-12, 2016-11, 2016-10, 2016-09, 2016-08, 2016-07, 2016-06, 2016-05, 2016-04, 2016-03, 2016-02, 2016-01, 2015-12, 2015-11, 2015-10, 2015-09, 2015-08, 2015-07, 2015-06, 2015-05, 2015-04, 2015-03, 2015-02, 2015-01, 2014-12, 2014-11, 2014-10, 2014-09, 2014-08, 2014-07, 2014-06, 2014-05, 2014-04, 2014-03, 2014-01, 2013-12, 2013-11, 2013-10


Unless otherwise credited all material Creative Commons License by sjas