diff options
| author | 2025-05-16 22:33:54 +0300 | |
|---|---|---|
| committer | 2025-05-16 22:33:54 +0300 | |
| commit | 49e5fa571005da10d156d14f82e145afaf96214e (patch) | |
| tree | cefaf0227d17fd900858ec3ddb8b88665f443e08 /nvim/lua/lualine/themes/base16.lua | |
| parent | Правки nvim конфига (diff) | |
| download | dotfiles-49e5fa571005da10d156d14f82e145afaf96214e.tar.gz dotfiles-49e5fa571005da10d156d14f82e145afaf96214e.tar.bz2 dotfiles-49e5fa571005da10d156d14f82e145afaf96214e.tar.xz dotfiles-49e5fa571005da10d156d14f82e145afaf96214e.zip | |
Обновления конфигов
Diffstat (limited to 'nvim/lua/lualine/themes/base16.lua')
| -rw-r--r-- | nvim/lua/lualine/themes/base16.lua | 128 |
1 files changed, 128 insertions, 0 deletions
diff --git a/nvim/lua/lualine/themes/base16.lua b/nvim/lua/lualine/themes/base16.lua new file mode 100644 index 0000000..03f4f35 --- /dev/null +++ b/nvim/lua/lualine/themes/base16.lua @@ -0,0 +1,128 @@ + +local modules = require('lualine_require').lazy_require { notices = 'lualine.utils.notices' } + +local function add_notice(notice) + modules.notices.add_notice('theme(base16): ' .. notice) +end + +local function setup(colors) + local theme = { + normal = { + a = { fg = colors.bg, bg = colors.normal }, + b = { fg = colors.light_fg, bg = colors.alt_bg }, + c = { fg = colors.fg, bg = colors.bg }, + }, + replace = { + a = { fg = colors.bg, bg = colors.replace }, + b = { fg = colors.light_fg, bg = colors.alt_bg }, + }, + insert = { + a = { fg = colors.bg, bg = colors.insert }, + b = { fg = colors.light_fg, bg = colors.alt_bg }, + }, + visual = { + a = { fg = colors.bg, bg = colors.visual }, + b = { fg = colors.light_fg, bg = colors.alt_bg }, + }, + inactive = { + a = { fg = colors.dark_fg, bg = colors.bg }, + b = { fg = colors.dark_fg, bg = colors.bg }, + c = { fg = colors.dark_fg, bg = colors.bg }, + }, + } + + theme.command = theme.normal + theme.terminal = theme.insert + + return theme +end + +local function setup_default() + return setup { + bg = '#282a2e', + alt_bg = '#373b41', + dark_fg = '#969896', + fg = '#b4b7b4', + light_fg = '#c5c8c6', + normal = '#81a2be', + insert = '#b5bd68', + visual = '#b294bb', + replace = '#de935f', + } +end + +local function setup_base16_nvim() + -- Continue to load nvim-base16 + local loaded, base16 = pcall(require, 'base16-colorscheme') + + if not loaded then + add_notice( + 'nvim-base16 is not currently present in your runtimepath, make sure it is properly installed,' + .. ' fallback to default colors.' + ) + + return nil + end + + if not base16.colors and not vim.env.BASE16_THEME then + add_notice( + 'nvim-base16 is not loaded yet, you should update your configuration to load it before lualine' + .. ' so that the colors from your colorscheme can be used, fallback to "tomorrow-night" theme.' + ) + elseif not base16.colors and not base16.colorschemes[vim.env.BASE16_THEME] then + add_notice( + 'The colorscheme "%s" defined by the environment variable "BASE16_THEME" is not handled by' + .. ' nvim-base16, fallback to "tomorrow-night" theme.' + ) + end + + local colors = base16.colors or base16.colorschemes[vim.env.BASE16_THEME or 'tomorrow-night'] + + return setup { + bg = colors.base01, + alt_bg = colors.base02, + dark_fg = colors.base03, + fg = colors.base04, + light_fg = colors.base05, + normal = colors.base0D, + insert = colors.base0B, + visual = colors.base0E, + replace = colors.base09, + } +end + +local function setup_base16_vim() + -- Check if tinted-theming/base16-vim is already loaded + if vim.g.base16_gui00 and vim.g.base16_gui0F then + return setup { + bg = vim.g.base16_gui01, + alt_bg = vim.g.base16_gui02, + dark_fg = vim.g.base16_gui03, + fg = vim.g.base16_gui04, + light_fg = vim.g.base16_gui05, + normal = vim.g.base16_gui0D, + insert = vim.g.base16_gui0B, + visual = vim.g.base16_gui0E, + replace = vim.g.base16_gui09, + } + end + + -- base16-vim has been renamed to tinted-vim along with colors + -- context: https://github.com/nvim-lualine/lualine.nvim/pull/1352 + if vim.g.tinted_gui00 and vim.g.tinted_gui0F then + return setup { + bg = vim.g.tinted_gui01, + alt_bg = vim.g.tinted_gui02, + dark_fg = vim.g.tinted_gui03, + fg = vim.g.tinted_gui04, + light_fg = vim.g.tinted_gui05, + normal = vim.g.tinted_gui0D, + insert = vim.g.tinted_gui0B, + visual = vim.g.tinted_gui0E, + replace = vim.g.tinted_gui09, + } + end + return nil +end + +return setup_base16_vim() or setup_base16_nvim() or setup_default() |
