# Howto irssi

* Documentation : <https://irssi.org/documentation/>

## Installation

~~~
# apt install irssi
~~~

## Utilisation de base

~~~
/connect irc.freenode.net
/join #channel
/part
/query <nick>
/query
/part
~~~

## racourcis clavier

~~~
Echap + a = Se déplacer vers le dernier message le plus important
Ctrl + n = Se déplacer au salon suivant
Ctrl + p = Se déplacer au précédent salon
~~~

## Syntaxe Vim irssilog

~~~
$ mkdir -p ~/.vim/syntax
$ wget 'http://www.vim.org/scripts/download_script.php?src_id=10584' -O ~/.vim/syntax/irssilog.vim

vim 2016-08.log
:syntax on
:set syntax=irssilog
~~~

## Gérer le layout des windows

~~~
/WINDOW show x # créer une vue splité sur la fenêtre x
/WINDOW close # fermer la fenêtre courante
/WINDOW shrink|grow # rétrécir ou agrandir la fenêtre courante
/WINDOW balance # taille des fenêtres visible à l'identique
/WINDOW move x # déplace la fenêtre actuelle sur le numéro x
/WINDOW move UP # déplace la fenêtre sur celle du dessus
/WINDOW number x # change le numéro de la fenêtre active
/WINDOW show x # séparer la frame en deux avec la fenêtre x affiché : il faut que le mode 'sticky' soit désactivé pour cette fenêtre /WINDOW stick off
/WINDOW log ON <file> #activer les logs pour cette fenêtre <- afin de faire une surveillance sur le fichier ou autre possibilité
~~~

Ne pas hésiter à sauvegarder sa session actuelle (thème)

~~~
/SAVE
~~~

## Action selon touche pressé

~~~
/BIND ^[OP key F1
/BIND ^[11~ key F1
/BIND F1 /me a besoin d'aide !
~~~

## Envoyer une commande CTCP à un utilisateur

~~~
/CTCP user (PING|VERSION|USERINFO|CLIENTINFO|TIME)
~~~

## Loguer toutes les conversations

Log les channels mais aussi les conversations privés :

~~~
/LOG START ~/irclogs/irssi-%Y-%m-%d
/SET autolog ON
~~~

## Highlight de son pseudo

~~~
/highlight mon-pseudo
~~~

Pour désactiver tout highlight personnalisé:

~~~
/dehighlight 1
~~~

Le chiffre 1 représente l'ordre à laquelle on ajoute les filtres.


## Scripts sur irssi

Créer ou copier les scripts dans ~/.irssi/scripts/

~~~
/SCRIPT load <chemin>
/SCRIPT unload <nom script>
~~~

## Notifications

Pour avoir des notifications avec irssi, on pourra utiliser le plugin [fnotify](https://scripts.irssi.org/scripts/fnotify.pl) qui va écrire tous les messages nous étant destinés dans ~/.irrsi/fnotify. On peut aussi le limiter à seulement une fenêtre (/WINDOW log), et le combiner aussi au plugin [highlite](https://scripts.irssi.org/scripts/highlite.pl).

On pourra ensuite parser ce fichier et envoyer des notifications. Voici un exemple de script avec irssi qui tourne dans un screen sur un serveur distant :

~~~{.bash}
#!/bin/bash

if [ -n "$IRSSI_SCREEN_SRV" ]; then
        ssh -q $IRSSI_SCREEN_SRV ": > .irssi/fnotify;tail -f .irssi/fnotify" > >(\
        while read heading message; do
                notify-send "${heading}" "${message}" -t 5000
        done) & \
        FNOTIFY_PID=$!
        x-terminal-emulator -e "ssh -t $IRSSI_SCREEN_SRV screen -r -D"
        kill $FNOTIFY_PID 2&> /dev/null
else
        notify-send 'Error' 'You must set IRSSI_SCREEN_SRV !' -t 10000
fi
~~~

Recherche :

~~~
/lastlog <pattern>
/lastlog -hilight
/lastlog -clear
~~~
