local gears = require('gears') local beautiful = require('beautiful') local filesystem = gears.filesystem local dpi = beautiful.xresources.apply_dpi local gtk_variable = beautiful.gtk.get_theme_variables local theme_dir = filesystem.get_configuration_dir() .. '/theme' local titlebar_theme = 'stoplight' local titlebar_icon_path = theme_dir .. '/icons/titlebar/' .. titlebar_theme .. '/' local tip = titlebar_icon_path -- Create theme table local theme = {} -- Font theme.font = 'Inter Regular 10' theme.font_bold = 'Inter Bold 10' -- Menu icon theme theme.icon_theme = 'Tela-blue-dark' local awesome_overrides = function(theme) theme.dir = theme_dir theme.icons = theme_dir .. '/icons/' -- Default wallpaper path theme.wallpaper = theme.dir .. '/wallpapers/morning-wallpaper.jpg' -- Default font theme.font = 'Inter Regular 10' -- Foreground theme.fg_normal = '#ffffffde' theme.fg_focus = '#e4e4e4' theme.fg_urgent = '#CC9393' theme.bg_normal = theme.background theme.bg_focus = '#5a5a5a' theme.bg_urgent = '#3F3F3F' -- System tray theme.bg_systray = theme.background theme.systray_icon_spacing = dpi(16) -- Titlebar theme.titlebar_size = dpi(34) theme.titlebar_bg_focus = gtk_variable().bg_color:sub(1,7) .. '66' theme.titlebar_bg_normal = gtk_variable().base_color:sub(1,7) .. '66' theme.titlebar_fg_focus = gtk_variable().fg_color theme.titlebar_fg_normal = gtk_variable().fg_color -- Close Button theme.titlebar_close_button_normal = tip .. 'close_normal.svg' theme.titlebar_close_button_focus = tip .. 'close_focus.svg' -- Minimize Button theme.titlebar_minimize_button_normal = tip .. 'minimize_normal.svg' theme.titlebar_minimize_button_focus = tip .. 'minimize_focus.svg' -- Ontop Button theme.titlebar_ontop_button_normal_inactive = tip .. 'ontop_normal_inactive.svg' theme.titlebar_ontop_button_focus_inactive = tip .. 'ontop_focus_inactive.svg' theme.titlebar_ontop_button_normal_active = tip .. 'ontop_normal_active.svg' theme.titlebar_ontop_button_focus_active = tip .. 'ontop_focus_active.svg' -- Sticky Button theme.titlebar_sticky_button_normal_inactive = tip .. 'sticky_normal_inactive.svg' theme.titlebar_sticky_button_focus_inactive = tip .. 'sticky_focus_inactive.svg' theme.titlebar_sticky_button_normal_active = tip .. 'sticky_normal_active.svg' theme.titlebar_sticky_button_focus_active = tip .. 'sticky_focus_active.svg' -- Floating Button theme.titlebar_floating_button_normal_inactive = tip .. 'floating_normal_inactive.svg' theme.titlebar_floating_button_focus_inactive = tip .. 'floating_focus_inactive.svg' theme.titlebar_floating_button_normal_active = tip .. 'floating_normal_active.svg' theme.titlebar_floating_button_focus_active = tip .. 'floating_focus_active.svg' -- Maximized Button theme.titlebar_maximized_button_normal_inactive = tip .. 'maximized_normal_inactive.svg' theme.titlebar_maximized_button_focus_inactive = tip .. 'maximized_focus_inactive.svg' theme.titlebar_maximized_button_normal_active = tip .. 'maximized_normal_active.svg' theme.titlebar_maximized_button_focus_active = tip .. 'maximized_focus_active.svg' -- Hovered Close Button theme.titlebar_close_button_normal_hover = tip .. 'close_normal_hover.svg' theme.titlebar_close_button_focus_hover = tip .. 'close_focus_hover.svg' -- Hovered Minimize Buttin theme.titlebar_minimize_button_normal_hover = tip .. 'minimize_normal_hover.svg' theme.titlebar_minimize_button_focus_hover = tip .. 'minimize_focus_hover.svg' -- Hovered Ontop Button theme.titlebar_ontop_button_normal_inactive_hover = tip .. 'ontop_normal_inactive_hover.svg' theme.titlebar_ontop_button_focus_inactive_hover = tip .. 'ontop_focus_inactive_hover.svg' theme.titlebar_ontop_button_normal_active_hover = tip .. 'ontop_normal_active_hover.svg' theme.titlebar_ontop_button_focus_active_hover = tip .. 'ontop_focus_active_hover.svg' -- Hovered Sticky Button theme.titlebar_sticky_button_normal_inactive_hover = tip .. 'sticky_normal_inactive_hover.svg' theme.titlebar_sticky_button_focus_inactive_hover = tip .. 'sticky_focus_inactive_hover.svg' theme.titlebar_sticky_button_normal_active_hover = tip .. 'sticky_normal_active_hover.svg' theme.titlebar_sticky_button_focus_active_hover = tip .. 'sticky_focus_active_hover.svg' -- Hovered Floating Button theme.titlebar_floating_button_normal_inactive_hover = tip .. 'floating_normal_inactive_hover.svg' theme.titlebar_floating_button_focus_inactive_hover = tip .. 'floating_focus_inactive_hover.svg' theme.titlebar_floating_button_normal_active_hover = tip .. 'floating_normal_active_hover.svg' theme.titlebar_floating_button_focus_active_hover = tip .. 'floating_focus_active_hover.svg' -- Hovered Maximized Button theme.titlebar_maximized_button_normal_inactive_hover = tip .. 'maximized_normal_inactive_hover.svg' theme.titlebar_maximized_button_focus_inactive_hover = tip .. 'maximized_focus_inactive_hover.svg' theme.titlebar_maximized_button_normal_active_hover = tip .. 'maximized_normal_active_hover.svg' theme.titlebar_maximized_button_focus_active_hover = tip .. 'maximized_focus_active_hover.svg' -- UI Groups theme.groups_title_bg = '#ffffff' .. '15' theme.groups_bg = '#ffffff' .. '10' theme.groups_radius = dpi(9) -- UI events theme.leave_event = transparent theme.enter_event = '#ffffff' .. '10' theme.press_event = '#ffffff' .. '15' theme.release_event = '#ffffff' .. '10' -- Client Decorations -- Borders theme.border_focus = gtk_variable().bg_color theme.border_normal = gtk_variable().base_color theme.border_marked = '#CC9393' theme.border_width = dpi(0) theme.border_radius = dpi(9) -- Decorations theme.useless_gap = dpi(4) theme.client_shape_rectangle = gears.shape.rectangle theme.client_shape_rounded = function(cr, width, height) gears.shape.rounded_rect(cr, width, height, dpi(6)) end -- Menu theme.menu_font = 'Inter Regular 11' theme.menu_submenu = '' -- ➤ theme.menu_height = dpi(34) theme.menu_width = dpi(200) theme.menu_border_width = dpi(20) theme.menu_bg_focus = theme.accent .. 'CC' theme.menu_bg_normal = theme.background:sub(1,7) .. '33' theme.menu_fg_normal = '#ffffff' theme.menu_fg_focus = '#ffffff' theme.menu_border_color = theme.background:sub(1,7) .. '5C' -- Tooltips theme.tooltip_bg = theme.background theme.tooltip_border_color = theme.transparent theme.tooltip_border_width = 0 theme.tooltip_gaps = dpi(5) theme.tooltip_shape = function(cr, w, h) gears.shape.rounded_rect(cr, w, h, dpi(6)) end -- Separators theme.separator_color = '#f2f2f244' -- Layoutbox icons theme.layout_max = theme.icons .. 'layouts/max.svg' theme.layout_tile = theme.icons .. 'layouts/tile.svg' theme.layout_dwindle = theme.icons .. 'layouts/dwindle.svg' theme.layout_floating = theme.icons .. 'layouts/floating.svg' -- Taglist theme.taglist_bg_empty = theme.background .. '99' theme.taglist_bg_occupied = '#ffffff' .. '1A' theme.taglist_bg_urgent = '#E91E63' .. '99' theme.taglist_bg_focus = theme.background theme.taglist_spacing = dpi(0) -- Tasklist theme.tasklist_font = 'Inter Regular 10' theme.tasklist_bg_normal = theme.background .. '99' theme.tasklist_bg_focus = theme.background theme.tasklist_bg_urgent = '#E91E63' .. '99' theme.tasklist_fg_focus = '#DDDDDD' theme.tasklist_fg_urgent = '#ffffff' theme.tasklist_fg_normal = '#AAAAAA' -- Notification theme.notification_position = 'top_right' theme.notification_bg = theme.transparent theme.notification_margin = dpi(5) theme.notification_border_width = dpi(0) theme.notification_border_color = theme.transparent theme.notification_spacing = dpi(5) theme.notification_icon_resize_strategy = 'center' theme.notification_icon_size = dpi(32) -- Client Snap Theme theme.snap_bg = theme.background theme.snap_shape = gears.shape.rectangle theme.snap_border_width = dpi(15) -- Hotkey popup theme.hotkeys_font = 'Inter Bold' theme.hotkeys_description_font = 'Inter Regular Regular' theme.hotkeys_bg = theme.background theme.hotkeys_group_margin = dpi(20) end return { theme = theme, awesome_overrides = awesome_overrides }