LINUX.ORG.RU

awesome, не получается настроить независимые панели на 2х мониторах

 ,


1

1

На 3.4 не было проблем, а на 3.5 не получается настроить, набросал портянку, но не работает:

for s = 1, screen.count() do
   
    if s <= 1 then
        mywibox[1] = awful.wibox({ position = "top", screen = s, height = 22 })

        if s == 1 then
--        ...
        end

    end

    if s > 1 then
        mywibox[2] = awful.wibox({ position = "top", screen = 2, height = 22 })

        if s == 1 then
--        ...
        end

        if s == 2 then
--        ...
        end

    end

end

Кто использует разные настроки панелей на 2х или более мониторах, покажите кусок пожалуйста.


даже как-то не гуглится, как-будто никто и не использует подобное, в вики нет, помню для 3.4 тоже приходилось изобретать на лоре.

kep
() автор топика
Ответ на: комментарий от Worron

Вот он выше и есть полностью, просто без виджетов на панелях.

Мне нужно посмотреть, как в 3.5.* реализуется такой вариант:

  • когда один монитор, то панель первого дисплея содержит такие виджеты
  • когда два монитора, то панель первого дисплея содержит такие виджеты, а панель второго такие

но чтобы он сбрасывался в дефолт, когда второй монитор не подключен, т.е. динамическая конфигурация, if сейчас 1 screen, то screen1 == панель такие виджеты end; else screen1 такие, а screen2 такие end;

Ну в общем обычная нормальная настроенная многомониторная конфигурация, когда на каждом дисплее как бы своя панель.

Я знаю, что трей не может быть одновременно на нескольких, мне это и не нужно, просто хотелось раскидать виджеты.

kep
() автор топика
Ответ на: комментарий от kep

Говорю же, без полной версии нифига не понятно что там у тебя происходит. Как минимум вместо

    if s <= 1 then
        mywibox[1] = awful.wibox({ position = "top", screen = s, height = 22 })

        if s == 1 then
--        ...
        end
должно быть
if screen.count() == 1 then
    mywibox[1] = awful.wibox({ position = "top", screen = 1, height = 22 })
    -- ...
end
и вместо
    if s > 1 then
        mywibox[2] = awful.wibox({ position = "top", screen = 2, height = 22 })

        if s == 1 then
--        ...
        end

        if s == 2 then
--        ...
        end
    if screen.count() > 1 then
        if s == 1 then
            mywibox[1] = awful.wibox({ position = "top", screen = 1, height = 22 })
--        ...
        end

        if s == 2 then
            mywibox[2] = awful.wibox({ position = "top", screen = 2, height = 22 })
--        ...
        end

Worron ★★★
()
Ответ на: комментарий от Worron

Спасибо, всё работает.

Вдруг кому пригодится:

mywibox           = {}
mypromptbox       = {}
mylayoutbox       = {}

for s = 1, screen.count() do
   
    mypromptbox[s] = awful.widget.prompt()
    mylayoutbox[s] = awful.widget.layoutbox(s)
    mylayoutbox[s]:buttons(awful.util.table.join(
                           awful.button({ }, 1, function () awful.layout.inc(layouts, 1) end),
                           awful.button({ }, 3, function () awful.layout.inc(layouts, -1) end),
                           awful.button({ }, 4, function () awful.layout.inc(layouts, 1) end),
                           awful.button({ }, 5, function () awful.layout.inc(layouts, -1) end)))
    mytaglist[s] = awful.widget.taglist(s, awful.widget.taglist.filter.all, mytaglist.buttons)
    mytasklist[s] = awful.widget.tasklist(s, awful.widget.tasklist.filter.currenttags, mytasklist.buttons)
    
    local left_layout  = wibox.layout.fixed.horizontal()
    local right_layout = wibox.layout.fixed.horizontal()
    local layout       = wibox.layout.align.horizontal()

    if screen.count() == 1 then
        mywibox[1] = awful.wibox({ position = "top", screen = 1, height = 22 })
        -- widgets
    end

    if screen.count() > 1 then
        if s == 1 then
            mywibox[1] = awful.wibox({ position = "top", screen = 1, height = 22 })
            -- widgets
        end

        if s == 2 then
            mywibox[2] = awful.wibox({ position = "top", screen = 2, height = 22 })
            -- widgets
        end
    end

    layout:set_left(left_layout)
    layout:set_middle(mytasklist[s])
    layout:set_right(right_layout)
    mywibox[s]:set_bg(beautiful.panel)
    mywibox[s]:set_widget(layout)

end
kep
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.