2013-10-20 28 views
3

在移植到Awesome 3.5.1之前,我的屏幕頂部有兩個面板(彼此頂部),底部沒有任何面板。該代碼我用來實現這一預3.5 *低於:真棒3.5 - 頂部的兩個面板(wiboxes)

-- 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,使其工作爲上的代碼真棒3.4 *做,那將會是極大的讚賞。

回答

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是否已經有了這些便利參數。

+0

這一個做到了。實際上,我把這兩個佈局放在一個垂直佈局中,但無法弄清楚如何爲兩個內部佈局分配正確的大小。無論如何,現在它應該如此。十分感謝! – debil

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或任何其他小部件一起工作。

+0

乾杯的例子。我還沒有按照預期在我的使用案例中使用它。但這並不奇怪,因爲我對Lua來說很新穎。但是,它給了我一些想法。當我(希望)得到一些結果時,我必須先試驗並報告。爲指針歡呼。 – debil

+0

你是welocme :) – uzsolt