平衡点


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 がなんで駄目なのかは, あとで調べてみよう.


連絡先など
最近の日記
  • 2024/04/28
    • 1. CF-SR3 での生活環境構築 (できてない)
  • 2024/03/29
    • 1. Debian GNU/Linux on CF-SR3
  • 2024/03/25
    • 1. org-mode → beamer でのリスト記号の一時変更
  • 2024/03/22
    • 1. 静的htmlによるGit Repository Browser
  • 2024/02/15
    • 1. org-mode → bemaer での番号付きリスト
一覧
2006|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|02|03|04|08|09|10|11|12|
2013|01|02|03|04|05|06|08|09|10|11|12|
2014|01|02|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|09|10|
2016|02|03|
2017|01|02|03|05|06|07|09|11|12|
2018|03|06|07|10|11|12|
2019|01|02|03|04|05|07|10|12|
2020|01|02|03|04|05|08|09|10|11|12|
2021|01|02|03|05|06|07|08|09|11|12|
2022|01|02|03|04|05|06|08|10|11|12|
2023|02|03|04|06|08|09|11|12|
2024|01|02|03|04|
Back to Top ▲