测试和调试`awesome / rc.lua`

时间:2016-08-20 09:36:19

标签: lua awesome-wm interactive-mode

如何在交互式iterpreter中从awesome/rc.lua运行lua命令?

我正在尝试在~/.config/awesome/rc.lua中为新的键绑定创建一些函数。有时我得到一个错误,我想通过在命令行中打印表和变量来测试这些函数。我下载了lua5.2,我开始玩互动翻译。我写了一个小脚本,我在交互模式的开头运行。

我在require("gears")require("awful")以及/usr/share/awesome/lib/中找到的所有其他库时遇到问题。以下是一些例子:

  1. 尝试require("gears")时,我收到错误消息: /usr/share/awesome/lib/gears/wallpaper.lua:17: attempt to index global 'screen' (a nil value)
  2. 使用require("gears")删除行时,行require("awful")会给我: /usr/share/awesome/lib/awful/tag.lua:603: attempt to index field 'client' (a nil value)
  3. 似乎对于令人敬畏的库中的每个模块,有一些组件不为lua解释器所知。 如何告诉lua口译人员了解这些组件?

    我对lua编码不是很有经验。我在错误的地方挖掘?是否有一种不同的,也许更好的方法来测试awesome/rc.lua中的函数?

1 个答案:

答案 0 :(得分:2)

Mod4 + x运行Lua解释器。

rc.lua并将各种Lua lib文件加载到主机程序提供的环境中(用C语言编写)。这就是您可以访问screenclient等提供的API元素的原因。请参阅(部分)负责的文件here

如果您只是想在配置文件中调试一些基本的Lua函数,您可以考虑简单地写入文件或管道而不是stdout,而是监视它。

Mod4 + Control + r重启Awesome,并重新加载配置文件。