nixvim plugins

install all currently wanted plugins
This commit is contained in:
2026-04-13 18:09:16 +02:00
parent d7b58e2216
commit 761067ca6e
82 changed files with 1201 additions and 1468 deletions

View File

@@ -1,21 +0,0 @@
{ inputs, pkgs, ... }:
{
imports = [
./plugins
];
programs.nixvim = {
extraPackages = with pkgs; [
texliveFull
texlivePackages.standalone
texlivePackages.relsize # needed for BA
# papis-nvim
];
extraConfigVim = ''
filetype plugin on
set nocompatible
syntax on
'';
};
}

View File

@@ -1,7 +0,0 @@
{ ... }:
{
programs.nixvim.plugins = {
aerial.enable = true;
};
}

View File

@@ -1,13 +0,0 @@
{ ... }:
{
programs.nixvim.plugins = {
nvim-autopairs = {
enable = true;
settings = {
check_ts = true;
};
};
};
}

View File

@@ -1,68 +0,0 @@
{ ... }:
{
programs.nixvim = {
plugins = {
bullets = {
enable = true;
settings = {
enabled_file_types = [
"markdown"
"text"
"gitcommit"
];
set_mappings = 0;
checkbox_markers = " -X";
custom_mappings = [
[
"nmap"
"o"
"<Plug>(bullets-newline)"
]
[
"vmap"
"gN"
"<Plug>(bullets-renumber)"
]
[
"nmap"
"gN"
"<Plug>(bullets-renumber)"
]
[
"imap"
"<C-t>"
"<Plug>(bullets-demote)"
]
[
"nmap"
">>"
"<Plug>(bullets-demote)"
]
[
"vmap"
">"
"<Plug>(bullets-demote)"
]
[
"imap"
"<C-d>"
"<Plug>(bullets-promote)"
]
[
"nmap"
"<<"
"<Plug>(bullets-promote)"
]
[
"vmap"
"<"
"<Plug>(bullets-promote)"
]
];
};
};
};
};
}

View File

@@ -1,73 +0,0 @@
{ ... }:
{
programs.nixvim = {
plugins = {
blink-cmp = {
enable = true;
settings = {
keymap = {
preset = "default";
};
snippets = {
preset = "luasnip";
};
completion = {
accept = {
auto_brackets = {
enabled = true;
kind_resolution = {
enabled = true;
};
semantic_token_resolution = {
enabled = true;
timeout_ms = 400;
};
};
};
};
sources = {
per_filetype = {
yaml = [ "papis" ];
};
providers = {
spell = {
module = "blink-cmp-spell";
name = "Spell";
score_offset = 100;
opts = { };
};
vimtex = {
name = "vimtex";
module = "blink.compat.source";
};
dap = {
name = "dap";
module = "blink.compat.source";
};
mkdnflow = {
name = "mkdnflow";
module = "blink.compat.source";
};
};
default = [
"lsp"
"mkdnflow"
"path"
"snippets"
# "dap"
"vimtex"
"buffer"
"spell"
];
};
};
};
blink-cmp-spell.enable = true;
blink-compat.enable = true;
cmp-vimtex.enable = true;
# cmp-dap.enable = true;
};
};
}

View File

@@ -1,16 +0,0 @@
{ ... }:
{
programs.nixvim = {
plugins = {
comment = {
enable = true;
settings = {
mappings = {
basic = true;
};
};
};
};
};
}

View File

@@ -1,54 +0,0 @@
{
imports = [
./aerial.nix
./autopairs.nix
./barbar.nix
./bullets.nix
./cmp.nix
./comment-box.nix
./comment.nix
./conform.nix
./dap.nix
./diffview.nix
./dynomark.nix
./edgy.nix
./gitsigns.nix
./haskell-tools.nix
./knap.nix
./leap.nix
./lsp.nix
./ltex-extra.nix
./lualine.nix
./markdown-preview.nix
./mkdnflow.nix
./neoscroll.nix
./neotree.nix
./noice.nix
./notify.nix
./oil.nix
./openscad.nix
./otter.nix
./papis.nix
./peek.nix
./markdown-preview.nix
./smart-splits.nix
./snippets.nix
./sniprun.nix
./startup.nix
./surround.nix
./telescope.nix
./texpresso.nix
./todo-comments.nix
./toggleterm.nix
./treesitter.nix
./trouble.nix
./typst-preview.nix
./typst-vim.nix
./undotree.nix
./vimtex.nix
./web-devicons.nix
./which-key.nix
./yanky.nix
./zk.nix
];
}

View File

@@ -1,11 +0,0 @@
{ ... }:
{
programs.nixvim = {
plugins = {
gitsigns = {
enable = true;
};
};
};
}

View File

@@ -1,30 +0,0 @@
{ ... }:
{
programs.nixvim = {
plugins = {
leap = {
enable = true;
settings = {
case_sensitive = false;
};
};
};
keymaps = [
{
key = "s";
action = "<Plug>(leap)";
mode = [
"n"
"x"
"o"
];
}
{
key = "S";
action = "<Plug>(leap-from-window)";
mode = [ "n" ];
}
];
};
}

View File

@@ -1,102 +0,0 @@
{ pkgs, config, ... }:
{
home.packages = with pkgs; [
tofu-ls
zuban
];
programs.nixvim = {
plugins.lsp.enable = true;
lsp = {
luaConfig = {
post = ''
vim.lsp.enable('tofu_ls')
vim.lsp.enable('prolog_ls')
'';
};
servers = {
nixd = {
enable = false;
};
rust_analyzer = {
enable = true;
};
leanls = {
enable = true;
};
nil_ls = {
enable = !config.programs.nixvim.plugins.lsp.servers.nixd.enable;
config = {
nil = {
formatting = {
command = [
"nixfmt"
];
};
diagnostics = {
ignored = [ ];
};
nix = {
flake = {
autoArchive = true;
};
};
};
};
};
nushell = {
enable = true;
};
pylsp = {
enable = true;
};
pylyzer = {
enable = false;
};
pyright = {
enable = true;
};
clangd = {
enable = true;
};
zk = {
enable = true;
};
elixirls = {
enable = true;
};
marksman = {
enable = true;
};
texlab = {
enable = true;
};
lua_ls = {
enable = true;
};
ltex_plus = {
enable = true;
package = pkgs.ltex-ls-plus;
config = {
ltex = {
language = "en-US";
enabled = [
"latex"
"tex"
"bibtex"
"markdown"
"typst"
"quarto"
];
};
};
};
tinymist = {
enable = true;
};
};
};
};
}

View File

@@ -1,9 +0,0 @@
{ ... }:
{
programs.nixvim.plugins = {
ltex-extra = {
enable = true;
};
};
}

View File

@@ -1,48 +0,0 @@
{ ... }:
{
programs.nixvim.plugins = {
lualine = {
enable = true;
# settings = {
# sections = {
# lualine_c = [
# {
# __unkeyed-1 = {
# __raw = ''
# function()
# require("trouble").statusline({
# mode = "lsp_document_symbols",
# groups = {},
# title = false,
# filter = { range = true },
# format = "{kind_icon}{symbol.name:Normal}",
# -- The following line is needed to fix the background color
# -- Set it to the lualine section you want to use
# hl_group = "lualine_c_normal",
# }
# ).get
# end
# '';
# };
# cond = {
# __raw = ''
# require("trouble").statusline({
# mode = "lsp_document_symbols",
# groups = {},
# title = false,
# filter = { range = true },
# format = "{kind_icon}{symbol.name:Normal}",
# -- The following line is needed to fix the background color
# -- Set it to the lualine section you want to use
# hl_group = "lualine_c_normal",
# }).has
# '';
# };
# }
# ];
# };
# };
};
};
}

View File

@@ -1,9 +0,0 @@
{ ... }:
{
programs.nixvim.plugins = {
markdown-preview = {
enable = true;
};
};
}

View File

@@ -1,14 +0,0 @@
{ ... }:
{
programs.nixvim = {
plugins = {
neo-tree = {
enable = true;
settings = {
enable_git_status = true;
};
};
};
};
}

View File

@@ -1,22 +0,0 @@
{ ... }:
{
programs.nixvim.plugins = {
noice = {
enable = true;
settings = {
lsp.override = {
"vim.lsp.util.convert_input_to_markdown_lines" = true;
"vim.lsp.util.stylize_markdown" = true;
};
prests = {
bottom_search = true;
command_palette = true;
inc_rename = false;
long_message_to_split = true;
lsp_doc_border = false;
};
};
};
};
}

View File

@@ -1,17 +0,0 @@
{ ... }:
{
programs.nixvim = {
plugins = {
notify = {
enable = true;
settings = {
render = "wrapped-compact";
};
};
};
opts = {
termguicolors = true;
};
};
}

View File

@@ -1,9 +0,0 @@
{ ... }:
{
programs.nixvim.plugins = {
oil = {
enable = true;
};
};
}

View File

@@ -1,9 +0,0 @@
{ ... }:
{
programs.nixvim.plugins = {
otter = {
enable = true;
};
};
}

View File

