initial commit
This commit is contained in:
commit
7081958f86
9
config/basics/colorscheme.nix
Normal file
9
config/basics/colorscheme.nix
Normal file
@ -0,0 +1,9 @@
|
||||
{
|
||||
colorschemes.onedark = {
|
||||
enable = true;
|
||||
settings = {
|
||||
style = "darker";
|
||||
transparent = false;
|
||||
};
|
||||
};
|
||||
}
|
345
config/basics/keymaps.nix
Normal file
345
config/basics/keymaps.nix
Normal file
@ -0,0 +1,345 @@
|
||||
{
|
||||
keymaps = [
|
||||
# Custom/special keymaps
|
||||
{
|
||||
mode = "n";
|
||||
key = "<leader>c";
|
||||
action = "<cmd>sp<CR> <cmd>term<CR> <cmd>resize 20N<CR> i";
|
||||
options = {
|
||||
silent = true;
|
||||
desc = "Open terminal in split and resize";
|
||||
};
|
||||
}
|
||||
{
|
||||
mode = "n";
|
||||
key = "<leader>h";
|
||||
action = "<cmd>nohl<CR>";
|
||||
options = {
|
||||
silent = true;
|
||||
desc = "Clear search highlight";
|
||||
};
|
||||
}
|
||||
{
|
||||
mode = "n";
|
||||
key = "<leader>z";
|
||||
action = "<cmd>ZenMode<CR><cmd>set wrap<CR><cmd>set linebreak<CR>";
|
||||
options = {
|
||||
silent = true;
|
||||
desc = "Enable ZenMode with wrap and linebreak";
|
||||
};
|
||||
}
|
||||
{
|
||||
mode = "n";
|
||||
key = "<leader>Z";
|
||||
action = "<cmd>ZenMode<CR><cmd>set nowrap<CR><cmd>set nolinebreak<CR>";
|
||||
options = {
|
||||
silent = true;
|
||||
desc = "Enable ZenMode without wrap and linebreak";
|
||||
};
|
||||
}
|
||||
{
|
||||
mode = "n";
|
||||
key = "<C-c>";
|
||||
action = "<cmd>Telescope colorscheme<CR>";
|
||||
options = {
|
||||
silent = true;
|
||||
desc = "Open Telescope colorscheme picker";
|
||||
};
|
||||
}
|
||||
{
|
||||
mode = "n";
|
||||
key = "<C-q>";
|
||||
action = "<cmd>wqa<CR>";
|
||||
options = {
|
||||
silent = true;
|
||||
desc = "Save all and quit";
|
||||
};
|
||||
}
|
||||
{
|
||||
mode = "n";
|
||||
key = "<C-s>";
|
||||
action = "<cmd>w<CR>";
|
||||
options = {
|
||||
silent = true;
|
||||
desc = "Save file";
|
||||
};
|
||||
}
|
||||
{
|
||||
mode = "n";
|
||||
key = "U";
|
||||
action = "<cmd>redo<CR>";
|
||||
options = {
|
||||
silent = true;
|
||||
desc = "Redo last undone change";
|
||||
};
|
||||
}
|
||||
|
||||
# Window management
|
||||
{
|
||||
mode = "n";
|
||||
key = "<leader>vs";
|
||||
action = "<cmd>vs<CR>";
|
||||
options = {
|
||||
silent = true;
|
||||
desc = "Vertical split";
|
||||
};
|
||||
}
|
||||
{
|
||||
mode = "n";
|
||||
key = "<leader>hs";
|
||||
action = "<cmd>sp<CR>";
|
||||
options = {
|
||||
silent = true;
|
||||
desc = "Horizontal split";
|
||||
};
|
||||
}
|
||||
{
|
||||
mode = "n";
|
||||
key = "<leader>tn";
|
||||
action = "<cmd>tabnew<CR>";
|
||||
options = {
|
||||
silent = true;
|
||||
desc = "Open new tab";
|
||||
};
|
||||
}
|
||||
{
|
||||
mode = "n";
|
||||
key = "<leader>th";
|
||||
action = "<cmd>tabprev<CR>";
|
||||
options = {
|
||||
silent = true;
|
||||
desc = "Go to previous tab";
|
||||
};
|
||||
}
|
||||
{
|
||||
mode = "n";
|
||||
key = "<leader>tj";
|
||||
action = "<cmd>tabprev<CR>";
|
||||
options = {
|
||||
silent = true;
|
||||
desc = "Go to previous tab";
|
||||
};
|
||||
}
|
||||
{
|
||||
mode = "n";
|
||||
key = "<leader>tk";
|
||||
action = "<cmd>tabnext<CR>";
|
||||
options = {
|
||||
silent = true;
|
||||
desc = "Go to next tab";
|
||||
};
|
||||
}
|
||||
{
|
||||
mode = "n";
|
||||
key = "<leader>tl";
|
||||
action = "<cmd>tabnext<CR>";
|
||||
options = {
|
||||
silent = true;
|
||||
desc = "Go to next tab";
|
||||
};
|
||||
}
|
||||
{
|
||||
mode = "n";
|
||||
key = "<leader>to";
|
||||
action = "<cmd>tabo<CR>";
|
||||
options = {
|
||||
silent = true;
|
||||
desc = "Close all other tabs";
|
||||
};
|
||||
}
|
||||
{
|
||||
mode = "n";
|
||||
key = "<leader>tc";
|
||||
action = "<cmd>tabc<CR>";
|
||||
options = {
|
||||
silent = true;
|
||||
desc = "Close current tab";
|
||||
};
|
||||
}
|
||||
|
||||
# Window navigation
|
||||
{
|
||||
mode = "n";
|
||||
key = "<C-Tab>";
|
||||
action = "<C-w>w";
|
||||
options = {
|
||||
silent = true;
|
||||
desc = "Cycle through windows";
|
||||
};
|
||||
}
|
||||
{
|
||||
mode = "n";
|
||||
key = "<C-h>";
|
||||
action = "<C-w>h";
|
||||
options = {
|
||||
silent = true;
|
||||
desc = "Move to the left window";
|
||||
};
|
||||
}
|
||||
{
|
||||
mode = "n";
|
||||
key = "<C-j>";
|
||||
action = "<C-w>j";
|
||||
options = {
|
||||
silent = true;
|
||||
desc = "Move to the bottom window";
|
||||
};
|
||||
}
|
||||
{
|
||||
mode = "n";
|
||||
key = "<C-k>";
|
||||
action = "<C-w>k";
|
||||
options = {
|
||||
silent = true;
|
||||
desc = "Move to the top window";
|
||||
};
|
||||
}
|
||||
{
|
||||
mode = "n";
|
||||
key = "<C-l>";
|
||||
action = "<C-w>l";
|
||||
options = {
|
||||
silent = true;
|
||||
desc = "Move to the right window";
|
||||
};
|
||||
}
|
||||
|
||||
# Buffer navigation
|
||||
{
|
||||
mode = "n";
|
||||
key = "<S-l>";
|
||||
action = "<cmd>bnext<CR>";
|
||||
options = {
|
||||
silent = true;
|
||||
desc = "Go to next buffer";
|
||||
};
|
||||
}
|
||||
{
|
||||
mode = "n";
|
||||
key = "<S-h>";
|
||||
action = "<cmd>bprevious<CR>";
|
||||
options = {
|
||||
silent = true;
|
||||
desc = "Go to previous buffer";
|
||||
};
|
||||
}
|
||||
|
||||
# Stay in visual mode when indenting
|
||||
{
|
||||
mode = "v";
|
||||
key = "<";
|
||||
action = "<gv";
|
||||
options = {
|
||||
silent = true;
|
||||
desc = "Indent left and stay in visual mode";
|
||||
};
|
||||
}
|
||||
{
|
||||
mode = "v";
|
||||
key = ">";
|
||||
action = ">gv";
|
||||
options = {
|
||||
silent = true;
|
||||
desc = "Indent right and stay in visual mode";
|
||||
};
|
||||
}
|
||||
|
||||
# Move by physical lines
|
||||
{
|
||||
mode = "n";
|
||||
key = "j";
|
||||
action = "gj";
|
||||
options = {
|
||||
silent = true;
|
||||
desc = "Move down by visual line";
|
||||
};
|
||||
}
|
||||
{
|
||||
mode = "n";
|
||||
key = "k";
|
||||
action = "gk";
|
||||
options = {
|
||||
silent = true;
|
||||
desc = "Move up by visual line";
|
||||
};
|
||||
}
|
||||
|
||||
# NvimTree
|
||||
{
|
||||
mode = "n";
|
||||
key = "<C-n>";
|
||||
action = "<cmd>NvimTreeToggle<CR>";
|
||||
options = {
|
||||
silent = true;
|
||||
desc = "Toggle NvimTree";
|
||||
};
|
||||
}
|
||||
|
||||
# Telescope
|
||||
{
|
||||
mode = "n";
|
||||
key = "<C-f>";
|
||||
action = "<cmd>lua require('telescope.builtin').find_files()<CR>";
|
||||
options = {
|
||||
silent = true;
|
||||
desc = "Find files with Telescope";
|
||||
};
|
||||
}
|
||||
{
|
||||
mode = "n";
|
||||
key = "<leader>ff";
|
||||
action = "<cmd>lua require('telescope.builtin').find_files()<CR>";
|
||||
options = {
|
||||
silent = true;
|
||||
desc = "Find files with Telescope";
|
||||
};
|
||||
}
|
||||
{
|
||||
mode = "n";
|
||||
key = "<leader>fg";
|
||||
action = "<cmd>lua require('telescope.builtin').live_grep()<CR>";
|
||||
options = {
|
||||
silent = true;
|
||||
desc = "Live grep with Telescope";
|
||||
};
|
||||
}
|
||||
{
|
||||
mode = "n";
|
||||
key = "<leader>fb";
|
||||
action = "<cmd>lua require('telescope.builtin').buffers()<CR>";
|
||||
options = {
|
||||
silent = true;
|
||||
desc = "Search buffers with Telescope";
|
||||
};
|
||||
}
|
||||
{
|
||||
mode = "n";
|
||||
key = "<leader>fh";
|
||||
action = "<cmd>lua require('telescope.builtin').help_tags()<CR>";
|
||||
options = {
|
||||
silent = true;
|
||||
desc = "Search help tags with Telescope";
|
||||
};
|
||||
}
|
||||
|
||||
# Easy alignment
|
||||
{
|
||||
mode = "n";
|
||||
key = "ga";
|
||||
action = ":EasyAlign";
|
||||
options = {
|
||||
silent = true;
|
||||
desc = "EasyAlign in normal mode";
|
||||
};
|
||||
}
|
||||
{
|
||||
mode = "v";
|
||||
key = "ga";
|
||||
action = ":EasyAlign";
|
||||
options = {
|
||||
silent = true;
|
||||
desc = "EasyAlign in visual mode";
|
||||
};
|
||||
}
|
||||
];
|
||||
}
|
33
config/basics/options.nix
Normal file
33
config/basics/options.nix
Normal file
@ -0,0 +1,33 @@
|
||||
{
|
||||
globals = {
|
||||
mapleader = " ";
|
||||
};
|
||||
opts = {
|
||||
encoding = "utf8";
|
||||
background = "dark";
|
||||
relativenumber = true;
|
||||
number = true;
|
||||
wrap = false;
|
||||
expandtab = true;
|
||||
incsearch = true;
|
||||
laststatus = 3;
|
||||
scrolloff = 5;
|
||||
tabstop = 2;
|
||||
shiftwidth = 2;
|
||||
cursorline = true;
|
||||
ignorecase = true;
|
||||
smartcase = true;
|
||||
swapfile = false;
|
||||
backup = false;
|
||||
undofile = true;
|
||||
splitbelow = true;
|
||||
splitright = true;
|
||||
errorbells = false;
|
||||
termguicolors = true;
|
||||
showmode = false;
|
||||
showtabline = 1;
|
||||
signcolumn = "auto";
|
||||
clipboard = "unnamedplus";
|
||||
mouse = "a";
|
||||
};
|
||||
}
|
40
config/default.nix
Normal file
40
config/default.nix
Normal file
@ -0,0 +1,40 @@
|
||||
{
|
||||
# Import all your configuration modules here
|
||||
imports = [
|
||||
# Basics
|
||||
./basics/options.nix
|
||||
./basics/keymaps.nix
|
||||
./basics/colorscheme.nix
|
||||
|
||||
# User Interface
|
||||
./ui/bufferline.nix
|
||||
./ui/dashboard.nix
|
||||
./ui/lualine.nix
|
||||
./ui/neoscroll.nix
|
||||
./ui/nvim-tree.nix
|
||||
./ui/telescope.nix
|
||||
./ui/zen-mode.nix
|
||||
|
||||
# Vim Improvements
|
||||
./improvements/repeat.nix
|
||||
./improvements/surround.nix
|
||||
./improvements/commentary.nix
|
||||
|
||||
# Language
|
||||
./language/autopairs.nix
|
||||
./language/colorizer.nix
|
||||
./language/indents.nix
|
||||
./language/rainbow-delimiters.nix
|
||||
|
||||
# LSP, Treesitter, and Completion
|
||||
./lsp/cmp.nix
|
||||
./lsp/copilot.nix
|
||||
./lsp/lsp.nix
|
||||
./lsp/treesitter.nix
|
||||
./lsp/vimtex.nix
|
||||
|
||||
# Git Integration
|
||||
./git/neogit.nix
|
||||
./git/gitsigns.nix
|
||||
];
|
||||
}
|
3
config/git/gitsigns.nix
Normal file
3
config/git/gitsigns.nix
Normal file
@ -0,0 +1,3 @@
|
||||
{
|
||||
plugins.gitsigns.enable = true;
|
||||
}
|
3
config/git/neogit.nix
Normal file
3
config/git/neogit.nix
Normal file
@ -0,0 +1,3 @@
|
||||
{
|
||||
plugins.neogit.enable = true;
|
||||
}
|
3
config/improvements/commentary.nix
Normal file
3
config/improvements/commentary.nix
Normal file
@ -0,0 +1,3 @@
|
||||
{
|
||||
plugins.commentary.enable = true;
|
||||
}
|
3
config/improvements/repeat.nix
Normal file
3
config/improvements/repeat.nix
Normal file
@ -0,0 +1,3 @@
|
||||
{
|
||||
plugins.repeat.enable = true;
|
||||
}
|
3
config/improvements/surround.nix
Normal file
3
config/improvements/surround.nix
Normal file
@ -0,0 +1,3 @@
|
||||
{
|
||||
plugins.surround.enable = true;
|
||||
}
|
8
config/language/autopairs.nix
Normal file
8
config/language/autopairs.nix
Normal file
@ -0,0 +1,8 @@
|
||||
{
|
||||
plugins.nvim-autopairs = {
|
||||
enable = true;
|
||||
settings = {
|
||||
disable_filetype = [ "TelescopePrompt" ];
|
||||
};
|
||||
};
|
||||
}
|
3
config/language/colorizer.nix
Normal file
3
config/language/colorizer.nix
Normal file
@ -0,0 +1,3 @@
|
||||
{
|
||||
plugins.nvim-colorizer.enable = true;
|
||||
}
|
17
config/language/indents.nix
Normal file
17
config/language/indents.nix
Normal file
@ -0,0 +1,17 @@
|
||||
{
|
||||
plugins.indent-blankline = {
|
||||
enable = true;
|
||||
settings = {
|
||||
exclude.filetypes = [
|
||||
"dashboard"
|
||||
"NvimTree"
|
||||
"TelescopePrompt"
|
||||
"TelescopeResults"
|
||||
"man"
|
||||
"help"
|
||||
"checkhealth"
|
||||
"lspinfo"
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
3
config/language/rainbow-delimiters.nix
Normal file
3
config/language/rainbow-delimiters.nix
Normal file
@ -0,0 +1,3 @@
|
||||
{
|
||||
plugins.rainbow-delimiters.enable = true;
|
||||
}
|
71
config/lsp/cmp.nix
Normal file
71
config/lsp/cmp.nix
Normal file
@ -0,0 +1,71 @@
|
||||
{
|
||||
plugins.luasnip.enable = true;
|
||||
plugins.cmp_luasnip.enable = true;
|
||||
plugins.cmp = {
|
||||
enable = true;
|
||||
autoEnableSources = true;
|
||||
|
||||
settings = {
|
||||
experimental = {
|
||||
ghost_text = true;
|
||||
};
|
||||
|
||||
mapping = {
|
||||
"<C-j>" = "cmp.mapping.scroll_docs(4)";
|
||||
"<C-k>" = "cmp.mapping.scroll_docs(-4)";
|
||||
"<CR>" = ''
|
||||
cmp.mapping.confirm {
|
||||
behavior = cmp.ConfirmBehavior.Replace,
|
||||
select = true,
|
||||
}
|
||||
'';
|
||||
"<Tab>" = ''
|
||||
cmp.mapping(function(fallback)
|
||||
if cmp.visible() then
|
||||
cmp.select_next_item()
|
||||
-- elseif luasnip.expand_or_jumpable() then
|
||||
-- luasnip.expand_or_jump()
|
||||
else
|
||||
fallback()
|
||||
end
|
||||
end, { 'i', 's' })
|
||||
'';
|
||||
"<S-Tab>" = ''
|
||||
cmp.mapping(function(fallback)
|
||||
if cmp.visible() then
|
||||
cmp.select_prev_item()
|
||||
-- elseif luasnip.jumpable(-1) then
|
||||
-- luasnip.jump(-1)
|
||||
else
|
||||
fallback()
|
||||
end
|
||||
end, { 'i', 's' })
|
||||
'';
|
||||
};
|
||||
|
||||
sources = [
|
||||
{
|
||||
name = "luasnip";
|
||||
groupIndex = 1;
|
||||
priority = 5;
|
||||
max_item_count = 5;
|
||||
}
|
||||
{
|
||||
name = "copilot";
|
||||
groupIndex = 1;
|
||||
priority = 4;
|
||||
max_item_count = 5;
|
||||
}
|
||||
{
|
||||
name = "nvim_lsp";
|
||||
groupIndex = 1;
|
||||
priority = 3;
|
||||
max_item_count = 5;
|
||||
}
|
||||
{ name = "path"; }
|
||||
{ name = "buffer"; }
|
||||
{ name = "dictionary"; }
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
23
config/lsp/copilot.nix
Normal file
23
config/lsp/copilot.nix
Normal file
@ -0,0 +1,23 @@
|
||||
{
|
||||
plugins.copilot-lua = {
|
||||
enable = true;
|
||||
|
||||
panel.enabled = false;
|
||||
suggestion.enabled = false;
|
||||
|
||||
filetypes = {
|
||||
yaml = false;
|
||||
markdown = false;
|
||||
help = false;
|
||||
gitcommit = false;
|
||||
gitrebase = false;
|
||||
hgcommit = false;
|
||||
svn = false;
|
||||
cvs = false;
|
||||
"." = false;
|
||||
"*" = true;
|
||||
};
|
||||
};
|
||||
|
||||
plugins.copilot-cmp.enable = true;
|
||||
}
|
59
config/lsp/lsp.nix
Normal file
59
config/lsp/lsp.nix
Normal file
@ -0,0 +1,59 @@
|
||||
{
|
||||
plugins.lsp = {
|
||||
enable = true;
|
||||
|
||||
servers = {
|
||||
# TypeScript / JavaScript
|
||||
tsserver.enable = true;
|
||||
|
||||
# HTML
|
||||
html.enable = true;
|
||||
|
||||
# CSS
|
||||
cssls.enable = true;
|
||||
|
||||
# JSON
|
||||
jsonls.enable = true;
|
||||
|
||||
# Rust
|
||||
rust-analyzer = {
|
||||
enable = true;
|
||||
installRustc = true;
|
||||
installCargo = true;
|
||||
};
|
||||
|
||||
# Python
|
||||
pyright.enable = true;
|
||||
|
||||
# C/C++
|
||||
ccls.enable = true;
|
||||
|
||||
# Yaml
|
||||
yamlls.enable = true;
|
||||
|
||||
# Lua
|
||||
lua-ls.enable = true;
|
||||
|
||||
# Nix
|
||||
nil-ls.enable = true;
|
||||
};
|
||||
};
|
||||
|
||||
plugins.lsp-format.enable = true;
|
||||
|
||||
autoCmd = [
|
||||
{
|
||||
event = [
|
||||
"BufRead"
|
||||
"BufNewFile"
|
||||
];
|
||||
pattern = [
|
||||
"*.txt"
|
||||
"*.md"
|
||||
"*.tex"
|
||||
"LICENSE"
|
||||
];
|
||||
command = "setlocal spell";
|
||||
}
|
||||
];
|
||||
}
|
3
config/lsp/treesitter.nix
Normal file
3
config/lsp/treesitter.nix
Normal file
@ -0,0 +1,3 @@
|
||||
{
|
||||
plugins.treesitter.enable = true;
|
||||
}
|
3
config/lsp/vimtex.nix
Normal file
3
config/lsp/vimtex.nix
Normal file
@ -0,0 +1,3 @@
|
||||
{
|
||||
plugins.vimtex.enable = true;
|
||||
}
|
5
config/ui/bufferline.nix
Normal file
5
config/ui/bufferline.nix
Normal file
@ -0,0 +1,5 @@
|
||||
{
|
||||
plugins.bufferline = {
|
||||
enable = false;
|
||||
};
|
||||
}
|
61
config/ui/dashboard.nix
Normal file
61
config/ui/dashboard.nix
Normal file
@ -0,0 +1,61 @@
|
||||
{
|
||||
plugins.dashboard = {
|
||||
enable = true;
|
||||
settings = {
|
||||
change_to_vcs_root = true;
|
||||
shortcut_type = "letter";
|
||||
|
||||
hide = {
|
||||
statusline = true;
|
||||
tabline = true;
|
||||
};
|
||||
|
||||
config = {
|
||||
disable_move = true;
|
||||
header = [
|
||||
" _ __ _ ___ "
|
||||
" / | / /__ ____| | / (_)___ ___ "
|
||||
" / |/ / _ \\/ __ \\ | / / / __ `__ \\"
|
||||
" / /| / __/ /_/ / |/ / / / / / / /"
|
||||
"/_/ |_/\\___/\\____/|___/_/_/ /_/ /_/ "
|
||||
" "
|
||||
];
|
||||
footer = [ "NeoVim" ];
|
||||
|
||||
mru = {
|
||||
cwd_only = true;
|
||||
icon = " ";
|
||||
label = "Recent Files";
|
||||
limit = 10;
|
||||
};
|
||||
project = {
|
||||
enable = true;
|
||||
action = "e ";
|
||||
icon = " ";
|
||||
label = "Projects";
|
||||
limit = 8;
|
||||
};
|
||||
shortcut = [
|
||||
{
|
||||
icon = " ";
|
||||
desc = "Open ";
|
||||
key = "o";
|
||||
action = "Telescope find_files";
|
||||
}
|
||||
{
|
||||
icon = " ";
|
||||
desc = "Recent ";
|
||||
key = "r";
|
||||
action = "Telescope oldfiles";
|
||||
}
|
||||
{
|
||||
icon = " ";
|
||||
desc = "Config ";
|
||||
key = "c";
|
||||
action = "e $HOME/Documents/Code/Personal/NixFiles - Personal";
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
5
config/ui/lualine.nix
Normal file
5
config/ui/lualine.nix
Normal file
@ -0,0 +1,5 @@
|
||||
{
|
||||
plugins.lualine = {
|
||||
enable = true;
|
||||
};
|
||||
}
|
3
config/ui/neoscroll.nix
Normal file
3
config/ui/neoscroll.nix
Normal file
@ -0,0 +1,3 @@
|
||||
{
|
||||
plugins.neoscroll.enable = true;
|
||||
}
|
18
config/ui/nvim-tree.nix
Normal file
18
config/ui/nvim-tree.nix
Normal file
@ -0,0 +1,18 @@
|
||||
{
|
||||
plugins.nvim-tree = {
|
||||
enable = true;
|
||||
disableNetrw = true;
|
||||
hijackCursor = true;
|
||||
selectPrompts = true;
|
||||
|
||||
renderer = {
|
||||
fullName = true;
|
||||
highlightGit = true;
|
||||
};
|
||||
|
||||
tab.sync = {
|
||||
open = true;
|
||||
close = true;
|
||||
};
|
||||
};
|
||||
}
|
43
config/ui/telescope.nix
Normal file
43
config/ui/telescope.nix
Normal file
@ -0,0 +1,43 @@
|
||||
{
|
||||
plugins.telescope = {
|
||||
enable = true;
|
||||
keymaps = {
|
||||
"<C-p>" = {
|
||||
action = "git_files";
|
||||
options = {
|
||||
desc = "Telescope: Files";
|
||||
};
|
||||
};
|
||||
"<leader>ff" = {
|
||||
action = "git_files";
|
||||
options = {
|
||||
desc = "Telescope: Files";
|
||||
};
|
||||
};
|
||||
"<leader>fF" = {
|
||||
action = "find_files hidden=true";
|
||||
options = {
|
||||
desc = "Telescope: Files (hidden)";
|
||||
};
|
||||
};
|
||||
"<leader>fg" = {
|
||||
action = "live_grep";
|
||||
options = {
|
||||
desc = "Telescope: Grep";
|
||||
};
|
||||
};
|
||||
"<leader>fG" = {
|
||||
action = "live_grep hidden=true";
|
||||
options = {
|
||||
desc = "Telescope: Files";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
extensions = {
|
||||
fzf-native.enable = true;
|
||||
media-files.enable = true;
|
||||
ui-select.enable = true;
|
||||
};
|
||||
};
|
||||
}
|
3
config/ui/zen-mode.nix
Normal file
3
config/ui/zen-mode.nix
Normal file
@ -0,0 +1,3 @@
|
||||
{
|
||||
plugins.zen-mode.enable = true;
|
||||
}
|
327
flake.lock
Normal file
327
flake.lock
Normal file
@ -0,0 +1,327 @@
|
||||
{
|
||||
"nodes": {
|
||||
"devshell": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixvim",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1722113426,
|
||||
"narHash": "sha256-Yo/3loq572A8Su6aY5GP56knpuKYRvM2a1meP9oJZCw=",
|
||||
"owner": "numtide",
|
||||
"repo": "devshell",
|
||||
"rev": "67cce7359e4cd3c45296fb4aaf6a19e2a9c757ae",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "devshell",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-compat": {
|
||||
"locked": {
|
||||
"lastModified": 1696426674,
|
||||
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
|
||||
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
|
||||
"revCount": 57,
|
||||
"type": "tarball",
|
||||
"url": "https://api.flakehub.com/f/pinned/edolstra/flake-compat/1.0.1/018afb31-abd1-7bff-a5e4-cff7e18efb7a/source.tar.gz"
|
||||
},
|
||||
"original": {
|
||||
"type": "tarball",
|
||||
"url": "https://flakehub.com/f/edolstra/flake-compat/1.tar.gz"
|
||||
}
|
||||
},
|
||||
"flake-parts": {
|
||||
"inputs": {
|
||||
"nixpkgs-lib": "nixpkgs-lib"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1725234343,
|
||||
"narHash": "sha256-+ebgonl3NbiKD2UD0x4BszCZQ6sTfL4xioaM49o5B3Y=",
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"rev": "567b938d64d4b4112ee253b9274472dc3a346eb6",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-parts_2": {
|
||||
"inputs": {
|
||||
"nixpkgs-lib": [
|
||||
"nixvim",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1722555600,
|
||||
"narHash": "sha256-XOQkdLafnb/p9ij77byFQjDf5m5QYl9b2REiVClC+x4=",
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"rev": "8471fe90ad337a8074e957b69ca4d0089218391d",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-utils": {
|
||||
"inputs": {
|
||||
"systems": "systems"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1710146030,
|
||||
"narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=",
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"git-hooks": {
|
||||
"inputs": {
|
||||
"flake-compat": [
|
||||
"nixvim",
|
||||
"flake-compat"
|
||||
],
|
||||
"gitignore": "gitignore",
|
||||
"nixpkgs": [
|
||||
"nixvim",
|
||||
"nixpkgs"
|
||||
],
|
||||
"nixpkgs-stable": [
|
||||
"nixvim",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1724857454,
|
||||
"narHash": "sha256-Qyl9Q4QMTLZnnBb/8OuQ9LSkzWjBU1T5l5zIzTxkkhk=",
|
||||
"owner": "cachix",
|
||||
"repo": "git-hooks.nix",
|
||||
"rev": "4509ca64f1084e73bc7a721b20c669a8d4c5ebe6",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "cachix",
|
||||
"repo": "git-hooks.nix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"gitignore": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixvim",
|
||||
"git-hooks",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1709087332,
|
||||
"narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=",
|
||||
"owner": "hercules-ci",
|
||||
"repo": "gitignore.nix",
|
||||
"rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "hercules-ci",
|
||||
"repo": "gitignore.nix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"home-manager": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixvim",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1724435763,
|
||||
"narHash": "sha256-UNky3lJNGQtUEXT2OY8gMxejakSWPTfWKvpFkpFlAfM=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "c2cd2a52e02f1dfa1c88f95abeb89298d46023be",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nix-darwin": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixvim",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1724561770,
|
||||
"narHash": "sha256-zv8C9RNa86CIpyHwPIVO/k+5TfM8ZbjGwOOpTe1grls=",
|
||||
"owner": "lnl7",
|
||||
"repo": "nix-darwin",
|
||||
"rev": "ac5694a0b855a981e81b4d9f14052e3ff46ca39e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "lnl7",
|
||||
"repo": "nix-darwin",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1725634671,
|
||||
"narHash": "sha256-v3rIhsJBOMLR8e/RNWxr828tB+WywYIoajrZKFM+0Gg=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "574d1eac1c200690e27b8eb4e24887f8df7ac27c",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nixos",
|
||||
"ref": "nixos-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs-lib": {
|
||||
"locked": {
|
||||
"lastModified": 1725233747,
|
||||
"narHash": "sha256-Ss8QWLXdr2JCBPcYChJhz4xJm+h/xjl4G0c0XlP6a74=",
|
||||
"type": "tarball",
|
||||
"url": "https://github.com/NixOS/nixpkgs/archive/356624c12086a18f2ea2825fed34523d60ccc4e3.tar.gz"
|
||||
},
|
||||
"original": {
|
||||
"type": "tarball",
|
||||
"url": "https://github.com/NixOS/nixpkgs/archive/356624c12086a18f2ea2825fed34523d60ccc4e3.tar.gz"
|
||||
}
|
||||
},
|
||||
"nixpkgs_2": {
|
||||
"locked": {
|
||||
"lastModified": 1724819573,
|
||||
"narHash": "sha256-GnR7/ibgIH1vhoy8cYdmXE6iyZqKqFxQSVkFgosBh6w=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "71e91c409d1e654808b2621f28a327acfdad8dc2",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixvim": {
|
||||
"inputs": {
|
||||
"devshell": "devshell",
|
||||
"flake-compat": "flake-compat",
|
||||
"flake-parts": "flake-parts_2",
|
||||
"git-hooks": "git-hooks",
|
||||
"home-manager": "home-manager",
|
||||
"nix-darwin": "nix-darwin",
|
||||
"nixpkgs": "nixpkgs_2",
|
||||
"nuschtosSearch": "nuschtosSearch",
|
||||
"treefmt-nix": "treefmt-nix"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1725671303,
|
||||
"narHash": "sha256-PVMrJ90B5plMxlhFUKZMYjTmBJScdTDbZ1ofrYyRQQo=",
|
||||
"owner": "nix-community",
|
||||
"repo": "nixvim",
|
||||
"rev": "c4135d720a5a57b7ddbd7ee918544c26b2c6f732",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"repo": "nixvim",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nuschtosSearch": {
|
||||
"inputs": {
|
||||
"flake-utils": "flake-utils",
|
||||
"nixpkgs": [
|
||||
"nixvim",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1724584782,
|
||||
"narHash": "sha256-7FfHv7b1jwMPSu9SPY9hdxStk8E6EeSwzqdvV69U4BM=",
|
||||
"owner": "NuschtOS",
|
||||
"repo": "search",
|
||||
"rev": "5a08d691de30b6fc28d58ce71a5e420f2694e087",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NuschtOS",
|
||||
"repo": "search",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"flake-parts": "flake-parts",
|
||||
"nixpkgs": "nixpkgs",
|
||||
"nixvim": "nixvim"
|
||||
}
|
||||
},
|
||||
"systems": {
|
||||
"locked": {
|
||||
"lastModified": 1681028828,
|
||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"treefmt-nix": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixvim",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1724833132,
|
||||
"narHash": "sha256-F4djBvyNRAXGusJiNYInqR6zIMI3rvlp6WiKwsRISos=",
|
||||
"owner": "numtide",
|
||||
"repo": "treefmt-nix",
|
||||
"rev": "3ffd842a5f50f435d3e603312eefa4790db46af5",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "treefmt-nix",
|
||||
"type": "github"
|
||||
}
|
||||
}
|
||||
},
|
||||
"root": "root",
|
||||
"version": 7
|
||||
}
|
47
flake.nix
Normal file
47
flake.nix
Normal file
@ -0,0 +1,47 @@
|
||||
{
|
||||
description = "A nixvim configuration";
|
||||
|
||||
inputs = {
|
||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
||||
nixvim.url = "github:nix-community/nixvim";
|
||||
flake-parts.url = "github:hercules-ci/flake-parts";
|
||||
};
|
||||
|
||||
outputs =
|
||||
{ nixvim, flake-parts, ... }@inputs:
|
||||
flake-parts.lib.mkFlake { inherit inputs; } {
|
||||
systems = [
|
||||
"x86_64-linux"
|
||||
"aarch64-linux"
|
||||
"x86_64-darwin"
|
||||
"aarch64-darwin"
|
||||
];
|
||||
|
||||
perSystem =
|
||||
{ pkgs, system, ... }:
|
||||
let
|
||||
nixvimLib = nixvim.lib.${system};
|
||||
nixvim' = nixvim.legacyPackages.${system};
|
||||
nixvimModule = {
|
||||
inherit pkgs;
|
||||
module = import ./config; # import the module directly
|
||||
# You can use `extraSpecialArgs` to pass additional arguments to your module files
|
||||
extraSpecialArgs = {
|
||||
# inherit (inputs) foo;
|
||||
};
|
||||
};
|
||||
nvim = nixvim'.makeNixvimWithModule nixvimModule;
|
||||
in
|
||||
{
|
||||
checks = {
|
||||
# Run `nix flake check .` to verify that your config is not broken
|
||||
default = nixvimLib.check.mkTestDerivationFromNixvimModule nixvimModule;
|
||||
};
|
||||
|
||||
packages = {
|
||||
# Lets you run `nix run .` to start nixvim
|
||||
default = nvim;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
Loading…
Reference in New Issue
Block a user