在 Linux 終端管理你的日歷
我是一個 ??KDE 用戶???,多年來我一直在 Plasma 桌面上進行著看似無盡的探索。如果你在公開場合問我,我可能會聲稱自己對我每天使用的桌面了如指掌。但實際上,我只是剛剛觸及到表面而已。似乎每天我都能學到一個新的 KDE 技巧,讓我的生活變得更輕松或更有趣,我最新的發現是 ??konsolekalendar?
? 命令,它讓你從終端查看和管理 iCal 日歷。
Akonadi
Akonadi 項目是一個底層 KDE 框架,幫助 Plasma
桌面跟蹤所有的個人信息管理器(PIM)數據。它主要是為開發者服務的,包括很多可以讓程序員用來創建應用的庫,通過這些程序你可以訪問你的聯系人、筆記、電子郵件、日歷等等。Akonadi
中包括一些終端命令,比如 ??akonadictl?
? 可以啟動和停止 Akonadi 服務,但它們大多是為了排除故障。然而,??konsolekalendar?
? 是一個面向用戶的命令,可以讓你完全訪問 Kontact 套件的所有數據,包括 KMail、Notes 和日歷。
如果你正在運行 KDE 的 Plasma 桌面,那么你已經安裝了 Kontact 套件。
Kontact UI
你也安裝好了 Akonadi 和它的工具,所以你所需要的基于終端的日歷完成了!
從終端查看你的日歷
由于 ??NextCloud?? 和 ??Radicale?? 等項目的存在,你可以托管自己的 iCal 日歷服務,或者你可能已經在流行的供應商(例如,Google)那里擁有一個 iCal 賬戶。當你使用 Kontact 管理日歷時,你訂閱了一個日歷對象(用 Akonadi 的術語說是一個“集合collection”)。當你對你的本地日歷進行更新時,這些變化會被送回你的 iCal 服務器以同步你的日歷服務器和客戶端。
無論你是否使用過 Kontact 的日歷功能,你在 Kontact 中都有一些默認的日歷對象。你有一個叫個人日歷和生日和紀念日的日歷對象。
以下是如何顯示當天的日歷(默認為個人日歷):
$ konsolekalendar
Date: Saturday, January 15, 2022
10:00 AM - 11:00 AM
Summary: Covid booster shot
UID: 8d8a1e38-c88c-4d84-99e5-23...
----------------------------------
Date: Saturday, January 15, 2022
12:00 PM - 01:00 PM
Summary: Lunch
UID: 7aa89a...
----------------------------------
Date: Saturday, January 15, 2022
01:00 PM - 04:45 PM
Summary: Afternoon coding
UID: 9cde38b...
----------------------------------
Date: Saturday, January 15, 2022
06:00 PM - 10:00 PM
Summary: Planescape game
UID: c73f7e98-722f-48a2-8006-66...
----------------------------------
添加一個事件
要查看你訂閱的所有日歷,請使用 ??--list-calendars?
? 選項:
$ konsolekalendar --list-calendars
----------------------------------
3 - (Read only) Birthdays & Anniversaries
11 - Personal Calendar
60 - (Read only) Open Invitations
61 - (Read only) Declined Invitations
66 - Dnd
67 - Work
68 - Museum
左邊的數字是日歷的 ID。要添加一個事件到一個特定的日歷,請使用 ??--calendar?
? 選項,然后是日歷 ID:
$ konsolekalendar --add --calendar 66 \
--date 2022-01-16 \
--time 20:00 --end-time 23:59 \
--summary "Another game" \
--description "Remember to bring dice" \
Success: "Another game" inserted
刪除一個事件
你也可以刪除事件。每個事件都有一個唯一的 ID(UID),在每個事件列表的底部提供:
$ konsolekalendar --list
Date: Saturday, January 15, 2022
06:00 PM - 10:00 PM
Summary: Planescape game
UID: c73f7e98-722f-48a2-8006-66aa8ddcf789
要刪除一個事件,請使用 ??--delete?
? 選項,同時使用 ??--uid?
? 選項:
$ konsolekalendar --delete \
--uid c73f7e98-722f-48a2-8006-66aa8ddcf789
終端中的 Akonadi
你用 ??konsolekalendar?
? 所做的一切都會立即在 Akonadi 中執行,并在 Kontact 中得到同樣快的反映。使用一個并不意味著你必須放棄另一個。由于它們共享 Akonadi 后端,兩者查看和編輯相同的數據。??konsolekalendar?
? 命令是一項正在進行的工作。未來的計劃包括與 Kontact 的筆記和日記部分的整合,而且還有很多比本文所涉及的更多的選項。如果你在使用 KDE 桌面,試試 ??konsolekalendar?
?,體驗一下終端的 PIM!