이것은 기본 Awesome wm 구성에서 상단 표시줄을 만드는 데 사용되는 코드입니다.
awful.screen.connect_for_each_screen(function(s)
-- Wallpaper
set_wallpaper(s)
-- Each screen has its own tag table.
awful.tag({ "1", "2", "3", "4", "5", "6", "7", "8", "9" }, s, awful.layout.layouts[1])
-- Create a promptbox for each screen
s.mypromptbox = awful.widget.prompt()
-- Create an imagebox widget which will contain an icon indicating which layout we're using.
-- We need one layoutbox per screen.
s.mylayoutbox = awful.widget.layoutbox(s)
s.mylayoutbox:buttons(gears.table.join(
awful.button({ }, 1, function () awful.layout.inc( 1) end),
awful.button({ }, 3, function () awful.layout.inc(-1) end),
awful.button({ }, 4, function () awful.layout.inc( 1) end),
awful.button({ }, 5, function () awful.layout.inc(-1) end)))
-- Create a taglist widget
s.mytaglist = awful.widget.taglist {
screen = s,
filter = awful.widget.taglist.filter.all,
buttons = taglist_buttons
}
-- Create a tasklist widget
s.mytasklist = awful.widget.tasklist {
screen = s,
filter = awful.widget.tasklist.filter.currenttags,
buttons = tasklist_buttons
}
-- Create the wibox
s.mywibox = awful.wibar({ position = "top", screen = s })
-- Add widgets to the wibox
s.mywibox:setup {
layout = wibox.layout.align.horizontal,
{ -- Left widgets
layout = wibox.layout.fixed.horizontal,
mylauncher,
s.mytaglist,
s.mypromptbox,
},
s.mytasklist, -- Middle widget
{ -- Right widgets
layout = wibox.layout.fixed.horizontal,
mykeyboardlayout,
wibox.widget.systray(),
mytextclock,
s.mylayoutbox,
},
}
end)
태그 관리, 네비게이션 관련 코드를 별도의 모듈로 분리하려고 합니다. 보시다시피, 막대 설정은 wibar:setup
다양한 위젯에 대한 설명을 매개변수로 사용하는 호출로 수행됩니다.
이 템플릿에서 태그 관련 코드를 어떻게 분리할 수 있나요? 이것이 내가 지금까지 한 일입니다:
function pkg.SetTags(lst)
pkg.taglist = lst
keys = {}
for i,c in ipairs(tagList) do
keys = gears.table.join(keys,
-- View tag only.
awful.key(
{ modkey }, c,
viewTagHook(i)
),
-- Toggle tag display.
awful.key(
{ modkey, "Control" }, c,
viewToggleHook(i)
),
-- Move client to tag.
awful.key(
{ modkey, "Shift" }, c,
moveClientHook(i)
),
-- Toggle tag on focused client.
awful.key(
{ modkey, "Control", "Shift" }, c,
viewClienHook(i)
)
)
end
end