MobileOrgの設定した

最近emacsのorg-modeを勉強中で、折角なのでMobileOrg連携もやるかと思い設定してみた。
MobileOrgのサイトは http://mobileorg.ncogni.to/
サーバ側のWebDav公式など見るのがよい。
参考にさせてもらったのは


MobileOrgと同期するorgファイルには、先頭にorg-todo-keywordsやorg-tag-alistを設定しておくと、MobileOrgでもそいつが認識される。
例えばこんな感じ。

#+TODO: TODO(t) WAIT(w) CALENDER(c) | DONE(d!) SOMEDAY(s) REFERENCE(r) PROJECT(p)
#+TODO: NEW(n) ASSIGNED(a!) | FIXED(f!)
#+TAGS: @work @home
#+TAGS: misc buy read tel mail pc

.emacs.d/init.elに設定することは、こんな感じ。

;; MobileOrgとのやりとりに使用するファイルの置き場
(setq org-mobile-directory (concat org-directory "stage/"))
;; MobileOrgでキャプチャしたファイルの名前
(setq org-mobile-inbox-for-pull (concat org-directory "mobileorg.org"))
;; org-agenda-fileにrefileする設定
(setq org-refile-targets '((org-agenda-files :level . 1)))
;; push and pull
(defadvice org-mobile-pull (before org-mobile-download activate)
  (shell-command "~/bin/download_org.sh"))
(defadvice org-mobile-push (after org-mobile-upload activate)
  (shell-command "~/bin/upload_org.sh"))

downloadとuploadに使用するスクリプトがこんな感じ。

  • download_org.sh(proxy環境用)
#!/bin/bash

command() {
    sleep 1; echo 'PROXY_USER'
    sleep 2; echo 'PROXY_PASSWORD'
    sleep 2; echo 'mget *'
}

cd ~/org/stage/
rm -rf *
command | cadaver DAV_URL/org/
  • upload_org.sh(proxy環境用)
#!/bin/bash

command() {
    sleep 1; echo 'PROXY_USER'
    sleep 2; echo 'PROXY_PASSWORD'
    sleep 2; echo 'mput *'
}

cd ~/org/stage/
command | cadaver DAV_URL/org/

cadaverする時の設定として以下の設定を追加。

  • ~/.cadaverrc(proxy環境でのみ必要)
set proxy PROXY_URL
set proxy-port PROXY_PORT
  • ~/.netrc
machine HOST_NAME
login DAV_USER
password DAV_PASSWORD

proxyなしの環境(家とか)では以下のスクリプトでいけるはず。

  • download_org.sh
#!/bin/bash

cd ~/org/stage/
rm -rf *
cadaver DAV_URL/org/ <<EOF
mget *
EOF
  • upload_org.sh
#!/bin/bash

cd ~/org/stage/
cadaver DAV_URL/org/ <<EOF
mput *
EOF

毎日の作業は、emacsで弄ったら

M-x org-mobile-push

MobileOrgで弄ったら更新ボタン。
emacs

M-x org-mobile-pull

ってな具合。