Skip to content
Ying Zhong edited this page Mar 22, 2026 · 29 revisions

系统符号

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日

使用 JavaScript 表达式

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) + "%"; })()}}

内置 JavaScript 函数

LunarBar 还提供了两个内置 JavaScript 函数,用于在自定义日期格式中获取农历信息和节假日状态。

lunarInfo(key, date?)

根据传入的 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))}'` }}

holidayInfo(date?)

返回当天的节假日状态,date 为可选参数,默认使用当前日期。工作日调休返回 上班,法定假日返回 休假,普通日期返回 undefined

例子:显示节假日状态,示例输出:休假上班

{{ `'${holidayInfo() || ''}'` }}

例子:将农历日与节假日状态组合显示,示例输出:初五 休假

{{ `'${lunarInfo('festival') || lunarInfo('solarTerm') || lunarInfo('day')}${holidayInfo() ? ` ${holidayInfo()}` : ''}'` }}

请注意,lunarInfoholidayInfo 在无数据时返回 undefined,请使用 || 运算符提供默认值。

使用小技巧

快捷键

使用左右键切换月份,上下键切换年份,空格键回到当前月份。

LunarBar 本身不支持快捷键打开,但通过 “快捷指令”“聚焦” 搜索可以轻松做到这一点。

计算间隔天数

在 LunarBar 中长按两个日期,可以获得两天间隔的天数。

关闭更新检查

在终端执行如下命令:

defaults write app.cyan.lunarbar general.disable-updates -bool true