DUICUO

連絡先管理のための3つのオープンソースツール

[[313696]]

ローカルで同期すれば、連絡先に素早くアクセスできます。オープンソースで生産性を高める20の方法シリーズの第6回で、その方法を学びましょう。

昨年は19日間で19個の新しい生産性向上ツールをご紹介しました。今年は少しアプローチを変えて、既に使っているツールやまだ使っていないツールを活用して、新年に向けて生産性を高める環境を構築しましょう。

連絡先管理のためのオープンソースツール

このシリーズの以前の記事では、メールとカレンダーをローカルで同期する方法を説明しました。これでメールやカレンダーへのアクセスがスムーズになったかと思います。今回は、連絡先の同期について解説します。これにより、連絡先にメールやカレンダーの招待状を送信できるようになります。

現在、大量のメールアドレスを保有しています。これらのデータの管理は少し面倒です。Webベースのサービスもありますが、ローカルコピーほど高速ではありません。

数日前、カレンダー管理用のvdirsyncerについてお話しました。vdirsyncerも連絡先の処理にCardDAVプロトコルを使用しています。vdirsyncerは、ファイルシステムを使用してカレンダーを保存するだけでなく、 google_contactscarddavを介した連絡先の同期もサポートしていますが、 fileext設定が変更されるため、カレンダーファイルに連絡先を保存することはできません。

設定ファイルに設定セクションを追加し、Googleから連絡先をミラーリングしました。設定には追加の手順が必要です。Googleからのミラーリングが完了したら、設定は非常に簡単です。

  1. [ pair address_sync ]
  2. a = "googlecard"
  3. b = "localcard"
  4. collections = [ "from a" , "from b" ]
  5. conflict_resolution = "a wins"
  6. [ storage googlecard ]
  7. type = "google_contacts"
  8. token_file = "~/.vdirsyncer/google_token"
  9. client_id = "my_client_id"
  10. client_secret = "my_client_secret"
  11. [ storage localcard ]
  12. type = "filesystem"
  13. path = "~/.calendars/Addresses/"
  14. fileext = ".vcf"

現在、 vdirsyncer discoverを実行すると、Googleの連絡先が検出され、 vdirsyncer syncでローカルコンピュータにコピーされます。しかし、これもまた途中までしか進みません。今度は連絡先を表示して使用したいのですが、そのためにはハードドライブとブックが必要です。

ハード検索

なぜ2つのアプリケーションが必要なのでしょうか?それぞれに独自のユースケースがあり、この場合はアプリケーションが複数ある方が効果的だからです。Khardはアドレス管理に使用され、Khalがカレンダーエントリの管理に使用されるのと似ています。お使いのディストリビューションに古いバージョンが付属している場合は、 pipを使って最新バージョンをインストールする必要があるかもしれません。Khardをインストールしたら、KhardにはKhalのような分かりやすい設定ウィザードがないため、 ~/.config/khard/khard.confを作成する必要があります。私の設定は以下のとおりです。

  1. [ addressbooks ]
  2. [[ addresses ]]
  3. path = ~ /.calendars/ Addresses / default /
  4. [ general ]
  5. debug = no
  6. default_action = list
  7. editor = vim , - i , NONE
  8. merge_editor = vimdiff
  9. [ contact table ]
  10. display = first_name
  11. group_by_addressbook = no
  12. reverse = no
  13. show_nicknames = yes
  14. show_uids = no
  15. sort = last_name
  16. localize_dates = yes
  17. [ vcard ]
  18. preferred_version = 3.0
  19. search_in_source_files = yes
  20. skip_unparsable = no

これは、ソースアドレス帳(およびフレンドリ名)、表示内容、および連絡先エディタを定義します。`khard khard listを実行するとすべてのエントリが一覧表示され、 khard list <[email protected]>実行すると特定のエントリが検索されます。エントリを追加または編集するには、 addコマンドとeditコマンドを使用します。これらのコマンドは、同じ基本テンプレートを使用して設定されたエディタを開きます。唯一の違いは、 addコマンドのテンプレートが空になることです。

khardでの編集

abook では VCF ファイルのインポートとエクスポートが必要ですが、検索に便利な機能がいくつかあります。ファイルを abook 形式に変換するには、まず abook をインストールし、 ~/.abookというデフォルトディレクトリを作成します。次に、abook にすべてのファイルを解析させて~/.abook/addressesファイルに格納します。

  1. apt install abook
  2. ls ~ /.calendars/ Addresses / default /* | xargs cat | abook --convert --informat vcard --outformat abook > ~/.abook/addresses

これで、 abook実行すると、エントリの閲覧、検索、編集に非常に便利なUIが使えるようになります。これらを単一のファイルにエクスポートするのは少し面倒なので、私はほとんどの編集作業をkhardで行い、cronジョブでabookにインポートするようにしています。

abookはコマンドラインでも検索でき、メールクライアントとの統合に関する詳細なドキュメントも用意されています。例えば、 .config/alot/configファイルに情報を追加することで、abookを使ってNmuchのメールクライアントであるaltの連絡先を検索できるようになります。

  1. [ accounts ]
  2. [[ Personal ]]
  3. realname = Kevin Sonney
  4. address = kevin@sonney . com
  5. alias_regexp = kevin\+ .+ @sonney . com
  6. gpg_key = 7BB612C9
  7. sendmail_command = msmtp -- account = Personal - t
  8. # ~ expansion works
  9. sent_box = maildir : //~/Maildir/Sent
  10. draft_box = maildir : //~/Maildir/Drafts
  11. [[[ abook ]]]
  12. type = abook

こうすることで、メールやカレンダー内の連絡先をすぐに見つけることができます。