Reno is the second iteration of the AWMTK-powered AwesomeWM config.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

583 lines
18 KiB

-- Reno98 - a retro replica of a very recognizable theme
--[[
Reno98 - A theme for Reno desktop
Written in 2022 by Yessiest (yessiest@memeware.net)
To the extent possible under law, the author(s) have dedicated all copyright and related and neighboring rights to this software to the public domain worldwide. This software is distributed without any warranty.
You should have received a copy of the CC0 Public Domain Dedication along with this software. If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
--]]
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 = "#dadada"
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.window_rounding = 0
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"
theme.wallpapers_icon = themes_path.."reno98/icons/wallpapers.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.hotkeys_border_width = 3
theme.hotkeys_border_color = theme.bg_focus
theme.hotkeys_modifiers_fg = theme.fg_normal
theme.hotkeys_label_fg = theme.fg_normal
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"
-- Icons
local icons = {
"battery-caution-charging-symbolic",
"battery-empty-charging-symbolic",
"battery-full-charging-symbolic",
"battery-good-charging-symbolic",
"battery-low-charging-symbolic"
}
for k,v in pairs(icons) do
theme[v] = themes_path.."reno98/icons/"..v..".png"
theme[v:gsub("-charging","")] = themes_path.."reno98/icons/"..v:gsub("-charging","")..".png"
end
theme["battery-full-charged-symbolic"] = themes_path.."reno98/icons/battery-full-charged-symbolic.png"
theme["battery-missing-symbolic"] = themes_path.."reno98/icons/battery-missing-symbolic.png"
theme["ac-adapter-symbolic"] = themes_path.."reno98/icons/ac-adapter-symbolic.png"
theme["backlight-symbolic"] = themes_path.."reno98/icons/backlight-symbolic.png"
theme["notifications-area-symbolic"] = themes_path.."reno98/icons/notifications-area-symbolic.png"
theme["mpc-previous-symbolic"] = themes_path.."reno98/icons/mpc-previous-symbolic.png"
theme["mpc-play-symbolic"] = themes_path.."reno98/icons/mpc-play-symbolic.png"
theme["mpc-pause-symbolic"] = themes_path.."reno98/icons/mpc-pause-symbolic.png"
theme["mpc-next-symbolic"] = themes_path.."reno98/icons/mpc-next-symbolic.png"
theme["action-poweroff-symbolic"] = themes_path.."reno98/icons/action-poweroff-symbolic.png"
theme["action-lock-screen-symbolic"] = themes_path.."reno98/icons/action-lock-screen-symbolic.png"
theme["action-suspend-symbolic"] = themes_path.."reno98/icons/action-suspend-symbolic.png"
-- Notification popups settings
theme.notification_width = 240
theme.notification_height = 60
-- 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 = {
-- {{{ Widget base
default = {
container = {
bgimage_normal = theme.bgimage_highlight,
shape = function(cr,width,height)
return require("gears").shape.rounded_rect(cr,width,height,0)
end,
bgimage_highlight = theme.bgimage_inset
},
button = {
bgimage_normal = 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_normal = theme.bgimage_outset,
shape = function(cr,width,height)
return gears.shape.rounded_rect(cr,width,height,0)
end,
},
titlebar = {
hidden_size = 2,
bgimage_normal = 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_normal = theme.bgimage_outset,
stretch = true
},
slider = {
shape = function(cr,width,height)
return gears.shape.rounded_rect(cr,width,height,0)
end,
height = 20,
width = 140,
handle_width = 8,
handle_border_color = theme.bg_focus,
handle_border_width = 2,
bar_height = 6
}
},
-- }}}
-- {{{ Menus
generic_menu = {
base = {
spacing = 2,
menu_slide = true
},
button = {
forced_height = 20,
forced_width = 160
},
},
--}}}
-- {{{ Bars/Panels/Menu popups
generic_composite_widget = {
base = {
spacing = 2
}
},
-- }}}
-- {{{ Status panel widgets
generic_status_widget = {
container = {
bgimage_normal = function() end,
margins = 0
},
button = {
margins = 0,
onpress = function() end,
onrelease = function() end,
bgimage_normal = function() end
}
},
-- }}}
-- {{{ Various button lists
generic_button_list = {
button = {
forced_width = 20,
forced_height = 20
},
base = {
spacing = 2
}
},
-- }}}
-- {{{ All widgets that fit into a single line
generic_oneline_widget = {
container = {
bgimage_normal = theme.bgimage_inset
}
},
-- }}}
-- {{{ All kinds of widget popups
generic_popup = {
button = {
width = 180,
height = 40
},
article = {
icon_size = 30
},
},
-- }}}
popuptitle = {
container = {
bg_normal = {
type = "linear",
from = { 0, 0 },
to = { 90, 0 },
stops = { {0, "#040582"}, {1, "#0F7FCD"} }
},
-- awesomewm: yo pass me that pango markup
-- pango: you better not make unintuitive cryptic shit
-- awesomewm: *attach foreground setting to drawable container*
fg_normal = "#FAFAFA"
}
},
soundclown = {
--[[ --Uncomment to leetify that MPC
container = {
bg_normal = "#0c0c0c",
fg_normal = "#00FF00"
},
]]
base = {
width = 140
},
},
subpanel = {
container = {
bgimage_normal = theme.bgimage_inset,
bg_normal = theme.bg_normal,
margins = 2
}
},
taglist = {
base = {
spacing = 2,
layout = require("wibox").layout.flex.horizontal
},
button = {
bgimage_focus = theme.bgimage_inset,
bgimage_normal = theme.bgimage_outset,
},
container = {
margins = 3
}
},
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
}
},
lockscreen = {
popup = {
margins = 0
}
},
lockbar = {
base = {
height = 22
}
},
lockpanel = {
base = {
icon_height = 60,
icon_width = 60,
panel_height = 300,
panel_width = 200,
panel_bgimage = theme.bgimage_outset
}
},
lock_clock = {
textbox = {
font = "Terminus 20"
}
},
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