202 lines
7.6 KiB
Lua
202 lines
7.6 KiB
Lua
local beautiful = require("beautiful")
|
|
local gfs = require("gears.filesystem")
|
|
local config = require("config")
|
|
local helpers = require("helpers")
|
|
|
|
local palette = require("lib.catppuccin.catppuccin." .. config.theme.flavor)
|
|
|
|
local theme_assets = beautiful.theme_assets
|
|
local dpi = beautiful.xresources.apply_dpi
|
|
|
|
local theme_path = gfs.get_configuration_dir() .. "themes/catppuccin/"
|
|
|
|
local theme = {}
|
|
|
|
theme.color = {}
|
|
|
|
-- Transparent Color --
|
|
theme.color.transparent = "#00000000"
|
|
|
|
-- Base --
|
|
theme.color.crust = palette.crust.hex
|
|
theme.color.mantle = palette.mantle.hex
|
|
theme.color.base = palette.base.hex
|
|
|
|
-- Surface --
|
|
theme.color.surface0 = palette.surface0.hex
|
|
theme.color.surface1 = palette.surface1.hex
|
|
theme.color.surface2 = palette.surface2.hex
|
|
|
|
-- Overlay --
|
|
theme.color.overlay0 = palette.overlay0.hex
|
|
theme.color.overlay1 = palette.overlay1.hex
|
|
theme.color.overlay2 = palette.overlay2.hex
|
|
|
|
-- Text --
|
|
theme.color.text = palette.text.hex
|
|
theme.color.subtext0 = palette.subtext0.hex
|
|
theme.color.subtext1 = palette.subtext1.hex
|
|
|
|
theme.color.lavender = palette.lavender.hex
|
|
theme.color.blue = palette.blue.hex
|
|
theme.color.sapphire = palette.sapphire.hex
|
|
theme.color.sky = palette.sky.hex
|
|
theme.color.teal = palette.teal.hex
|
|
theme.color.green = palette.green.hex
|
|
theme.color.yellow = palette.yellow.hex
|
|
theme.color.peach = palette.peach.hex
|
|
theme.color.maroon = palette.maroon.hex
|
|
theme.color.red = palette.red.hex
|
|
theme.color.mauve = palette.mauve.hex
|
|
theme.color.pink = palette.pink.hex
|
|
theme.color.flamingo = palette.flamingo.hex
|
|
theme.color.rosewater = palette.rosewater.hex
|
|
|
|
theme.color.accent1 = theme.color[config.theme.accent1]
|
|
theme.color.accent2 = theme.color[config.theme.accent2]
|
|
|
|
theme.music = theme_path .. "assets/music.png"
|
|
theme.volume_on = theme_path .. "assets/volume-on.png"
|
|
theme.volume_off = theme_path .. "assets/volume-off.png"
|
|
theme.pfp = config.theme.pfp
|
|
theme.wallpaper = config.theme.wallpaper
|
|
theme.font = config.theme.font.family .. " " .. config.theme.font.size
|
|
|
|
theme.titlebar_bg_focus = theme.color.base
|
|
theme.titlebar_bg = theme.color.base
|
|
theme.bg_normal = theme.color.base
|
|
theme.bg_focus = theme.color.surface0
|
|
theme.bg_urgent = theme.color.red
|
|
theme.bg_minimize = theme.color.surface1
|
|
theme.bg_systray = theme.bg_normal
|
|
|
|
theme.fg_normal = theme.color.subtext1 -- text color
|
|
theme.fg_focus = theme.color.accent1
|
|
theme.fg_urgent = theme.color.text
|
|
theme.fg_minimize = theme.color.text
|
|
|
|
theme.useless_gap = dpi(10)
|
|
theme.border_width = dpi(3)
|
|
theme.border_normal = theme.color.surface0
|
|
theme.border_focus = theme.color.accent1
|
|
theme.border_marked = theme.color.maroon
|
|
|
|
theme.menu_font = helpers.ui.set_font("12", theme.font)
|
|
theme.menu_bg_focus = theme.color.base
|
|
theme.menu_fg_focus = theme.color.accent2
|
|
theme.menu_border_width = dpi(2)
|
|
theme.menu_border_color = theme.color.surface0
|
|
theme.submenu = config.icons.arr.r .. " "
|
|
theme.menu_height = dpi(37)
|
|
theme.menu_width = dpi(194)
|
|
|
|
theme.tasklist_bg_focus = theme.color.base
|
|
theme.tasklist_fg_focus = theme.color.lavender
|
|
theme.tasklist_disable_icon = true
|
|
theme.tasklist_font = helpers.ui.set_font("11", theme.font)
|
|
|
|
theme.taglist_spacing = dpi(2)
|
|
theme.taglist_bg_focus = theme.color.base
|
|
theme.taglist_disable_icon = true
|
|
theme.taglist_font = helpers.ui.set_font("11", theme.font)
|
|
theme.taglist_fg_focus = theme.color.accent2
|
|
theme.taglist_fg_empty = theme.color.surface2
|
|
theme.taglist_fg_occupied = theme.color.sky
|
|
|
|
-- Generate taglist squares:
|
|
local taglist_square_size = dpi(0)
|
|
theme.taglist_squares_sel = theme_assets.taglist_squares_sel(taglist_square_size, theme.color.accent2)
|
|
theme.taglist_squares_unsel = theme_assets.taglist_squares_unsel(taglist_square_size, theme.taglist_fg_occupied)
|
|
|
|
-- Edge Snap
|
|
theme.snap_bg = theme.color.accent1
|
|
theme.snap_border_width = dpi(5)
|
|
theme.snap_shape = helpers.ui.rrect(0)
|
|
|
|
-- Hotkey Popup
|
|
theme.hotkeys_shape = helpers.ui.rrect(12)
|
|
theme.hotkeys_border_color = theme.color.accent1
|
|
theme.hotkeys_modifiers_fg = theme.color.overlay2
|
|
theme.hotkeys_font = helpers.ui.set_font("10", theme.font)
|
|
theme.hotkeys_description_font = helpers.ui.set_font("10", theme.font)
|
|
|
|
-- Layoutlist
|
|
theme.layoutlist_shape_selected = helpers.ui.rrect(7)
|
|
|
|
-- Tabs
|
|
theme.mstab_bar_height = dpi(1)
|
|
theme.mstab_dont_resize_slaves = true
|
|
theme.mstab_bar_padding = dpi(10)
|
|
theme.mstab_border_radius = dpi(6)
|
|
theme.mstab_bar_ontop = false
|
|
theme.mstab_tabbar_position = "top"
|
|
theme.mstab_tabbar_style = "default"
|
|
theme.mstab_bar_disable = true
|
|
|
|
-- Layout Machi
|
|
theme.machi_switcher_border_color = theme.color.surface0
|
|
theme.machi_switcher_border_opacity = 0.4
|
|
theme.machi_editor_border_color = theme.color.surface1
|
|
theme.machi_editor_border_opacity = 0.4
|
|
theme.machi_editor_active_opacity = 0.4
|
|
|
|
-- Bling
|
|
theme.tag_preview_widget_border_radius = dpi(6)
|
|
theme.tag_preview_client_border_radius = dpi(6)
|
|
theme.tag_preview_client_opacity = 1
|
|
theme.tag_preview_client_bg = theme.color.base
|
|
theme.tag_preview_client_border_color = theme.color.surface0
|
|
theme.tag_preview_client_border_width = dpi(2)
|
|
theme.tag_preview_widget_border_color = theme.color.accent1
|
|
theme.tag_preview_widget_border_width = dpi(2)
|
|
theme.tag_preview_widget_margin = 4
|
|
|
|
-- Notifications
|
|
theme.notification_spacing = dpi(4)
|
|
theme.notification_bg = theme.color.base
|
|
|
|
-- Titlebar icons
|
|
theme.titlebar_close_button_normal = theme_path .. "titlebar/unfocus.svg"
|
|
theme.titlebar_close_button_focus = theme_path .. "titlebar/close.svg"
|
|
theme.titlebar_close_button_normal_hover = theme_path .. "titlebar/close_hover.svg"
|
|
theme.titlebar_close_button_focus_hover = theme_path .. "titlebar/close_hover.svg"
|
|
|
|
theme.titlebar_minimize_button_normal = theme_path .. "titlebar/unfocus.svg"
|
|
theme.titlebar_minimize_button_focus = theme_path .. "titlebar/minimize.svg"
|
|
theme.titlebar_minimize_button_normal_hover = theme_path .. "titlebar/minimize_hover.svg"
|
|
theme.titlebar_minimize_button_focus_hover = theme_path .. "titlebar/minimize_hover.svg"
|
|
|
|
theme.titlebar_ontop_button_normal_inactive = theme_path .. "titlebar/unfocus.svg"
|
|
theme.titlebar_ontop_button_focus_inactive = theme_path .. "titlebar/ontop.svg"
|
|
|
|
theme.titlebar_ontop_button_normal_active = theme_path .. "titlebar/unfocus.svg"
|
|
theme.titlebar_ontop_button_focus_active = theme_path .. "titlebar/ontop.svg"
|
|
|
|
theme.titlebar_maximized_button_normal_active = theme_path .. "titlebar/unfocus.svg"
|
|
theme.titlebar_maximized_button_focus_active = theme_path .. "titlebar/maximize.svg"
|
|
theme.titlebar_maximized_button_normal_active_hover = theme_path .. "titlebar/maximize_hover.svg"
|
|
theme.titlebar_maximized_button_focus_active_hover = theme_path .. "titlebar/maximize_hover.svg"
|
|
|
|
theme.titlebar_maximized_button_normal_inactive = theme_path .. "titlebar/unfocus.svg"
|
|
theme.titlebar_maximized_button_focus_inactive = theme_path .. "titlebar/maximize.svg"
|
|
theme.titlebar_maximized_button_normal_inactive_hover = theme_path .. "titlebar/maximize_hover.svg"
|
|
theme.titlebar_maximized_button_focus_inactive_hover = theme_path .. "titlebar/maximize_hover.svg"
|
|
|
|
-- Layout icons
|
|
theme.layout_floating = theme_path .. "layouts/floating.png"
|
|
theme.layout_max = theme_path .. "layouts/max.png"
|
|
theme.layout_tile = theme_path .. "layouts/tile.png"
|
|
theme.layout_dwindle = theme_path .. "layouts/dwindle.png"
|
|
theme.layout_centered = theme_path .. "layouts/centered.png"
|
|
theme.layout_mstab = theme_path .. "layouts/mstab.png"
|
|
theme.layout_equalarea = theme_path .. "layouts/equalarea.png"
|
|
theme.layout_machi = theme_path .. "layouts/machi.png"
|
|
|
|
-- Generate Awesome icon:
|
|
theme.awesome_icon = theme_assets.awesome_icon(theme.menu_height, theme.bg_focus, theme.fg_focus)
|
|
|
|
-- 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 = config.theme.icon_theme
|
|
|
|
return theme
|