Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Debugging 如何更改AwesomeWM标记名?_Debugging_Lua_Syntax Error_Awesome Wm - Fatal编程技术网

Debugging 如何更改AwesomeWM标记名?

Debugging 如何更改AwesomeWM标记名?,debugging,lua,syntax-error,awesome-wm,Debugging,Lua,Syntax Error,Awesome Wm,我试图自定义我的很棒的窗口管理器,将标签号更改为罗马数字(将1更改为I,2更改为II…)。为了实现这一点,我正在修改/etc/xdg/awesome/rc.lua文件,特别是{{tags}}部分 我发现,他可以随意编辑标签名,请看左上角: 我还阅读了主题的附件,并意识到我想要做的是结合一些表的for循环 这是文件中感兴趣的代码片段: -- {{{ Tags -- Define a tag table which hold all screen tags. tags = {} tagnames

我试图自定义我的很棒的窗口管理器,将标签号更改为罗马数字(将1更改为I,2更改为II…)。为了实现这一点,我正在修改/etc/xdg/awesome/rc.lua文件,特别是{{tags}}部分

我发现,他可以随意编辑标签名,请看左上角:

我还阅读了主题的附件,并意识到我想要做的是结合一些表的for循环

这是文件中感兴趣的代码片段:

-- {{{ 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
中又添加了三个
糟糕的.layout.suit.floating
。同样的错误。

还没有正式的答案,但昨天我写了更多关于这个的文档:

它适用于Aowesome 4.0,但在本例中没有太多更改,因此该示例几乎是有效的(3.4/3.5中没有
gap
属性)


另外,如果你想设置复杂的标签,我会建议我的模块(awesome3.5+)或Shifty(awesome3.2-3.4)。它的设计目的是让这变得更容易。

还不是正式的答案,但昨天我写了更多关于这方面的文档:

它适用于Aowesome 4.0,但在本例中没有太多更改,因此该示例几乎是有效的(3.4/3.5中没有
gap
属性)


另外,如果你想设置复杂的标签,我会建议我的模块(awesome3.5+)或Shifty(awesome3.2-3.4)。它的设计目的是让这变得更容易。

下面是另一个答案,我将{Tags}部分替换为:

-- {{{ Tags
-- Define a tag table which hold all screen tags.

tagnum = { "I", "II", "III", "IV", "V", "VI", "VII",
"VIII", "IX" }

for i = 1, 9 do
awful.tag.add((tagnum[i]), {
        layout = awful.layout.suit.tile,
        master_fill_policy = "master_width_factor",
        gap_single_client = true,
        gap = 15,
        screen = s,
})

end

-- }}}
这将创建i个标记,它们的名称在
tagnum
表中定义。这只有在您想要创建相同的标记时才有用,但它总是比必须键入i定义更简洁

更好、更干净的方法:

最初的解决方案很有用,但有一个问题:当启动AwesomeWM时,您不会出现在定义的标记中,而是同时出现在所有标记中。也就是说,如果您打开一个终端,您将在您拥有的每个标记中打开它,除非您以前使用Mod4+TagNum(遵循默认配置)选择了一个

为了解决这个问题,我比较了默认配置文件和修改后的配置文件,我意识到在默认配置文件中,所有配置文件都工作得很好。所以我开始修改代码以找到解决方案。总之,我发现只需对默认代码进行最小的修改,就可以随意定制标记名。我就是这样做的:

-- {{{ Tags
tags = {}
-- Generates tags with custom names
for s = 1, screen.count() do
        tags[s] = awful.tag({ "I", "II", "III", "IV", "V", "VI", "VII", "IX" }),
end
-- }}}

另外,我保留旧的解决方案,以防有人希望将代码用于其他目的。

在另一个答案之后,我将{Tags}部分替换为:

-- {{{ Tags
-- Define a tag table which hold all screen tags.

tagnum = { "I", "II", "III", "IV", "V", "VI", "VII",
"VIII", "IX" }

for i = 1, 9 do
awful.tag.add((tagnum[i]), {
        layout = awful.layout.suit.tile,
        master_fill_policy = "master_width_factor",
        gap_single_client = true,
        gap = 15,
        screen = s,
})

end

-- }}}
这将创建i个标记,它们的名称在
tagnum
表中定义。这只有在您想要创建相同的标记时才有用,但它总是比必须键入i定义更简洁

更好、更干净的方法:

最初的解决方案很有用,但有一个问题:当启动AwesomeWM时,您不会出现在定义的标记中,而是同时出现在所有标记中。也就是说,如果您打开一个终端,您将在您拥有的每个标记中打开它,除非您以前使用Mod4+TagNum(遵循默认配置)选择了一个

为了解决这个问题,我比较了默认配置文件和修改后的配置文件,我意识到在默认配置文件中,所有配置文件都工作得很好。所以我开始修改代码以找到解决方案。总之,我发现只需对默认代码进行最小的修改,就可以随意定制标记名。我就是这样做的:

-- {{{ Tags
tags = {}
-- Generates tags with custom names
for s = 1, screen.count() do
        tags[s] = awful.tag({ "I", "II", "III", "IV", "V", "VI", "VII", "IX" }),
end
-- }}}

另外,我保留了旧的解决方案,以防有人希望将代码用于其他目的。

该错误不是语言冲突。错误为
table expected,get string
,因此问题是您传递的是字符串而不是表。我可以看到他们在你下面的教程中就是这么做的,但是所有这些文件都至少有一年的历史了。查看文档,它的格式应该是
mytagone=tag({name=“one”})
侧注,不要编辑
/etc/xdg/awesome/rc.lua
,创建您自己的
~/.config/awesome/rc.lua
,那么我应该如何处理我的代码呢?这个错误不是语言冲突。错误说
应该是table,get string
,所以问题是你传递的是一个字符串而不是一个表。我可以看到他们在你下面的教程中就是这么做的,但是所有这些文件都至少有一年的历史了。查看文档,它的格式应该是
mytagone=tag({name=“one”})
侧注,不要编辑
/etc/xdg/awesome/rc.lua
,创建您自己的
~/.config/awesome/rc.lua
,那么我应该如何处理我的代码呢?