AwesomeWM 4.3中nice组件加载失败,报Gdk.lua参数错误
问题描述
使用AwesomeWM 4.3版本,通过git将nice组件克隆至~/.config/awesome目录,在beautiful.init(...)后添加以下代码:
local nice = require("nice") nice()
重新加载窗口管理器后出现错误:
/user/share/lua/5.3/Gdk.lua:23 bad argument #1 to 'registerlock' (userdata expected, got nil)
完整栈追踪信息:
Error while running function!
stack traceback:
[C] in function 'lgi.corelgilua51.registerblock'
/usr/share/lua/5.3/lgi/override/Gdk.lua:23 in main chunk
[C] in function 'require'
/usr/share/lua/5.3/lgi/namespace.lua:183: in function 'lgi.init.require'
(...tail calls...)
/home/dev/.config/awesome/nice/init.lua:57: in main chunk
[C] in function 'require'
/home/dev/.config/awesome/rc.lua:50: in main chunk
error: /usr/share/lua/5.3/lgi/override/Gdk.lua:23: bad argument #1 to 'registerlock' (userdata expected, got nil)
解决步骤
- 进入nice组件所在目录:
cd ~/.config/awesome/nice - 切换到兼容AwesomeWM 4.3的分支(
legacy分支专门适配旧版AwesomeWM):git checkout legacy - 按下
Mod+Ctrl+r重新加载AwesomeWM即可。
若切换分支后仍有问题,可查看仓库的tag列表,选择明确适配4.3的版本:
git tag git checkout <对应tag版本号>
内容的提问来源于stack exchange,提问作者Snek

