1

Neovim: Update lualine colorscheme

This commit is contained in:
2024-10-13 21:22:58 +02:00
parent e809c4f774
commit 68555c318b

View File

@ -10,6 +10,7 @@
with lib; with lib;
with mylib.modules; let with mylib.modules; let
cfg = config.modules.neovim; cfg = config.modules.neovim;
color = config.modules.color;
in { in {
options.modules.neovim = import ./options.nix {inherit lib mylib;}; options.modules.neovim = import ./options.nix {inherit lib mylib;};
@ -82,16 +83,17 @@ in {
viAlias = cfg.alias; viAlias = cfg.alias;
vimAlias = cfg.alias; vimAlias = cfg.alias;
colorschemes.catppuccin = { # Configured using plugin
enable = true; # colorschemes.catppuccin = {
settings = { # enable = true;
flavour = "mocha"; # latte, frappe, macchiato, mocha # settings = {
background = { # flavour = "mocha"; # latte, frappe, macchiato, mocha
light = "latte"; # background = {
dark = "mocha"; # light = "latte";
}; # dark = "mocha";
}; # };
}; # };
# };
performance.byteCompileLua = { performance.byteCompileLua = {
enable = true; enable = true;
@ -265,6 +267,52 @@ in {
light = "latte"; light = "latte";
dark = "mocha"; dark = "mocha";
}; };
default_integrations = false;
integrations = {
cmp = true;
dashboard = true;
diffview = true;
flash = true;
gitsigns = true;
mini.enabled = true;
neotree = true;
noice = true;
native_lsp = {
enabled = true;
virtual_text = {
errors = ["italic"];
hints = ["italic"];
warnings = ["italic"];
information = ["italic"];
ok = ["italic"];
};
underlines = {
errors = ["underline"];
hints = ["underline"];
warnings = ["underline"];
information = ["underline"];
ok = ["underline"];
};
inlay_hints = {
background = true;
};
};
navic = {
enabled = true;
# custom_bg = "crust";
};
notify = true;
treesitter = true;
ufo = true;
rainbow_delimiters = true;
telescope.enabled = true;
lsp_trouble = true;
illuminate = {
enabled = true;
lsp = true;
};
which_key = true;
};
}; };
}; };
@ -1053,37 +1101,50 @@ in {
''; '';
opts = let opts = let
bubbles = '' bubbles = ''
(function() {
-- Wrap this in an immediately invoked function and require catppuccin
-- because we need "colors" in the scope.
-- For this, the catppuccin plugin must be installed,
-- just setting the neovim colorscheme isn't enough.
local colors = require("catppuccin.palettes").get_palette("mocha")
-- Use :lua print(vim.inspect(require("catppuccin.palettes").get_palette("mocha"))) to list colors
return {
normal = { normal = {
a = { fg = colors.base, bg = colors.lavender }, a = { fg = "#${color.dark.base}", bg = "#${color.dark.lavender}", gui = "bold" },
b = { fg = colors.text, bg = colors.crust }, b = { fg = "#${color.dark.text}", bg = "#${color.dark.crust}" },
c = { fg = colors.text }, c = { fg = "#${color.dark.text}", bg = "NONE" },
}, },
insert = { a = { fg = colors.base, bg = colors.blue } }, insert = {
visual = { a = { fg = colors.base, bg = colors.teal } }, a = { fg = "#${color.dark.base}", bg = "#${color.dark.green}", gui = "bold" },
replace = { a = { fg = colors.base, bg = colors.red } }, b = { fg = "#${color.dark.green}", bg = "#${color.dark.crust}" },
},
visual = {
a = { fg = "#${color.dark.base}", bg = "#${color.dark.mauve}", gui = "bold" },
b = { fg = "#${color.dark.mauve}", bg = "#${color.dark.crust}" },
},
replace = {
a = { fg = "#${color.dark.base}", bg = "#${color.dark.red}", gui = "bold" },
b = { fg = "#${color.dark.red}", bg = "#${color.dark.crust}" },
},
-- terminal = {
-- a = { fg = "#${color.dark.base}", bg = "#${color.dark.green}", gui = "bold" },
-- b = { fg = "#${color.dark.green}", bg = "#${color.dark.crust}" },
-- },
command = {
a = { fg = "#${color.dark.base}", bg = "#${color.dark.peach}", gui = "bold" },
b = { fg = "#${color.dark.peach}", bg = "#${color.dark.crust}" },
},
inactive = { inactive = {
a = { fg = colors.text, bg = colors.base }, a = { fg = "#${color.dark.text}", bg = "#${color.dark.base}" },
b = { fg = colors.text, bg = colors.base }, b = { fg = "#${color.dark.text}", bg = "#${color.dark.base}" },
c = { fg = colors.text }, c = { fg = "#${color.dark.text}", bg = "NONE" },
}, },
} }
end)()
''; '';
in { in {
extensions = ["fzf" "lazy" "neo-tree" "oil" "quickfix" "toggleterm" "trouble"]; extensions = ["fzf" "lazy" "neo-tree" "oil" "quickfix" "toggleterm" "trouble"];
options = { options = {
# theme = "catppuccin";
theme.__raw = bubbles; theme.__raw = bubbles;
always_divide_middle = true; always_divide_middle = true;
globalstatus = true; globalstatus = true;
@ -1507,19 +1568,17 @@ in {
opts = { opts = {
line.__raw = '' line.__raw = ''
function(line) function(line)
local colors = require("catppuccin.palettes").get_palette("mocha") local base = { fg = "#${color.dark.base}", bg = "#${color.dark.base}" }
local crust = { fg = "#${color.dark.crust}", bg = "#${color.dark.crust}" }
local base = { fg = colors.base, bg = colors.base } local text = { fg = "#${color.dark.text}", bg = "#${color.dark.crust}" }
local crust = { fg = colors.crust, bg = colors.crust } local lavender = { fg = "#${color.dark.lavender}", bg = "#${color.dark.lavender}" }
local text = { fg = colors.text, bg = colors.crust }
local lavender = { fg = colors.lavender, bg = colors.lavender }
local numtabs = vim.call("tabpagenr", "$") local numtabs = vim.call("tabpagenr", "$")
return { return {
-- Head -- Head
{ {
{ " NEOVIM ", hl = { fg = colors.base, bg = colors.lavender } }, { " NEOVIM ", hl = { fg = "#${color.dark.base}", bg = "#${color.dark.lavender}" } },
-- The separator gets a foreground and background fill (each have fg + bg). -- The separator gets a foreground and background fill (each have fg + bg).
-- line.sep("", lavender, lavender), -- line.sep("", lavender, lavender),
@ -1528,7 +1587,7 @@ in {
-- Tabs -- Tabs
line.tabs().foreach(function(tab) line.tabs().foreach(function(tab)
-- Switch out the start separator instead of the ending one because the last separator is different -- Switch out the start separator instead of the ending one because the last separator is different
local hl = tab.is_current() and { fg = colors.lavender, bg = colors.crust, style = "bold" } or text local hl = tab.is_current() and { fg = "#${color.dark.lavender}", bg = "#${color.dark.crust}", style = "bold" } or text
local sep_start = tab.number() == 1 and "" or "" local sep_start = tab.number() == 1 and "" or ""
local sep_end = tab.number() == numtabs and "" or "" local sep_end = tab.number() == numtabs and "" or ""