screenshot

簡介

我一開始想找一款只用鍵盤就可以操作的行事曆、讓我能夠更快更流暢的操作,如果能與 google 日曆同步更好(方便在手機上使用),後來我找到了 calcure。

calcure 是一個運行在終端上的文字使用者界面(TUI)的行事曆。特色是可以完全透過鍵盤操作、使用與 vim 類似的快捷鍵、在終端中有一個快速、簡潔、美觀的行事曆。

我目前的行事曆是使用 calcure 搭配 Google 日曆使用,沒有把 Google 日曆的資料全部搬過去,因為我覺得它們有各自的優缺點。像 calcure 更適合在終端搭配 Neovim 等其他工具操作、不需要打開瀏覽器,但是在跨裝置同步、發通知、分享給其他人這些功能上就比較吃力。

我接下來會介紹一下 calcure 的功能有哪些,最後再詳細分析一下優缺點、分享我目前怎麼使用行事曆。

行事曆

calcure 的預設版面可以分成左邊的行事曆和右邊的任務兩個部分,行事曆可以記錄特定日期的事件和任務、任務則是一個清單。

在 calcure 按 ? 查看如何使用按鍵和不同模式,按下兩次 Ctrl+C 取消操作。

行事曆功能

  • 基本功能如新增、刪除任務、改優先度、標記完成等,也可以新增重複的任務。
  • 顯示目前天氣
  • 隱私模式

純鍵盤操作

calcure 最大的優點就是可以只使用鍵盤新增任務,我們與 Google 日曆比較一下如何新增每週三 10:00 的課程

  • Google 日曆
    • 滑鼠點星期三 10:00 的格子
    • 輸入課程名稱
    • 滑鼠點擊時間
    • 滑鼠點選每週三重複
    • 滑鼠點擊儲存
  • calcure
    • 按下 A 新增重複任務
    • 輸入開始日期
    • 輸入 10:00 課程名稱
    • 輸入重複次數
    • 輸入如何重複(w,每週)

有一個特殊的的地方是,calcure 的行程不會記錄時間,我的方法是把時間放在任務名稱裡面。因此會有月視圖(monthly view)顯示困難的問題。因為寬度不夠,如果同時寫了開始和結束時間,就沒有空間顯示剩下的名稱了。像是下圖的任務就會被截斷,不能顯示完整的 task name

calcure both time

日視圖

為了解決任務名稱可能會太長放不下的問題,除了寫短一點的名稱以外,也可以按下 v 切換成使用日視圖(daily view),就可以有完整的空間查看完整的任務名。當天太多的任務也不會因為在月視圖因為空間不夠而被省略掉,會完整顯示。

calcure daily view

隱私模式

calcure 的行事曆和任務還有一個功能叫做隱私模式(privacy mode),可以隱藏自己的任務名稱,可以在 calcure 隱藏所有活動,可以在分享畫面時不被看到行程,可以隱藏全部或是幾個特定的任務。

calcure privacy mode

Google 日曆同步

我有嘗試將 calcure 的日曆與 Google 日曆同步,但是我後來沒有使用,原因有三:

  1. 同步到 calcure 的 Google 日曆只能讀,不能編輯
  2. 每次打開 calcure 都會重新向 Google 日曆發出網路請求,讓載入很慢
  3. 從 Google 日曆同步下來的重複任務不會重複(只會有第一個)

因此,我目前分開使用兩者,calcure 記錄所有行程,方便從 neovim 切過去查看。Google 日曆則只放固定的課表,還有我想被提醒的活動,像火車時間。

任務

我個人只有使用日曆功能,沒有用 calcure 的任務,因為我使用 neovim 寫 markdown 檔案來管理我的任務和筆記,但是 calcure 的任務功能意外的齊全。功能包含:

  • 新增任務、子任務、重命名
  • 修改任務優先級
  • 修改任務完成狀態、刪除任務
  • 隱藏任務名稱
  • 設定任務 deadline
  • 為任務設定計時器

手機使用

可以在 termux 上使用,但使用 syncthing 同步有點麻煩,如果要把同步的資料直接掛在 termux 上需要 root。所以我選擇掛在手機的儲存上,再從 termux 存取,但是遇到了一些同步的問題,於是放棄,也許之後會再弄好。

雖然手機上不容易同步,但是可以配合手機螢幕大小縮放是 README 上面的賣點之一

設定

我會分享一些我覺得重要的設定,可以自己到設定檔替換值

  • 設定檔預設在 ~/.config/calcure/config.ini,資料夾也包含任務資料的檔案
; 是否要從聯絡人檔案匯入生日,改成 No 可以避免跳錯誤訊息
birthdays_from_abook = No
; 用背景顏色讓今天的日期更顯眼
minimal_today_indicator = No
; 移除掉,只使用背景顏色強調今天的日期
today_icon =
; 顯示臺灣的假日
holiday_country = TW
;是否預設開啟隱私模式
privacy_mode = No
; 不顯示右半邊的任務
split_screen = No
; 替換 gym 任務的 icon,讓行事曆邊緣正常顯示
gym = 󱅝

安裝

我原本用 yay 安裝,但是依賴的套件(holidays)和其他套件相撞了,所以改成使用 pipx

  • pipx: pipx install calcure
  • yay(Arch): yay -S calcure

總結

  • (只)適合重度終端使用者
  • 符合我的用途,一個簡單好用的終端行事曆
  • 功能簡潔、很多設定可以調整,但是缺少訂閱、分享等功能
  • 跨裝置同步到手機比較困難

優點

  • 快速的鍵盤導向操作
  • 在終端,方便與其他工具整合
  • 大量可調整設定
  • 簡潔的功能和界面
  • 隱私模式

缺點

  • 與其他日曆同步體驗不佳
  • 難以在手機上同步
  • 缺乏提醒功能
  • 沒有多個日曆,只有高中低三個優先級
  • 不能分享日曆給其他人
  • 不能訂閱其他日曆

參考