问题描述
所以我一直在 Linux 上配置我的 AwesomeWM 主题,但我遇到了这个问题。现在我当然不是专家程序员,所以我想我会来这里寻求帮助。我一直在尝试检查一个月中的某一天是否是 1 到 9 之间的数字,然后会更改日历上重点数字的填充,但似乎不起作用..
imac-apple-mockup-app-38544.jpeg
我在一个完全不同的文件(我的 rc.lua)上遇到错误,我真的不明白为什么。如果有人理解,这是屏幕截图。
我能从中了解到的是,以下代码行(来自我的 rc.lua 文件)存在问题:
Match count: 4
Match[1][0]=propertyKey="44772164">
Match[1][1]=44772164
Match[2][0]=propertyKey="44772175">
Match[2][1]=44772175
Match[3][0]=propertyKey="44772176">
Match[3][1]=44772176
Match[4][0]=propertyKey="44772177">
我知道这对于堆栈溢出问题非常具体,但如果有人能提供帮助,我将不胜感激。
解决方法
对,所以这个版本似乎有效:
if (os.date("%d") >= "1") and (os.date("%d") <= "9") then
theme.calendar_focus_padding = dpi(5)
else
theme.calendar_focus_padding = dpi(10)
end
但是代码并没有按照它应该的方式运行。我的意思是,尽管这是七月的第二天(这应该将 if 语句切换为 true 并在 if 和 else 语句之前执行所有内容,对吗?)。相反,它执行 else 语句 (theme.calendar_focus_padding = dpi(10)
) 下的所有内容。现在怎么样了?
编辑: 所以我发现我必须将 os.date(etc) 转换为 int。我使用 tonumber()
函数这样做了,现在我有了这个,这似乎有效:
day = tonumber(os.date("%d"))
if (day >= 1) and (day <= 9) then
theme.calendar_focus_padding = dpi(20)
else
theme.calendar_focus_padding = dpi(10)
end
,
正如@lhf 所提到的,您的代码不是有效的 lua 代码。 Lua 参数可以是字符串、表格、数字或空值——没有对模式的特殊处理(出于这个原因,它们通常被包含在字符串中)
此代码应该可以工作:
FOO
将模式包含在字符串中允许 lua 词法分析器解析它,这意味着代码至少会执行。 if (os.time("%d")>= 1) and (os.time("%d") <= 9) then
theme.calendar_focus_padding = dpi(5)
else
theme.calendar_focus_padding = dpi(10)
end
然后应在函数调用中解析 os.time
以提供相关值,在本例中为月中的第几天。