-
Notifications
You must be signed in to change notification settings - Fork 69
Home
LunarBar 可使用 SF Symbols 作为状态栏图标,填入符号名称即可。
例如,填入 moon 来显示一个月亮。
除了使用上述提到的 SF Symbols 官方应用,也可以通过第三方网站在线浏览。
在 LunarBar 中使用 自定义格式 作为状态栏图标时,格式化字符串遵循标准的日期格式模式,以下是一些例子:
| 日期格式 | 示例输出 |
|---|---|
| y年M月d日 | 2025年6月4日 |
| h:mm a | 2:30 下午 |
| M月d日 EEE | 6月4日 周三 |
| EEEE HH:mm | 星期三 14:30 |
| '今天是' M月d日 | 今天是 6月4日 |
LunarBar 支持在模式中使用 JavaScript 表达式以实现更灵活的输出,使用 {{expr}} 格式。
例如 {{ "'Hello'" }} EEE 将被动态解析成 'Hello' EEE,再作为日期格式处理当前日期。
请注意,表达式输出的内容是日期格式的一部分,输出字面量需要添加 ''。上述例子如果写为 {{ "Hello" }},则输出内容中的 H 会被当作小时的符号。
例子:根据当前星期几来添加心情颜文字,示例输出:周五 (๑˃ᴗ˂)ﻭ。
EEE {{["'(⊙_⊙;)'", "'(´-ω-`)'", "'(•̀ᴗ•́)و ̑̑'", "'(¬_¬)'", "'(☆ω☆)'", "'(๑˃ᴗ˂)ﻭ'", "'(*≧▽≦)o'"][(new Date()).getDay()]}}
例子:显示几月几日以及今年的进度,示例输出:6月5日 (42%)。
M月d日 ({{(() => { const y = new Date().getFullYear(), s = new Date(y, 0, 1), e = new Date(y + 1, 0, 1); return Math.floor((Date.now() - s) / (e - s) * 100) + "%"; })()}})
例子:以进度条形式显示今年的进度,示例输出:■■■■······ 42%。
{{(() => { const y = new Date().getFullYear(), s = new Date(y, 0, 1), e = new Date(y + 1, 0, 1), p = (Date.now() - s) / (e - s) * 100, f = Math.floor(p / 10); return "■".repeat(f) + "·".repeat(10 - f) + " " + Math.floor(p) + "%"; })()}}
LunarBar 还提供了两个内置 JavaScript 函数,用于在自定义日期格式中获取农历信息和节假日状态。
根据传入的 key 返回对应的农历信息,date 为可选参数,默认使用当前日期。
支持的 key:
| key | 说明 | 示例输出 |
|---|---|---|
day |
农历日 | 初五 |
month |
农历月 | 六月 |
solarTerm |
节气(当日无节气时返回 undefined) |
芒种 |
festival |
农历节日(当日无节日时返回 undefined) |
端午节 |
例子:显示农历日,示例输出:初五。
{{ `'${lunarInfo('day')}'` }}
例子:有节气显示节气,否则显示农历日,示例输出:芒种 或 初五。
{{ `'${lunarInfo('solarTerm') || lunarInfo('day')}'` }}
例子:优先显示节日,其次节气,最后农历日,示例输出:端午节、芒种 或 初五。
{{ `'${lunarInfo('festival') || lunarInfo('solarTerm') || lunarInfo('day')}'` }}
例子:在日期格式中组合使用,示例输出:6月5日 初五。
M月d日 {{ `'${lunarInfo('festival') || lunarInfo('solarTerm') || lunarInfo('day')}'` }}
例子:查询指定日期的农历信息。
{{ `'${lunarInfo('day', new Date(2025, 0, 29))}'` }}
返回当天的节假日状态,date 为可选参数,默认使用当前日期。工作日调休返回 上班,法定假日返回 休假,普通日期返回 undefined。
例子:显示节假日状态,示例输出:休假 或 上班。
{{ `'${holidayInfo() || ''}'` }}
例子:将农历日与节假日状态组合显示,示例输出:初五 休假。
{{ `'${lunarInfo('festival') || lunarInfo('solarTerm') || lunarInfo('day')}${holidayInfo() ? ` ${holidayInfo()}` : ''}'` }}
请注意,lunarInfo 和 holidayInfo 在无数据时返回 undefined,请使用 || 运算符提供默认值。
使用左右键切换月份,上下键切换年份,空格键回到当前月份。
LunarBar 本身不支持快捷键打开,但通过 “快捷指令” 或 “聚焦” 搜索可以轻松做到这一点。
在 LunarBar 中长按两个日期,可以获得两天间隔的天数。
在终端执行如下命令:
defaults write app.cyan.lunarbar general.disable-updates -bool true