@@ -1,28 +0,0 @@
{ pkgs, ... }:
{
programs.nixvim = {
plugins = {
papis = {
enable = true;
settings = {
yq_bin = "${pkgs.yq-go}/bin/yq";
search = {
provider = "telescope";
};
};
};
};
keymaps = [
{
key = "<leader>pp";
action = "<CMD>Papis search<CR>";
mode = [ "n" ];
options = {
desc = "Papis";
};
}
];
};
}

View File

@@ -1,29 +0,0 @@
{ pkgs, ... }:
{
home.packages = with pkgs; [ python312Packages.pylatexenc ];
programs.nixvim.plugins = {
render-markdown = {
enable = true;
settings = {
ft = [
"markdown"
"quarto"
];
latex = {
enabled = false;
};
completions = {
lsp = {
enabled = true;
};
};
};
};
web-devicons = {
enable = true;
};
};
}

View File

@@ -1,104 +0,0 @@
{ ... }:
{
programs.nixvim.plugins = {
smart-splits = {
enable = true;
};
};
programs.nixvim.keymaps = [
{
action.__raw = "require('smart-splits').move_cursor_left";
key = "<C-S-p>h";
mode = "n";
}
{
action.__raw = "require('smart-splits').move_cursor_right";
key = "<C-S-p>l";
mode = "n";
}
{
action.__raw = "require('smart-splits').move_cursor_down";
key = "<C-S-p>j";
mode = "n";
}
{
action.__raw = "require('smart-splits').move_cursor_up";
key = "<C-S-p>k";
mode = "n";
}
{
action.__raw = "require('smart-splits').resize_left";
key = "<C-S-r>h";
mode = "n";
}
{
action.__raw = "require('smart-splits').resize_right";
key = "<C-S-r>l";
mode = "n";
}
{
action.__raw = "require('smart-splits').resize_down";
key = "<C-S-r>j";
mode = "n";
}
{
action.__raw = "require('smart-splits').resize_up";
key = "<C-S-r>k";
mode = "n";
}
{
action = "<CMD>silent !kitten @ launch --location=hsplit<CR>";
key = "<C-S-p>s";
mode = [
"n"
"v"
"i"
];
}
{
action = "<CMD>silent !kitten @ launch --location=vsplit<CR>";
key = "<C-S-p>v";
mode = [
"n"
"v"
"i"
];
}
{
action = "<CMD>silent !kitten @ launch --location=hsplit --cwd=current --bias=35<CR>";
key = "<C-S-p>p";
mode = [
"n"
"v"
"i"
];
}
{
action = "<CMD>silent !kitten @ close-window<CR>";
key = "<C-S-p>q";
mode = [
"n"
"v"
"i"
];
}
{
action = "<CMD>silent !kitten @ action layout_action rotate<CR>";
key = "<C-S-p>r";
mode = [
"n"
"v"
"i"
];
}
{
action = "<CMD>silent !kitten @ action toggle_layout stack<CR>";
key = "<C-S-p>f";
mode = [
"n"
"v"
"i"
];
}
];
}

View File

@@ -1,28 +0,0 @@
{ ... }:
{
programs.nixvim = {
plugins = {
sniprun = {
enable = true;
settings = {
display = [ "VirtualLine" ];
snipruncolors = {
SniprunVirtualTextOk = {
bg = "#91d7e3";
fg = "#000000";
ctermbg = "Cyan";
ctermfg = "Black";
};
SniprunVirtualTextErr = {
bg = "#ee99a0";
fg = "#000000";
ctermbg = "DarkRed";
ctermfg = "Black";
};
};
};
};
};
};
}

View File

@@ -1,71 +0,0 @@
{ ... }:
{
programs.nixvim = {
plugins = {
startup = {
enable = true;
settings = {
theme = "dashboard";
sections = {
body = {
align = "center";
content = [
[
" Find File"
"Telescope find_files"
"<leader>ff"
]
[
"󰍉 Find Word"
"Telescope live_grep"
"<leader>lg"
]
[
" Recent Files"
"Telescope oldfiles"
"<leader>of"
]
[
" File Browser"
"Telescope file_browser"
"<leader>fb"
]
[
" Colorschemes"
"Telescope colorscheme"
"<leader>cs"
]
[
" New File"
"lua require'startup'.new_file()"
"<leader>nf"
]
];
defaultColor = "";
foldSection = true;
highlight = "String";
margin = 5;
oldfilesAmount = 0;
title = "Basic Commands";
type = "mapping";
};
header = {
align = "center";
content = {
__raw = "require('startup.headers').hydra_header";
};
defaultColor = "";
foldSection = false;
highlight = "Statement";
margin = 5;
oldfilesAmount = 0;
title = "Header";
type = "text";
};
};
};
};
};
};
}

View File

@@ -1,162 +0,0 @@
{ ... }:
{
programs.nixvim.plugins = {
nvim-surround = {
enable = true;
luaConfig.post = # lua
''
local M = {}
M.get_input = function(prompt)
local input = require("nvim-surround.input")
return input.get_input(prompt)
end
M.get_selection = function(args)
if args.char then
return M.get_find(args.char)(args.char)
elseif args.motion then
return require("nvim-surround.motions").get_selection(args.motion)
elseif args.node then
return require("nvim-surround.treesitter").get_selection(args.node)
elseif args.pattern then
return require("nvim-surround.patterns").get_selection(args.pattern)
elseif args.query then
return require("nvim-surround.queries").get_selection(args.query.capture, args.query.type)
else
vim.notify("Invalid key provided for `:h nvim-surround.config.get_selection()`.", vim.log.levels.ERROR)
end
end
surrounds = {
["("] = {
add = { "( ", " )" },
find = function()
return M.get_selection({ motion = "a(" })
end,
delete = "^(. ?)().-( ?.)()$",
},
[")"] = {
add = { "(", ")" },
find = function()
return M.get_selection({ motion = "a)" })
end,
delete = "^(.)().-(.)()$",
},
["{"] = {
add = { "{ ", " }" },
find = function()
return M.get_selection({ motion = "a{" })
end,
delete = "^(. ?)().-( ?.)()$",
},
["}"] = {
add = { "{", "}" },
find = function()
return M.get_selection({ motion = "a}" })
end,
delete = "^(.)().-(.)()$",
},
["<"] = {
add = { "< ", " >" },
find = function()
return M.get_selection({ motion = "a<" })
end,
delete = "^(. ?)().-( ?.)()$",
},
[">"] = {
add = { "<", ">" },
find = function()
return M.get_selection({ motion = "a>" })
end,
delete = "^(.)().-(.)()$",
},
["["] = {
add = { "[ ", " ]" },
find = function()
return M.get_selection({ motion = "a[" })
end,
delete = "^(. ?)().-( ?.)()$",
},
["]"] = {
add = { "[", "]" },
find = function()
return M.get_selection({ motion = "a]" })
end,
delete = "^(.)().-(.)()$",
},
["'"] = {
add = { "'", "'" },
find = function()
return M.get_selection({ motion = "a'" })
end,
delete = "^(.)().-(.)()$",
},
['"'] = {
add = { '"', '"' },
find = function()
return M.get_selection({ motion = 'a"' })
end,
delete = "^(.)().-(.)()$",
},
["`"] = {
add = { "`", "`" },
find = function()
return M.get_selection({ motion = "a`" })
end,
delete = "^(.)().-(.)()$",
},
["i"] = {
add = function()
local left_delimiter = M.get_input("Enter the left delimiter: ")
local right_delimiter = left_delimiter and M.get_input("Enter the right delimiter: ")
if right_delimiter then
return { { left_delimiter }, { right_delimiter } }
end
end,
find = function() end,
delete = function() end,
},
}
'';
settings = {
aliases = {
"a" = ">";
"b" = ")";
"B" = "}";
"r" = "]";
"q" = [
"\""
"'"
"`"
];
"Q" = "''";
"s" = [
"}"
"]"
")"
">"
"\""
"'"
"`"
];
};
keymaps = {
insert = "<C-g>s";
insert_line = "<C-g>S";
normal = "ys";
normal_cur = "yss";
normal_line = "yS";
normal_cur_line = "ySS";
visual = "S";
visual_line = "gS";
delete = "ds";
# TODO: This keymap clashed with comment boxses
change = "cs";
change_line = "cS";
};
};
};
};
}

View File

@@ -1,49 +0,0 @@
{ pkgs, ... }:
{
home.packages = with pkgs; [
ripgrep
fd
];
programs.nixvim.plugins = {
telescope = {
enable = true;
extensions = {
fzf-native.enable = true;
ui-select.enable = true;
undo.enable = true;
file-browser = {
enable = true;
settings = {
hijack_netrw = true;
};
};
};
keymaps = {
"<leader>ff" = {
action = "find_files";
options.desc = "List Files";
};
"<leader>fb" = {
action = "file_browser path=%:p:h select_buffer=true";
options.desc = "File Browser";
};
"<leader>fs" = {
action = "buffers";
options.desc = "List Open Buffers";
};
"<leader>fu" = {
action = "undo";
options.desc = "Undo Tree";
};
};
};
which-key.settings.spec = [
{
__unkeyed-1 = "<leader>f";
group = "Telescope";
icon = "󰭎 ";
}
];
};
}

