SlackやTwitterをWeeChat経由で使う & 自分がやっている設定

Slack、最近では色々なところで使われますね。会社用、家庭用、友人との連絡用、研究室のOBOGの連絡用…などとあれこれチームに入っているとチームの切り替えが面倒になってきます。各チームでよく使うチャンネルをひとまとめで見たい、といった要望が出てきます(あと、Slack.appが定期的に日本語入力ぶっこわれるとか)。そういったことをうまくやるために、最近はWeeChat経由でslackを使っています。SlackはIRC経由で使うことができて、WeeChatはIRCクライアントなので、slackを使うことができます。

会社では数人使っている人がいますが、世の中的にはあまり使われていないような気もするので、メリット/デメリットをまとめてみました。

メリット

  • 軽い
  • (複数のチームを横断して)よく使うチャンネルを持ってくることができる
    • 以下のチャンネルを上にまとめて持ってきています
      • 会社: チームのメインチャンネル、チームの雑談チャンネル、自分の分報、仲いい人の分報、機械学習チャンネル
      • 自宅: #general、nasneの残量通知チャンネル
      • 友人連絡用: #general、ポエムチャンネル
      • twitter: プライベートリスト
  • CLIで動くので、ターミナルから動かなくてよい
    • itermの中でEmacsとweechatを並べるといったことができる
    • itermはホットキーで一瞬で呼び出せる
  • 通知も自分の好きなようにできる
    • ハイライトの正規表現をいい感じに書いたりできる
  • atig.rbとかを使うとtwitterも一緒に見れる
  • レイアウトを自由に変えることができる
    • 4分割にして、会社のチームのチャンネルだけ大きめに表示するなど
  • キーバインドの自由度がかなり高い

デメリット

  • 画像展開などは特にされない
    • mackerelの通知のグラフなどは見たい…
    • github連携とかもまあまあ困る
  • 絵文字は脳内で展開する必要がある
  • 他人のslackのstatusは分からない
  • もちろん、slack callはweechat内では使えない
    • ブラウザで開けば使えるので、そこまで困っていない

デメリットもあるけど、致命的ではないしメリットのほうが上回ってるかなと思うので、weechat使ってます。便利です。

自分がやっている設定

特に目新しいこともないけど、参考までに自分がどういうことやっているかメモしておきます。

いくつかのチャンネルを特別扱いして上に持ってくる(便利)。

/script install chanpriority.py
/chanpriority hatena.#mackerel, hatena.#times_syou6162, twitter.#private, ...

チャンネル横断でハイライトされてるものを一覧できる(便利!)。

/script install highmon.pl

見た目や配置の設定。

/set buffers.look.indenting on
/set irc.look.server_buffer independent
/set irc.look.new_channel_position near_server
/set irc.look.new_pv_position near_server

必要ない通知を切る。

/filter add irc_smart * irc_smart_filter *

C-gで移動したいチャンネルに移動しやすくなる。チャンネルの数が100個とか越えててもさっと移動できる。

/script install go.py
/key bind ctrl-G /go

水平分割。繰り返して4分割くらいにしていることが多い。

/window splith

分割すると入力バーがいくつもできるので、入力バーを一つにまとめる。

/bar add rootinput root bottom 1 0 [buffer_name]+[input_prompt]+(away),[input_search],[input_paste],input_text
/bar del input

レイアウトの保存を自動でやる。

/set weechat.look.save_layout_on_exit all

通知関連。weechat-growlなどもあるが、pythonのライブラリの関係で苦労したので、簡単なやつを使う。使えれば何でもいいと思う。

wget https://raw.githubusercontent.com/keith/terminal-notifier-weechat/master/terminal_notifier.py ~/.weechat/python
cd ~/.weechat/python/autoload
ln -s ../terminal_notifier.py

キーワードや正規表現を書いていく。

/set weechat.look.highlight "syou6162,yasuhisa,syou"

マウスの設定。

/mouse enable

サーバーへのログインの設定。

/server add my-team my-team.irc.slack.com/6667 -autoconnect -ssl -ssl_verify=off -password=my-team.XXXXXXXXXXXXX -nicks=syou6162
/connect my-team

サーバーの順番並び替えたいときに。

/server list
/server reorder

バッファの履歴を辿る。

/key bind meta-p /window page_up
/key bind meta-n /window page_down

参考