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

Elizabeth avatar
By Elizabeth
at 2019-09-05T21:29

Table of Contents

圖文好讀版: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。

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


--
Tags: Android

All Comments

Dora avatar
By Dora
at 2019-09-06T08:05
Syncthing 好東西給推
Ivy avatar
By Ivy
at 2019-09-10T00:08
我是用termux 跟 crontab 跟 linux 桌電 同步

Google鬧鐘(循環)如何只關閉下次

Sandy avatar
By Sandy
at 2019-09-05T20:26
例如倒垃圾 每個禮拜都是重複那幾天 現在時間是禮拜四晚上8:30 今天晚上9:00有週期循環鬧鐘 假設我只希望等會這次的鬧鐘不要提醒 該怎麼操作? 以Google出的鬧鐘APP來說 謝謝 - ...

如何使用 Samsung notes 做數位筆記

Necoo avatar
By Necoo
at 2019-09-05T09:38
各位高手好, 第一次發問,若有不適當之處,還請告知小弟修改。 小弟日前計劃把筆記放到 三星平板 tab s4 上。 它內建一套叫 Samsung notes 的軟體, 支援手寫繪圖 和打字, 乍看之下頗符合需求, 但是真用起來,挺不順手的。 尤其是: 1. 它的排版是圖文分開的 2. 不知存檔要怎麼轉成 ...

誰說app設計很簡單!??

Mary avatar
By Mary
at 2019-09-05T08:20
衝著朋友和大家說設計app很簡單,我就馬上衝去圖書館,買有相關app設計的書,結果打開 一看,好像在讀數學課本… 當下覺的我的媽壓 數學從小到大都是我弱項,要我讀完整本跟本就不可能是吧 看來app設計還是適合理科生來作的事 - ...

每日油價 - 提供當日油價與次週油價預測

Oliver avatar
By Oliver
at 2019-09-05T00:55
軟體連結:https://tinyurl.com/y2j2dvq8 適用韌體:4.1或以上 購買費用:免費(含廣告) 程式簡介: 每日油價App是一款, 針對當日油價與次週油價預測的工具, 可對當下油價決定加油與否。 提供: 1.每日中國石油與台塑石油油價 2.預測下週油價 3.節省金錢 希望此款 ...

非ASUS手機如何使用Asus zenui?

Dora avatar
By Dora
at 2019-09-04T20:26
如題 最近朋友的Zenfone 6已入手 稍微把玩了一下 覺得簡潔快速 所以想請問一下 我的手機是hTC U11,想使用Asus zenui 如果不刷機,有機會使用嗎? ----- Sent from JPTT on my HTC_U-3u. - ...