takeshi nagayama's blog

A weblog about Design, Tech, Japan and Kyoto.

IrssiからWeeChatへ

仕事で使っているPCがMacになったという事もあり、あまり関係ないけどIRCのクライアントをIrssiからWeeChatに変更してみたわけです。未だにIRCかよって感じですが、社内のコミュニケーションがIRCを中心にされているので仕方がありません。
インストールはhomebrewを使って

brew install weechat

でおわり。
あとはクイックスタートガイド的なのを読みながら

/server add myserver irc.example.com/6669 -password=mypass

みたいな感じでサーバを登録して、

/connect myserver

すれば接続完了。tiarraなんかのirc bouncerを使っているのであれば、基本的にこれでOKとなりますが、まさか素のIrssiをそのまま使っているわけはないので、同じような環境にするためにプラグインを入れたり設定を変更したりする必要があるわけです。
WeeChatにはweegetというプラグインを管理するプラグインがあり、それをインストールすればオフィシャルサイトで提供されているプラグインをインストールしたりアンインストールしたり自由にできるという事なので、まずはこのweegetをインストールします。

cd ~/.weechat/python/autload
wget http://www.weechat.org/files/scripts/weeget.py

してWeeChatの方から

/python autload

としますと、/weeget から各種コマンドが使えるようになります。たとえば

/weeget list 

でインストールできるプラグインがズララーっと表示されます。
ぼくは

  • window_switcher.plに該当するgo
  • /lastlogの代替のgrep
  • ハイライト時にベルを鳴らすbeep
  • ハイライトされたメッセージだけを表示するウィンドウを作るhighmon
  • 自動的にいろいろしてほしいので、autoconnect, autojoin, keepnick

なんかをインストールしました。
Irssiのchanactみたいなのはhotlistというのがビルトインで用意されていてます。デフォルトだとハイライトするかプライベートメッセージがきたチャンネルしかチャンネル名が表示されないようになっているのですが、それが嫌なのでhotlist_names_levelを14に変更。これは1=join/part, 2=message, 4=private, 8=highlight ってなってるのでそれぞれ足しあわせて表現するルールになっているのですが、なんだか設定のルールが項目によっていろいろ違うので、/helpを多用する事になります。

で、hotlistをnoticeで反応させないようにしたかったんだけど、ガイドを読んでもそういったことは出来ない様子。ネットにも該当するような記事もないし、とりあえずソースコードをざっと追ってみたけど、privmsgとnoticeをほぼ同類のものとして扱っているのがコアな所にベタっと書いてあるので、hotlistの表示を書き換えるプラグインかなにかを書かないと無理っぽい。
とりあえず今回除外したいのはbotのnoticeがほとんどなので、filterという機能を使ってbotがしゃべるnoticeをそもそも見えないようにする事で強引に対応しました。
このfilterというのはignoreとはちょっとちがって、alt+=で表示非表示をトグルする事ができるので、botのnoticeが必要な時とそうでない時でパコパコ切り替えて使ってみる事にしました。

WeeChatはpythonとかrubyとかperlとか各種スクリプト言語でプラグインを書く事ができるので、いずれ何かチャレンジしてみたいですね。
Irssiで十分満足していたし、一部機能の再現が困難だったりするわけですが、まあ春なので。