Haron_Prime
Имхо, я бы туда ещё и примеры виджетов добавил.

Привет ! Уже пишу черновики, но многое ещё не доконца доработал :)
Кто ищет, тот всегда найдет.
warlock9000
Можешь просто цикл статей сделать там http://archlinux.org.ru/blogs/, если есть желание

Тема перенесена в блог

Спаибо за подсказку :)
Кто ищет, тот всегда найдет.


Для получения такого примерно результата необходимо сделать следующее. (все изменения показаны для стандартного rc.lua)

1. Решаем, какая будет ширина панели, у меня ширина панели равна 100, и добавляем строку в theme.lua

 theme.left_panel_width = 100 

т.к. ширина панели потребуется не один раз

2. Сдвигаем верхнюю панель на ширину левой панели. Сразу после строки в rc.lua

 awful.screen.connect_for_each_screen(function(s) 

добавляем следующее

 local dummy = { widget = wibox.widget.textbox }
	local top_panel_left_margin_to_compensate_left_wibox = {{{ dummy,
	bg = beautiful.bg_normal, widget = wibox.container.background },
        width = beautiful.left_panel_width,
        strategy = "exact", layout   = wibox.layout.constraint },
        layout = wibox.layout.fixed.horizontal } 

3. Секцию

 s.mywibox:setup {
        layout = wibox.layout.align.horizontal,
        { -- Left widgets
            layout = wibox.layout.fixed.horizontal,
            mylauncher,
            s.mytaglist,
            s.mypromptbox,
        }, 

приводим к такому виду

 s.mywibox:setup {
        layout = wibox.layout.align.horizontal,
        { -- Left widgets
            layout = wibox.layout.fixed.horizontal,
            top_panel_left_margin_to_compensate_left_wibox,
            mylauncher,
            s.mytaglist,
            s.mypromptbox,
        }, 

4. В секции

 awful.screen.connect_for_each_screen(function(s)
 ...
 ...
 ...
 end) 

5. Выше end) добавляем данные для вывода левой панели

 s.my_left_wibox = awful.wibar({ position = "left", screen = s, width = beautiful.left_panel_width, })

 s.my_left_wibox:setup {
		layout = wibox.layout.align.horizontal,
		{ -- left widgets
			layout = wibox.layout.fixed.vertical,
			-- здесь добавляем необходимые виджеты
		},
	} 
Как сделать сепараторы и виджеты для левой панели, напишу позже

---------------------------------------------------------------------------------------------------------

Для начала создадим папку config в которой будут храниться все созданные виджеты, иначе rc.lua будет расти до бесконечности, у меня сделано так и всё работает не один год

1. В awesome создаём папку config

 mkdir -p ~/.config/awesome/config/ 

2. Помещаем в неё два файла

init.lua



local config = {

    widgets = require("config.widgets"),

return config

widgets.lua


local beautiful  = require("beautiful")
local awful         = require("awful")
local wibox         = require("wibox")
local gears         = require("gears")
local dpi           = beautiful.xresources.apply_dpi
local naughty       = require("naughty")
local timer         = require("gears.timer")
local widget_loader = {}

-- функция загрузки виджетов ===============================================

function widget_loader.init(awesome_context)

    local topwibox = {}

-- сюда помещаем виджеты

  return awesome_context
end

return widget_loader

3. в rc.lua пишем


context = {}

local config = require("config")

config.widgets.init(context)

Перегружаем awesome и теперь можно писать свои виджеты.

Часы на левой панели

В созданном файле wifgets.lua пишем виджет


-- виджет часов
myclock = wibox.widget.textclock("#ffffffdd", "%H:%M")

Если сейчас вписать в rc.lua


 s.my_left_wibox:setup {
		layout = wibox.layout.align.horizontal,
		{ -- left widgets
			layout = wibox.layout.fixed.vertical,
			-- здесь добавляем необходимые виджеты
			myclock,
		},
	}

то часы будут выведены в левом верхнем углу левой панели, для придания более лучшего вида начинаем "украшать" часы.


-- виджет часов
myclock = wibox.widget.textclock(markup.font("sans 14",markup("#ffffffdd", "%H:%M")))
-- помещаем часы в контейнер и задаем отступы left, right, top, bottom
my_cont_clock = wibox.container.margin(myclock, 15, 15, 10, 10)

my_clock = {{{{
        my_cont_clock,
        -- задаём цвет фона
        bg = "#00000045",
        -- помещаем часы в рамку со скругленными углами
        shape         = gears.shape.rounded_rect,
        -- задаем толщину рамки
        shape_border_width  = 2,
        -- задаём цвет рамки
        shape_border_color  = "#aeb5bd85",
        -- виджет вывода рамки
        widget = wibox.container.background },
        -- вкладываем часы в рамку
        layout   = wibox.layout.constraint },
        -- задаем отступы всего виджета
        left = 3, right = 0, top = 8, bottom = 8, widget = wibox.container.margin },
        -- всё запаковываем
        layout = wibox.layout.fixed.horizontal }
-- всплывающая подсказка выводящая день недели, месяц, число, год
myclock_t = awful.tooltip({
	-- привязываем подсказку к часам
    objects = { myclock },
    -- отступы текста подсказки
    margin_leftright    = 15,
    margin_topbottom    = 10,
    -- размещение вне виджета
    mode                = "outside",
    -- время обновления виджета
    timeout             = 2,
    timer_function = function()
            return os.date("Сегодня %A %B %d %Y")
        end,
    })

Вид подсказки задаётся в theme.lua


local beautiful  = require("beautiful")
local awful         = require("awful")
local wibox         = require("wibox")
local gears         = require("gears")
local dpi           = beautiful.xresources.apply_dpi
local naughty       = require("naughty")
local timer         = require("gears.timer")

Вот примерно такое должно появиться после добавления в rc.lua


    s.my_left_wibox:setup {
		layout = wibox.layout.align.horizontal,
		{ -- left widgets
			layout = wibox.layout.fixed.vertical,
                        my_tclock,
		},
	}



Продолжение следует
Кто ищет, тот всегда найдет.
warlock9000
Вот! Норм, как раз для начинающих все разложил :)

Спасибо ! Теперь думаю, писать отдельными частями или редактировать, добавлять, к уже написанному.
Кто ищет, тот всегда найдет.
Добавляем боковую(левую) панель.



Для получения такого примерно результата необходимо сделать следующее. (все изменения показаны для стандартного rc.lua)

1. Решаем, какая будет ширина панели, у меня ширина панели равна 100, и добавляем строку в theme.lua

 theme.left_panel_width = 100 
т.к. ширина панели потребуется не один раз

2. Сдвигаем верхнюю панель на ширину левой панели. Сразу после строки в rc.lua

 awful.screen.connect_for_each_screen(function(s) 
добавляем следующее

 local top_panel_left_margin_to_compensate_left_wibox = wibox.container.background(
		common.constraint({width=beautiful.left_panel_width}), beautiful.bg_normal ) 

3. Секцию

 s.mywibox:setup {
        layout = wibox.layout.align.horizontal,
        { -- Left widgets
            layout = wibox.layout.fixed.horizontal,
            mylauncher,
            s.mytaglist,
            s.mypromptbox,
        }, 
приводим к такому виду

 s.mywibox:setup {
        layout = wibox.layout.align.horizontal,
        { -- Left widgets
            layout = wibox.layout.fixed.horizontal,
            top_panel_left_margin_to_compensate_left_wibox,
            mylauncher,
            s.mytaglist,
            s.mypromptbox,
        }, 

4. В секции

 awful.screen.connect_for_each_screen(function(s)
 ...
 ...
 ...
 end) 

5. Выше end) добавляем данные для вывода левой панели

 s.my_left_wibox = awful.wibar({ position = "left", screen = s, width = beautiful.left_panel_width, })

 s.my_left_wibox:setup {
		layout = wibox.layout.align.horizontal,
		{ -- left widgets
			layout = wibox.layout.fixed.vertical,
			-- здесь добавляем необходимые виджеты
		},
	} 

Как сделать сепараторы и виджеты для левой панели, напишу позже

Все изменения сделаны на awesome 4.1 (Technologic) установленного из репозитария
Кто ищет, тот всегда найдет.
warlock9000 просмотрел ссылку, и понял, что ничего не понял. Мне что-нибудь попроще, типа Github для дебилов :)
Кто ищет, тот всегда найдет.
R.V.
Если для левой панели, то лучше и в теме той...

warlock9000
Вообще начать лучше со скрина того, что выложил..

Пожелания и замечания принял. С Github и прочими трудно с практически плохим знанием английского, читать и понять могу, но написать ...
Кто ищет, тот всегда найдет.
stalker_tk
это виджет отдельный файл который прописывается в rc.lua, или кусок из него?

Это просто вставляешь в rc.lua, у меня все виджеты хранятся в другом месте, как виджеты в lain и visious. С GitHub и прочими не знаю как работать
Кто ищет, тот всегда найдет.
Всё не могу, недоаботанное не выкладываю, а тут пахать и пахать. Для ознакомления виджет вывода загрузки памяти для боковой(левой) панели

-- mem =================================================================

local text_mem = wibox.widget.textbox()
    text_mem:set_align("center")

local mem_bar = wibox.widget {
        max_value     = 1,
        forced_height = 20,
        forced_width  = beautiful.left_panel_width,	-- 100,
        paddings      = 1,
        border_width  = 1,
        border_color  = beautiful.border_color,
        color = gears.color ({ type = "linear", from = { 0, 0, 0 }, to = { 100, 20, 30 }, stops = { { 0, "#0000ffaa" }, { 0.25, "#00ff00aa" }, { 0.75, "#ff0000aa" } } }),
        ticks = true,
        widget        = wibox.widget.progressbar,
}

local mem_timer = timer({ timeout = 6 })
    mem_timer:connect_signal("timeout", function ()
        for line in io.lines("/proc/meminfo") do
            local tmp= string.match(line, "MemTotal: +(%d+)")
            if tmp then
                memtot = tmp
                break
            end
        end

        local active, ramusg

        for line in io.lines("/proc/meminfo") do
            for key , value in string.gmatch(line, "(%w+): +(%d+).+") do
                if key == "Active" then active = tonumber(value) end
            end
        end
        mem_bar:set_value(active/memtot)
        text_mem:set_markup(markup("#ffffffdd","mem ".. addzero100(math.ceil(100*(active/memtot))) .. " %"))
    end)
    mem_timer:start()
    mem_timer:emit_signal("timeout")

local membar = wibox.widget {
        mem_bar,
        text_mem,
        layout = wibox.layout.stack,
    }

mymembar = wibox.container.margin(membar, 3, 3, 3, 3)

local list_len = 10

membar.command = "top -o \\%MEM -b -n 1 -w 512" .. [[ | awk '{printf "%-5s %-4s %s\n", $1, $8, $11}']]

membar:connect_signal("mouse::enter", function()
    local result = {}
    local output = parse.command_to_lines(membar.command)
    for _, line in ipairs(output) do
        local pid, percent, name = line:match("^(%d+)%s+(.+)%s+(.*)")
        if percent then
            percent = percent + 0
            if result[name] then
                result[name] = result[name] + percent
            elseif name then
                result[name] = percent
            end
        end
    end

    local result_string = ' %MEM COMMAND\n'
    local counter = 0
    for k, v in h_table.spairs(result, function(t,a,b) return t[b] < t[a] end) do
        result_string = result_string .. string.format("%5.1f %s", v, k)
        counter = counter + 1
        if counter == list_len then
            break
        else
            result_string = result_string .. '\n'
        end
    end
local notification = naughty.notify{
        text = result_string,
        position="top_left",
        timeout = 5, hover_timeout = 10,}
    end)

Исправления, дополнения, изменения разрешаю и принимаю :)

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

-- добавление 0 перед числом ===========================================

function addzero100(num)

	if tonumber(num) < 10 then
		return "00" .. num
	elseif tonumber(num) <100 then
		return "0" .. num
	else
		return num
	end
end

поместить выше всех виджетов, для использования функция добавляется к выводимому числу

addzero100( выводимые данные )
Кто ищет, тот всегда найдет.
Никто не подскажет, на этом сайте выкладывают свои виджеты и куда, а то сделал виджеты для awesome 4 без использования vicious и lain.
Кто ищет, тот всегда найдет.