View File

@@ -1,30 +0,0 @@
{ ... }:
# TODO: Make filetype keybindings work
{
programs.nixvim = {
plugins = {
texpresso = {
enable = false;
};
};
files = {
"ftplugin/latex.lua" = {
keymaps = [
{
action = "<CMD>Texpresso %<CR>";
key = "<C-k>t";
mode = [
"n"
"v"
"i"
];
options = {
desc = "Start Texpresso";
};
}
];
};
};
};
}

View File

@@ -1,38 +0,0 @@
{ ... }:
{
programs.nixvim = {
plugins = {
typst-preview = {
enable = true;
lazyLoad = {
settings = {
ft = "typst";
cmd = "TypstPreview";
};
};
settings = {
open_command = "qutebrowser --target tab %s";
};
};
};
files = {
"ftplugin/typst.lua" = {
keymaps = [
{
action = "<CMD>TypstPreview<CR>";
key = "<C-k>t";
mode = [
"n"
"v"
"i"
];
options = {
desc = "Typst Preview";
};
}
];
};
};
};
}

View File

@@ -1,17 +0,0 @@
{ ... }:
# TODO: coneal does not work
{
programs.nixvim = {
plugins = {
typst-vim = {
enable = true;
settings = {
conceal = 1;
conceal_math = 1;
conceal_emoji = 1;
};
};
};
};
}

View File

@@ -1,40 +0,0 @@
{ ... }:
{
programs.nixvim = {
plugins = {
vimtex = {
enable = true;
settings = {
view_automatic = false;
mappings_disable = {
"n" = [ "K" ];
};
};
};
};
autoGroups = {
"lazyvim_vimtex_conceal" = {
clear = true;
};
};
autoCmd = [
{
event = [ "FileType" ];
group = "lazyvim_vimtex_conceal";
pattern = [
"bib"
"tex"
];
callback.__raw = # lua
''
function ()
vim.wo.conceallevel = 2
end
'';
}
];
};
}

View File

@@ -0,0 +1,45 @@
{ ... }:
{
programs.nixvim = {
plugins = {
aerial = {
enable = true;
lazyLoad.settings.cmd = [
"AerialToggle"
"AerialNavToggle"
];
};
which-key.settings.spec = [
{
__unkeyed-1 = "<leader>a";
group = "Aerial";
icon = " ";
}
];
};
keymaps = [
{
key = "<leader>at";
action = "<cmd>AerialToggle<cr>";
options.desc = "Aerial tab";
}
{
key = "<leader>an";
action = "<cmd>AerialNavToggle<cr>";
options.desc = "Aerial navgation";
}
{
key = "<leader>a.";
action = "<cmd>AerialNext<cr>";
options.desc = "Aerial next";
}
{
key = "<leader>a,";
action = "<cmd>AerialPrev<cr>";
options.desc = "Aerial previous";
}
];
};
}

View File

@@ -0,0 +1,10 @@
{ ... }:
{
programs.nixvim.plugins.nvim-autopairs = {
enable = true;
autoLoad = true;
settings.check_ts = true;
};
}

View File

@@ -3,9 +3,9 @@
{ {
programs.nixvim = { programs.nixvim = {
plugins = { plugins = {
barbar = { barbar.enable = true;
enable = true; autoLoad = true;
};
which-key.settings.spec = [ which-key.settings.spec = [
{ {
__unkeyed-1 = "<leader>b"; __unkeyed-1 = "<leader>b";
@@ -22,62 +22,49 @@
} }
]; ];
}; };
keymaps = [ keymaps = [
{ {
action = "<CMD>BufferPrevious<CR>"; action = "<CMD>BufferPrevious<CR>";
key = "<leader>,"; key = "<leader>,";
mode = "n"; mode = "n";
options = { options.desc = "Tab ";
desc = "Tab ";
};
} }
{ {
action = "<CMD>BufferNext<CR>"; action = "<CMD>BufferNext<CR>";
key = "<leader>."; key = "<leader>.";
mode = "n"; mode = "n";
options = { options.desc = "Tab ";
desc = "Tab ";
};
} }
{ {
action = "<CMD>BufferMovePrevious<CR>"; action = "<CMD>BufferMovePrevious<CR>";
key = "<leader>b<"; key = "<leader>b<";
mode = "n"; mode = "n";
options = { options.desc = "Re-Order ";
desc = "Re-Order ";
};
} }
{ {
action = "<CMD>BufferMoveNext<CR>"; action = "<CMD>BufferMoveNext<CR>";
key = "<leader>b>"; key = "<leader>b>";
mode = "n"; mode = "n";
options = { options.desc = "Re-Order ";
desc = "Re-Order ";
};
} }
{ {
action = "<CMD>BufferClose<CR>"; action = "<CMD>BufferClose<CR>";
key = "<leader>bc"; key = "<leader>bc";
mode = "n"; mode = "n";
options = { options.desc = "Close";
desc = "Close";
};
} }
{ {
action = "<CMD>tabnew +Telescope\\ file_browser<CR>"; action = "<CMD>tabnew +Telescope\\ yazi<CR>"; # TODO: does not work
key = "<leader>bn"; key = "<leader>bn";
mode = "n"; mode = "n";
options = { options.desc = "Create";
desc = "Create";
};
} }
{ {
action = "<CMD>BufferPick<CR>"; action = "<CMD>BufferPick<CR>";
key = "<leader>bp"; key = "<leader>bp";
mode = "n"; mode = "n";
options = { options.desc = "Pick Tab";
desc = "Pick Tab";
};
} }
]; ];
}; };

View File

@@ -0,0 +1,65 @@
{ ... }:
{
programs.nixvim.plugins.bullets = {
enable = true;
lazyLoad.settings.filetypes = [ "md" "txt" "gitcommit" ];
settings = {
enabled_file_types = [
"markdown"
"text"
"gitcommit"
];
set_mappings = 0;
checkbox_markers = " -X";
custom_mappings = [
[
"nmap"
"<leader>mn"
"<Plug>(bullets-newline)"
]
[
"vmap"
"<leader>mr"
"<Plug>(bullets-renumber)"
]
[
"nmap"
"<leader>mr"
"<Plug>(bullets-renumber)"
]
[
"imap"
"<C-t>"
"<Plug>(bullets-demote)"
]
[
"nmap"
">>"
"<Plug>(bullets-demote)"
]
[
"vmap"
">"
"<Plug>(bullets-demote)"
]
[
"imap"
"<C-d>"
"<Plug>(bullets-promote)"
]
[
"nmap"
"<<"
"<Plug>(bullets-promote)"
]
[
"vmap"
"<"
"<Plug>(bullets-promote)"
]
];
};
};
}

View File

@@ -0,0 +1,70 @@
{ ... }:
{
programs.nixvim.plugins = {
blink-cmp = {
enable = true;
autoLoad = true;
settings = {
keymap.preset = "default";
snippets.preset = "luasnip";
completion.accept = {
auto_brackets = {
enabled = true;
kind_resolution.enabled = true;
semantic_token_resolution = {
enabled = true;
timeout_ms = 400;
};
};
};
sources = {
per_filetype.yaml = [ "papis" ];
providers = {
spell = {
module = "blink-cmp-spell";
name = "Spell";
score_offset = 100;
opts = { };
};
vimtex = {
name = "vimtex";
module = "blink.compat.source";
};
dap = {
name = "dap";
module = "blink.compat.source";
};
mkdnflow = {
name = "mkdnflow";
module = "blink.compat.source";
};
};
default = [
"lsp"
"mkdnflow"
"path"
"snippets"
# "dap"
"vimtex"
"buffer"
"spell"
];
};
};
};
blink-cmp-spell.enable = true;
blink-compat.enable = true;
cmp-vimtex.enable = true;
# cmp-dap.enable = true;
};
}

View File

@@ -0,0 +1,15 @@
{ ... }:
{
programs.nixvim.plugins.colorizer = {
enable = true;
lazyLoad.settings.filetypes = [
"css"
"scss"
"less"
"sass"
"html"
"svg"
];
};
}

View File

@@ -5,7 +5,9 @@
plugins = { plugins = {
comment-box = { comment-box = {
enable = true; enable = true;
autoLoad = true;
}; };
which-key.settings.spec = [ which-key.settings.spec = [
{ {
__unkeyed-1 = "<leader>c"; __unkeyed-1 = "<leader>c";
@@ -14,41 +16,32 @@
} }
]; ];
}; };
keymaps = [ keymaps = [
{ {
key = "<leader>cb"; key = "<leader>cb";
action = "<Cmd>CBccbox<CR>"; action = "<Cmd>CBccbox<CR>";
options = { options.desc = "Box Title";
desc = "Box Title";
};
} }
{ {
key = "<leader>ct"; key = "<leader>ct";
action = "<Cmd>CBllline<CR>"; action = "<Cmd>CBllline<CR>";
options = { options.desc = "Titled Line";
desc = "Titled Line";
};
} }
{ {
key = "<leader>cl"; key = "<leader>cl";
action = "<Cmd>CBline<CR>"; action = "<Cmd>CBline<CR>";
options = { options.desc = "Simple Line";
desc = "Simple Line";
};
} }
{ {
key = "<leader>cm"; key = "<leader>cm";
action = "<Cmd>CBllbox14<CR>"; action = "<Cmd>CBllbox14<CR>";
options = { options.desc = "Marked";
desc = "Marked";
};
} }
{ {
key = "<leader>cd"; key = "<leader>cd";
action = "<Cmd>CBd<CR>"; action = "<Cmd>CBd<CR>";
options = { options.desc = "Remove a Box";
desc = "Remove a Box";
};
} }
]; ];
}; };

