平衡点
2011/07/04
_ 快適なメール環境の構築(2/n): offlineimap の設定, again
尊也さんに「Google Contacts 使うなら日本語の方が快適だよ」と唆されたので, 試しに変えてみたら(案の定) Gmail の規定のラベルが全て日本語になってしまい, offlineimap で幸せになれなくなってしまったので, メモ.
IMAP4 でのフォルダ名に「日本語」を使う話
本来ならそんな事する気はなかったのですが.
"[Gmail]/All Mail" とかは Gmail を日本語にすると "[Gmail]/すべてのメール" となる. この状況で IMAP 接続すると, modified UTF-7(RFC 2060(日本語訳)) でエンコードされたフォルダ名が取得される. wanderlust なんかでは
;; 日本語フォルダ対策 (setq elmo-imap4-use-modified-utf7 t)
などと設定しておけば良いわけだが, offlineimap の場合は folderfilter とか nametrans などで困ってしまった.
- 安直にやるなら, utf-7 のフォルダ名を(読み難いけれど)使うのかな?
- Get offlineimap working with non ASCII characters. にある様に, utf-7 <-> utf-8 変換をする python ファイルを読み込んで, nametrans や folderfilter で使用する, という手もある.
というわけで, 安直にやってみた.
# source: python # すべてのメール: '[Gmail].&MFkweTBmMG4w4TD8MOs-' # スター付き: '[Gmail].&MLkwvzD8TtgwTQ-' # ゴミ箱: '[Gmail].&MLQw33ux-' # 迷惑メール: '[Gmail].&j,dg0TDhMPww6w-' # 送信済みメール: '[Gmail].&kAFP4W4IMH8w4TD8MOs-' # 下書き:'[Gmail].&Tgtm+DBN- nametrans = lambda foldername: re.sub('^\[Gmail\].&MFkweTBmMG4w4TD8MOs-', 'Archives', re.sub('^\[Gmail\].&MLkwvzD8TtgwTQ-', 'Starred', re.sub('^\[Gmail\].&MLQw33ux-', 'Trash', re.sub('^\[Gmail\].&j,dg0TDhMPww6w-', 'Spam', re.sub('^\[Gmail\].&kAFP4W4IMH8w4TD8MOs-', 'Sent', re.sub('^\[Gmail\].&Tgtm+DBN-', 'Drafts', foldername)))))) folderfilter = lambda foldername: foldername not in ['[Gmail]/&kAFP4W4IMH8w4TD8MOs-', '[Gmail]/&MLQw33ux-', '[Gmail]/&kAFP4W4IMH8w4TD8MOs-', '[Gmail]/&Tgtm+DBN-']
とりあえずコレで行ってみる.
offlineimap を cron から呼ぶために
offlineimap のパスワードを gpg 暗号化した別ファイルから読み込むようにしているので, cron で動かすと gpg の複合ではまる. 鍵の管理は gpg-agent 任せなので, pinentry-gtk-2 が表示できる X 環境を cron に渡すようにすれば良い. 例えば, 以下の様なスクリプトを cron でまわすようにしてみる
# source: sh #!/bin/sh # -*- mode:sh; coding: utf-8-unix; indent-tabs-mode: nil -*- # offlineimap-cron.sh # # Copyright(C) Youhei SASAKI All rights reserved. # $Lastupdate: 2011/07/12 21:20:57$ # Author: Youhei SASAKI <uwabami@gfd-dennou.org> # License: GPL-3+ # # Code: ######################################################################### # for personal settings OFFLINEIMAP_PID=~/Mail/.offlineimap/pid OFFLINEIMAP_CONF=~/.offlineimaprc UI=quiet # access for current session ck_pid=$(ps -C ck-launch-session -o pid --no-heading | sed 's/^ //g') [ $(ps -p `cat $OFFLINEIMAP_PID` -o pid --no-heading) ] && exit 0 [ -z $ck_pid ] && exit 0 local DBUS_SESSION_BUS_ADDRESS XDG_SESSION_COOKIE GPG_AGENT_INFO for var in DBUS_SESSION_BUS_ADDRESS XDG_SESSION_COOKIE GPG_AGENT_INFO; do VAL=$(sed 's/\x00/\n/g' /proc/$ck_pid/environ | grep $var) var=$VAL ; export $var done [ $(ps -p `cat $OFFLINEIMAP_PID` -o pid --no-heading) ] \ || nice -n 19 offlineimap -c $OFFLINEIMAP_CONF -u $UI -o &
console-kit を使ってない時には ck_pid の所を適宜弄ると良いかと.
2011/07/20
_ Wicd -> Network Manager
「固定 IP も設定できるよ!」と聞いたので, wicd から Network Manager に戻ってみた.
手元 laptop は
- 家の無線LAN: DHCP
- 大学内の居室および居室のある建物: 固定 IP + proxy
- 大学内の他の建物: DHCP + proxy
なんて事になっていて, 以前書いた(mobile 環境での proxy の proxy)ように, 手元の proxy の設定も NetworkManager での接続時にきりかえられないモンかな, とかジタバタしてみた.
設定スクリプトは /etc/NetworkManager/dispatcher.d/ 以下に置く, というので イケルみたい. とりあえず
#!/bin/sh # -*- mode: sh; coding: utf-8-unix; indent-tabs-mode: nil -*- # 99_switch_squid_proxy # # Copyright(C) Youhei SASAKI All rights reserved. # $Lastupdate: 2011/07/19 21:25:27$ # # Author: Youhei SASAKI <uwabami@gfd-dennou.org> # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. # # Code: INTERFACE=$1 STATUS=$2 cp /etc/squid/squid-direct.conf /etc/squid/squid.conf pdnsd-ctl empty-cache math.kyoto-u.ac.jp if [ "$STATUS" = "up" ] ; then case "$IP4_ADDRESS_0" in 10.226.141.*|10.226.142.*|10.226.165.*) cp /etc/squid/squid-kusm.conf /etc/squid/squid.conf ;; *) ;; esac fi /etc/init.d/squid reload
なんて書いてみて, お茶濁す.
/etc/network/if-up.d とかに置いておく方が良いのかな? こっちもちゃんと見るのかしらん.
2011/07/27
2011/07/28
_ Introducing the Debian packaging tutorial
メモ.
- Lucas さん作: Debian Packageing tutorial(PDF)
- 上記の Git repo
これからパッケージ作成するなら,
- source format 3.0
- dh の使い方
- License format Dep5
- git-buildpackage(Git じゃなくても良いけど)
かな. 以前は CDBS を勧めていたけれど, いつのまにか dh 信徒になってしまった(笑).
そういや packaging-dev というメタパッケージができているな.
追記
やまねさんに「PDF のリンク切れてるぞ(゜Д゜)ゴルァ!!」とご指摘頂いたので修正.
...Orz