
最近,我開始嘗試使用命令列實用程序,並將注意力從圖形使用者介面 (GUI) 轉移到基於終端的應用程式。這段旅程始於 Yazi 的發現,它是一款終端檔案管理器,大大提高了我的工作流程效率。受此啟發,我決定用 Calcurse(一款專為終端設計的文字日曆應用程式)取代傳統的Google日曆。雖然我的過渡並非完美無缺,但它在許多方面都超出了我的預期。
理解 Calcurse
Calcurse是一款開源命令列日曆和日程安排工具,可讓使用者直接在終端環境中管理事件、約會和任務。其使用者介面採用三窗格版面配置:左側顯示約會,右上角顯示月曆,右下角顯示待辦事項清單。此佈局完全透過鍵盤快速鍵操作,提高了效率。
Calcurse 將所有資料儲存在純文字檔案中,並具備多項實用功能。使用者可以管理重複約會、標記全天事件,以及匯入或匯出標準 iCalendar (ICS) 格式的資料。此外,還可以將筆記附件新增至事件中,並設定自訂提醒,或在儲存或載入資料時透過「鉤子」執行腳本,從而實現日曆的版本控制。
如何設定和使用 Calcurse
Calcurse 的入門非常簡單。大多數 Linux 發行版的套件管理器中都包含它。例如,在 Debian 或 Ubuntu 上,你可以透過執行以下命令來安裝它:
sudo apt install calcurse
如果您使用的是 Mac,安裝也很簡單,可以透過 Homebrew 使用以下命令:
brew install calcurse

calcurse
安裝完成後,你可以在終端機中輸入以下命令來啟動 Calcurse 。第一次執行會自動建立一個名為 “~/.calcurse/” 的目錄,所有資料檔案都儲存在該目錄中。
啟動後,您將看到三窗格使用者介面。使用Tab鍵在三個部分之間導航,並使用箭頭鍵或h/ j/ k/l鍵進行窗格內導航,類似於 Vim 命令。螢幕幫助選單顯示所有可用的命令以供參考。

若要在 Calcurse 中新增事件,只需將遊標放在「預約」窗格中,然後按下a。系統將提示您輸入開始和結束時間;如果兩者都留空,則該事件將建立為全天預約。接下來,您可以新增描述,例如「團隊會議」或「牙科預約」。如果事件重複發生,您可以將重複頻率設定為每日、每週或每月。您可以設定自訂提醒,以在 Calcurse 中觸發通知或發出外部命令,例如發送電子郵件或桌面警報。

刪除事件同樣直觀。導航至所需的條目並按下d。 Calcurse 會在刪除前要求確認。如果您要處理重複發生的事件,您可以決定是僅刪除該事件還是刪除整個系列。

編輯條目遵循類似的流程:選擇要變更的項目並按下e。對於約會,您可以修改時間、描述、重複週期或提醒。對於任務,您可以更新文字或優先順序。將欄位留空將保留其目前值,以便進行簡單的調整,從而快速且有效率地完成操作。確認更新後,變更將立即生效,無需刪除並重新建立條目。

由於 Calcurse 將所有事件和任務儲存在純文字檔案中,因此備份或將這些檔案置於版本控制之下非常簡單。使用者還可以透過「設定」選單或直接編輯設定檔來個人化設定配色方案、按鍵綁定和通知設定等方面。
此外,Calcurse 透過calcurse-caldav腳本引入了實驗性的 CalDAV 同步模式。該功能允許使用 OAuth2 憑證與 Google 日曆等線上服務集成,但設定該功能需要建立 Google API 專案並安裝補充的 Python 庫。
Calcurse 與 Google 日曆的比較
從 Google 日曆過渡到 Calcurse 需要權衡一些因素,但它也帶來了意想不到的好處。 Google 日曆擁有豐富的功能,包括顏色編碼事件、拖放功能、地圖整合以及多種檢視選項,例如日程、週和月佈局。

相比之下,Calcurse 是基於文字的,非常輕量。它幾乎可以立即在終端機中啟動,佔用極少的系統資源,並且完全透過鍵盤命令進行操作。雖然它的視覺佈局僅限於三個窗格和一個狀態欄,但 Calcurse 專注於速度和簡潔性,為日常日程安排提供了一種高效的方法。
Google 日曆在協作功能方面勝過 Calcurse,包括即時協作、訪客邀請、文件附件、Gmail 整合和公共假日日曆。然而,Calcurse 巧妙地涵蓋了有效安排所需的基本功能——允許簡單的文字約會、重複事件和可啟動命令或電子郵件的可自訂提醒,以及 iCalendar 匯入和匯出選項。

Calcurse 的優勢之一在於其自訂功能;幾乎所有方面都可以編寫腳本或自動化,從按鍵綁定到用於在儲存或載入時執行 Shell 命令的鉤子。這有利於與其他工具輕鬆集成,並允許用戶使用外部腳本控制日曆的版本或將其與 CalDAV 伺服器同步。

雖然 Calcurse 預設將日曆資訊儲存在本地,但可以透過 CalDAV 腳本實現同步,該腳本在「~/.calcurse/caldav/sync.db」維護一個資料庫。該機制會追蹤事件狀態,將本機條目與線上條目進行比較,從 Google 日曆下載新項目,上傳本地更改,並刪除已刪除的事件。
我懷念的 Google 日曆功能
任何改變都有其弊端,放棄Google日曆也凸顯了我真正懷念的一些功能。最大的缺點是行動通知和同步;使用Google日曆,我可以在手機上及時收到提醒,並且可以在任何地方存取我的日曆。而 Calcurse 缺乏這項功能,除非我設定了同步選項,否則需要在筆記型電腦上手動檢查。
另一個顯著的缺點是發送邀請和共享日曆的功能。谷歌日曆可以輕鬆邀請同事或家人參加活動並分享整個日曆。而 Calcurse 目前沒有內建的分享功能;為了通知某人某個活動,我必須手動複製資訊。我還很欣賞谷歌與 Gmail 和地圖的無縫集成,這提升了可用性。
雖然 Calcurse 有其優點,但Google日曆與許多工作流程的深度整合使其很難完全放棄。對於那些仍希望保留部分Google日曆功能的用戶,可以考慮使用高效的 Chrome 擴充功能來增強其功能。此外,探索優化Google日曆以適應商業用途的功能也可以帶來額外的價值。
發佈留言