#ical #calendar #date #cal #cli

app carl

一款支持 ical 的彩色命令行日历。与 cal 类似,但增加了颜色和 ical 支持等特性。

10 个不稳定版本 (3 个破坏性更新)

0.3.0 2024 年 1 月 13 日
0.2.1 2024 年 1 月 6 日
0.1.2 2023 年 12 月 5 日
0.1.0 2023 年 7 月 29 日
0.0.1-alpha.22021 年 12 月 12 日

#47 in 日期和时间

Download history 1/week @ 2024-07-01

每月 71 次下载

MIT 协议

85KB
2K SLoC

carl

carl 是一个命令行日历。它试图模仿现有的各种 cal(1) 实现,但还增加了颜色和 ical 支持等增强特性。

如果您发现任何错误或对额外功能有想法,请随时在 codeberggithub 上创建错误报告或功能请求。


carl 的默认输出

带有自定义颜色的 carl 输出

Screenshots of default carl

Screenshot of carl with custom colors

带有事件的 carl 输出
ical 高亮显示的事件

彩虹颜色的 carl 输出
彩色星期

Screenshot of carl with ical events highlighted

Screenshot of carl in rainbow colors with ical events highlighted and current date striken through

安装

cargo install carl

命令行标志

  • -1, --one: 显示单个月份输出。(这是默认值。)
  • -3, --three: 显示前/当前/下个月份输出。
  • -s, --sunday: 将星期日显示为一周的第一天。
  • -m, --monday: 将星期一显示为一周的第一天。
  • -j, --julian: 显示儒略日(从 1 月 1 日起计的基于天的数字)。
  • -y, --year: 显示当前年份的日历。
  • -V, --version: 显示版本信息并退出。
  • -h, --help: 显示帮助屏幕并退出。
  • --theme: 设置应使用的主题
  • --themestyletype: "dark" 或 "light",使用标记为 "dark" 或 "light" 背景的主题样式。默认为 "light"
  • -a, --agenda: 在日历下方显示日程安排(显示在显示的日历时间段中发生的所有事件列表)

命令行选项

  • YYYY: 显示给定年份的当前日期
  • MM YYYY: 显示给定年份的给定月份
  • DD MM YYYY: 显示给定日期

配置文件

配置文件位于 XDG_CONFIG_DIRS/carl/config.tomlXDG_CONFIG_HOME/.carl/config.toml(后者具有优先级)。它可以用来定义主题文件的名称,以及一个或多个ical文件。

示例配置文件位于 data/config.toml

ical 文件

ical文件列表包含ical文件的路径,并且可以与它们自己的样式定义相结合。然后,所有这些ical文件中的事件都使用IsEvent属性(见下文)或与ical列表一起定义的样式突出显示。

当使用-a--agenda开关时,事件摘要以项目符号列表的形式显示在日历下方,项目符号也使用相应的样式突出显示。

Screeshot of carl with agenda

ical文件列表可以使用[[ical]]设置指定

[[ical]]
file = "/home/user/birthdays.ics"
stylenames = ['FGPurple']

如果file设置指向一个目录,carl将使用它可以解析的目录中的所有文件。

主题文件

主题文件包含日期属性的列表以及样式定义。

主题的名称可以通过使用theme = 设置简单指定

theme = "default"

主题文件从XDG_CONFIG_DIRS/carl/<themename>.tomlXDG_CONFIG_HOME/.carl/<themename>.toml(后者具有优先级)读取。

样式

主题文件和ical文件列表可以包含自定义样式设置。样式会改变日历中特定日期的显示方式。一个样式由一系列样式名称和可选的权重以及样式类型('Dark''Light')组成。如果没有设置样式类型,则样式在两种情况下都有效。各种可能的样式名称在下面列出。

示例

stylenames = ['Dimmed']
weight = 10
styletype = 'Dark'

主题文件

主题文件由一组日期样式组成

日期样式

日期样式由日期的属性和样式的列表组成。日期必须满足所有属性,样式才能应用。

示例

[[date]]
properties = ['CurrentDate']
stylenames = ['FGRed']
weight = 3
styletype = 'Light'

可能的属性

  • FirstDayOfMonth
  • BeforeFirstDayOfMonth
  • BeforeCurrentDate
  • CurrentDate
  • AfterCurrentDate
  • AfterLastDayOfMonth
  • LastDayOfMonth
  • IsEvent
  • Monday
  • Tuesday
  • Wednesday
  • Thursday
  • Friday
  • Saturday
  • Sunday
  • Even
  • Odd

示例主题文件位于 data/default.theme

样式名称

样式

  • Bold
  • Dimmed
  • Italic
  • Underline
  • Blink
  • Reverse
  • Hidden
  • Strikethrough

前景颜色名称

  • FGBlack
  • FGRed
  • FGGreen
  • FGYellow
  • FGBlue
  • FGPurple
  • FGCyan
  • FGWhite
  • { FGRGB = {r = x, g = y, b = z }} 其中 x, y 和 z 是 RGB 值
  • { FGFixed = x } 从 0 到 255 的颜色编号,请参阅颜色图表

背景颜色名称

  • BGBlack
  • BGRed
  • BGGreen
  • BGYellow
  • BGBlue
  • BGPurple
  • BGCyan
  • BGWhite
  • {BGRGB = { r = x, g = y, b = z }} 其中 x, y 和 z 是 RGB 值
  • {BGFixed = x } 颜色编号从 0 到 255,请参阅 颜色图表

可以使用列表组合多种样式和颜色: ["Bold", "FGRed", "Underline"]

依赖关系

~7–15MB
~176K SLoC