Taskwarrior は私の Linux ターミナルを Google カレンダーや Keep と同期するレトロな ToDo リストに変えました

in tech

Linux ターミナルからタスク マネージャーを使用することになるとは想像もしていませんでした。色のカスタマイズ オプションを備えた見栄えの良い GUI を使用する代わりに、コマンドを使用して ToDo リストを作成します。 Taskwarrior に出会うまではそうでした。これは無料のオープンソースのタスク マネージャーであり、使い方も簡単です。しかし、それがポイントなのです。他の肥大化したデスクトップ アプリを置き換えることができます。

今回、その機能をさらに拡張する方法を見つけました。という名前の開発者と バーガークッキーの syncall プロジェクトを使用すると、Taskwarrior を Google カレンダー、Keep、その他の一般的なサービスと双方向で同期できます。

私はタスクを複数の場所に保存する癖があります

すべてのタスクを管理するための中央システムが必要でした

Google カレンダーと Google Keep は、デスクトップ モードでサイズ変更可能な個別のウィンドウとして開きます。

私は長年にわたり、タスク管理に多くのアプリやサービスを使用してきました。 Google Keep、スプレッドシート、Asana、ClickUp、その他多くの複雑なタスク管理アプリ。問題は、それぞれがそれを使い続けるのに十分な良いことをしたということです。たとえば、Google Keep は ToDo をすばやく作成するのに優れています。 ClickUp は、複数のサブタスクや期限のある大規模なタスクの管理に最適です。

問題は、これらすべてのタスクを個別のアプリにまたがって整理する方法がないことでした。おそらく別のアプリを使用して、ワークフロー全体に散在するすべての ToDo を管理できるでしょう。しかし、それは気をつけなければならないことがさらにひとつ増えただけです。

使用していたすべてのタスク マネージャー間でタスク リストを同期するシステムが必要でした。 Taskwarrior は気に入っていたので、他のサービスに接続するだけで済みました。

幸運なことに、私は Syncall のことを知りました。これは、Taskwarrior タスクを Google アプリや他のタスク ソフトウェアに接続するためのゲートウェイです。一見すると、このドキュメントは意味不明なもののように感じられました。段階的に作業を進めた結果、最終的にタスクを Google Keep と同期し、カレンダーのイベントを同期することができました。

GoogleカレンダーとKeepをTaskwarriorと同期する

端末の快適さとのギャップを埋める

Linux に pipx 経由で syncall をインストールします。

私が最初に試したのは、Taskwarrior を Google カレンダーと同期することでした。 Google Cloud プロジェクトの作成、Google Calendar API の有効化、OAuth クライアントのセットアップなどを行う必要がありました。問題は、syncall のドキュメントだけを読むと、多くの手順で行き詰まってしまうということです。私が行った完全な手順は次のとおりです。

  1. を使用して、pipx で syncall をインストールします。 グーグル そして 二つ 追加物: pipx install "syncall(google,tw)"。

  2. syncall がパッケージの欠落について文句を言う場合は、次を実行します。 pipx inject synccall “setuptools. 新しい setuptools は必要なモジュールを削除しました。

  3. Google Cloud コンソールでプロジェクトを作成し、 カレンダーAPI。

  4. OAuth同意画面を設定します。下 Google 認証プラットフォーム -> 対象者、自分の Google アカウントをテスト ユーザーとして追加します。

  5. を作成します OAuthクライアントID タイプの デスクトップアプリをクリックして、その JSON ファイルをダウンロードします。

  6. 同期コマンドを実行します –google-secret そのファイルを指します。サインインリンクが出力されます。それを開いてアクセスを承認すると、最初の同期が開始されます。

でタスクを追加しました 思い出させて タグと締め切り時間は午後 3 時です。それから私は走った tw_gcal_sync -c “TW リマインダー” -t rememberme –google-secret ~/client_secret.json ターミナル内で。の client_secret.json ファイルは、Google Cloud プロジェクトからダウンロードした JSON ファイルです。

それからカレンダーに行くと、確かにイベントが作成されていました。私のタスクもそこに表示されました。

Taskwarrior のタスクが Google カレンダーに表示されます。

ここで、注意点の 1 つは、これは自動同期ではないということです。毎回 sync コマンドを実行しない限り、Taskwarrior タスクはカレンダーに表示されません。作業を少し簡単にするために、Linux ターミナルでエイリアスを使用できます。

