平衡点
2010/11/11
_ Wanderlust で GnuPG を使う場合
何を使うのが最良なのか, ちょっと良くわからなくなってます((って話をしたら, 木下さんは Mew と使い分けているとのこと. むぅ)). 調べてみたら wl-mime 内で easypg がある場合にはそれを使うようになっていたので, メモ.
easypg が導入されていると
- message buffer で
- C-c : d (復号)
- C-c : v (署名検証)
が可能. あとは暗号化と署名だけだな, とじたばたするもうまくいかない...自分の署名が不正な署名になってしまう. うーん? ...どうも, wl-draft の文字コードが iso-2022-jp じゃないと送信時に文字コードの変換を行なっている模様で, 試しに
(add-hook 'wl-draft-mode-hook '(lambda () (set-buffer-file-coding-system 'iso-2022-jp)))
なんてのを ~/.wl につっこんでみたら解決しました. というわけで, 設定は以下の通りに
... (add-hook 'wl-draft-mode-hook '(lambda () (set-buffer-file-coding-system 'iso-2022-jp))) ;; draft で C-c \ s でクリア署名 (define-key wl-draft-mode-map "\C-c\\s" 'epa-mail-sign) ;; draft で C-c \ e で暗号化 (define-key wl-draft-mode-map "\C-c\\e" 'epa-mail-encrypt) ;; summary でメッセージを復号する関数 (defun my-epa-wl-decrypt-message () (interactive) (save-window-excursion (wl-summary-jump-to-current-message) (wl-message-decrypt-pgp-nonmime))) ;; summary で C-c \ d でメッセージを復号 (define-key wl-summary-mode-map "\C-c\\d" 'my-epa-wl-decrypt-message) ;; summary で署名を検証する関数 (defun my-epa-wl-verify-message () (interactive) ;; 次のメッセージに行く場合はともかく, ;; summary-mode からフォルダモードに移ると ;; 検証後の結果が常に残ってしまうので, ちょっと修正する必要がある (save-selected-window (wl-summary-jump-to-current-message) (wl-message-verify-pgp-nonmime))) ;; summary で C-c \ v でメッセージを復号 (define-key wl-summary-mode-map "\C-c\\v" 'my-epa-wl-verify-message) ...
使い方は
- メール作成(draft mode)では
- C-c \ s でクリアサイン
- C-c \ e で暗号化
- C-c m C-s で分離署名
- メール一覧表示(summary mode)では
- C-c \ v で署名検証
- C-c \ d で復号
- メッセージ表示(mime-view)では
- C-c : v で署名検証
- C-c : d で復号
あとは application/pgp-signature にカーソル合わせて"v"を押すと分離署名の検証もできる.
ちなみに以前, Wanderlust の mime-view で xdg-open で mime をハンドリングする関数だと application/pgp-signature を xdg-open (私の環境では exo-open) で開いてしまうため, 署名の検証ができない. というわけで, pgp 関連の mime は emacs でそのまま扱うようにする必要がある. うーん...なんかかえって面倒な気がしてきたな(笑) ~/.mailcap に xdg-open 書いておいた方が良いのかしら.
暗号化/署名されたメールの扱いについてはやっぱり Mew が楽, という結論に. 使いわけますかね.
_ Wanderlust のアドレス補完に LDAP を使う
内部ネットにいる時には LDAP サーバにアクセスしてアドレスを補完したい場合.
(let ((ipaddr (format-network-address (car (network-interface-info "eth0"))))) (if ipaddr (when (string-match "^XXX.YYY" ipaddr) (setq wl-use-ldap t) (setq wl-ldap-server "ldapサーバ") (setq wl-ldap-port "ldap port") (setq wl-ldap-base "ou=ほげほげ,dc=へろへろ,dc=へろへろ"))))
我ながら ad hoc. emacs 内でドメイン調べるとか, もっとスマートにできんもんかな.
_ sudo-ext.el がうまく動かないので Tramp を久々に使ってみたり
id:rubikitch さんが公開しているsudo-ext.el(Emacsの中でsudoする方法)を使っていたのだけれど, いつの間にやら M-x sudoedit でファイルを指定しても, ファイルが開けなくなっていた(久々に emacs で root 権限が必要なモノを開いて気がついた). プロセスを見ると sudoedit ファイル名 ってプロセス自体は起動しているのだけれども...はて?
とりあえず, 以前やっていた tramp 用の設定に戻す. とは言え, zsh の PROMPT の設定をゴニョっとするだけ
if [ ! "$TERM" = "dump" ]; then RPROMPT=$chroot$vcs$dirs PROMPT=$'%U%(!.%B%{%{$fg[magenta]%}%}.%{%{$fg[white]%}%})[%n@%m:%j:%(!.#.%%)%u%B>%b %f' fi
とか. zsh で TERM が dump の場合に PROMPT/RPROMPT を設定しないようにすると tramp で localhost にログインしてファイルの編集が可能に. 以前は tramp でファイルを開くまで結構待たされた記憶があるのだけれども, 流石に localhost だと一瞬でファイルが開けるのであまり気にならなかった.
sudo-ext がなんで駄目なのかは, あとで調べてみよう.