選択したOmniFocusタスクをプレーンテキストファイルに送信する

選択したOmniFocusタスクをプレーンテキストファイルに送信する
選択したOmniFocusタスクをプレーンテキストファイルに送信する

OmniFocusにはたくさんのものを保存しています。テキスト、URL、メールなどです。以前はお気に入りのツイートも保存していました。アプリのクイックエントリパネルは簡単に呼び出せて、OS Xのコア部分と非常によく統合されているため、OmniFocusに本来保存すべきではない情報をクリップしてしまうことがよくあります。しかし、その情報を手作業で確認するプロセスは、私のワークフローにとって有益だと感じています。なぜなら、実行可能な項目(タスク)と、読むべきもの、そして書くべきもの(Instapaperの資料や将来の記事など)を、精神的にも実際的にも区別できるからです。

選択したOmniFocusタスクをテキストファイルに送信するシンプルなAppleScriptを作成しました。このスクリプトは、私がOmniFocusを使う方法に基づいて作成したものです。皆さんにも役立つと思いますので、ご自由に改変してください。

OmniFocusの受信トレイを確認すると、実はやりたいことや書きたいことのアイデアがタスクとしてたくさん見つかります。アイデアはOmniFocusには入りません。それらのアイデアが実際に実行可能な項目になるまでは、テキストファイルに保存して詳細を詰め、発展させられるかどうかを確認します。先ほども言ったように、これらのアイデアのほとんどは新しい記事のためのものです。

すべてのメモをApps/Dropboxの単一のディレクトリに保存しています。同じAppleScriptをベースに、Keyboard Maestroマクロを作成し、処理済みのタスクごとに新しいテキストファイルを作成しています。これは、独立した記事になるであろうアイデアのために作成しています。あまり確信が持てないアイデアは、Ideas.txtインスピレーションを得るためにDropboxの「あらゆるものを入れるバケツ」として保存しているファイルにテキストとして追加保存しています。

AppleScript

基礎となる AppleScript は次のとおりです。

tell application "OmniFocus"
 tell front window
 set my_sel to selected trees of content
 set my_selection to value of item 1 of my_sel
 set task_name to get name of my_selection
 set a_note to get note of my_selection
 end tell

end tell

非常にシンプルで、OmniFocus で選択されたタスクの名前とメモを取得します(このスクリプトは、受信トレイやその他のパースペクティブを処理しているときに OmniFocus が最前面のウィンドウになっているときに実行するものと想定しています)。実装は、Keyboard Maestro(単一のファイルを作成する)と で若干異なりますIdeas.txt

キーボードマエストロ

下図のマクロは、Keyboard Maestro EngineのAppleScript変数サポートを利用して、タスク名とメモ(存在する場合)を2つの別々の変数に代入します。その後、タスク名としてテキストファイルの名前を指定し、ファイルの内容としてタスクのメモを使用するかどうかを確認するプロンプトが表示されます。

%Variable%TaskName%マクロの最後に表示される「テキストをファイルに書き込む」のパスを定義するので、ファイル パスが機能することを確認してください。 

tell application "OmniFocus"
 tell front window
 set my_trees to selected trees of content
 set my_selection to value of item 1 of my_trees
 set task_name to get name of my_selection
 set task_note to get note of my_selection
 tell application "Keyboard Maestro Engine"
 make variable with properties {name:"TaskNote", value:task_note}
 make variable with properties {name:"TaskName", value:task_name}
 end tell
 end tell

end tell

このマクロはTaskNote、 が空であるかどうかを認識するように設計されており、その場合、新しく作成される TaskName ファイルにテキストを追加しません。マクロはここからダウンロードできます。

ファイルに追加

選択したタスクを既存のIdeas.txtファイルに追加したいときは、AppleScriptを使います。AppleScriptは、Alfred、LaunchBar、Keyboard Maestroなど、最近では様々な方法で実行できます。OmniFocusのツールバーに配置するのもその一つです(ツールバーに配置するには、 に配置します~/Library/Scripts/Applications/OmniFocus/)。

-- PATH OF TEXT FILE YOU'LL APPEND TEXT TO

property text_file : "/Users/viticci/Dropbox/Apps/Ideas.txt"


-- GET TASK NAME AND NOTE FROM OMNIFOCUS

tell application "OmniFocus"
 tell front window
 set my_sel to selected tree of content
 set my_selection to value of item 1 of my_sel
 set task_name to get name of my_selection
 set a_note to get note of my_selection
 -- CHECK IF NOTE IS EMPTY
 if a_note is not "" then
 set task_note to {" - " & a_note}
  -- APPEND DATE, TASK NAME + NOTE TO IDEAS.TXT FILE
 do shell script "echo \"


_\"`date +'%Y-%m-%d'`\"_\" >> " & text_file
 do shell script "echo " & task_name & task_note & ">> " & text_file
  else if a_note is "" then
  -- APPEND DATE AND TASK NAME TO IDEAS.TXT FILE
 do shell script "echo \"


_\"`date +'%Y-%m-%d'`\"_\" >> " & text_file
 do shell script "echo " & task_name & ">> " & text_file
  end if
 end tell

end tell

この AppleScript のバリエーションは、タスクの名前とメモを取得し、それらをdate文字列の後に追加しますIdeas.txt

property text_fileスクリプトの先頭にある を編集してパスを設定できます。タスクに空のメモがある場合は、名前のみが追加されることに注意してください。

まとめ

個人的には、毎日の終わりにこのスクリプトを使ってOmniFocusの受信トレイを確認し、保存したアイデアをテキストファイルとして保存しています。このスクリプトは、アプリが.txtローカルフォルダからファイルを取得するように設定している場合、nvALTと連携して特に効果的です。もし別のワークフロー向けにスクリプトを修正したものを作成された場合は、お気軽にご連絡ください。

クラブ・マックストーリーズ

追加コンテンツと特典にアクセスする

Club MacStories は 2015 年に設立され、ほぼ 10 年間にわたって毎週独占コンテンツを提供してきました。

毎週、毎月の電子メール ニュースレターから始まったものが、すべての MacStories ファン向けに設計されたメンバーシップ ファミリーに成長しました。

詳細については、こちらおよびクラブの FAQ をご覧ください。

Club MacStories : アプリ、ヒント、自動化ワークフロー、長​​文執筆、MacStories Unwind ポッドキャストへの早期アクセス、定期的な景品など、盛りだくさんの情報を満載した、電子メールと Web 経由の週刊および月刊ニュースレター。

Club MacStories+ : Club MacStories が提供するすべての機能に加え、アクティブな Discord コミュニティ、クラブの過去のカタログ全体を閲覧するための高度な検索機能とカスタム RSS 機能、ボーナス コラム、多数のアプリ割引などが含まれます。

Club Premier : 上記のすべてに加え、早期に、広告なしで、高ビットレートのオーディオで配信される当社の主力ポッドキャストの拡張バージョンである AppStories+ が含まれます。