はじめに
Obsidianのプラグイン「Silhouette」を中心としたタスク管理を実践して半年程度が経過しました。この記事では、私の現在の運用方法と、それを支える各種プラグインの活用方法について詳しく解説します。
タスク管理の基本的な考え方
私のタスク管理は、GTD(Getting Things Done)の手法をベースにしています。具体的には以下の流れで運用しています:
- 全てのタスクを最初にInboxに集める
- 定期的に整理・分類する
- 日々のタスクとして割り振る
Inboxの運用
移行の経緯
以前はiPhoneのリマインダーアプリを使用していましたが、現在はObsidian上でタスク管理を完結させています。移行の主な理由は:
- タスク管理の一元化が可能
- Outliner機能による階層的な整理がしやすい
- 様々なプラグインの補助を受けられ
タスクの分類
GTDの考え方に基づき、以下のように分類しています:
- Inbox:未整理のタスク置き場
- Projects:プロジェクト単位でまとめたタスク
- Waiting:他者の作業待ちタスク
- Someday:いつか取り組みたいタスク
※通常のGTDにある「すぐやる」項目は、デイリーノートで管理しています。
Outlinerを使うことで分類やタスクの親子関係が明確になります。このタスクリストを”ToDo”という名称のノートに記載しています。
List Calloutプラグインの活用
タスクリストの視認性を高めるために、List Calloutプラグインを使用しています。!
などのプレフィックスを付けるだけでリストに色付けができ、元の記述を損なわないため重宝しています。
デイリーノートの活用
Silhouetteによる自動化
Silhouetteの主な利点:
- 繰り返しタスクを設定ファイルで管理
- ワンコマンドでデイリーノートにタスク追加
- 習慣化タスクの管理が容易
- 週次のタスク整理も自動化可能
実際の設定画面:
Silhouetteの最も良い点は設定にタスクを整理する,sun
と入れるだけでGTDの素地が完成することです。詳細な記法は公式ドキュメントに掲載されています。
補完的なプラグイン群
- Calendar
- カレンダーUIによる日付管理、デイリーノート管理
-
Note toolbar
- デイリーノート専用のコマンドバーを設置可能
-
Hover editor
- ノートのプレビューと編集を同時に実現
- Note toolbarと組み合わせて効率的な編集環境を構築できる
- Templater
- JavaScriptによるカスタムコマンドの作成
- 日付間の移動などの機能を実装可能
- Google Calendar
- グーグルカレンダーと連携できる
- グーグルカレンダーから予定を取り込むことができる
発展的な活用方法
Dataviewによるタスク管理の拡張
DataviewJSを使用することで、カスタマイズされたタスクインターフェースを作成できます。
Datavisjsのコード例:
> [!tip]+ `$=dv.span("[[DailyNotes/" + moment().format("YYYY-MM-DD")+ "|" + moment().format("YYYY-MM-DD") + "]]")`: `$=dv.page(moment().format("YYYY-MM-DD"))? "<progress value='" + dv.page(moment().format("YYYY-MM-DD")).file.tasks.where(t => t.completed).length/dv.page(moment().format("YYYY-MM-DD")).file.tasks.length*100 + "' max='100'></progress> " + (dv.page(moment().format("YYYY-MM-DD")).file.tasks.length > 0? Math.round((dv.page(moment().format("YYYY-MM-DD")).file.tasks.where(t => t.completed).length / dv.page(moment().format("YYYY-MM-DD")).file.tasks.length) * 100): 0) + "%": "No daily note found for today"`
>
>
> >[!warning]+ Remaining: `$=dv.page(moment().format("YYYY-MM-DD"))? dv.page(moment().format("YYYY-MM-DD")).file.tasks.where(t =>!t.completed).length: ""`
> > `$=dv.page(moment().format("YYYY-MM-DD"))? dv.taskList(dv.page(moment().format("YYYY-MM-DD")).file.tasks.where(t =>!t.completed), false): ""`
>
> >[!success]- Finished: `$=dv.page(moment().format("YYYY-MM-DD"))? dv.page(moment().format("YYYY-MM-DD")).file.tasks.where(t => t.completed).length: ""`
> > `$=dv.page(moment().format("YYYY-MM-DD"))? dv.taskList(dv.page(moment().format("YYYY-MM-DD")).file.tasks.where(t => t.completed), false): ""`
※デイリーノートがDailyNotesフォルダに入っており、YYYY-MM-DDのフォーマットになっていることを想定しています。
Minimalテーマの活用
- リストのカードビュー表示が可能
- プロパティに
cssclasses: list-cards
を追加するだけで実現
効率化のためのプラグイン
TemplaterやQuickAddを使用することで:
- ワンコマンドでのタスク追加
- Inboxへの素早いタスク登録
が可能になります。
ホットキーで呼び出して、すぐにInboxやデイリーノートにタスクを追記することができます。
まとめ
このようなプラグインの組み合わせにより、効率的かつ柔軟なタスク管理システムを構築することができます。特にSilhouetteを中心とした自動化により、日々のタスク管理の負担を大きく軽減することができます。