firefox で mailto を mew に関連付け

こういうのを関連付けというのかどうか知りませんが。要するに mailto のリンクを踏んだら emacs に draft バッファを用意させたいなーと思って、やってみたらできたのでやり方メモ。(参考: Firefoxでmailto:リンクをクリックした時にBeckyを開く)

  1. 「現在立ち上がっている emacs の中で mew の draft を開かせる」スクリプトを書く
  2. about:config 開く
  3. network.protocol-handler.external.mailto を true にする (元からなってるかも)
  4. network.protocol-handler.app.mailto を作ってスクリプトのパスを入れる

手順はこれだけ。shell script ほとんど書いたことがないので手間取りましたが、本来は簡単なはず。*1

#!/bin/sh

address=`echo $1 | sed -e 's/^mailto://'`
emacsclient -e "(progn (require 'mew) (mew-summary-send \"$address\"))"

あと一つ補足すると、emacs server を普通は立ち上げてないかもしれないので、その場合は .emacs あたりにこんなのを書く。

(add-hook 'after-init-hook 'server-start)

以上。

でも、やった後で気付いたけど content type ごとの取り扱い方法のところに mailto ってありますね。ここで設定すれば about:config からの設定はしなくてよかったのか。

*1:三行目もっと簡単に書けるだろって思うんですけど