View File

@@ -0,0 +1,10 @@
{ ... }:
{
programs.nixvim.plugins.comment = {
enable = true;
autoLoad = true;
settings.mappings.basic = true;
};
}

View File

@@ -21,13 +21,13 @@
programs.nixvim.plugins = { programs.nixvim.plugins = {
conform-nvim = { conform-nvim = {
enable = true; enable = true;
autoLoad = true;
settings = { settings = {
formatters_by_ft = { formatters_by_ft = {
lua = [ "stylua" ]; lua = [ "stylua" ];
rust = [ "rustfmt" ]; rust = [ "rustfmt" ];
python = [ python = [ "black" ];
"black"
];
haskell = [ "fourmolu" ]; haskell = [ "fourmolu" ];
terraform = [ "hcl" ]; terraform = [ "hcl" ];
elixir = [ "mix" ]; elixir = [ "mix" ];
@@ -47,9 +47,7 @@
yaml = [ "prettierd" ]; yaml = [ "prettierd" ];
nu = [ "topiary_nu" ]; nu = [ "topiary_nu" ];
nix = [ "nixfmt" ]; nix = [ "nixfmt" ];
tex = [ tex = [ "tex-fmt" ];
"tex-fmt"
];
"_" = [ "_" = [
"squeeze_blanks" "squeeze_blanks"
"trim_whitespace" "trim_whitespace"
@@ -94,9 +92,7 @@
"2" "2"
]; ];
}; };
tex-fmt = { tex-fmt.command = "tex-fmt";
command = "tex-fmt";
};
}; };
}; };
}; };

View File

@@ -1,8 +0,0 @@
{ ... }:
{
programs.nixvim.plugins.vim-css-color = {
enable = true;
lazyLoad.settings.filetypes = [ "css" ];
};
}

View File

@@ -0,0 +1,49 @@
{ ... }:
{
programs.nixvim = {
plugins = {
csvview = {
enable = true;
lazyLoad.settings.cmd = [
"CsvViewEnable"
"CsvViewToggle"
];
settings = {
parser.async_chunksize = 30;
view = {
display_mode = "border";
spacing = 2;
};
};
};
which-key.settings.spec = [
{
__unkeyed-1 = "<leader>z";
group = "CSV";
icon = " ";
}
];
};
keymaps = [
{
key = "<leader>ze";
action = "<Cmd>CsvViewEnable<CR>";
options.desc = "Csv enable preview";
}
{
key = "<leader>zd";
action = "<Cmd>CsvViewDisable<CR>";
options.desc = "Csv disable preview";
}
{
key = "<leader>zt";
action = "<Cmd>CsvViewToggle<CR>";
options.desc = "Csv toggle preview";
}
];
};
}

View File

@@ -1,4 +1,4 @@
{ config, pkgs, ... }: { pkgs, ... }:
{ {
home.packages = with pkgs; [ home.packages = with pkgs; [
@@ -13,10 +13,13 @@
plugins = { plugins = {
dap-python = { dap-python = {
enable = true; enable = true;
autoLoad = true;
}; };
dap = { dap = {
enable = true; enable = true;
autoLoad = true;
luaConfig.post = '' luaConfig.post = ''
local dap, dapui = require("dap"), require("dapui") local dap, dapui = require("dap"), require("dapui")
dap.listeners.before.attach.dapui_config = function() dap.listeners.before.attach.dapui_config = function()
@@ -32,11 +35,13 @@
dapui.close() dapui.close()
end end
''; '';
adapters = { adapters = {
executables = { executables = {
lldb = { lldb = {
command = "${pkgs.lldb_19}/bin/lldb-dap"; command = "${pkgs.lldb_19}/bin/lldb-dap";
}; };
gdb = { gdb = {
command = "${pkgs.gdb}/bin/gdb"; command = "${pkgs.gdb}/bin/gdb";
args = [ args = [
@@ -45,6 +50,7 @@
"set print pretty on" "set print pretty on"
]; ];
}; };
rust-gdb = { rust-gdb = {
command = "${pkgs.rustc}/bin/rust-gdb"; command = "${pkgs.rustc}/bin/rust-gdb";
args = [ args = [
@@ -55,9 +61,8 @@
}; };
}; };
}; };
signs = {
dapBreakpoint.text = ""; signs.dapBreakpoint.text = "";
};
configurations = { configurations = {
cpp = [ cpp = [
{ {
@@ -104,6 +109,7 @@
cwd = "\${workspaceFolder}"; cwd = "\${workspaceFolder}";
} }
]; ];
c = [ c = [
{ {
name = "Launch file"; name = "Launch file";
@@ -136,6 +142,7 @@
args = { }; args = { };
} }
]; ];
rust = [ rust = [
{ {
name = "Launch"; name = "Launch";
@@ -182,12 +189,17 @@
]; ];
}; };
}; };
dap-ui = { dap-ui = {
enable = true; enable = true;
autoLoad = true;
}; };
dap-virtual-text = { dap-virtual-text = {
enable = true; enable = true;
autoLoad = true;
}; };
which-key.settings.spec = [ which-key.settings.spec = [
{ {
__unkeyed-1 = "<leader>d"; __unkeyed-1 = "<leader>d";
@@ -196,70 +208,55 @@
} }
]; ];
}; };
keymaps = [ keymaps = [
{ {
key = "<leader>dt"; key = "<leader>dt";
action.__raw = "function() require('dap').toggle_breakpoint() end"; action.__raw = "function() require('dap').toggle_breakpoint() end";
mode = [ "n" ]; mode = [ "n" ];
options = { options.desc = "Toggle Breakpoint";
desc = "Toggle Breakpoint";
};
} }
{ {
key = "<leader>dc"; key = "<leader>dc";
action.__raw = "function() require('dap').continue() end"; action.__raw = "function() require('dap').continue() end";
mode = [ "n" ]; mode = [ "n" ];
options = { options.desc = "Continue";
desc = "Continue";
};
} }
{ {
key = "<leader>dc"; key = "<leader>dc";
action.__raw = "function() require('dap').continue() end"; action.__raw = "function() require('dap').continue() end";
mode = [ "n" ]; mode = [ "n" ];
options = { options.desc = "Continue";
desc = "Continue";
};
} }
{ {
key = "<leader>di"; key = "<leader>di";
action.__raw = "function() require('dap').step_into() end"; action.__raw = "function() require('dap').step_into() end";
mode = [ "n" ]; mode = [ "n" ];
options = { options.desc = "Step Into";
desc = "Step Into";
};
} }
{ {
key = "<leader>do"; key = "<leader>do";
action.__raw = "function() require('dap').step_over() end"; action.__raw = "function() require('dap').step_over() end";
mode = [ "n" ]; mode = [ "n" ];
options = { options.desc = "Step Over";
desc = "Step Over";
};
} }
{ {
key = "<leader>du"; key = "<leader>du";
action.__raw = "function() require('dap').step_out() end"; action.__raw = "function() require('dap').step_out() end";
mode = [ "n" ]; mode = [ "n" ];
options = { options.desc = "Step Out";
desc = "Step Out";
};
} }
{ {
key = "<leader>dr"; key = "<leader>dr";
action.__raw = "function() require('dap').repl.open() end"; action.__raw = "function() require('dap').repl.open() end";
mode = [ "n" ]; mode = [ "n" ];
options = { options.desc = "Open REPL";
desc = "Open REPL";
};
} }
{ {
key = "<leader>dl"; key = "<leader>dl";
action.__raw = "function() require('dap').run_last() end"; action.__raw = "function() require('dap').run_last() end";
mode = [ "n" ]; mode = [ "n" ];
options = { options.desc = "Run Last";
desc = "Run Last";
};
} }
{ {
key = "<leader>dq"; key = "<leader>dq";
@@ -272,27 +269,21 @@
end end
''; '';
mode = [ "n" ]; mode = [ "n" ];
options = { options.desc = "Terminate";
desc = "Terminate";
};
} }
{ {
key = "<leader>db"; key = "<leader>db";
action.__raw = "function() require('dap').list_breakpoints() end"; action.__raw = "function() require('dap').list_breakpoints() end";
mode = [ "n" ]; mode = [ "n" ];
options = { options.desc = "List Breakpoints";
desc = "List Breakpoints";
};
} }
{ {
key = "<leader>de"; key = "<leader>de";
action.__raw = "function() require('dap').set_exception_breakpoints({ ' all ' }) end"; action.__raw = "function() require('dap').set_exception_breakpoints({ ' all ' }) end";
mode = [ "n" ]; mode = [ "n" ];
options = { options.desc = "Set Exception Breakpoints";
desc = "Set Exception Breakpoints";
};
} }
]; ];
}; };
} }

View File

@@ -1,21 +1,54 @@
{ {
imports = [ imports = [
./css-color.nix ./aerial.nix
./autopairs.nix
./barbar.nix
./bullets.nix
./cmp.nix
./colorizor.nix
./comment-box.nix
./comment.nix
./conform.nix
./csvview.nix
./dap.nix
./dynomark.nix
./edgy.nix
./gitsigns.nix
./img-clip.nix ./img-clip.nix
./knap.nix
./lualine.nix
./lsp.nix
./lz-n.nix ./lz-n.nix
./markdown-preview.nix
./mkdnflow.nix
./neoscroll.nix
./neotree.nix
./noice.nix
./notify.nix
./oil.nix
./otter.nix
./papis.nix
./rainbow.nix ./rainbow.nix
./render-markdown.nix ./render-markdown.nix
./rustaceanvim.nix ./rustaceanvim.nix
./smart-splits.nix
./snippets.nix
./sniprun.nix
./startup.nix
./surround.nix
./todo-comments.nix
./toggleterm.nix ./toggleterm.nix
./treesitter.nix
./trouble.nix ./trouble.nix
./typst-preview.nix
./typst-vim.nix
./undotree.nix ./undotree.nix
./unified.nix ./unified.nix
./vimtex.nix
./web-devicons.nix ./web-devicons.nix
./which-key.nix ./which-key.nix
./wilder.nix ./wilder.nix
./yazi.nix ./yazi.nix
./yuck.nix ./yuck.nix
./vimtex.nix
]; ];
} }

View File

@@ -14,11 +14,7 @@ let
in in
{ {
programs.nixvim = { programs.nixvim = {
extraPlugins = [ dynomark-nvim ];
extraPlugins = [
dynomark-nvim
];
extraConfigLua = "require('dynomark').setup({})"; extraConfigLua = "require('dynomark').setup({})";
keymaps = [ keymaps = [
@@ -26,17 +22,13 @@ in
key = "<leader>v"; key = "<leader>v";
action = "<Plug>(DynomarkToggle)"; action = "<Plug>(DynomarkToggle)";
mode = [ "n" ]; mode = [ "n" ];
options = { options.desc = "Toggle Dynomark";
desc = "Toggle Dynomark";
};
} }
{ {
key = "<leader>V"; key = "<leader>V";
action = "<Plug>(DynomarkRun)"; action = "<Plug>(DynomarkRun)";
mode = [ "n" ]; mode = [ "n" ];
options = { options.desc = "Run Dynomark query under cursor";
desc = "Run Dynomark query under cursor";
};
} }
]; ];
}; };

View File

@@ -9,10 +9,12 @@
# To prevent this, set `splitkeep` to either `screen` or `topline`. # To prevent this, set `splitkeep` to either `screen` or `topline`.
splitkeep = "screen"; splitkeep = "screen";
}; };
plugins = { plugins = {
edgy = { edgy = {
enable = true; enable = true;
autoLoad = true; autoLoad = true;
settings = { settings = {
bottom.__raw = '' bottom.__raw = ''
{ {
@@ -37,6 +39,7 @@
} }
} }
''; '';
left.__raw = '' left.__raw = ''
{ {
-- Neo-tree filesystem always takes half the screen height -- Neo-tree filesystem always takes half the screen height
@@ -77,4 +80,3 @@
}; };
}; };
} }

View File

@@ -0,0 +1,8 @@
{ ... }:
{
programs.nixvim.plugins.gitsigns = {
enable = true;
autoLoad = true;
};
}

View File

@@ -12,8 +12,6 @@
haskellPackages.ghci-dap haskellPackages.ghci-dap
]; ];
extraPlugins = with pkgs.vimPlugins; [ extraPlugins = with pkgs.vimPlugins; [ haskell-tools-nvim ];
haskell-tools-nvim
];
}; };
} }

