主題 達人專欄

用Syncthing跨系統跨軟體同步行事曆

Jinny | 2020-11-19 18:00:03

  最近在研究,如何用Syncthing/Nextcloud將單機非網路服務的行事曆軟體(Rainlendar、Osmo、Etar/內建行事曆),在三種不同的作業系統平台(Windows、Linux、Android)皆達成更新同步。

  棄用Google Calendar的陣痛期意外地長,但就「資安隱私議題」和「不因被單一服務綁架,而廢棄淘汰仍可使用的機器」來說,這陣痛期的適應和嘗試新方法又是必要的。

  但是要如何找到Google Calendar的替代品?這是個讓人相當頭大的問題。在經過長久的搜尋和嘗試之後,漸漸地有一個奇特的想法架構在腦中成型。

  這篇文章僅專注講述大概念,軟體操作細節則不會多加著墨。

架構



  兩台桌電,公司用的是Windows 7;家裡使用的是Windows 10和Puppy Linux Xenialpup雙系統;手機使用的是Android 4.4.4 Kikat;另外有一台筆電是用Windows XP,無網路。

  兩台電腦(先不計斷網的筆電)、一隻手機,系統不一樣,使用的軟體也不一樣,同樣也能同步更新行事曆。
  簡單來說架構是這樣:
  1. 桌電Windows 7使用Rainlendar。
  2. Syncthing同步ics檔案到手機、桌電Linux/Windows 10。
  1. 手機用Etar行事曆,匯入ics檔。
  2. Linux用Osmo,連結ics檔。
  3. 桌電Windows 10用Rainlendar,連結ics檔。
  4. 斷網筆電Windows XP用Rainlendar舊版,用傳統隨身碟/藍芽/手機MTF傳輸等方式手動更新檔案。

Syncthing


  首先最重要的是每台裝置都須安裝Syncthing,把之後預定存放ics檔案的資料夾在全裝置設為同步。

  Syncthing預設檔案覆蓋模式是直接覆蓋,為了避免不小心蓋錯檔,建議使用簡單版本控制,在檔案內容有衝突的當下,舊檔會另存一個版本當備份。

行事曆軟體


  個人使用的行事曆軟體如下:

Windows桌面行事曆Rainlendar

Linux桌面行事曆Osmo

手機行事曆Etar


電腦


  Rainlendar是相當老牌的桌面行事曆軟體,至少在十年前,有段時間我非常喜歡使用這套軟體,直到Google Calendar崛起後逐漸轉移,才停止使用。現在回頭翻遍各種桌面行事曆軟體,剩下他還屹立不搖,這時才真正體會到他的美好。

  Osmo是我使用的Puppy Linux版本內建的行事曆,畫面簡潔乾淨,操作簡單。雖然Rainlendar也是有linux版本,但是就我的linux顯示會有點問題,所以維持使用Osmo。

  Osmo跟Rainlendar的操作邏輯基本上是一樣的,分成Event事件和Task代辦事項。Osmo可以匯入ics,不過不太能更改匯入的事件Event內容,要改就是直接用文字編輯器改ics檔,但至少同步是沒什麼問題。

手機


  這邊手機端除卻行事曆,所需安裝的軟體列表:

  • Syncthing:同步用。
  • Offline Calendar:讓你可以在local本機增加行事曆分類,還可以用顏色區分。
  • Calendar Import-Export:在local本機用ICS檔匯入/匯出行事曆的app。
  • ICSx5:可訂閱網路上公開的行事曆。

  雖然我個人用的是Etar行事曆,但是依照這個同步方式,內建的手機行事曆軟體也一樣可以用。

  嚴格來說手機沒有完全同步,因為我用的是純Local本機端,需要一些額外軟體像是DAVx5或ICSx5,以及Calendar Import/Expor匯入icst,不然就是要動手執行行事曆事件匯入,但至少是比以前得一則一則輸入貼上方便多了。

  若要達到手機也同步行事曆,大致上有兩種方式:
  1. Nextcloud搭配DAVx5,這也是網路上大部分建議的方式。但這一樣有個需要匯入行事曆的動作,只是差別在於這次是電腦端需要匯入檔案至Nextcloud的行事曆,這也變成往後所有行事曆都要在Nextcloud上更新,所以我沒採用這種方式。
  2. 用Nextcloud跟ICSx5訂閱解決手機的行事曆需手動匯入的問題,可以即時更新。只是一樣要上傳到Nextcloud的網路空間,而且只能單向從電腦更動內容。所以決定只有工作行事曆和學習行事曆採用Nextcloud同步,其他私人如雜事約會類的依舊維持手動匯入。

  Nextcloud可以只裝在其中一台桌電,把有ics檔案的資料夾設為同步資料夾即可,也就是該資料夾同時接受Syncthing和Nextcloud的同步。手機不需要安裝Nextcloud。

其他技巧


  1. 使用emoji可以配合子彈筆記術的習慣,不限紙本或電腦平台的快速分類和連結。
  2. 在電腦上安裝Segoe UI Symbol這個字體,也更改軟體顯示字型,就能順利在電腦上顯示emoji了。

結語


  為什麼要弄得這麼麻煩,有什麼好處呢?理由和優點有下列幾項:
  1. 每一款都可以離線使用,除了同步功能外,皆不必連線網路。
  2. 自己的行事曆自己管,可依自己需求決定是要同步或者純粹放本機端,從行事曆到單一事件都可以做個別的同步微調,不用完全放上網路,大大提升隱密性。
  3. 不會被單一軟體服務綁死,基本上只要是支援連結ics檔案的行事曆軟體,都可以用這種方式同步更新。
  4. 對於舊系統和跨系統的兼容性極高,不耗效能。最低可相容至Windows 7(因Syncthing沒有XP版本,XP要用傳統方式例如隨身碟或藍芽傳輸文件來更新)、Android 4。

  現行實驗的行事曆同步架構大概是這個模樣。雖然不是很完善,有些仍然是單向通道,但至少還算符合我自己的使用習慣。如果各位往後有類似的使用需求,可以參考這個同步模式看看。


延伸閱讀

107 巴幣: 8

相關創作

更多創作