72 lines
2.5 KiB
Lua
72 lines
2.5 KiB
Lua
local M = {}
|
|
|
|
M.variants = {
|
|
default = "default",
|
|
light = "light",
|
|
}
|
|
|
|
M.extras = {
|
|
alacritty = { extension = "toml", name = "alacritty" },
|
|
base16 = { extension = "yaml", name = "base16" },
|
|
fish = { extension = "theme", name = "fish" },
|
|
foot = { extension = "ini", name = "foot" },
|
|
ghostty = { extension = nil, name = "ghostty" },
|
|
gitui = { extension = "ron", name = "gitui" },
|
|
helix = { extension = "toml", name = "helix" },
|
|
kitty = { extension = "conf", name = "kitty" },
|
|
lazydocker = { extension = "yml", name = "lazydocker" },
|
|
lazygit = { extension = "yml", name = "lazygit" },
|
|
lsd = { extension = "yml", name = "lsd" },
|
|
pywal = { extension = "json", name = "pywal" },
|
|
rio = { extension = "toml", name = "rio" },
|
|
textmate = { extension = "tmTheme", name = "textmate" },
|
|
tilix = { extension = "json", name = "tilix" },
|
|
tmux = { extension = "tmuxtheme", name = "tmux" },
|
|
vivid = { extension = "yml", name = "vivid" },
|
|
warp = { extension = "yaml", name = "warp" },
|
|
wezterm = { extension = "lua", name = "wezterm" },
|
|
windowsterminal = { extension = "json", name = "windowsterminal" },
|
|
yazi = { extension = "toml", name = "yazi" },
|
|
zellij = { extension = "kdl", name = "zellij" },
|
|
zed = { extension = "json", name = "zed" },
|
|
}
|
|
|
|
--- Create/overwrite a file in the extras directory.
|
|
--- @param str string: The string to write to the file.
|
|
local function write(str, filename)
|
|
print("writing extra: extras/" .. filename)
|
|
vim.fn.mkdir(vim.fs.dirname("extras/" .. filename), "p")
|
|
local file = io.open("extras/" .. filename, "w")
|
|
if file then
|
|
file:write(str)
|
|
file:close()
|
|
else
|
|
print("Failed to write to file: extras/" .. filename)
|
|
end
|
|
end
|
|
|
|
--- Generate the extras for a given variant.
|
|
--- @param variant string: Variation of the colorscheme to use. Defaults to "default".
|
|
local function generate_extras(variant)
|
|
local suffix = variant == "default" and "" or "-" .. variant
|
|
|
|
for name, extra in pairs(M.extras) do
|
|
local extra_module = require("cyberdream.extra." .. name)
|
|
local str = extra_module.generate(variant)
|
|
if extra.extension then
|
|
write(str, extra.name .. "/" .. "cyberdream" .. suffix .. "." .. extra.extension)
|
|
else
|
|
write(str, extra.name .. "/" .. "cyberdream" .. suffix)
|
|
end
|
|
end
|
|
end
|
|
|
|
--- Generate Extras for all styles.
|
|
function M.generate_all_extras()
|
|
for variant, _ in pairs(M.variants) do
|
|
generate_extras(variant)
|
|
end
|
|
end
|
|
|
|
return M
|