Geek-Side

<< < 1 > >>

org-modeとToodledoを連携してどこでもタスク管理


これまでorg-modeで編集するファイルをDropBoxで連携して、いろんなPCでorg-modeでタスク管理をやっていました。
OSなんてWindows,Linux,Macとてんでバラバラの環境でもEmacsとDropboxが入れば連携できる素晴らしい環境でした。
これまではこれで満足な環境だったのですが、以下のような機能が欲しくなりました。

  • リマインダーメール機能が欲しい
  • ipadでもタスク管理をやりたい

リマインダーメールはともかく、org-modeと連携してipadでタスク管理をやりたいならMobileorgなのかもしれないけど、同期の手順が煩雑なので敬遠していました。
そこで目をつけたのがToodledoです。Toodledoはリマインダーメールの機能も備えていますし、org-modeとToodledoの連携を行うorg-toodledoがあります。
Toodledoに連携さえ出来れば、ipad専用のToodledoアプリでタスク管理できます。

インストール


環境はEmacs-24、Emacsの24系から正式導入されたパッケージ管理システムを用いて導入しました。MELPAからインストールするため、下記の設定を~/.emacs.d/init.elに追加して有ります。

 (require 'package)
 (add-to-list 'package-archives
              '("melpa" . "http://melpa.milkbox.net/packages/") t)
 (package-initialize)

M-x package-list-package を実行して、一覧に表示されるorg-toodledoをインストールします。

org-toodledoの設定

下記の設定を~/.emacs.d/init.elに追加します。

 (require 'org-toodledo)
 (setq org-toodledo-userid "Account Setting画面のUnique ID")
 (setq org-toodledo-password "パスワード")
 ;; 保存時に常に同期する。確認を行うときは "ask"を指定する
 (setq org-toodledo-sync-on-save "yes")
 ;; フォルダーを第一階層の名称に使う
 (setq org-toodledo-folder-support-mode 'heading)
 
 ;; Useful key bindings for org-mode
 (add-hook 'org-mode-hook
           (lambda ()
             (local-unset-key "C-o")
             (local-set-key "C-od" 'org-toodledo-mark-task-deleted)
             (local-set-key "C-os" 'org-toodledo-sync)
             )
           )
 (add-hook 'org-agenda-mode-hook
           (lambda ()
             (local-unset-key "C-o")
             (local-set-key "C-od" 'org-toodledo-agenda-mark-task-deleted)
             )
           )
 

初期連携

さて、下の画像のようなorg-modeのファイルを作りました。


このファイル上で M-x org-toodledo-initializeを実行すると、「Default heading for Toodledo tasks:」と聞かれるので「Test」を指定すると、下記のようにToodledoに連携されます。



TODOが付いているものだけ連携され、第3階層のTODOは階層を無視されてはいますが、ちゃんと取り込まれています。
また、リピート設定もうまく連携できています。

日々の連携

Toodledoで追加したタスクはEmacs上で Cntrl-o s で同期されます。
org-modeからToodledoへの連携は、上記のようにorg-toodledo-sync-on-saveを設定していればファイル保存時に自動的に行われます。

Google Tech TalkにOrg-mode 開発者が登壇!

この自作BlogソフトはOrg-mode記法を読む事をテーマに開発しました。
そんなOrg-modeの開発者 carsten dominik氏がGoogle TechTalkで行ったプレゼンが公開されています。
http://jp.youtube.com/watch?v=oJTwQvgfgMM

内容についてはOrg-modeの基本的な使い方に終始しています。これからOrg-modeを使ってみようと思う方向けですね。
新発見は少なかったのですが、個人的にはあまり使ってないremember.elとの連携やcolumn viewについても詳しく解説されており、使ってみようかなと思わせる内容でした。
使ってみて便利そうだったら、また紹介しようと思います。

プレゼンでも主張されてますが、テキストベースであるということは、本当に重要だと感じました。
自分のようにOrg-modeで書かれたファイルをバージョン管理して、複数のマシンで編集する場合や、
様々なツールで加工するケースでは、テキストファイルであることは非常に便利です。

公私にわたって大活躍のOrg-mode、ますます発展してほしいですね。

Org-ModeがSpeedBarに対応

Org-Modeが5.16からSpeedBarに対応したそうで。
どういうことかというと、Org-Modeでは アスタリスクの数で階層を深くすることが出きるけど、
この階層のうち、第一、第二階層までのインデックスがSpeedBarで表示出きるようになるってこと。

使い方はOrg-Modeでファイルを編集中に M-x speedbarとすると、ファイル一覧が表示される。
さらにファイルをえらんで '+' を押すと Org-Modeで言う第一階層が展開される。
さらに '+' を押すと第二階層が。
Enterでその場所にジャンプしてくれる。

Org-Modeで編集しているファイルが肥大化してくると非常に重宝する機能。
ついでに今まであまり使っていなかった Speedbarの便利さにも触れることが出来た。

org-modeとappt.elでアポイントメントを管理

仕事中に約束の時間をうっかり過ぎないように、携帯電話でアラームを鳴らすようにしたり、
PC上だと、ポップアップでアラームを表示してくれるようなソフトを使ってたけど、
org-modeの機能で実現できる事を知った。
これでついつい作業に没頭して、会議等の出席に遅れるようなミスを防ぐことが出来る。

org-modeとappt.elを連携させて実現している機能で、org-modeで書いたスケジュールと連動して指定時間前になると、
アラームがmode-lineやwindowに表示され非常に便利。

準備としてはorg-modeでファイルを開いて(大抵は拡張子が.orgならorg-modeになる)、
agendaファイルとして登録する(キーバインドはC-[)。
次に.emacsの設定は以下のとおりにしておけば、起動時にagendaファイルからアラームを登録してくれる。
; apptをwindow表示
(setq appt-display-format 'window)
; appt message 表示秒数
(setq appt-display-duration 30)
; beep音をならす
(setq appt-audible t)
; appt message 何分前にアラームを上げるか
(setq appt-message-warning-time 14)
; mode line に apptまでの分を表示
(setq appt-display-mode-line t)
(appt-activate 1)
(org-agenda-to-appt)


; 保存時にorg-agenda-to-apptを実行
(add-hook 'org-mode-hook
	  (lambda() (add-hook 'before-save-hook
			      'org-agenda-to-appt t)))

上記の設定で、例えば下記のような内容がある場合
** 定時ダッシュ
   SCHEDULED: <2007-11-19 月 18:00>
17時46分から、mode-lineとwindowでアラームを表示してくれる。

スケジュールを追加後には手動で M-x org-agenda-to-appt とすれば、
随時agendaファイルからアラームを登録できるし、
上記のようにhookを登録しておけば、ファイル保存時にアラームを登録してくれる。