読者です 読者をやめる 読者になる 読者になる

ichiroc subset

書きながら考える・考えをまとめる場所

iPhoneでもorg-modeを。 MobileOrg環境構築手順メモ

org-mode で仕事をするようになってから、考えをまとめやすくなりました。

普段使っている emacs で編集できて、プロジェクトのネストも好きなだけできます。日付やタグを付ける事もできますし、今書いているこのblogも基は org-mode で書いています。

org-mode の素晴しい点は沢山思いつきますが、今回のテーマではありません。

今回のテーマはMobileOrg です。これは知る人ぞ知る?org-mode の iPhone クライアントです。

いつも使っている org-mode のファイルを iPhone でも閲覧、編集できるんです!インターフェースも練られていて、GTDよろしく、いつでも思いついた事柄をすぐに書きとめれます。

めっちゃいい!

って思いませんか?

しかし流石 Emacs ユーザ向けと言うか、何と言うか。肝心なサーバは自分で調達しなくてはいけなかったり、設定項目が多かったり、これを上手く運用にのせるには少し知識と手間が必要です。

必要な手順

ざっと必要な手順はこれだけあります。

  • WebDAV サーバの用意
  • .emacs の設定
  • WebDAV へのアップロード、ダウンロード

これから少しずつ内容を書いていこうかと思います。

WebDAV サーバの用意

WebDAV を使用して連携するのが前提なので、とにもかくにもWebDAVサーバが必要です。公式サイトによると選択肢は二つ。

レンタルサーバを利用する

* Use a free WebDAV provider such as MyDisk (MyDisk offers free 2GB accounts)
* Use Apple’s MobileMe iDisk service

http://mobileorg.ncogni.to/doc/getting-started/setup-your-webdav-account/

MobileMe も WebDAV も同じようなもんじゃないだろか、という事でまとめました。

MobileMe を利用していない人は mydisk.se を使うと良いんじゃないでしょうか。僕はアカウントだけ登録して使用していませんが、とりあえず使用できそうな感じでした。30日後に有料になるような事が書いてありましたが、よく読んでいません。5$/1year らしいので、十分安いと思います。

自前のサーバを用意

* Use your own Apache webserver with mod_dav

http://mobileorg.ncogni.to/doc/getting-started/setup-your-webdav-account/

幸か不幸か僕は自前でサーバを持っていますので、こちらに該当します。httpd.conf に VirtualHost を新たに切って、以下の設定を加えました。

<Directory /hoge/fuga/>
  DAV on
  AuthType  Basic
  AuthName "WebDAV"
  AuthUserFile   "/hoge/fuga/.htpasswd" # htpasswd でパスワードファイルを作って下さい
  Require user hoge
</Directory>

気になる人は https にしたりして下さい。

.emacs の設定

サーバー側の設定は済みました。.emacs に以下の設定をしましょう。
沢山設定する項目はありますがコメントでその内容を説明します。

;; 最新版の org-modeを適用
(require 'org-install)

;; org ファイルが格納されるディレクトリを指定
(setq org-directory  "/hoge/org/"))

;; MobileOrg へ送る、又は MobileOrg から受け取る為の準備ディレクトリを指定
;; /hoge/org/staging/ というディレクトリにファイルが送られて保存される。
(setq org-mobile-directory (concat org-directory "staging/"))

;; MobileOrg で Capture (新規登録)  した内容が格納される org ファイル
(setq org-mobile-inbox-for-pull (concat org-directory "mobileorg.org"))

;; todoで使用するキーワードを定義。iPhone側で Todo を編集できるようになる
(setq org-todo-keywords '((list "NEXT-ACTION" "WAIT" "DONE")))

;; org-agenda-files に追加 これで管理するorgファイルを指定
;; /hoge/org の中にある projects.org tech.org memo.org mobileorg.org 4つのファイルを指定
(defvar org-agenda-files nil)
(dolist (my-org-file (list "projects.org" "tech.org" "memo.org" "mobileorg.org" ))
  (add-to-list 'org-agenda-files (concat org-directory my-org-file) t)
)
;; 主にmobileorg refile 先を指定(MobileOrg側で作成した項目を移動しやすくするだけ)
(setq org-refile-targets '((org-agenda-files :level . 1)))
WebDAV へのアップロード、ダウンロードの方法

WebDAV へのアップロード、ダウンロードは cadver を使用します。
理由は *nix , Mac , Windows(Cygwin) の全てで問題無く使用できるからです。

まずは以下からダウンロード。
http://www.webdav.org/cadaver/

~/.netrc にユーザIDとパスワードの記述

machine host_name
login ID
password Password

シェルスクリプト又はバッチファイルの作成
例はシェルスクリプト。バッチファイルの場合は <

# ダウンロード
cd /hoge/org/staging/
cadaver http://yourhost/path <<EOF
mget *
EOF
#アップロード
cd /hoge/org/staging/
cadaver http://yourhost/path <<EOF
mput *
EOF

org-mobile-pull と org-mobile-push に defadvice を指定してアップロードを自動化する

(defadvice org-mobile-pull (before org-mobile-download activate)
  (shell-command "/path/to/download.sh")
  )
(defadvice org-mobile-push (after org-mobile-upload activate)
(shell-command "/path/to/upload.sh")
  )