Google Keepも可能ですが、一方向のみです

Syncall の Keep sync は 1 つのチェックリスト ノートで機能します。 チェックボックスを表示する オンになりました。各項目のテキスト、チェック状態、削除を同期します。このプロセスを進めていくうちに、多くの人が気に入らないかもしれないいくつかの障害を発見しました。このプロセスは面倒なだけでなく、gkeepapi と呼ばれるサードパーティの非公式ライブラリに依存します。

そのため、認証のために Google のユーザー名とパスワードを入力する必要があります。 gpsoauth のドキュメントに従いました。プロセスは次のとおりです。

1. syncall をインストールします。 キープする そして 二つ エキストラ。 2 行目は、setuptools の変更によるモジュール不足エラーを修正します。

pipx install "syncall(gkeep,tw)"
pipx inject syncall "setuptools

2. Google EmbeddedSetup ページを開いてサインインし、[同意する]をクリックします。ページの読み込みが遅い可能性があるため、無視してください。

https://accounts.google.com/EmbeddedSetup

3. ブラウザから oauth_token Cookie の値をコピーします。 Chrome で F12 を押して開きます 応用 -> クッキー。 Firefox で、[ストレージ]>[Cookie]を開きます。を選択してください accounts.google.com エントリ。値は次で始まります oauth2_4/。

4. その Cookie をマスター トークンと交換します。 gpsoauth。最初の試行が返されました BadAuthentication、しかし、新鮮なクッキーはうまくいきました。次に設定します GKEEP_USERNAME、 GKEEP_TOKEN、 そして GKEEP_PASSWD 同期元のターミナルの環境変数として。パスワードには何らかの値が必要です。

5. syncall 環境から Python を開始します。

~/.local/share/pipx/venvs/syncall/bin/python

6. 次に、以下の行を貼り付けます。最後の引数には、任意の 16 文字の 16 進文字列を指定できます。成功した場合は、次で始まるトークンが出力されます。 aas_et/。

import gpsoauth
r = gpsoauth.exchange_token("[email protected]", "PASTE_OAUTH_TOKEN_HERE", "0123456789abcdef")
print(r.get("Token"), r.get("Error"))

次のコマンドで Python を終了します exit()。次に、同期元と同じ端末で変数をエクスポートします。

export GKEEP_USERNAME="[email protected]"
export GKEEP_TOKEN="PASTE_MASTER_TOKEN_HERE"
export GKEEP_PASSWD="placeholder"

7. 走る tw_gkeep_sync -t keeptest -k “TW キープテスト”。 syncall のコードによると、syncall は環境変数またはパス パスワード マネージャーから資格情報を読み取ります。試してみるには、タグを使用してタスクを追加し、同期します。

task add "Item from terminal" +keeptest
tw_gkeep_sync -t keeptest -k "TW Keep Test"

かなりの設定であることはわかっています。しかし、最終的にはうまくいきました。ターミナルで追加したタスクが Keep メモに表示されました。次に、完了のマークを付けて再度同期すると、Keep は完了として表示しました。

しかし、Keep で作成したアイテムは Taskwarrior に届きませんでした。同期で Taskwarrior 3.5.0 からの日付エラーが発生し、日付が欠落しています 合格 フォルダーが最後に 2 番目のエラーを引き起こしました。それは同期がすでに終了した後に行われました。つまり、Keep は私にとって一方向に働きました。

gkeepapi によると、マスター トークンは Google アカウントに完全にアクセスできるため、パスワードのように保護してください。

散らばっていた ToDo がついにターミナルに居場所を作りました

最終的に機能させるまでには、多くの時間と調査を要し、ブラウザと端末の間を行ったり来たりしました。しかし、それがついに報われました。最小限のターミナルからタスクとイベントを管理できるようになり、1 つの同期コマンドで他のすべてを処理できるようになりました。確かに、双方向同期は私にとっては機能しませんでした。ただし、Taskwarrior は、私がすべての Linux システムにインストールする CLI ツールのリストに加わりました。

関連情報は以下のリンクからご確認いただけます

公式情報はこちら

関連記事

前の投稿
この秋に帰ってくる 5 つの大きなショー – リング オブ パワー、ブラック ダヴス、デクスターなど
次の投稿
最高の Linux ターミナルはダウンロードできるものではなく、このように自分で構築する必要があります