在迁移到Awesome 3.5.1之前,我在屏幕顶部有两个面板(在彼此的顶部,有点),底部没有面板。我用来实现3.5之前版本的代码如下:
-- Create the wibox
mywibox[s] = awful.wibox({ position = "top", height = "32", screen = s })
-- Add widgets to the wibox - order matters
mywibox[s].widgets = {
{
{
-- Upper left section
mylauncher,
mytaglist[s],
mypromptbox[s],
-- My custom widgets, separators etc...
layout = awful.widget.layout.horizontal.leftright
},
{
-- Upper right section
mylayoutbox[s],
mytextclock,
-- More widgets, separators, etc...
s == 1 and mysystray or nil,
layout = awful.widget.layout.horizontal.rightleft
},
},
{
-- Lower section (only the tasklist)
mytasklist[s],
},
layout = awful.widget.layout.vertical.flex,
height = mywibox[s].height
}
现在我正在努力弄清楚如何使用3.5配置实现相同目标。目前我使用非常基本的一个面板(大多数小部件)在顶部,一个(与任务列表)在底部。代码如下所示:
-- Create the wibox
mywibox[s] = awful.wibox({ position = "top", height = "18", screen = s })
mywibox2[s] = awful.wibox({ position = "bottom", height = "18", screen = s })
-- Widgets that are aligned to the left
local left_layout = wibox.layout.fixed.horizontal()
left_layout:add(mylauncher)
left_layout:add(mytaglist[s])
left_layout:add(mypromptbox[s])
-- My custom widgets, separators, etc...
-- Widgets that are aligned to the right
local right_layout = wibox.layout.fixed.horizontal()
if s == 1 then right_layout:add(wibox.widget.systray()) end
-- My custom widgets, separators, etc...
right_layout:add(mytextclock)
right_layout:add(mylayoutbox[s])
-- Now bring it all together
local layout = wibox.layout.align.horizontal()
layout:set_left(left_layout)
layout:set_right(right_layout)
local layout2 = wibox.layout.align.horizontal()
layout2:set_middle(mytasklist[s])
mywibox[s]:set_widget(layout)
mywibox2[s]:set_widget(layout2)
如果有人有想法如何编辑我当前的rc.lua以使其像Awesome 3.4。*中的上层代码一样工作,那将非常感激。
答案 0 :(得分:2)
您可以尝试这样的事情,不知道它是否完全符合您的要求(根据您的代码,32是您的wibox的高度):
local const = wibox.layout.constraint()
const:set_widget(layout)
const:set_strategy("exact")
const:set_height(32/2)
local l = wibox.layout.fixed.vertical()
l:add(const)
l:add(mytasklist[s])
mywibox[s]:set_widget(l)
首先,它创建一个“约束”布局,确保布局“布局”(应显示在顶部的小部件)总是大小为16px。然后它将此约束布局堆叠在任务列表的顶部,并在wibox中显示结果。
在最新版本中,有些代码可能会缩短一些,但我不确定3.5.1是否已经有了这些便利性参数。
答案 1 :(得分:0)
我用以下代码做了类似的事情:
wiboxes["top"]=awful.wibox({position="top",height=26})
local top_layout = wibox.layout.fixed.horizontal()
sublayout["cpu"] = wibox.layout.fixed.horizontal()
for i=2,3 do
sublayout["cpu" .. i] = wibox.layout.fixed.horizontal()
sublayout["cpu" .. i]:add(graphs["cpu"]..i) -- the graphs table already initialized
sublayout["cpu" .. i]:add(textboxes["cpu"]..i) -- textboxes table already initialized
sublayout["cpu"]:add(sublayout["cpu"..i)
end
.....
top_layout:add(sublayout["cpu"])
.....
wiboxes["top"]:set_widget(top_layout)
使用这段代码,我有两个图形和文本框来查看CPU使用情况(每个核心),第一个是顶部,第二个是关闭。它应该与taglist或任何其他小部件一起使用。