diff --git a/lib/awful/prompt.lua b/lib/awful/prompt.lua index cf133193..a542be43 100644 --- a/lib/awful/prompt.lua +++ b/lib/awful/prompt.lua @@ -189,7 +189,12 @@ local function prompt_text_with_cursor(args) text_end = util.escape(text:sub(args.cursor_pos + 1)) end - ret = _prompt .. text_start .. "" .. char .. "" .. text_end .. spacer + local cursor_color = util.ensure_pango_color(args.cursor_color) + local text_color = util.ensure_pango_color(args.text_color) + + ret = _prompt .. text_start .. "" .. char .. "" .. text_end .. spacer return ret end diff --git a/lib/awful/util.lua b/lib/awful/util.lua index 706e153e..ab157171 100644 --- a/lib/awful/util.lua +++ b/lib/awful/util.lua @@ -20,6 +20,8 @@ local type = type local rtable = table local pairs = pairs local string = string +local lgi = require("lgi") +local Pango = lgi.Pango local capi = { awesome = awesome, @@ -51,14 +53,13 @@ function util.deprecate(see) io.stderr:write(".\n" .. tb .. "\n") end ---- Strip alpha part of color. +--- Get a valid color for Pango markup -- @param color The color. --- @return The color without alpha channel. -function util.color_strip_alpha(color) - if color:len() == 9 then - color = color:sub(1, 7) - end - return color +-- @tparam string fallback The color to return if the first is invalid. (default: black) +-- @treturn string color if it is valid, else fallback. +function util.ensure_pango_color(color, fallback) + color = tostring(color) + return Pango.Color.parse(Pango.Color(), color) and color or fallback or "black" end --- Make i cycle. diff --git a/lib/awful/widget/taglist.lua b/lib/awful/widget/taglist.lua index 4aed1caa..d2133e64 100644 --- a/lib/awful/widget/taglist.lua +++ b/lib/awful/widget/taglist.lua @@ -99,8 +99,8 @@ function taglist.taglist_label(t, args) if not tag.getproperty(t, "icon_only") then text = "" if fg_color then - text = text .. "" .. - (util.escape(t.name) or "") .. "" + text = text .. "" .. (util.escape(t.name) or "") .. "" else text = text .. (util.escape(t.name) or "") end diff --git a/lib/awful/widget/tasklist.lua b/lib/awful/widget/tasklist.lua index cbc4cb96..8a8c7656 100644 --- a/lib/awful/widget/tasklist.lua +++ b/lib/awful/widget/tasklist.lua @@ -29,14 +29,14 @@ tasklist.filter = {} local function tasklist_label(c, args) if not args then args = {} end local theme = beautiful.get() - local fg_normal = args.fg_normal or theme.tasklist_fg_normal or theme.fg_normal or "#ffffff" + local fg_normal = util.ensure_pango_color(args.fg_normal or theme.tasklist_fg_normal or theme.fg_normal, "white") local bg_normal = args.bg_normal or theme.tasklist_bg_normal or theme.bg_normal or "#000000" - local fg_focus = args.fg_focus or theme.tasklist_fg_focus or theme.fg_focus - local bg_focus = args.bg_focus or theme.tasklist_bg_focus or theme.bg_focus - local fg_urgent = args.fg_urgent or theme.tasklist_fg_urgent or theme.fg_urgent - local bg_urgent = args.bg_urgent or theme.tasklist_bg_urgent or theme.bg_urgent - local fg_minimize = args.fg_minimize or theme.tasklist_fg_minimize or theme.fg_minimize - local bg_minimize = args.bg_minimize or theme.tasklist_bg_minimize or theme.bg_minimize + local fg_focus = util.ensure_pango_color(args.fg_focus or theme.tasklist_fg_focus or theme.fg_focus, fg_normal) + local bg_focus = args.bg_focus or theme.tasklist_bg_focus or theme.bg_focus or bg_normal + local fg_urgent = util.ensure_pango_color(args.fg_urgent or theme.tasklist_fg_urgent or theme.fg_urgent, fg_normal) + local bg_urgent = args.bg_urgent or theme.tasklist_bg_urgent or theme.bg_urgent or bg_normal + local fg_minimize = util.ensure_pango_color(args.fg_minimize or theme.tasklist_fg_minimize or theme.fg_minimize, fg_normal) + local bg_minimize = args.bg_minimize or theme.tasklist_bg_minimize or theme.bg_minimize or bg_normal local bg_image_normal = args.bg_image_normal or theme.bg_image_normal local bg_image_focus = args.bg_image_focus or theme.bg_image_focus local bg_image_urgent = args.bg_image_urgent or theme.bg_image_urgent @@ -81,23 +81,19 @@ local function tasklist_label(c, args) end if capi.client.focus == c then bg = bg_focus + text = text .. ""..name.."" bg_image = bg_image_focus - if fg_focus then - text = text .. ""..name.."" - else - text = text .. ""..name.."" - end - elseif c.urgent and fg_urgent then + elseif c.urgent then bg = bg_urgent - text = text .. ""..name.."" + text = text .. ""..name.."" bg_image = bg_image_urgent - elseif c.minimized and fg_minimize and bg_minimize then + elseif c.minimized then bg = bg_minimize - text = text .. ""..name.."" + text = text .. ""..name.."" bg_image = bg_image_minimize else bg = bg_normal - text = text .. ""..name.."" + text = text .. ""..name.."" bg_image = bg_image_normal end text = text .. "" diff --git a/lib/menubar/init.lua b/lib/menubar/init.lua index 4e13e597..968bf05e 100644 --- a/lib/menubar/init.lua +++ b/lib/menubar/init.lua @@ -86,7 +86,7 @@ local common_args = { w = wibox.layout.fixed.horizontal(), -- @param c The desired text color. -- @return the text wrapped in a span tag. local function colortext(s, c) - return "" .. s .. "" + return "" .. s .. "" end --- Get how the menu item should be displayed. @@ -94,8 +94,7 @@ end -- @return item name, item background color, background image, item icon. local function label(o) if o.focused then - local color = awful.util.color_strip_alpha(theme.fg_focus) - return colortext(o.name, color), theme.bg_focus, nil, o.icon + return colortext(o.name, theme.fg_focus), theme.bg_focus, nil, o.icon else return o.name, theme.bg_normal, nil, o.icon end