通過將聯絡人同步到本地從而更快訪問它。在我們的 20 個使用開源提升生產力的系列的第六篇文章中了解該如何做。-- Kevin Sonney(作者)
去年,我在 19 天裡給你介紹了 19 個新(對你而言)的生產力工具。今年,我換了一種方式:使用你在使用或者還沒使用的工具,構建一個使你可以在新一年更加高效的環境。
用於聯絡人管理的開源工具在本系列之前的文章中,我解釋了如何在本地同步你的 郵件 和 日曆 。希望這些加速了你訪問郵件和日曆。現在,我將討論聯絡人同步,你可以給他們傳送郵件和日曆邀請。
我目前收集了很多郵件地址。管理這些資料可能有點麻煩。有基於 Web 的服務,但它們不如本地副本快。
幾天前,我談到了用於管理日曆的 vdirsyncer 。vdirsyncer 還使用 CardDAV 協議處理聯絡人。vdirsyncer 除了可以使用檔案系統儲存日曆外,還支援通過 google_contacts 和 carddav 進行聯絡人同步,但 fileext 設定會被更改,因此你無法在日曆檔案中儲存聯絡人。
我在配置檔案添加了一塊配置,並從 Google 映象了我的聯絡人。設定它需要額外的步驟。從 Google 映象完成後,配置非常簡單:
[pair address_sync]a = "googlecard"b = "localcard"collections = ["from a", "from b"]conflict_resolution = "a wins"[storage googlecard]type = "google_contacts"token_file = "~/.vdirsyncer/google_token"client_id = "my_client_id"client_secret = "my_client_secret"[storage localcard]type = "filesystem"path = "~/.calendars/Addresses/"fileext = ".vcf"
現在,當我執行 vdirsyncer discover 時,它會找到我的 Google 聯絡人,並且 vdirsyncer sync 將它們複製到我的本地計算機。但同樣,這隻進行到一半。現在我想檢視和使用聯絡人。需要 khard 和 abook 。
為什麼選擇兩個應用?因為每個都有它自己的使用場景,在這裡,越多越好。khard 用於管理地址,類似於 khal 用於管理日曆條目。如果你的發行版附帶了舊版本,你可能需要通過 pip 安裝最新版本。安裝 khard 後,你需要建立 ~/.config/khard/khard.conf,因為 khard 沒有與 khal 那樣漂亮的配置嚮導。我的看起來像這樣:
[addressbooks][[addresses]]path = ~/.calendars/Addresses/default/[general]debug = nodefault_action = listeditor = vim, -i, NONEmerge_editor = vimdiff[contact table]display = first_namegroup_by_addressbook = noreverse = noshow_nicknames = yesshow_uids = nosort = last_namelocalize_dates = yes[vcard]preferred_version = 3.0search_in_source_files = yesskip_unparsable = no
這會定義源通訊簿(並給它一個友好的名稱)、顯示內容和聯絡人編輯程式。執行 khard list 將列出所有條目,khard list <[email protected]> 可以搜尋特定條目。如果要新增或編輯條目,add 和 edit 命令將使用相同的基本模板開啟配置的編輯器,唯一的區別是 add 命令的模板將為空。
abook 需要你匯入和匯出 VCF 檔案,但它為查詢提供了一些不錯的功能。要將檔案轉換為 abook 格式,請先安裝 abook 並建立 ~/.abook 預設目錄。然後讓 abook 解析所有檔案,並將它們放入 ~/.abook/addresses 檔案中:
apt install abookls ~/.calendars/Addresses/default/* | xargs cat | abook --convert --informat vcard --outformat abook > ~/.abook/addresses
現在執行 abook,你將有一個非常漂亮的 UI 來瀏覽、搜尋和編輯條目。將它們匯出到單個檔案有點痛苦,所以我用 khard 進行大部分編輯,並有一個 cron 任務將它們匯入到 abook 中。
abook 還可在命令列中搜索,並有大量有關將其與郵件客戶端整合的文件。例如,你可以在 .config/alot/config 檔案中新增一些資訊,從而在 Nmuch 的郵件客戶端 alot 中使用 abook 查詢聯絡人:
[accounts][[Personal]] realname = Kevin Sonney address = [email protected] alias_regexp = kevin\\[email protected] gpg_key = 7BB612C9 sendmail_command = msmtp --account=Personal -t # ~ expansion works sent_box = maildir://~/Maildir/Sent draft_box = maildir://~/Maildir/Drafts[[[abook]]]type = abook
這樣你就可以在郵件和日曆中快速查詢聯絡人了!
via: https://opensource.com/article/20/1/sync-contacts-locally