{ enableDevIcons ? false
, enableTabby ? false
, theme ? { }
}:
{ lib
, theme
, lualine-nvim
, lualine-lsp-progress
, nvim-web-devicons
, tabby-nvim
, ...
let
inherit (builtins) readFile isString;
themeFlavour = if isString (lib.getAttrOpt "flavour" theme) then theme.flavour else "frappe";
themeConfig = if isString (lib.getAttrOpt "config" theme) then theme.config else ''
vim.g.catppuccin_flavour = "${themeFlavour}"
require("catppuccin").setup()
vim.cmd([[colorscheme catppuccin]])
'';
lualinePlugins = [ lualine-nvim lualine-lsp-progress ];
in
{
luaConfig = themeConfig
+ (readFile ./lualine.lua)
+ (lib.optional enableTabby (readFile ./tabby-nvim.lua));
plugins = [ theme ]
++ lualinePlugins
++ (lib.optional enableDevIcons [ nvim-web-devicons ])
++ (lib.optional enableTabby [ tabby-nvim ]);
}