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

作者: pauillactw (秧得)   2019-09-05 21:29:19
圖文好讀版:http://bit.ly/2kjWRiW
最近在研究,如何用Syncthing將單機非網路服務的行事曆軟體
(Rainlendar、Osmo、Etar/內建行事曆),
在三種不同的作業系統平台(Windows、Linux、Android)皆達成更新同步。
棄用Google Calendar的陣痛期意外地長,
但就「不因被單一服務綁架,而廢棄淘汰仍可使用的機器」來說,
這陣痛期的適應和嘗試新方法又是必要的。
但是要如何找到Google Calendar的替代品?
這是個讓人相當頭大的問題。
在經過長久的搜尋和嘗試之後,漸漸地有一個奇特的想法架構在腦中成型。
這篇文章僅專注講述大概念,軟體操作細節則不會多加著墨。
## 架構
https://images.plurk.com/5JfZnLmtD0sFpzby5W60NY.png
兩台桌電,公司用的是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
https://syncthing.net/images/screenshot-720.jpg
首先最重要的是每台裝置都須安裝Syncthing,
把之後預定存放ics檔案的資料夾在全裝置設為同步。
Syncthing預設檔案覆蓋模式是直接覆蓋,
為了避免不小心蓋錯檔,建議使用簡單版本控制,
在檔案內容有衝突的當下,舊檔會另存一個版本當備份。
## 行事曆軟體
個人使用的行事曆軟體如下:
Windows桌面行事曆Rainlendar
https://images.plurk.com/7Cea00PqMgEnL7O8JgKpga.png
https://images.plurk.com/3GgsEV9oNUxMR9JFh7Y3CF.png
Linux桌面行事曆Osmo
https://images.plurk.com/2VPdMLEAvMrTqm2D66gOHe.png
手機行事曆Etar
https://images.plurk.com/6HWovRbzRTd0TOwu8aWQU7.png
https://images.plurk.com/1IlHNjhBUPR5UuXf692w42.png
### 電腦
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匯入ics,
不然就是要動手執行行事曆事件匯入,但至少是比以前得一則一則輸入貼上方便多了。
若要達到手機也同步行事曆,大致上有兩種方式:
1. Nextcloud搭配DAVx5,這也是網路上大部分建議的方式。
但這一樣有個需要匯入行事曆的動作,
只是差別在於這次是電腦端需要匯入檔案至Nextcloud的行事曆,
這也變成往後所有行事曆都要在Nextcloud上更新,所以我沒採用這種方式。
2. 用Nextcloud跟ICSx5訂閱解決手機的行事曆需手動匯入的問題,可以即時更新。
只是一樣要上傳到Nextcloud的網路空間,而且只能單向從電腦更動內容。
所以決定只有工作行事曆和學習行事曆採用Nextcloud同步,
其他私人如雜事約會類的依舊維持手動匯入。
Nextcloud可以只裝在其中一台桌電,把有ics檔案的資料夾設為同步資料夾即可,
也就是該資料夾同時接受Syncthing和Nextcloud的同步。
手機不需要安裝Nextcloud。
### 其他技巧
使用emoji可以配合子彈筆記術的習慣,不限紙本或電腦平台的快速分類和連結。
在電腦上安裝Segoe UI Symbol這個字體,也更改軟體顯示字型,
就能順利在電腦上顯示emoji了。
## 結語
為什麼要弄得這麼麻煩,有什麼好處呢?
理由和優點有下列幾項:
1. 每一款都可以離線使用,除了同步功能外,皆不必連線網路。
2. 自己的行事曆自己管,可依自己需求決定是要同步或者純粹放本機端,
從行事曆到單一事件都可以做個別的同步微調,不用完全放上網路,大大提升隱密性。
3. 不會被單一軟體服務綁死,基本上只要是支援連結ics檔案的行事曆軟體,
都可以用這種方式同步更新。
4. 對於舊系統和跨系統的兼容性極高,不耗效能。最低可相容至Windows 7
(因Syncthing沒有XP版本,XP要用傳統方式例如隨身碟或藍芽傳輸文件來更新)、
Android 4。
現行實驗的行事曆同步架構大概是這個模樣。
雖然不是很完善,有些仍然是單向通道,但至少還算符合我自己的使用習慣。
如果各位往後有類似的使用需求,可以參考這個同步模式看看。
作者: bobby4755 (蒼鬱之夜)   2019-09-05 21:48:00
Syncthing 好東西給推
作者: sunnya (鴨鴨)   2019-09-22 15:02:00
我是用termux 跟 crontab 跟 linux 桌電 同步

Links booklink

Contact Us: admin [ a t ] ucptt.com