View File

@@ -1,6 +1,5 @@
{ pkgs, ... }: { pkgs, ... }:
# TODO: Make filetype keybindings work
let let
keys = [ keys = [
{ {
@@ -11,9 +10,7 @@ let
"v" "v"
"i" "i"
]; ];
options = { options.desc = "Close Viewer (knap)";
desc = "Close Viewer (knap)";
};
} }
{ {
action.__raw = "function() require('knap').toggle_autopreviewing() end"; action.__raw = "function() require('knap').toggle_autopreviewing() end";
@@ -23,9 +20,7 @@ let
"v" "v"
"i" "i"
]; ];
options = { options.desc = "Toggle Auto-Processing (knap)";
desc = "Toggle Auto-Processing (knap)";
};
} }
{ {
action.__raw = "function() require('knap').forward_jump() end"; action.__raw = "function() require('knap').forward_jump() end";
@@ -35,9 +30,7 @@ let
"v" "v"
"i" "i"
]; ];
options = { options.desc = "SyncTeX Forward Search (Knap)";
desc = "SyncTeX Forward Search (Knap)";
};
} }
]; ];
in in
@@ -47,22 +40,18 @@ in
texliveFull texliveFull
rubber rubber
]; ];
programs.nixvim = { programs.nixvim = {
extraPlugins = with pkgs.vimPlugins; [ knap ]; extraPlugins = with pkgs.vimPlugins; [ knap ];
globals = { globals.knap_settings = {
knap_settings = { htmltohtmlviewerlaunch = "luakit %outputfile%";
htmltohtmlviewerlaunch = "luakit %outputfile%"; mdtohtmlviewerlaunch = "luakit %outputfile%";
mdtohtmlviewerlaunch = "luakit %outputfile%"; markdowntohtmlviewerlaunch = "luakit %outputfile%";
markdowntohtmlviewerlaunch = "luakit %outputfile%";
};
}; };
files = { files = {
"ftplugin/latex.lua" = { "ftplugin/latex.lua".keymaps = keys;
keymaps = keys; "ftplugin/markdown.lua".keymaps = keys;
};
"ftplugin/markdown.lua" = {
keymaps = keys;
};
}; };
}; };
} }

View File

@@ -0,0 +1,67 @@
{ pkgs, config, ... }:
{
home.packages = with pkgs; [
tofu-ls
zuban
];
programs.nixvim = {
plugins.lsp = {
enable = true;
autoLoad = true;
};
lsp = {
luaConfig = {
post = ''
vim.lsp.enable('tofu_ls')
vim.lsp.enable('prolog_ls')
'';
};
servers = {
nixd.enable = false;
rust_analyzer.enable = true;
leanls.enable = true;
nil_ls = {
enable = !config.programs.nixvim.plugins.lsp.servers.nixd.enable;
config = {
nil = {
formatting.command = [ "nixfmt" ];
diagnostics.ignored = [ ];
nix.flake.autoArchive = true;
};
};
};
nushell.enable = true;
pylsp.enable = true;
pylyzer.enable = false;
pyright.enable = true;
clangd.enable = true;
zk.enable = true;
elixirls.enable = true;
marksman.enable = true;
texlab.enable = true;
lua_ls.enable = true;
ltex_plus = {
enable = true;
package = pkgs.ltex-ls-plus;
config = {
ltex = {
language = "en-US";
enabled = [
"latex"
"tex"
"bibtex"
"markdown"
"typst"
"quarto"
];
};
};
};
tinymist.enable = true;
};
};
};
}

View File

@@ -0,0 +1,8 @@
{ ... }:
{
programs.nixvim.plugins.lualine = {
enable = true;
autoLoad = true;
};
}

View File

@@ -0,0 +1,8 @@
{ ... }:
{
programs.nixvim.plugins.markdown-preview = {
enable = true;
lazyLoad.settings.filetypes = [ "md" ];
};
}

View File

