【发布时间】:2016-12-28 08:22:52
【问题描述】:
我正在尝试自定义我的 Awesome Window Manager 以将标签编号更改为罗马数字(将 1 更改为 I,2 更改为 II...)。为了实现这一点,我正在修改我的 /etc/xdg/awesome/rc.lua 文件,特别是 {{tags}} 部分。
我找到了this blog post,他可以随意编辑标签名,看看左上角:
我还阅读了主题附带的rc.lua file,并意识到我想要做的技术是结合一些表格的for循环。
这是文件中感兴趣的代码sn-p:
-- {{{ Tags
-- Define a tag table which hold all screen tags.
tags = {}
tagnames = { "irc", "mpd", "net", "usr", "png", "msg", }
taglayouts = {
awful.layout.suit.tile.top,
awful.layout.suit.tile.bottom,
awful.layout.suit.floating,
awful.layout.suit.fair,
awful.layout.suit.floating,
awful.layout.suit.floating }
for s = 1, screen.count() do
-- Each screen has its own tag table.
tags[s] = {}
for tagnumber = 1, 6 do
-- Add tags and name them.
tags[s][tagnumber] = tag(tagnames[tagnumber])
-- Add tags to screen one by one, giving them their layouts at the same time.
tags[s][tagnumber].screen = s
awful.layout.set(taglayouts[tagnumber], tags[s][tagnumber])
end
-- I'm sure you want to see at least one tag.
tags[s][1].selected = true
end
-- }}}
...这是我的 rc.lua 文件:
-- {{{ Tags
-- Define a tag table which hold all screen tags.
tags = {}
tagnames = { "I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX", }
taglayouts = {
awful.layout.suit.tile.top,
awful.layout.suit.tile.bottom,
awful.layout.suit.floating,
awful.layout.suit.fair,
awful.layout.suit.floating,
awful.layout.suit.floating }
for s = 1, screen.count() do
-- Each screen has its own tag table.
-- tags[s] = awful.tag({ "1", "2", "3", "4", "5", "6", "7", "8",$
tags[s] = {}
for tagnumber = 1, 9 do
tags[s][tagnumber] = tag(tagnames[tagnumber])
tags[s][tagnumber].screen = s
awful.layout.set(taglayouts[tagnumber], tags[s][tagnumber])
end
tags[s][1].selected = true
end
--- }}}
如您所见,它们几乎相同,不同之处在于我有九个标签而不是六个(我根据它更改了代码)。当我尝试使用 Xephyr 调试设置时,控制台中出现错误,我只能看到我的壁纸:
error while running function
stack traceback:
[C]: in global 'tag'
/etc/xdg/awesome/rc.lua:100: in main chunk
error: /etc/xdg/awesome/rc.lua:100: bad argument #2 to 'tag' (table expected, got string)
error while running function
stack traceback:
[C]: in global 'tag'
/etc/xdg/awesome/rc.lua:100: in main chunk
error: /etc/xdg/awesome/rc.lua:100: bad argument #2 to 'tag' (table expected, got string)
E: awesome: main:605: couldn't find any rc file
我看不到错误在哪里,因为我无法在错误行tags[s][tagnumber] = tag(tagnames[tagnumber]) 中检测到任何语言违规:它只是用我的自定义名称填充标签数组,告诉它将它们视为标签而不是随机字符串。
更新: 我刚刚意识到 taglayouts 中有六个布局,与原始 Lua 文件中的标签数量相同。我想我应该有九个标签布局,但我不知道我应该添加哪一个。另外,我不认为这是代码正确编译的关键障碍,因为错误行与布局列表没有任何关系。
更新 2: 向 taglayouts 添加了另外三个 awful.layout.suit.floating。同样的错误。
【问题讨论】:
-
错误不是语言冲突。错误显示
table expected, got string,所以问题是您传递的是字符串而不是表格。我可以看到他们在您正在遵循的教程中正在做的事情,但所有这些文件都至少有一年的历史。查看文档,格式应该是mytagone = tag({ name = "one" }) -
旁注,不要编辑
/etc/xdg/awesome/rc.lua,创建自己的~/.config/awesome/rc.lua -
那么我应该如何处理我的代码?
标签: debugging lua syntax-error awesome-wm