-- Reno98 - a retro replica of a very recognizable theme local theme_assets = require("beautiful.theme_assets") local xresources = require("beautiful.xresources") local dpi = xresources.apply_dpi local gears = require("gears") local gfs = require("gears.filesystem") local themes_path = root_path.."/themes/" local theme = {} theme.font = "Terminus 8" theme.bg_normal = "#c0c0c0" theme.bg_focus = "#808080" theme.bg_urgent = "#FFEDCC" theme.bg_minimize = "#efefef" theme.bg_highlight_shadow = "#000000FF" theme.bg_highlight_light = "#FFFFFFFF" theme.bg_highlight_outline = "#808080FF" theme.bg_systray = theme.bg_normal theme.fg_normal = "#000000" theme.fg_focus = "#000000" theme.fg_urgent = "#000000" theme.fg_minimize = "#000000" theme.useless_gap = dpi(0) -- technically speaking these are irrelevant since they're not exactly smart -- borders theme.border_width = dpi(0) theme.border_normal = "#c0c0c0" theme.border_focus = "#c0c0c0" theme.border_marked = "#c0c0c0" theme.titlebar_bg_focus = { type = "linear", from = { 0, 0 }, to = { 640, 0 }, stops = { {0, "#040582"}, {1, "#0F7FCD"} } } theme.titlebar_bg_normal = { type = "linear", from = { 0, 0 }, to = { 640, 0 }, stops = { {0, "#828282"}, {1, "#AFAFAF"} } } local taglist_square_size = dpi(4) theme.taglist_squares_sel = theme_assets.taglist_squares_sel( taglist_square_size, theme.fg_normal ) theme.taglist_squares_unsel = theme_assets.taglist_squares_unsel( taglist_square_size, theme.fg_normal ) theme.menu_height = dpi(15) theme.menu_width = dpi(100) theme.systray_icon_spacing = 2 -- Define the image to load theme.titlebar_ontop_button_normal_inactive = themes_path.."reno98/titlebar/ontop_normal_inactive.png" theme.titlebar_ontop_button_focus_inactive = themes_path.."reno98/titlebar/ontop_focus_inactive.png" theme.titlebar_ontop_button_normal_active = themes_path.."reno98/titlebar/ontop_normal_active.png" theme.titlebar_ontop_button_focus_active = themes_path.."reno98/titlebar/ontop_focus_active.png" theme.titlebar_sticky_button_normal_inactive = themes_path.."reno98/titlebar/sticky_normal_inactive.png" theme.titlebar_sticky_button_focus_inactive = themes_path.."reno98/titlebar/sticky_focus_inactive.png" theme.titlebar_sticky_button_normal_active = themes_path.."reno98/titlebar/sticky_normal_active.png" theme.titlebar_sticky_button_focus_active = themes_path.."reno98/titlebar/sticky_focus_active.png" theme.titlebar_floating_button_normal_inactive = themes_path.."reno98/titlebar/floating_normal_inactive.png" theme.titlebar_floating_button_focus_inactive = themes_path.."reno98/titlebar/floating_focus_inactive.png" theme.titlebar_floating_button_normal_active = themes_path.."reno98/titlebar/floating_normal_active.png" theme.titlebar_floating_button_focus_active = themes_path.."reno98/titlebar/floating_focus_active.png" theme = theme_assets.recolor_titlebar(theme,theme.fg_normal,"normal") theme = theme_assets.recolor_titlebar(theme,theme.fg_focus,"focus") theme.titlebar_close_button_normal = themes_path.."reno98/titlebar/close_normal.png" theme.titlebar_close_button_focus = themes_path.."reno98/titlebar/close_focus.png" theme.titlebar_minimize_button_normal = themes_path.."reno98/titlebar/minimize_normal.png" theme.titlebar_minimize_button_focus = themes_path.."reno98/titlebar/minimize_focus.png" theme.titlebar_maximized_button_normal_inactive = themes_path.."reno98/titlebar/maximized_normal_inactive.png" theme.titlebar_maximized_button_focus_inactive = themes_path.."reno98/titlebar/maximized_focus_inactive.png" theme.titlebar_maximized_button_normal_active = themes_path.."reno98/titlebar/maximized_normal_active.png" theme.titlebar_maximized_button_focus_active = themes_path.."reno98/titlebar/maximized_focus_active.png" theme.wallpaper = themes_path.."reno98/background.png" -- You can use your own layout icons like this: theme.layout_fairh = themes_path.."reno98/layouts/fairhw.png" theme.layout_fairv = themes_path.."reno98/layouts/fairvw.png" theme.layout_floating = themes_path.."reno98/layouts/floatingw.png" theme.layout_magnifier = themes_path.."reno98/layouts/magnifierw.png" theme.layout_max = themes_path.."reno98/layouts/maxw.png" theme.layout_fullscreen = themes_path.."reno98/layouts/fullscreenw.png" theme.layout_tilebottom = themes_path.."reno98/layouts/tilebottomw.png" theme.layout_tileleft = themes_path.."reno98/layouts/tileleftw.png" theme.layout_tile = themes_path.."reno98/layouts/tilew.png" theme.layout_tiletop = themes_path.."reno98/layouts/tiletopw.png" theme.layout_spiral = themes_path.."reno98/layouts/spiralw.png" theme.layout_dwindle = themes_path.."reno98/layouts/dwindlew.png" theme.layout_cornernw = themes_path.."reno98/layouts/cornernww.png" theme.layout_cornerne = themes_path.."reno98/layouts/cornernew.png" theme.layout_cornersw = themes_path.."reno98/layouts/cornersww.png" theme.layout_cornerse = themes_path.."reno98/layouts/cornersew.png" -- Generate Awesome icon: theme.awesome_icon = theme_assets.awesome_icon( theme.menu_height, theme.bg_focus, theme.fg_focus ) theme.bgimage_outset = function(context, cr, width, height,...) local light = gears.color(theme.bg_highlight_light) local shadow = gears.color(theme.bg_highlight_shadow) local outline = gears.color(theme.bg_highlight_outline) -- Background -- Light cr:set_source(light) cr.line_width=2 cr:move_to(0,0) cr:line_to(width,0) cr:move_to(0,0) cr:line_to(0,height) cr:stroke() -- Outline cr:set_source(outline) cr:move_to(width-1,height-1) cr:line_to(width-1,1) cr:move_to(width-2,height-1) cr:line_to(1,height-1) cr:stroke() -- Shadow cr:set_source(shadow) cr:move_to(width,height) cr:line_to(width,0) cr:move_to(width-1,height) cr:line_to(0,height) cr:stroke() end theme.bgimage_inset = function(context,cr,width,height) local light = gears.color(theme.bg_highlight_light) local shadow = gears.color(theme.bg_highlight_shadow) local outline = gears.color(theme.bg_highlight_outline) -- Light cr:set_source(light) cr.line_width=2 cr:move_to(width,height) cr:line_to(width,0) cr:move_to(width,height) cr:line_to(0,height) cr:stroke() -- Shadow cr:set_source(shadow) cr.line_width=2 cr:move_to(0,0) cr:line_to(0,height) cr:move_to(0,0) cr:line_to(width,0) cr:stroke() end theme.bgimage_highlight = function(context,cr,width,height) local light = gears.color(theme.bg_highlight_light) local shadow = gears.color(theme.bg_highlight_shadow) local outline = gears.color(theme.bg_highlight_outline) -- Light cr:set_source(light) cr.line_width=2 cr:move_to(1,1) cr:line_to(1,height-2) cr:move_to(1,1) cr:line_to(width-2,1) cr:stroke() -- Outline cr:set_source(outline) cr.line_width=2 cr:rectangle(0,0,width-1,height-1) cr:stroke() -- Light (bottom) cr:set_source(light) cr:move_to(width,height) cr:line_to(width,0) cr:move_to(width,height) cr:line_to(0,height) cr:stroke() end -- A complex piece of "code" to simulate borders. theme.titlebar_bgimage_top = function(context, cr, width, height,...) local light = gears.color(theme.bg_highlight_light) local shadow = gears.color(theme.bg_highlight_shadow) local outline = gears.color(theme.bg_highlight_outline) cr.line_width = 2 cr:set_source(gears.color(theme.bg_normal)) cr:rectangle(2,2,width-5,height-3) cr:stroke() -- Light cr:set_source(light) cr.line_width=2 cr:move_to(0,0) cr:line_to(width,0) cr:move_to(0,0) cr:line_to(0,height) cr:stroke() -- Outline cr:set_source(outline) cr:move_to(width-1,height) cr:line_to(width-1,1) cr:stroke() -- Shadow cr:set_source(shadow) cr:move_to(width,height) cr:line_to(width,0) cr:stroke() end theme.titlebar_bgimage_bottom = function(context, cr, width, height, ...) local light = gears.color(theme.bg_highlight_light) local shadow = gears.color(theme.bg_highlight_shadow) local outline = gears.color(theme.bg_highlight_outline) -- Background -- Light cr:set_source(light) cr.line_width=2 cr:move_to(0,0) cr:line_to(0,height) cr:stroke() -- Outline cr:set_source(outline) cr:move_to(width-1,height-1) cr:line_to(width-1,0) cr:move_to(width-2,height-1) cr:line_to(1,height-1) cr:stroke() -- Shadow cr:set_source(shadow) cr:move_to(width,height) cr:line_to(width,0) cr:move_to(width-1,height) cr:line_to(0,height) cr:stroke() end theme.titlebar_bgimage_left = function(context, cr, width, height,...) local light = gears.color(theme.bg_highlight_light) -- Light cr:set_source(light) cr.line_width=2 cr:move_to(0,0) cr:line_to(0,height) cr:stroke() end theme.titlebar_bgimage_right = function(context, cr, width, height,...) local shadow = gears.color(theme.bg_highlight_shadow) local outline = gears.color(theme.bg_highlight_outline) cr.line_width=2 -- Outline cr:set_source(outline) cr:move_to(width-1,height) cr:line_to(width-1,0) cr:stroke() -- Shadow cr:set_source(shadow) cr:move_to(width,height) cr:line_to(width,0) cr:stroke() end ---theme.bgimage_outset -- Define the icon theme for application icons. If not set then the icons -- from /usr/share/icons and /usr/share/icons/hicolor will be used. theme.icon_theme = "Chicago95" -- Default icon for clients -- This one has to be baked as a surface to avoid memory leaks theme.icon_default = gears.surface(themes_path.."reno98/icons/unknown-app.png") theme.widgets = { default = { container = { bgimage = theme.bgimage_highlight, shape = function(cr,width,height) return require("gears").shape.rounded_rect(cr,width,height,0) end }, button = { bgimage = theme.bgimage_outset, shape = function(cr,width,height) return require("gears").shape.rounded_rect(cr,width,height,0) end, onpress = function(widget) widget:set_bg(theme.bg_focus) widget:set_bgimage(theme.bgimage_inset) end, onrelease = function(widget) widget:set_bg(theme.bg_normal) widget:set_bgimage(theme.bgimage_outset) end }, popup = { bgimage = theme.bgimage_outset, shape = function(cr,width,height) return gears.shape.rounded_rect(cr,width,height,0) end, }, titlebar = { bgimage = theme.bgimage_outset, --margins = 5, left = 4, right = 5, top = 4, bottom = 3, spacing = 1 }, wibar = { height = 26, width = 60, margins = 3, shape = function(cr,width,height) return gears.shape.rounded_rect(cr,width,height,0) end, bgimage = theme.bgimage_outset, stretch = true } }, clock = { container = { bgimage = function() end, margins = 0 } }, root_menu = { base = { spacing = 2 } }, client_menu = { base = { spacing = 2 } }, taglist = { base = { spacing = 2 }, button = { bgimage_focus = theme.bgimage_inset, bgimage_normal = theme.bgimage_outset, margins = 2 }, container = { margins = 3 } }, subpanel = { container = { bgimage = theme.bgimage_inset, bg = theme.bgimage_normal, margins = 2 } }, dismal = { container = { bg = theme.bg_focus }, button = { height = 34 } }, tasklist = { button = { width = 160, height = 50, bgimage_focus = theme.bgimage_inset, bgimage_normal = theme.bgimage_outset, bgimage_urgent = theme.bgimage_outset, bgimage_minimize = theme.bgimage_outset } }, menu = { base = { -- Enables the ability to just drag the mouse on an entry to open it menu_slide = true, spacing = 2 }, button = { forced_height = 20, forced_width = 160 }, }, systray = { container = { bgimage = function() end, margins = 0 } }, client_buttons = { button = { forced_width = 20, forced_height = 20 }, base = { spacing = 2 } }, titlebar = { titlebar_top = { bgimage_normal = theme.titlebar_bgimage_top, bgimage_focus = theme.titlebar_bgimage_top, bg_focus = theme.titlebar_bg_focus, bg_normal = theme.titlebar_bg_normal, fg_focus = "#FAFAFA", fg_normal = theme.fg_normal, size = 22, }, titlebar_left = { bgimage_normal = theme.titlebar_bgimage_left, bgimage_focus = theme.titlebar_bgimage_left, size = 4, bg_focus = theme.bg_normal }, titlebar_right = { bgimage_normal = theme.titlebar_bgimage_right, bgimage_focus = theme.titlebar_bgimage_right, size = 4, bg_focus = theme.bg_normal }, titlebar_bottom = { bgimage_normal = theme.titlebar_bgimage_bottom, bgimage_focus = theme.titlebar_bgimage_bottom, size = 4, bg_focus = theme.bg_normal } } } return theme -- vim: filetype=lua:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:textwidth=80