feat(nvim): nixify theming (and add 'vscode' theme)
check / lint (push) Successful in 17s

This commit is contained in:
2026-08-25 23:46:47 +02:00
parent 5f8f8c4251
commit 4004d9e361
8 changed files with 134 additions and 82 deletions
@@ -0,0 +1,14 @@
local function overrides()
local colors = require("vscode.colors").get_colors()
vim.api.nvim_set_hl(0, "NormalFloat", { bg = colors.vscLeftDark })
vim.api.nvim_set_hl(0, "FloatBorder", { fg = colors.vscSplitDark, bg = colors.vscLeftDark })
end
vim.api.nvim_create_autocmd("ColorScheme", {
pattern = "vscode",
callback = overrides,
})
if vim.g.colors_name == "vscode" then
overrides()
end
@@ -1 +0,0 @@
vim.cmd("colorscheme zenwritten")
+77 -70
View File
@@ -71,8 +71,12 @@
categoryDefinitions =
{
pkgs,
categories,
...
}:
let
themes = import ./themes.nix pkgs;
in
{
lspsAndRuntimeDeps = with pkgs; {
general = [
@@ -113,76 +117,78 @@
};
startupPlugins = {
general = with pkgs.vimPlugins; [
## plug
vim-plug
vim-sandwich
context_filetype-vim
editorconfig-vim
vim-snippets
unicode-vim
vim-css-color
quarto-nvim
vimtex
wiki-vim
vim-pandoc
vim-pandoc-syntax
# TODO: ferrine/md-img-paste.vim
# TODO: supercollider/scvim
# TODO: tidalcycles/vim-tidal
vim-glsl
# TODO: timtro/glslView-nvim
# TODO: sirtaj/vim-openscad
jupytext-nvim
vim-openscad
## paq
eyeliner-nvim
fzf-lua
ltex_extra-nvim
nvim-lspconfig
lsp_lines-nvim
lsp-progress-nvim
neodev-nvim
SchemaStore-nvim
nvim-lint
conform-nvim
luasnip
cmp_luasnip
nvim-cmp
cmp-nvim-lsp
cmp-buffer
cmp-path
plenary-nvim
nui-nvim
trouble-nvim
pkgs.neovimPlugins.shipwright-nvim
lush-nvim
zenbones-nvim
nvim-treesitter.withAllGrammars
nvim-treesitter-textobjects
# nvim-treesitter-context
nvim-ts-context-commentstring
# theHamsta/crazy-node-movement
treesj
sniprun
gitsigns-nvim
nvim-highlight-colors
pkgs.neovimPlugins.tailwind-fold-nvim
auto-session
nvim-dbee
image-nvim
pkgs.neovimPlugins.beancount-nvim
pkgs.neovimPlugins.nvimkit-nvim
codecompanion-nvim
copilot-lua
copilot-cmp
helm-ls-nvim
kitty-scrollback-nvim
fidget-nvim
rustaceanvim
# pkgs.neovimPlugins.m-taskwarrior-d-nvim
claude-code-nvim
];
general =
with pkgs.vimPlugins;
[
## plug
vim-plug
vim-sandwich
context_filetype-vim
editorconfig-vim
vim-snippets
unicode-vim
vim-css-color
quarto-nvim
vimtex
wiki-vim
vim-pandoc
vim-pandoc-syntax
# TODO: ferrine/md-img-paste.vim
# TODO: supercollider/scvim
# TODO: tidalcycles/vim-tidal
vim-glsl
# TODO: timtro/glslView-nvim
# TODO: sirtaj/vim-openscad
jupytext-nvim
vim-openscad
## paq
eyeliner-nvim
fzf-lua
ltex_extra-nvim
nvim-lspconfig
lsp_lines-nvim
lsp-progress-nvim
neodev-nvim
SchemaStore-nvim
nvim-lint
conform-nvim
luasnip
cmp_luasnip
nvim-cmp
cmp-nvim-lsp
cmp-buffer
cmp-path
plenary-nvim
nui-nvim
trouble-nvim
lush-nvim
pkgs.neovimPlugins.shipwright-nvim
nvim-treesitter.withAllGrammars
nvim-treesitter-textobjects
# nvim-treesitter-context
nvim-ts-context-commentstring
# theHamsta/crazy-node-movement
treesj
sniprun
gitsigns-nvim
nvim-highlight-colors
pkgs.neovimPlugins.tailwind-fold-nvim
auto-session
nvim-dbee
image-nvim
pkgs.neovimPlugins.beancount-nvim
pkgs.neovimPlugins.nvimkit-nvim
codecompanion-nvim
copilot-lua
copilot-cmp
helm-ls-nvim
kitty-scrollback-nvim
fidget-nvim
rustaceanvim
# pkgs.neovimPlugins.m-taskwarrior-d-nvim
claude-code-nvim
]
++ themes.${categories.colorscheme or "zenwritten"};
};
optionalPlugins = {
@@ -207,6 +213,7 @@
};
categories = {
general = true;
colorscheme = "zenwritten";
};
};
};
+1 -2
View File
@@ -16,5 +16,4 @@ require("diagnostic")
require("utils")
require("zk")
require("reload")
vim.opt.background = "dark"
require("theme")
+8
View File
@@ -0,0 +1,8 @@
vim.opt.background = "dark"
if vim.g.vscode then
return
end
vim.g.zenwritten_compat = 1
vim.cmd.colorscheme(require("nixCatsUtils").getCatOrDefault("colorscheme", "zenwritten"))
+4
View File
@@ -0,0 +1,4 @@
pkgs: {
vscode = [ pkgs.vimPlugins.vscode-nvim ];
zenwritten = [ pkgs.vimPlugins.zenbones-nvim ];
}
+4 -1
View File
@@ -70,7 +70,10 @@
music.enable = true;
my.dconf.enable = true;
my.stylix.enable = true;
nvim.enable = true;
nvim = {
enable = true;
colorscheme = "vscode";
};
pandoc.enable = true;
shell.enable = true;
taskwarrior.enable = true;
+26 -8
View File
@@ -1,15 +1,28 @@
{
config,
lib,
pkgs,
inputs,
pkgs,
lib,
config,
...
}:
let
themes = import "${inputs.nvim}/themes.nix" pkgs;
plugins = themes.${config.nvim.colorscheme};
in
{
options.nvim.enable = lib.mkEnableOption "nvim";
imports = [ inputs.nvim.homeModules.default ];
options.nvim.colorscheme = lib.mkOption {
type = lib.types.enum (lib.attrNames themes);
default = "zenwritten";
};
config = lib.mkIf config.nvim.enable {
nvim.packageDefinitions.merge.nvim = _: {
categories.colorscheme = config.nvim.colorscheme;
};
home = {
sessionVariables = {
EDITOR = "nvim";
@@ -19,10 +32,15 @@
PAGER = "nvimpager";
MANWIDTH = "80";
};
packages = with pkgs; [
inputs.nvim.packages.${pkgs.stdenv.hostPlatform.system}.nvim
nvimpager
];
packages = with pkgs; [ nvimpager ];
};
xdg.configFile."nvimpager/init.lua".text = ''
vim.opt.clipboard = "unnamedplus"
vim.opt.background = "dark"
vim.g.zenwritten_compat = 1
${lib.concatMapStringsSep "\n" (plugin: ''vim.opt.runtimepath:append("${plugin}")'') plugins}
vim.cmd.colorscheme("${config.nvim.colorscheme}")
'';
};
}