LINUX.ORG.RU

Awesome. Раскраска текста виджетов.

 


0

1

Доброго всем вечера.

Решил слегка допилить виджет с списком пакетов на обновление, но не могу разобраться с тем, как указать цвет надписей. В сети нашел вариант с тегом <span>, но он не канает - цвет каким был, таким и остался, а сам тег отображается обычным текстом.

Код виджета:

-- Обновления pacman
pacwidget = wibox.widget.textbox()
pacwidget_t = awful.tooltip({ objects = { pacwidget},})
vicious.register(pacwidget, vicious.widgets.pkg,
                function(widget,args)
                    awful.util.spawn_with_shell("sudo yaourt -Sya")
                    local io = { popen = io.popen }
                    local s = io.popen("yaourt -Qua")
                    local str = ''
                    local str_core = ''
                    local str_extra = ''
                    local str_community = ''
                    local str_multilib = ''
                    local str_aur = ''
                    local str_archlinuxfr = ''

                    for line in s:lines() do
                        if (string.find (line, "core") ) ~= nil then
                        str_core = str_core .. "<span color='#ff0000'>" .. line .. "</span>\n"
                    elseif (string.find (line, "extra") ) ~= nil then
                        str_extra = str_extra .. " " .. line .. "\n"
                    elseif (string.find (line, "community") ) ~= nil then
                        str_community = str_community .. " " .. line .. "\n"
                    elseif (string.find (line, "multilib") ) ~= nil then
                        str_multilib = str_multilib .. " " .. line .. "\n"
                    elseif (string.find (line, "aur") ) ~= nil then
                        str_aur = str_aur .. " " .. line .. "\n"
                    elseif (string.find (line, "archlinuxfr") ) ~= nil then
                        str_archlinuxfr =  str_archlinuxfr .. " " .. line .. "\n"
                    else
                        str = "<span color=\"" .. beautiful.textcolor .. "\">" .. str .. " " .. line .. "</span>\n"
                    end
                    end
                    str = str .. str_core .. str_extra .. str_community .. str_multilib .. str_aur .. str_archlinuxfr
                    pacwidget_t:set_text(str)
                    s:close()
                    return " " .. args[1]
                end, 300, "Arch")

Результат: https://itmages.ru/image/view/5871104/c7104620

Вопрос: как сделать текст цветным?

★★★★★
Ответ на: комментарий от LiBer

читать доки

Я слишком плохо знаю английский, чтоб осилить весь массив доков. ТА то, что бы написано про set_text информации о markup не содержало.

читать исходники

Ты ещё предложи самому wm написать, чтоб наверняка.

гуглить

Ну вот <span> и нагуглил. Про markup при этом ничего не говорилось.

najlus ★★★★★ ()
Ответ на: комментарий от najlus
  • ну слушай, там у текстбокса методов всего ничего, прочитать описания к ним ко всем не сложно, и язык там простой, как раз практика, полезно.

  • Исходники полезно читать(в данном случае библиотек луа), так во первых понятней как с этим апи работать, во вторых понятней как лучше писать свой код.

  • Я потому и написал гуглить последним пунктом, потому что сам по себе он не очень продуктивен, не очень понятно что именно гуглить, а потом не хватает контекста для правильного применения нагугленного, как в твоем случае.

LiBer ★★★ ()