Systray Hide/Show/ru

Здесь я попытаюсь объяснить как привязать к сочетанию клавиш переключение видимости системного трея. Даный код тестировался только на Awesome v3.5.4. Здесь поток, откуда был взят большой кусок

Код
В начале вашего rc.lua вам необходимо будет добавить следующие строки:

stupid_bug = drawin({}) systrayvisible = true systray = wibox.widget.systray container = wibox.layout.constraint container:set_widget(systray) container:set_strategy("min") container:set_width(4)

Затем, найдите инициализацию local right_layout, и добавьте после нее if s == 1 then right_layout:add(container) end Стандартный вызов if s==1 then rigth_layout:add(wibox....) необходимо закомментировать

Где right_layout является wibox или layout который вы хотите поместить в трей.

Затем, в таблице global_keybindings, вам необходимо добавить правила(rule):

awful.key({ modkey,          }, "s", function     if systrayvisible then     awesome.systray(stupid_bug, 0, 0, 10, true, "#000000")     container:set_widget(nil)     container:set_strategy("exact")     systrayvisible = false   else     container:set_strategy("min")     container:set_widget(systray)     systrayvisible = true   end end),

Как это работает?
По существу systray помещается в фиктивный контейнер layout, и извлекает из него при скрытии. Строка `awesome.systray(stupid_bug, 0, 0, 10, true, "#000000")` это несколько сумасшедшее вуду, которое на самом деле скрывает виджет. Когда виджет скрывается, контейнер становится в ширину 4 пикселя, благодаря строке container:set_width(4). Вы можете установить это значение на 1, если хотите, у меня есть место, т.к. иконки которые я использую для taglist и tasklist одинаковы. И это позволяет измежать беспорядка в systray когда он скрыт.