533 lines
17 KiB
Lua
533 lines
17 KiB
Lua
-- 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 = "Ubuntu 8"
|
|
|
|
theme.bg_normal = "#19191D"
|
|
theme.bg_focus = "#3E3E3E"
|
|
theme.bg_urgent = "#2E2E2E"
|
|
theme.bg_minimize = "#2E2E2E"
|
|
theme.bg_highlight = "#45433D"
|
|
theme.bg_systray = theme.bg_normal
|
|
|
|
theme.fg_normal = "#e1dec7"
|
|
theme.fg_focus = "#e1dec7"
|
|
theme.fg_urgent = "#e1dec7"
|
|
theme.fg_minimize = "#e1dec7"
|
|
|
|
theme.window_rounding = 5
|
|
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"
|
|
|
|
local bsize = 50
|
|
|
|
theme.button_bg_focus = {
|
|
type = "radial",
|
|
from = {bsize/2,-0.5*bsize,bsize/10},
|
|
to = {bsize/2,-0.5*bsize,bsize*2},
|
|
stops = {
|
|
{ 0 , "#FFFFFFBB"},
|
|
{ 0.45, "#DF744E99"},
|
|
{ 0.55, "#DF744E99"},
|
|
{ 1, "#FFFFFF44"}
|
|
}
|
|
}
|
|
|
|
theme.button_bg_normal = {
|
|
type = "radial",
|
|
from = {bsize/2,-0.5*bsize,bsize/10},
|
|
to = {bsize/2,-0.2*bsize,bsize*1.5},
|
|
stops = {
|
|
{ 0 , "#FFFFFFFF"},
|
|
{ 0.5, "#33333333"},
|
|
{ 1, "#FFFFFF22"}
|
|
}
|
|
}
|
|
|
|
theme.button_shape = function(cr,width,height)
|
|
return require("gears").shape.rounded_rect(cr,width,height,2)
|
|
end
|
|
|
|
|
|
theme.bar_bg_focus = {
|
|
type = "linear",
|
|
from = { 0, 20 },
|
|
to = { 0, 0 },
|
|
stops = { { 0, "#3C3B37"} , { 1 , "#59574E"} }
|
|
}
|
|
|
|
theme.bar_bg_normal = {
|
|
type = "linear",
|
|
from = { 0, 20 },
|
|
to = { 0, 0 },
|
|
stops = { { 0, "#3C3B37"} , { 1 , "#41403D"} }
|
|
}
|
|
|
|
theme.bar_bg_inverted_normal = {
|
|
type = "linear",
|
|
from = { 0, 20 },
|
|
to = { 0, 0 },
|
|
stops = { { 0 , "#41403D"}, { 1, "#3C3B37"} }
|
|
}
|
|
|
|
theme.bar_bg_inverted_focus = {
|
|
type = "linear",
|
|
from = { 0, 20 },
|
|
to = { 0, 0 },
|
|
stops = { { 0 , "#59574E"}, { 1, "#3C3B37"} }
|
|
}
|
|
|
|
theme.bar_border_color = {
|
|
type = "radial",
|
|
from = {bsize/2,bsize/(-3),bsize/8},
|
|
to = {bsize/2,bsize/(-5),bsize*1},
|
|
stops = {
|
|
{ 0 , "#FFFFFF66"},
|
|
{ 1, "#43434366"},
|
|
}
|
|
}
|
|
|
|
theme.titlebar_bg_focus = theme.bar_bg_focus
|
|
theme.titlebar_bg_normal = theme.bar_bg_normal
|
|
|
|
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.."unity/titlebar/ontop_normal_inactive.png"
|
|
theme.titlebar_ontop_button_focus_inactive = themes_path.."unity/titlebar/ontop_focus_inactive.png"
|
|
theme.titlebar_ontop_button_normal_active = themes_path.."unity/titlebar/ontop_normal_active.png"
|
|
theme.titlebar_ontop_button_focus_active = themes_path.."unity/titlebar/ontop_focus_active.png"
|
|
|
|
theme.titlebar_sticky_button_normal_inactive = themes_path.."unity/titlebar/sticky_normal_inactive.png"
|
|
theme.titlebar_sticky_button_focus_inactive = themes_path.."unity/titlebar/sticky_focus_inactive.png"
|
|
theme.titlebar_sticky_button_normal_active = themes_path.."unity/titlebar/sticky_normal_active.png"
|
|
theme.titlebar_sticky_button_focus_active = themes_path.."unity/titlebar/sticky_focus_active.png"
|
|
|
|
theme.titlebar_floating_button_normal_inactive = themes_path.."unity/titlebar/floating_normal_inactive.png"
|
|
theme.titlebar_floating_button_focus_inactive = themes_path.."unity/titlebar/floating_focus_inactive.png"
|
|
theme.titlebar_floating_button_normal_active = themes_path.."unity/titlebar/floating_normal_active.png"
|
|
theme.titlebar_floating_button_focus_active = themes_path.."unity/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.."unity/titlebar/close_normal.png"
|
|
theme.titlebar_close_button_focus = themes_path.."unity/titlebar/close_focus.png"
|
|
|
|
theme.titlebar_minimize_button_normal = themes_path.."unity/titlebar/minimize_normal.png"
|
|
theme.titlebar_minimize_button_focus = themes_path.."unity/titlebar/minimize_focus.png"
|
|
|
|
theme.titlebar_maximized_button_normal_inactive = themes_path.."unity/titlebar/maximized_normal_inactive.png"
|
|
theme.titlebar_maximized_button_focus_inactive = themes_path.."unity/titlebar/maximized_focus_inactive.png"
|
|
theme.titlebar_maximized_button_normal_active = themes_path.."unity/titlebar/maximized_normal_active.png"
|
|
theme.titlebar_maximized_button_focus_active = themes_path.."unity/titlebar/maximized_focus_active.png"
|
|
|
|
theme.wallpaper = themes_path.."unity/background.png"
|
|
theme.wallpapers_icon = themes_path.."unity/icons/wallpapers.png"
|
|
|
|
-- You can use your own layout icons like this:
|
|
theme.layout_fairh = themes_path.."unity/layouts/fairhw.png"
|
|
theme.layout_fairv = themes_path.."unity/layouts/fairvw.png"
|
|
theme.layout_floating = themes_path.."unity/layouts/floatingw.png"
|
|
theme.layout_magnifier = themes_path.."unity/layouts/magnifierw.png"
|
|
theme.layout_max = themes_path.."unity/layouts/maxw.png"
|
|
theme.layout_fullscreen = themes_path.."unity/layouts/fullscreenw.png"
|
|
theme.layout_tilebottom = themes_path.."unity/layouts/tilebottomw.png"
|
|
theme.layout_tileleft = themes_path.."unity/layouts/tileleftw.png"
|
|
theme.layout_tile = themes_path.."unity/layouts/tilew.png"
|
|
theme.layout_tiletop = themes_path.."unity/layouts/tiletopw.png"
|
|
theme.layout_spiral = themes_path.."unity/layouts/spiralw.png"
|
|
theme.layout_dwindle = themes_path.."unity/layouts/dwindlew.png"
|
|
theme.layout_cornernw = themes_path.."unity/layouts/cornernww.png"
|
|
theme.layout_cornerne = themes_path.."unity/layouts/cornernew.png"
|
|
theme.layout_cornersw = themes_path.."unity/layouts/cornersww.png"
|
|
theme.layout_cornerse = themes_path.."unity/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
|
|
-- 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.."unity/icons/"..v..".png"
|
|
theme[v:gsub("-charging","")] = themes_path.."unity/icons/"..v:gsub("-charging","")..".png"
|
|
end
|
|
theme["battery-full-charged-symbolic"] = themes_path.."unity/icons/battery-full-charged-symbolic.png"
|
|
theme["battery-missing-symbolic"] = themes_path.."unity/icons/battery-missing-symbolic.png"
|
|
theme["ac-adapter-symbolic"] = themes_path.."unity/icons/ac-adapter-symbolic.png"
|
|
theme["backlight-symbolic"] = themes_path.."unity/icons/backlight-symbolic.png"
|
|
theme["notifications-area-symbolic"] = themes_path.."unity/icons/notifications-area-symbolic.png"
|
|
|
|
theme["mpc-previous-symbolic"] = themes_path.."unity/icons/mpc-previous-symbolic.png"
|
|
|
|
theme["mpc-play-symbolic"] = themes_path.."unity/icons/mpc-play-symbolic.png"
|
|
theme["mpc-pause-symbolic"] = themes_path.."unity/icons/mpc-pause-symbolic.png"
|
|
theme["mpc-next-symbolic"] = themes_path.."unity/icons/mpc-next-symbolic.png"
|
|
|
|
theme["action-poweroff-symbolic"] = themes_path.."unity/icons/action-poweroff-symbolic.png"
|
|
theme["action-lock-screen-symbolic"] = themes_path.."unity/icons/action-lock-screen-symbolic.png"
|
|
theme["action-suspend-symbolic"] = themes_path.."unity/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.."unity/icons/unknown-app.png")
|
|
|
|
theme.widgets = {
|
|
-- {{{ Widget base
|
|
default = {
|
|
container = {
|
|
shape = function(cr,width,height)
|
|
return require("gears").shape.rounded_rect(cr,width,height,2)
|
|
end,
|
|
bgimage_highlight = theme.bgimage_inset
|
|
},
|
|
button = {
|
|
shape = theme.button_shape,
|
|
onpress = function(widget)
|
|
widget:set_bg(theme.bg_focus)
|
|
end,
|
|
onrelease = function(widget)
|
|
widget:set_bg(theme.bg_normal)
|
|
end
|
|
},
|
|
popup = {
|
|
shape = function(cr,width,height)
|
|
return gears.shape.rounded_rect(cr,width,height,4)
|
|
end,
|
|
},
|
|
titlebar = {
|
|
top = 2,
|
|
bottom = 2,
|
|
left = 3,
|
|
right = 3
|
|
},
|
|
wibar = {
|
|
shape = function(cr,width,height)
|
|
return gears.shape.rounded_rect(cr,width,height,0)
|
|
end,
|
|
height = 26,
|
|
width = 60,
|
|
margins = 3,
|
|
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 = {
|
|
bg_normal = theme.bg_highlight,
|
|
onpress = function(widget)
|
|
widget:set_bg(theme.bg_focus)
|
|
end,
|
|
onrelease = function(widget)
|
|
widget:set_bg(theme.bg_highlight)
|
|
end,
|
|
forced_height = 20,
|
|
forced_width = 160
|
|
},
|
|
},
|
|
-- }}}
|
|
-- {{{ Popup activating icons
|
|
generic_iconified_widget = {
|
|
button = {
|
|
margins = 2,
|
|
bg_normal = "#00000000",
|
|
onpress = function(widget)
|
|
widget:set_bg(theme.bg_normal)
|
|
end,
|
|
onrelease = function(widget)
|
|
widget:set_bg("#00000000")
|
|
end
|
|
}
|
|
},
|
|
-- }}}
|
|
-- {{{ Bars/Panels/Menu popups
|
|
generic_composite_widget = {
|
|
base = {
|
|
spacing = 2
|
|
}
|
|
},
|
|
-- }}}
|
|
-- {{{ Status panel widgets
|
|
generic_status_widget = {
|
|
container = {
|
|
margins = 2,
|
|
bg_normal = "#00000000",
|
|
},
|
|
button = {
|
|
margins = 2,
|
|
bg_normal = "#00000000",
|
|
onpress = function() end,
|
|
onrelease = function() end,
|
|
}
|
|
},
|
|
-- }}}
|
|
-- {{{ Various button lists
|
|
generic_button_list = {
|
|
button = {
|
|
bg_normal = theme.bg_highlight,
|
|
onpress = function(widget)
|
|
widget:set_bg(theme.bg_focus)
|
|
end,
|
|
onrelease = function(widget)
|
|
widget:set_bg(theme.bg_highlight)
|
|
end,
|
|
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
|
|
},
|
|
button = {
|
|
margins = 2,
|
|
onpress = function(widget)
|
|
widget:set_bg(theme.bg_normal)
|
|
end,
|
|
onrelease = function(widget)
|
|
widget:set_bg("#00000000")
|
|
end,
|
|
bg_normal = "#00000000"
|
|
}
|
|
},
|
|
-- }}}
|
|
-- {{{ All kinds of widget popups
|
|
generic_popup = {
|
|
button = {
|
|
width = 180,
|
|
height = 40
|
|
},
|
|
article = {
|
|
icon_size = 30
|
|
},
|
|
},
|
|
-- }}}
|
|
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.bar_bg_inverted_normal,
|
|
margins = 0,
|
|
shape = function(cr,width,height)
|
|
return gears.shape.rounded_rect(cr,width,height,8)
|
|
end
|
|
}
|
|
},
|
|
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,
|
|
shape_focus = theme.button_shape,
|
|
shape_normal = theme.button_shape,
|
|
shape_urgent = theme.button_shape,
|
|
shape_minimize = theme.button_shape,
|
|
bg_normal = theme.button_bg_normal,
|
|
bg_focus = theme.button_bg_focus,
|
|
bg_urgent = theme.bg_urgent,
|
|
bg_minimize = theme.bg_minimize,
|
|
shape_border_color_normal = theme.bar_border_color,
|
|
shape_border_color_focus = theme.bar_border_color,
|
|
shape_border_color_urgent = theme.bar_border_color,
|
|
shape_border_color_minimize = theme.bar_border_color,
|
|
shape_border_width_normal = dpi(1),
|
|
shape_border_width_focus = dpi(1),
|
|
shape_border_width_urgent = dpi(1),
|
|
shape_border_width_minimize = dpi(1),
|
|
}
|
|
},
|
|
launcher = {
|
|
button = {
|
|
margins = 5,
|
|
bg_normal = theme.button_bg_normal,
|
|
bg_focus = theme.button_bg_focus,
|
|
shape_border_width = dpi(1),
|
|
shape_border_color = theme.bar_border_color,
|
|
onpress = function(widget)
|
|
widget:set_bg(theme.button_bg_focus)
|
|
end,
|
|
onrelease = function(widget)
|
|
widget:set_bg(theme.button_bg_normal)
|
|
end
|
|
}
|
|
},
|
|
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
|
|
},
|
|
container = {
|
|
shape = function(cr,width,height)
|
|
return gears.shape.rounded_rect(cr,width,height,8)
|
|
end,
|
|
shape_border_color = theme.bg_highlight,
|
|
shape_border_width = dpi(2)
|
|
}
|
|
},
|
|
systray = {
|
|
container = {
|
|
margins = 2,
|
|
shape = function(cr,width,height)
|
|
return gears.shape.rounded_rect(cr,width,height,4)
|
|
end,
|
|
shape_border_color = theme.bg_normal,
|
|
shape_border_width = dpi(2)
|
|
}
|
|
},
|
|
lock_clock = {
|
|
textbox = {
|
|
font = "Ubuntu Mono 20"
|
|
}
|
|
},
|
|
titlebar = {
|
|
titlebar_top = {
|
|
bg_focus = theme.titlebar_bg_focus,
|
|
bg_normal = theme.titlebar_bg_normal,
|
|
fg_focus = "#FAFAFA",
|
|
fg_normal = theme.fg_normal,
|
|
size = 22,
|
|
spacing = 1
|
|
},
|
|
titlebar_left = {
|
|
size = 2,
|
|
bg_focus = "#3C3B37",
|
|
bg_normal = "#3C3B37",
|
|
},
|
|
titlebar_right = {
|
|
size = 2,
|
|
bg_focus = "#3C3B37",
|
|
bg_normal = "#3C3B37",
|
|
},
|
|
titlebar_bottom = {
|
|
size = 2,
|
|
bg_focus = "#3C3B37",
|
|
bg_normal = "#3C3B37",
|
|
}
|
|
},
|
|
wibar = {
|
|
wibar_top = {
|
|
bg_normal = theme.bar_bg_normal,
|
|
fg_normal = theme.fg_normal,
|
|
size = 22
|
|
},
|
|
wibar_left = {
|
|
bg_normal = "#0D0D0966",
|
|
border_width = dpi(1),
|
|
border_color = "#26262666"
|
|
}
|
|
}
|
|
}
|
|
|
|
return theme
|
|
|
|
-- vim: filetype=lua:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:textwidth=80
|