@@ -2,13 +2,13 @@
{ {
programs.nixvim = { programs.nixvim = {
extraConfigLua = '' extraConfigLua = ''vim.api.nvim_create_autocmd("FileType", {pattern = "markdown", command = "set awa"})'';
vim.api.nvim_create_autocmd("FileType", {pattern = "markdown", command = "set awa"})
'';
plugins = { plugins = {
mkdnflow = { mkdnflow = {
enable = true; enable = true;
lazyLoad.settings.filetypes = [ "md" ];
settings = { settings = {
links = { links = {
style = "wiki"; style = "wiki";
@@ -31,6 +31,7 @@
end end
''; '';
}; };
modules = { modules = {
conceal = true; conceal = true;
cursor = true; cursor = true;
@@ -42,10 +43,12 @@
tables = true; tables = true;
yaml = true; yaml = true;
}; };
filetypes = { filetypes = {
markdown = true; markdown = true;
qmd = true; qmd = true;
}; };
to_do = { to_do = {
symbols = [ symbols = [
" " " "
@@ -54,6 +57,7 @@
]; ];
status_propagation.up = true; status_propagation.up = true;
}; };
foldtext = { foldtext = {
title_transformer.__raw = '' title_transformer.__raw = ''
function() function()
@@ -104,6 +108,7 @@
middle = ""; middle = "";
}; };
}; };
mappings = { mappings = {
MkdnEnter = [ MkdnEnter = [
[ [
@@ -165,6 +170,7 @@
"<C-Space>" "<C-Space>"
]; ];
}; };
create_dirs = true; create_dirs = true;
new_file_template = { new_file_template = {
use_template = true; use_template = true;
@@ -173,10 +179,14 @@
date = "os_date"; date = "os_date";
}; };
template = '' template = ''
--- ---
title: {{ title }} title: {{ title }}
description:
published: true
date: {{ date }} date: {{ date }}
tags: [] tags: private
editor: markdown
dateCreated: {{ date }}
--- ---
# {{ title }} # {{ title }}
''; '';

View File

@@ -4,6 +4,8 @@
programs.nixvim.plugins = { programs.nixvim.plugins = {
neoscroll = { neoscroll = {
enable = true; enable = true;
autoLoad = true;
settings = { settings = {
cursor_scrolls_alone = true; cursor_scrolls_alone = true;
easing_function = "quadratic"; easing_function = "quadratic";
@@ -22,7 +24,6 @@
respect_scrolloff = false; respect_scrolloff = false;
stop_eof = true; stop_eof = true;
}; };
}; };
}; };
} }

View File

@@ -0,0 +1,10 @@
{ ... }:
{
programs.nixvim.plugins.neo-tree = {
enable = true;
autoLoad = true;
settings.enable_git_status = true;
};
}

View File

@@ -0,0 +1,23 @@
{ ... }:
{
programs.nixvim.plugins.noice = {
enable = true;
autoLoad = true;
settings = {
lsp.override = {
"vim.lsp.util.convert_input_to_markdown_lines" = true;
"vim.lsp.util.stylize_markdown" = true;
};
prests = {
bottom_search = true;
command_palette = true;
inc_rename = false;
long_message_to_split = true;
lsp_doc_border = false;
};
};
};
}

View File

@@ -0,0 +1,14 @@
{ ... }:
{
programs.nixvim = {
plugins.notify = {
enable = true;
autoLoad = true;
settings.render = "wrapped-compact";
};
opts.termguicolors = true;
};
}

View File

@@ -0,0 +1,8 @@
{ ... }:
{
programs.nixvim.plugins.oil = {
enable = true;
autoLoad = true;
};
}

View File

@@ -3,6 +3,8 @@
{ {
programs.nixvim.plugins.openscad = { programs.nixvim.plugins.openscad = {
enable = true; enable = true;
lazyLoad.settings.filetype = [ "scad" ];
luaConfig.post = '' luaConfig.post = ''
vim.g.openscad_fuzzy_finder = 'skim' vim.g.openscad_fuzzy_finder = 'skim'
-- when the pdf_command is run, the last argument will be the pdf filename -- when the pdf_command is run, the last argument will be the pdf filename

View File

@@ -0,0 +1,8 @@
{ ... }:
{
programs.nixvim.plugins.otter = {
enable = true;
autoLoad = true;
};
}

View File

@@ -0,0 +1,24 @@
{ pkgs, ... }:
{
programs.nixvim = {
plugins.papis = {
enable = true;
autoLoad = true;
settings = {
yq_bin = "${pkgs.yq-go}/bin/yq";
search.provider = "telescope";
};
};
keymaps = [
{
key = "<leader>pp";
action = "<CMD>Papis search<CR>";
mode = [ "n" ];
options.desc = "Papis";
}
];
};
}

View File

@@ -1,98 +1,75 @@
{ pkgs, ... }: { ... }:
{ {
programs.nixvim = { programs.nixvim.plugins.rainbow = {
plugins = { enable = true;
rainbow = { autoLoad = true;
enable = true;
lazyLoad.settings.event = [
"BufReadPost"
"BufNewFile"
];
settings = { settings = {
active = 1; active = 1;
conf = { conf = {
guifgs = [ guifgs = [
"#f5c2e7" "#f5c2e7"
"#eba0ac" "#eba0ac"
"#a6e3a1" "#a6e3a1"
"#74c7ec" "#74c7ec"
"#f5e0dc" "#f5e0dc"
"#cba6f7" "#cba6f7"
"#fab387" "#fab387"
"#94e2d5" "#94e2d5"
"#89b4fa" "#89b4fa"
"#f2cdcd" "#f2cdcd"
"#f38ba8" "#f38ba8"
"#f9e2af" "#f9e2af"
"#89dceb" "#89dceb"
"#b4befe" "#b4befe"
]; ];
operators = "_,_"; operators = "_,_";
parentheses = [ parentheses = [
"start=/(/ end=/)/ fold" "start=/(/ end=/)/ fold"
"start=/{/ end=/}/ fold" "start=/{/ end=/}/ fold"
"start=/\\[/ end=/\\]/ fold" "start=/\\[/ end=/\\]/ fold"
"start=/\\begin/ end=/\\end/ fold" "start=/\\begin/ end=/\\end/ fold"
]; ];
separately = { separately = {
"*" = { "*".parentheses = [
parentheses = [ "start=/(/ end=/)/ fold"
"start=/(/ end=/)/ fold" "start=/{/ end=/}/ fold"
"start=/{/ end=/}/ fold" "start=/\\[/ end=/\\]/ fold"
"start=/\\[/ end=/\\]/ fold" ];
]; css = 0;
}; haskell.parentheses = [
css = 0; "start=/(/ end=/)/ fold"
haskell = { "start=/\[/ end=/\]/ fold"
parentheses = [ "start=/\v\{\ze[^-]/ end=/}/ fold"
"start=/(/ end=/)/ fold" ];
"start=/\[/ end=/\]/ fold" lisp.guifgs = [
"start=/\v\{\ze[^-]/ end=/}/ fold" "#f5c2e7"
]; "#eba0ac"
}; "#a6e3a1"
lisp = { "#74c7ec"
guifgs = [ "#f5e0dc"
"#f5c2e7" "#cba6f7"
"#eba0ac" "#fab387"
"#a6e3a1" "#94e2d5"
"#74c7ec" "#89b4fa"
"#f5e0dc" "#f2cdcd"
"#cba6f7" "#f38ba8"
"#fab387" "#f9e2af"
"#94e2d5" "#89dceb"
"#89b4fa" "#b4befe"
"#f2cdcd" ];
"#f38ba8" markdown.parentheses_options = "containedin=markdownCode contained";
"#f9e2af" nerdtree = 0;
"#89dceb" perl.syn_name_prefix = "perlBlockFoldRainbow";
"#b4befe" stylus.parentheses = [ "start=/{/ end=/}/ fold contains=@colorableGroup" ];
]; tex.parentheses = [
}; "start=/(/ end=/)/ fold"
markdown = { "start=/{/ end=/}/ fold"
parentheses_options = "containedin=markdownCode contained"; "start=/\\[/ end=/\\]/ fold"
}; "start=/\\begin/ end=/\\end/ fold"
nerdtree = 0; ];
perl = { vim.parentheses_options = "containedin=vimFuncBody";
syn_name_prefix = "perlBlockFoldRainbow";
};
stylus = {
parentheses = [ "start=/{/ end=/}/ fold contains=@colorableGroup" ];
};
tex = {
parentheses = [
"start=/(/ end=/)/ fold"
"start=/{/ end=/}/ fold"
"start=/\\[/ end=/\\]/ fold"
"start=/\\begin/ end=/\\end/ fold"
];
};
vim = {
parentheses_options = "containedin=vimFuncBody";
};
};
};
}; };
}; };
}; };

View File

@@ -13,6 +13,15 @@
ft = [ "markdown" ]; ft = [ "markdown" ];
latex.enabled = false; latex.enabled = false;
completions.lsp.enabled = true; completions.lsp.enabled = true;
code = {
width = "block";
min_width = 45;
left_pad = 2;
language_pad = 2;
};
heading.icons = [ "󰎤 " "󰎧 " "󰎪 " "󰎭 " "󰎱 " "󰎳 " ];
}; };
}; };
@@ -28,11 +37,9 @@
keymaps = [ keymaps = [
{ {
action = "<CMD>RenderMarkdown toggle<CR>"; action = "<CMD>RenderMarkdown toggle<CR>";
key = "<leader>mp"; key = "<leader>ms";
mode = "n"; mode = "n";
options = { options.desc = "Toggle markdown preview";
desc = "Toggle markdown preview";
};
} }
]; ];
}; };

View File

@@ -4,49 +4,41 @@
programs.nixvim = { programs.nixvim = {
extraPackages = with pkgs; [ rust-analyzer ]; extraPackages = with pkgs; [ rust-analyzer ];
plugins = { plugins.rustaceanvim = {
rustaceanvim = { enable = true;
enable = true; lazyload.settings.filetype = [ "rs" ];
lazyload.settings.filetype = "rs";
};
}; };
files = { files."ftplugin/rust.lua" = {
"ftplugin/rust.lua" = { keymaps = [
keymaps = [ {
{ action.__raw = ''
action.__raw = '' function()
function() vim.cmd.RustAnalyzer('codeAction')
vim.cmd.RustAnalyzer('codeAction') end
end '';
''; key = "<leader>a";
key = "<leader>a"; mode = [ "n" ];
mode = [ options = {
"n" desc = "Code action";
]; silent = true;
options = { buffer.__raw = "vim.api.nvim_get_current_buf()";
desc = "Code action"; };
silent = true; }
buffer.__raw = "vim.api.nvim_get_current_buf()"; {
}; action.__raw = ''
} function()
{ vim.cmd.RustAnalyzer({'hover', 'actions'})
action.__raw = '' end
function() '';
vim.cmd.RustAnalyzer({'hover', 'actions'}) key = "K";
end mode = [ "n" ];
''; options = {
key = "K"; silent = true;
mode = [ buffer.__raw = "vim.api.nvim_get_current_buf()";
"n" };
]; }
options = { ];
silent = true;
buffer.__raw = "vim.api.nvim_get_current_buf()";
};
}
];
};
}; };
}; };
} }

View File

@@ -0,0 +1,108 @@
{ ... }:
{
programs.nixvim = {
plugins = {
smart-splits = {
enable = true;
autoLoad = true;
};
};
keymaps = [
{
action.__raw = "require('smart-splits').move_cursor_left";
key = "<C-S-p>h";
mode = "n";
}
{
action.__raw = "require('smart-splits').move_cursor_right";
key = "<C-S-p>l";
mode = "n";
}
{
action.__raw = "require('smart-splits').move_cursor_down";
key = "<C-S-p>j";
mode = "n";
}
{
action.__raw = "require('smart-splits').move_cursor_up";
key = "<C-S-p>k";
mode = "n";
}
{
action.__raw = "require('smart-splits').resize_left";
key = "<C-S-r>h";
mode = "n";
}
{
action.__raw = "require('smart-splits').resize_right";
key = "<C-S-r>l";
mode = "n";
}
{
action.__raw = "require('smart-splits').resize_down";
key = "<C-S-r>j";
mode = "n";
}
{
action.__raw = "require('smart-splits').resize_up";
key = "<C-S-r>k";
mode = "n";
}
{
action = "<CMD>silent !kitten @ launch --location=hsplit<CR>";
key = "<C-S-p>s";
mode = [
"n"
"v"
"i"
];
}
{
action = "<CMD>silent !kitten @ launch --location=vsplit<CR>";
key = "<C-S-p>v";
mode = [
"n"
"v"
"i"
];
}
{
action = "<CMD>silent !kitten @ launch --location=hsplit --cwd=current --bias=35<CR>";
key = "<C-S-p>p";
mode = [
"n"
"v"
"i"
];
}
{
action = "<CMD>silent !kitten @ close-window<CR>";
key = "<C-S-p>q";
mode = [
"n"
"v"
"i"
];
}
{
action = "<CMD>silent !kitten @ action layout_action rotate<CR>";
key = "<C-S-p>r";
mode = [
"n"
"v"
"i"
];
}
{
action = "<CMD>silent !kitten @ action toggle_layout stack<CR>";
key = "<C-S-p>f";
mode = [
"n"
"v"
"i"
];
}
];
};
}

View File

@@ -1,15 +1,17 @@
{...}: { ... }:
{ {
programs.nixvim.plugins = { programs.nixvim.plugins = {
luasnip = { luasnip = {
enable = true; enable = true;
autoLoad = true;
fromVscode = [ { } ]; fromVscode = [ { } ];
}; };
friendly-snippets = { friendly-snippets = {
enable = true; enable = true;
lazyLoad.enable = false;
}; };
}; };
} }

View File

@@ -0,0 +1,27 @@
{ ... }:
{
programs.nixvim.plugins.sniprun = {
enable = true;
autoLoad = true;
settings = {
display = [ "VirtualLine" ];
snipruncolors = {
SniprunVirtualTextOk = {
bg = "#91d7e3";
fg = "#000000";
ctermbg = "Cyan";
ctermfg = "Black";
};
SniprunVirtualTextErr = {
bg = "#ee99a0";
fg = "#000000";
ctermbg = "DarkRed";
ctermfg = "Black";
};
};
};
};
}

View File

@@ -0,0 +1,71 @@
{ ... }:
{
programs.nixvim.plugins.startup = {
enable = true;
autoLoad = true;
settings = {
theme = "dashboard";
sections = {
body = {
align = "center";
content = [
[
" Find File"
"Telescope find_files"
"<leader>ff"
]
[
"󰍉 Find Word"
"Telescope live_grep"
"<leader>lg"
]
[
" Recent Files"
"Telescope oldfiles"
"<leader>of"
]
[
" Yazi"
"Telescope file_browser"
"<leader>yf"
]
[
" Colorschemes"
"Telescope colorscheme"
"<leader>cs"
]
[
" New File"
"lua require'startup'.new_file()"
"<leader>nf"
]
];
defaultColor = "";
foldSection = true;
highlight = "String";
margin = 5;
oldfilesAmount = 0;
title = "Basic Commands";
type = "mapping";
};
header = {
align = "center";
content = {
__raw = "require('startup.headers').hydra_header";
};
defaultColor = "";
foldSection = false;
highlight = "Statement";
margin = 5;
oldfilesAmount = 0;
title = "Header";
type = "text";
};
};
};
};
}

View File

@@ -0,0 +1,172 @@
{ ... }:
{
programs.nixvim.plugins.nvim-surround = {
enable = true;
autoLoad = true;
luaConfig.post = ''
local M = {}
M.get_input = function(prompt)
local input = require("nvim-surround.input")
return input.get_input(prompt)
end
M.get_selection = function(args)
if args.char then
return M.get_find(args.char)(args.char)
elseif args.motion then
return require("nvim-surround.motions").get_selection(args.motion)
elseif args.node then
return require("nvim-surround.treesitter").get_selection(args.node)
elseif args.pattern then
return require("nvim-surround.patterns").get_selection(args.pattern)
elseif args.query then
return require("nvim-surround.queries").get_selection(args.query.capture, args.query.type)
else
vim.notify("Invalid key provided for `:h nvim-surround.config.get_selection()`.", vim.log.levels.ERROR)
end
end
surrounds = {
["("] = {
add = { "( ", " )" },
find = function()
return M.get_selection({ motion = "a(" })
end,
delete = "^(. ?)().-( ?.)()$",
},
[")"] = {
add = { "(", ")" },
find = function()
return M.get_selection({ motion = "a)" })
end,
delete = "^(.)().-(.)()$",
},
["{"] = {
add = { "{ ", " }" },
find = function()
return M.get_selection({ motion = "a{" })
end,
delete = "^(. ?)().-( ?.)()$",
},
["}"] = {
add = { "{", "}" },
find = function()
return M.get_selection({ motion = "a}" })
end,
delete = "^(.)().-(.)()$",
},
["<"] = {
add = { "< ", " >" },
find = function()
return M.get_selection({ motion = "a<" })
end,
delete = "^(. ?)().-( ?.)()$",
},
[">"] = {
add = { "<", ">" },
find = function()
return M.get_selection({ motion = "a>" })
end,
delete = "^(.)().-(.)()$",
},
["["] = {
add = { "[ ", " ]" },
find = function()
return M.get_selection({ motion = "a[" })
end,
delete = "^(. ?)().-( ?.)()$",
},
["]"] = {
add = { "[", "]" },
find = function()
return M.get_selection({ motion = "a]" })
end,
delete = "^(.)().-(.)()$",
},
["'"] = {
add = { "'", "'" },
find = function()
return M.get_selection({ motion = "a'" })
end,
delete = "^(.)().-(.)()$",
},
['"'] = {
add = { '"', '"' },
find = function()
return M.get_selection({ motion = 'a"' })
end,
delete = "^(.)().-(.)()$",
},
["`"] = {
add = { "`", "`" },
find = function()
return M.get_selection({ motion = "a`" })
end,
delete = "^(.)().-(.)()$",
},
["i"] = {
add = function()
local left_delimiter = M.get_input("Enter the left delimiter: ")
local right_delimiter = left_delimiter and M.get_input("Enter the right delimiter: ")
if right_delimiter then
return { { left_delimiter }, { right_delimiter } }
end
end,
find = function() end,
delete = function() end,
},
}
'';
settings.aliases = {
"a" = ">";
"b" = ")";
"B" = "}";
"r" = "]";
"q" = [
"\""
"'"
"`"
];
"Q" = "''";
"s" = [
"}"
"]"
")"
">"
"\""
"'"
"`"
];
};
keymaps = {
insert = "<C-g>s";
insert_line = "<C-g>S";
normal = "ys";
normal_cur = "yss";
normal_line = "yS";
normal_cur_line = "ySS";
visual = "S";
visual_line = "gS";
delete = "ds";
# TODO: This keymap clashed with comment boxses
change = "cs";
change_line = "cS";
};
};
}

View File

@@ -4,38 +4,47 @@
programs.nixvim.plugins = { programs.nixvim.plugins = {
todo-comments = { todo-comments = {
enable = true; enable = true;
autoLoad = true;
settings = { settings = {
highlight = { highlight = {
comments_only = false; comments_only = false;
}; };
colors = { colors = {
default = [ default = [
"Identifier" "Identifier"
"#7C3AED" "#7C3AED"
]; ];
error = [ error = [
"DiagnosticError" "DiagnosticError"
"ErrorMsg" "ErrorMsg"
"#DC2626" "#DC2626"
]; ];
hint = [ hint = [
"DiagnosticHint" "DiagnosticHint"
"#10B981" "#10B981"
]; ];
info = [ info = [
"DiagnosticInfo" "DiagnosticInfo"
"#2563EB" "#2563EB"
]; ];
test = [ test = [
"Identifier" "Identifier"
"#FF00FF" "#FF00FF"
]; ];
warning = [ warning = [
"DiagnosticWarn" "DiagnosticWarn"
"WarningMsg" "WarningMsg"
"#FBBF24" "#FBBF24"
]; ];
}; };
keywords = { keywords = {
FIX = { FIX = {
alt = [ alt = [
@@ -47,10 +56,12 @@
color = "error"; color = "error";
icon = " "; icon = " ";
}; };
HACK = { HACK = {
color = "warning"; color = "warning";
icon = " "; icon = " ";
}; };
NOTE = { NOTE = {
alt = [ alt = [
"INFO" "INFO"
@@ -58,6 +69,7 @@
color = "hint"; color = "hint";
icon = " "; icon = " ";
}; };
PERF = { PERF = {
alt = [ alt = [
"OPTIM" "OPTIM"
@@ -66,6 +78,7 @@
]; ];
icon = " "; icon = " ";
}; };
TEST = { TEST = {
alt = [ alt = [
"TESTING" "TESTING"
@@ -75,10 +88,12 @@
color = "test"; color = "test";
icon = " "; icon = " ";
}; };
TODO = { TODO = {
color = "info"; color = "info";
icon = " "; icon = " ";
}; };
WARN = { WARN = {
alt = [ alt = [
"WARNING" "WARNING"

View File

@@ -20,7 +20,7 @@
which-key.settings.spec = [ which-key.settings.spec = [
{ {
__unkeyed-1 = "<leader>c"; __unkeyed-1 = "<leader>s";
group = "Terminal"; group = "Terminal";
icon = " "; icon = " ";
} }
@@ -30,27 +30,21 @@
keymaps = [ keymaps = [
{ {
action = "<CMD>ToggleTermSendCurrentLine<CR>"; action = "<CMD>ToggleTermSendCurrentLine<CR>";
key = "<leader>cl"; key = "<leader>sl";
mode = "n"; mode = "n";
options = { options.desc = "Send Current Line";
desc = "Send Current Line";
};
} }
{ {
action = "<CMD>ToggleTermSendVisualLines<CR>"; action = "<CMD>ToggleTermSendVisualLines<CR>";
key = "<leader>cv"; key = "<leader>sv";
mode = "x"; mode = "x";
options = { options.desc = "Send all the (whole) lines in selection";
desc = "Send all the (whole) lines in selection";
};
} }
{ {
action = "<CMD>ToggleTermSendVisualSelection<CR>"; action = "<CMD>ToggleTermSendVisualSelection<CR>";
key = "<leader>cs"; key = "<leader>ss";
mode = "x"; mode = "x";
options = { options.desc = "Send selection";
desc = "Send selection";
};
} }
]; ];
}; };

View File

@@ -4,6 +4,8 @@
programs.nixvim.plugins = { programs.nixvim.plugins = {
treesitter = { treesitter = {
enable = true; enable = true;
autoLoad = true;
folding.enable = false; folding.enable = false;
settings = { settings = {
auto_install = false; auto_install = false;
@@ -13,6 +15,7 @@
ts-context-commentstring = { ts-context-commentstring = {
enable = true; enable = true;
lazyLoad.enable = false;
}; };
}; };
} }

View File

@@ -16,9 +16,7 @@
# Diagnostics for the current buffer only # Diagnostics for the current buffer only
diagnostics_buffer = { diagnostics_buffer = {
mode = "diagnostics"; mode = "diagnostics";
filter = { filter.buf = 0;
buf = 0;
};
}; };
}; };
focus = false; focus = false;

View File

@@ -0,0 +1,30 @@
{ ... }:
{
programs.nixvim = {
plugins.typst-preview = {
enable = true;
lazyLoad = {
settings = {
ft = [ "typst" ];
cmd = "TypstPreview";
};
};
settings.open_command = "qutebrowser --target tab %s";
};
files."ftplugin/typst.lua".keymaps = [
{
action = "<CMD>TypstPreview<CR>";
key = "<C-k>t";
mode = [
"n"
"v"
"i"
];
options.desc = "Typst Preview";
}
];
};
}

View File

@@ -0,0 +1,15 @@
{ ... }:
# TODO: conceal does not work
{
programs.nixvim.plugins.typst-vim = {
enable = true;
lazyLoad.settings.filetypes = [ "typst" ];
settings = {
conceal = 1;
conceal_math = 1;
conceal_emoji = 1;
};
};
}

View File

@@ -16,6 +16,7 @@
} }
]; ];
}; };
keymaps = [ keymaps = [
{ {
key = "<leader>us"; key = "<leader>us";

View File

@@ -1,17 +1,45 @@
{ ... }: { pkgs,... }:
{ {
programs.nixvim = { programs.nixvim = {
extraPackages = with pkgs; [
texliveFull
texlivePackages.standalone
texlivePackages.relsize # needed for BA
# papis-nvim
];
plugins = { plugins = {
vimtex = { vimtex = {
enable = true; enable = true;
lazyLoad.settings.filetype = [ "tex" ];
settings = { settings = {
view_automatic = false; view_automatic = false;
mappings_disable = { mappings_disable = {
"n" = [ "K" ]; "n" = [ "K" ];
}; };
view_method = "zathura";
}; };
}; };
ltex-extra = {
enable = true;
lazyLoad.settings.filetype = [ "tex" ];
};
texpresso = {
enable = true;
lazyload.settings.filetype = [ "tex" ];
};
which-key.settings.spec = [
{
__unkeyed-1 = "<leader>v";
group = "Vimtex";
icon = " ";
}
];
}; };
autoGroups = { autoGroups = {
@@ -36,5 +64,36 @@
''; '';
} }
]; ];
keymaps = [
{
key = "<leader>vc";
action = "<cmd>VimtexCompile<cr>";
options.desc = "Start Vimtex";
}
{
key = "<leader>vs";
action = "<cmd>VimtexStop<cr>";
options.desc = "Stop Vimtex";
}
{
key = "<leader>vr";
action = "<cmd>VimtexClean<cr>";
options.desc = "Clean Vimtex";
}
];
files."ftplugin/latex.lua".keymaps = [
{
action = "<CMD>Texpresso %<CR>";
key = "<C-k>t";
mode = [
"n"
"v"
"i"
];
options.desc = "Start Texpresso";
}
];
}; };
} }

View File

@@ -3,9 +3,6 @@
{ {
programs.nixvim.plugins.web-devicons = { programs.nixvim.plugins.web-devicons = {
enable = true; enable = true;
lazyLoad.settings.event = [ autoLoad = true;
"BufReadPost"
"BufNewFile"
];
}; };
} }

View File

@@ -3,9 +3,6 @@
{ {
programs.nixvim.plugins.which-key = { programs.nixvim.plugins.which-key = {
enable = true; enable = true;
lazyLoad.settings.event = [ autoLoad = true;
"BufReadPost"
"BufNewFile"
];
}; };
} }

View File

@@ -3,10 +3,7 @@
{ {
programs.nixvim.plugins.wilder = { programs.nixvim.plugins.wilder = {
enable = true; enable = true;
lazyLoad.settings.event = [ autoLoad = true;
"BufReadPost"
"BufNewFile"
];
settings.modes = [ settings.modes = [
":" ":"

View File

@@ -5,10 +5,7 @@
plugins = { plugins = {
yazi = { yazi = {
enable = true; enable = true;
lazyLoad.settings.event = [ autoLoad = true;
"BufReadPost"
"BufNewFile"
];
}; };
which-key.settings.spec = [ which-key.settings.spec = [

View File

@@ -3,8 +3,6 @@
{ {
programs.nixvim.plugins.yuck = { programs.nixvim.plugins.yuck = {
enable = true; enable = true;
lazyLoad.settings.filetypes = [ lazyLoad.settings.filetypes = [ "yuck" ];
"yuck"
];
}; };
} }

View File

@@ -2,7 +2,6 @@
{ {
imports = [ imports = [
./emanote.nix
./flameshot.nix ./flameshot.nix
./fnott.nix ./fnott.nix
./gpg-agent.nix ./gpg-agent.nix

View File

@@ -1,23 +0,0 @@
{ config, ... }:
let
emanote = import (
builtins.fetchTarball {
url = "https://github.com/srid/emanote/archive/master.tar.gz";
sha256 = "0kr8bbq1awg2c2ra1mwjxqa9m7is9b6cdksvh48g4w354h5pqbnv";
}
);
in
{
imports = [ emanote.homeManagerModule ];
services.emanote = {
enable = true;
# host = "127.0.0.1"; # default listen address is 127.0.0.1
# port = 7000; # default http port is 7000
notes = [
"/home/elias/Nextcloud/zettelkasten"
];
# TODO: currentSystem
package = emanote.packages."x86_64-linux".default;
};
}