在 Linux 終端管理你的日歷
我是一個(gè) ??KDE 用戶???,多年來我一直在 Plasma 桌面上進(jìn)行著看似無盡的探索。如果你在公開場(chǎng)合問我,我可能會(huì)聲稱自己對(duì)我每天使用的桌面了如指掌。但實(shí)際上,我只是剛剛觸及到表面而已。似乎每天我都能學(xué)到一個(gè)新的 KDE 技巧,讓我的生活變得更輕松或更有趣,我最新的發(fā)現(xiàn)是 ??konsolekalendar?
? 命令,它讓你從終端查看和管理 iCal 日歷。
Akonadi
Akonadi 項(xiàng)目是一個(gè)底層 KDE 框架,幫助 Plasma
桌面跟蹤所有的個(gè)人信息管理器(PIM)數(shù)據(jù)。它主要是為開發(fā)者服務(wù)的,包括很多可以讓程序員用來創(chuàng)建應(yīng)用的庫(kù),通過這些程序你可以訪問你的聯(lián)系人、筆記、電子郵件、日歷等等。Akonadi
中包括一些終端命令,比如 ??akonadictl?
? 可以啟動(dòng)和停止 Akonadi 服務(wù),但它們大多是為了排除故障。然而,??konsolekalendar?
? 是一個(gè)面向用戶的命令,可以讓你完全訪問 Kontact 套件的所有數(shù)據(jù),包括 KMail、Notes 和日歷。
如果你正在運(yùn)行 KDE 的 Plasma 桌面,那么你已經(jīng)安裝了 Kontact 套件。
Kontact UI
你也安裝好了 Akonadi 和它的工具,所以你所需要的基于終端的日歷完成了!
從終端查看你的日歷
由于 ??NextCloud?? 和 ??Radicale?? 等項(xiàng)目的存在,你可以托管自己的 iCal 日歷服務(wù),或者你可能已經(jīng)在流行的供應(yīng)商(例如,Google)那里擁有一個(gè) iCal 賬戶。當(dāng)你使用 Kontact 管理日歷時(shí),你訂閱了一個(gè)日歷對(duì)象(用 Akonadi 的術(shù)語說是一個(gè)“集合collection”)。當(dāng)你對(duì)你的本地日歷進(jìn)行更新時(shí),這些變化會(huì)被送回你的 iCal 服務(wù)器以同步你的日歷服務(wù)器和客戶端。
無論你是否使用過 Kontact 的日歷功能,你在 Kontact 中都有一些默認(rèn)的日歷對(duì)象。你有一個(gè)叫個(gè)人日歷和生日和紀(jì)念日的日歷對(duì)象。
以下是如何顯示當(dāng)天的日歷(默認(rèn)為個(gè)人日歷):
$ 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...
----------------------------------
添加一個(gè)事件
要查看你訂閱的所有日歷,請(qǐng)使用 ??--list-calendars?
? 選項(xiàng):
$ 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
左邊的數(shù)字是日歷的 ID。要添加一個(gè)事件到一個(gè)特定的日歷,請(qǐng)使用 ??--calendar?
? 選項(xiàng),然后是日歷 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
刪除一個(gè)事件
你也可以刪除事件。每個(gè)事件都有一個(gè)唯一的 ID(UID),在每個(gè)事件列表的底部提供:
$ konsolekalendar --list
Date: Saturday, January 15, 2022
06:00 PM - 10:00 PM
Summary: Planescape game
UID: c73f7e98-722f-48a2-8006-66aa8ddcf789
要?jiǎng)h除一個(gè)事件,請(qǐng)使用 ??--delete?
? 選項(xiàng),同時(shí)使用 ??--uid?
? 選項(xiàng):
$ konsolekalendar --delete \
--uid c73f7e98-722f-48a2-8006-66aa8ddcf789
終端中的 Akonadi
你用 ??konsolekalendar?
? 所做的一切都會(huì)立即在 Akonadi 中執(zhí)行,并在 Kontact 中得到同樣快的反映。使用一個(gè)并不意味著你必須放棄另一個(gè)。由于它們共享 Akonadi 后端,兩者查看和編輯相同的數(shù)據(jù)。??konsolekalendar?
? 命令是一項(xiàng)正在進(jìn)行的工作。未來的計(jì)劃包括與 Kontact 的筆記和日記部分的整合,而且還有很多比本文所涉及的更多的選項(xiàng)。如果你在使用 KDE 桌面,試試 ??konsolekalendar?
?,體驗(yàn)一下終端的 PIM!