35 Commits
v1.0.4 ... main

Author SHA1 Message Date
2ebdf4e6a3 feat: update to nixos-25.11
All checks were successful
check-commits / Check commits (pull_request) Successful in 9s
build-flake / build (pull_request) Successful in 5m7s
build-flake / Build flake (push) Successful in 5m38s
build-flake / Release a new version (push) Successful in 9s
2025-12-01 21:19:28 +02:00
b614474c26 feat: add venv-selector, update blink config
All checks were successful
check-commits / Check commits (pull_request) Successful in 8s
build-flake / build (pull_request) Successful in 4m2s
2025-11-12 18:03:44 +02:00
512086bffe version(flake): bump version
All checks were successful
build-flake / Build flake (push) Successful in 4m5s
build-flake / Release a new version (push) Successful in 10s
2025-11-03 21:04:42 +02:00
c74e84ab5f feat(snacks): add extra packages
All checks were successful
build-flake / Build flake (push) Successful in 6m26s
build-flake / Release a new version (push) Successful in 19s
2025-10-26 23:13:44 +02:00
de069c059c feat: add airline, configure oil-git-status
All checks were successful
check-commits / Check commits (pull_request) Successful in 7s
build-flake / build (pull_request) Successful in 3m54s
build-flake / Build flake (push) Successful in 2m57s
build-flake / Release a new version (push) Successful in 12s
2025-10-24 13:05:35 +03:00
c9ebcd6fdb feat: nixvim configuration init
All checks were successful
check-commits / Check commits (pull_request) Successful in 10s
build-flake / build (pull_request) Successful in 6m22s
2025-10-24 10:35:24 +03:00
68488e306b feat: nixvim configuration init
All checks were successful
check-commits / Check commits (pull_request) Successful in 7s
build-flake / build (pull_request) Successful in 6m3s
2025-10-24 10:35:01 +03:00
da66344b91 ci: update build action
All checks were successful
check-commits / Check commits (pull_request) Successful in 8s
build-flake / build (pull_request) Successful in 4m38s
2025-10-23 21:29:05 +03:00
1cb76a84df ci: update build action
All checks were successful
check-commits / Check commits (pull_request) Successful in 7s
build-flake / build (pull_request) Successful in 2m46s
2025-10-23 21:25:14 +03:00
d0011ce867 feat: nixvim configuration init
All checks were successful
check-commits / Check commits (pull_request) Successful in 9s
build-flake / build (pull_request) Successful in 2m54s
2025-10-23 19:50:10 +03:00
0e0e75eeb6 feat: revert latest changes because of the regression
All checks were successful
build-flake / Build flake (push) Successful in 6m32s
build-flake / Release a new version (push) Successful in 8s
Regression details see here https://github.com/nix-community/neovim-nightly-overlay/issues/741
2024-12-27 15:06:10 +02:00
2363568940 feat: bump versions
All checks were successful
build-flake / Build flake (push) Successful in 10m31s
build-flake / Release a new version (push) Successful in 10s
2024-12-26 18:33:18 +02:00
dc5cb9f99f feat: use 24.11 release
All checks were successful
build-flake / Build flake (push) Successful in 11m50s
build-flake / Release a new version (push) Successful in 8s
2024-12-02 13:28:49 +02:00
fde597485f feat: add typescript
All checks were successful
check-commits / Check commits (pull_request) Successful in 7s
build-flake / build (pull_request) Successful in 6m20s
build-flake / Build flake (push) Successful in 2m1s
build-flake / Release a new version (push) Successful in 10s
2024-11-27 09:54:37 +02:00
ad8dc7546b feat: update lazyvim configuration
All checks were successful
check-commits / Check commits (pull_request) Successful in 7s
build-flake / build (pull_request) Successful in 5m47s
build-flake / Build flake (push) Successful in 6m8s
build-flake / Release a new version (push) Successful in 12s
2024-11-25 21:54:10 +02:00
640e246954 ci: update release and add commit check job
All checks were successful
build-flake / Build flake (push) Successful in 5m26s
build-flake / Release a new version (push) Successful in 8s
2024-11-21 23:02:50 +02:00
52de2b8f4d ci: use release v2
Some checks failed
build-flake / Build flake (push) Successful in 5m30s
build-flake / Release a new version (push) Failing after 1s
2024-11-21 22:55:04 +02:00
4f822e88b8 chore: nvim should follow nixpkgs
All checks were successful
build-flake / build (pull_request) Successful in 6m3s
build-flake / Release a new version (push) Successful in 8s
build-flake / Build flake (push) Successful in 5m28s
2024-11-21 21:18:08 +02:00
204ad75438 ci: run build on mr and use release from template
All checks were successful
build-flake / build (pull_request) Successful in 2m15s
build-flake / Build flake (push) Successful in 5m38s
build-flake / Release a new version (push) Successful in 9s
2024-11-19 11:56:23 +02:00
761311c5f0 chore: update to nixos-24.11 2024-11-19 11:16:38 +02:00
90d3255556 feat: disable blink extra 2024-11-19 11:16:14 +02:00
9734dc46e0 feat: add bigfile plugin 2024-11-19 10:33:01 +02:00
eb332e0123 chore(deps): update softprops/action-gh-release action to v2
All checks were successful
check-flake / build (push) Successful in 2m38s
check-flake / release (push) Successful in 12s
2024-11-14 22:10:09 +00:00
11fd98c16b build: add auto release
Some checks failed
check-flake / build (push) Successful in 5m30s
check-flake / release (push) Failing after 7s
2024-11-14 20:30:32 +02:00
8cdea2c53b build: add auto release
Some checks failed
check-flake / build (push) Successful in 2m9s
check-flake / release (push) Failing after 9s
2024-11-14 20:22:15 +02:00
562db427c6 build: add auto release
Some checks failed
check-flake / build (push) Successful in 2m27s
check-flake / release (push) Failing after 10s
2024-11-14 20:16:28 +02:00
aef12de964 feat: update nvim package
All checks were successful
check-flake / build (push) Successful in 17m41s
2024-11-14 19:53:26 +02:00
e24df7ff1f chore: update flake.lock 2024-11-14 19:52:41 +02:00
7e6617d3f4 build: add cachix, update nixpkgs and install nix action 2024-11-14 19:52:20 +02:00
cb48c6da79 feat: change neovim flake, add nixcommunity cache
All checks were successful
check-flake / build (push) Successful in 12m14s
2024-11-07 17:16:13 +02:00
0c56f239d1 feat: update plugins
Some checks failed
check-flake / build (push) Failing after 1m21s
2024-11-07 15:36:08 +02:00
2eb10ca96c chore(flake): bump versions
Some checks failed
check-flake / build (push) Failing after 3m31s
2024-08-30 09:15:07 +03:00
0572f1394f feat: update nvim flake
All checks were successful
check-flake / build (push) Successful in 2m53s
2024-06-22 17:33:30 +03:00
b2620d58af chore(deps): update cachix/install-nix-action action to v27
All checks were successful
check-flake / build (push) Successful in 3m13s
2024-06-15 23:47:05 +03:00
97b13465a8 chore(deps): update nixpkgs to nixos-24.05
Some checks failed
check-flake / build (pull_request) Successful in 5m53s
check-flake / build (push) Has been cancelled
2024-06-13 21:09:23 +00:00
65 changed files with 1389 additions and 409 deletions

View File

@@ -1,8 +1,7 @@
name: check-flake ---
name: build-flake
on: on:
push: workflow_call:
branches:
- main
pull_request: pull_request:
jobs: jobs:
@@ -10,19 +9,23 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Checkout repository - name: Checkout repository
uses: actions/checkout@v4 uses: actions/checkout@v5
with:
ref: "main"
- name: Setup sudo (required for the next step) - name: Setup sudo (required for the next step)
run: apt-get update && apt-get install -y sudo run: apt-get update && apt-get install -y sudo
- name: Setup nix - name: Setup nix
uses: cachix/install-nix-action@v26 uses: cachix/install-nix-action@v31
with: with:
extra_nix_config: |
experimental-features = nix-command flakes
github_access_token: ${{ secrets.GH_ACCESS_TOKEN }} github_access_token: ${{ secrets.GH_ACCESS_TOKEN }}
nix_path: nixpkgs=channel:nixos-23.11 nix_path: nixpkgs=channel:nixos-25.05
- uses: cachix/cachix-action@v16
with:
name: palkx
authToken: ${{ secrets.CACHIX_AUTH_TOKEN }}
extraPullNames: nix-community
- name: Build nix flake - name: Build nix flake
run: | run: |
while true; do sleep 1; rm -rf /homeless-shelter; done & nix build .
nix build
- name: Check nix flake - name: Check nix flake
run: nix flake check --all-systems run: nix flake check --all-systems

View File

@@ -0,0 +1,9 @@
---
name: check-commits
on:
pull_request:
jobs:
check-commits:
name: Check commits
uses: xaked/actions/.gitea/workflows/cog-check.yml@2.0.0

View File

@@ -0,0 +1,15 @@
---
name: build-flake
on:
push:
branches:
- main
jobs:
build:
name: Build flake
uses: ./.gitea/workflows/build-flake.yml
release:
name: Release a new version
needs: build
uses: xaked/actions/.gitea/workflows/cog-release.yml@2.0.0

View File

@@ -1 +1,2 @@
result
result/ result/

2
cog.toml Normal file
View File

@@ -0,0 +1,2 @@
[commit_types]
version = { bump_patch = true, changelog_title = "Version" }

View File

@@ -1,9 +1,32 @@
{pkgs}: {
pkgs.stdenv.mkDerivation { imports = [
name = "nvim-config"; ./options.nix
src = ./src;
installPhase = '' ./modules/colorschemes/catppuccin.nix
mkdir -p $out/
cp -r . $out/ ./modules/plugins/lsp
'';
./modules/plugins/airline.nix
./modules/plugins/blink-cmp.nix
./modules/plugins/bufferline.nix
./modules/plugins/conform-nvim.nix
./modules/plugins/fzf-lua.nix
./modules/plugins/gitsigns.nix
./modules/plugins/mini.nix
# ./modules/plugins/neotree.nix
./modules/plugins/oil.nix
./modules/plugins/snacks.nix
./modules/plugins/tmux-navigator.nix
./modules/plugins/treesitter.nix
./modules/plugins/undotree.nix
./modules/plugins/venv-selector.nix
./modules/plugins/which-key.nix
];
performance.byteCompileLua.enable = true;
performance.byteCompileLua.configs = true;
performance.byteCompileLua.initLua = true;
performance.byteCompileLua.luaLib = true;
performance.byteCompileLua.nvimRuntime = true;
performance.byteCompileLua.plugins = true;
} }

View File

@@ -0,0 +1,14 @@
{
colorschemes = {
catppuccin = {
enable = true;
settings = {
flavour = "macchiato";
transparent_background = false;
dim_inactive = {
enabled = true;
};
};
};
};
}

View File

@@ -0,0 +1,5 @@
{
plugins.airline = {
enable = true;
};
}

View File

@@ -0,0 +1,28 @@
{
plugins.blink-cmp = {
enable = true;
settings = {
completion = {
accept = {
auto_brackets = {
enabled = true;
semantic_token_resolution = {
enabled = false;
};
};
};
};
signature = {
enabled = true;
};
sources = {
default = [
"omni"
"lsp"
"buffer"
"path"
];
};
};
};
}

View File

@@ -0,0 +1,46 @@
{
plugins.bufferline.enable = true;
keymaps = [
{
mode = "n";
key = "<Tab>";
action = "<cmd>BufferLineCycleNext<cr>";
options = {
desc = "Cycle to next buffer";
};
}
{
mode = "n";
key = "<S-Tab>";
action = "<cmd>BufferLineCyclePrev<cr>";
options = {
desc = "Cycle to previous buffer";
};
}
{
mode = "n";
key = "<S-l>";
action = "<cmd>BufferLineCycleNext<cr>";
options = {
desc = "Cycle to next buffer";
};
}
{
mode = "n";
key = "<S-h>";
action = "<cmd>BufferLineCyclePrev<cr>";
options = {
desc = "Cycle to previous buffer";
};
}
{
mode = "n";
key = "<leader>bd";
action = "<cmd>bdelete<cr>";
options = {
desc = "Delete buffer";
};
}
];
}

View File

@@ -0,0 +1,141 @@
{
lib,
pkgs,
...
}:
{
config = {
extraConfigLuaPre =
# lua
''
local slow_format_filetypes = {}
vim.api.nvim_create_user_command("FormatDisable", function(args)
if args.bang then
-- FormatDisable! will disable formatting just for this buffer
vim.b.disable_autoformat = true
else
vim.g.disable_autoformat = true
end
end, {
desc = "Disable autoformat-on-save",
bang = true,
})
vim.api.nvim_create_user_command("FormatEnable", function()
vim.b.disable_autoformat = false
vim.g.disable_autoformat = false
end, {
desc = "Re-enable autoformat-on-save",
})
vim.api.nvim_create_user_command("FormatToggle", function(args)
local Snacks = require("Snacks");
if args.bang then
-- Toggle formatting for current buffer
vim.b.disable_autoformat = not vim.b.disable_autoformat
Snacks.notify.notify("[Buffer] Autoformat enabled: " .. tostring(not vim.b.disable_autoformat))
else
-- Toggle formatting globally
vim.g.disable_autoformat = not vim.g.disable_autoformat
Snacks.notify.notify("[Global] Autoformat enabled: " .. tostring(not vim.g.disable_autoformat))
end
end, {
desc = "Toggle autoformat-on-save",
bang = true,
})
'';
plugins.conform-nvim = {
enable = true;
autoInstall.enable = true;
settings = {
formatters_by_ft = {
html = {
__unkeyed-1 = "prettierd";
__unkeyed-2 = "prettier";
stop_after_first = true;
};
css = {
__unkeyed-1 = "prettierd";
__unkeyed-2 = "prettier";
stop_after_first = true;
};
javascript = {
__unkeyed-1 = "prettierd";
__unkeyed-2 = "prettier";
stop_after_first = true;
};
javascriptreact = {
__unkeyed-1 = "prettierd";
__unkeyed-2 = "prettier";
stop_after_first = true;
};
typescript = {
__unkeyed-1 = "prettierd";
__unkeyed-2 = "prettier";
stop_after_first = true;
};
typescriptreact = {
__unkeyed-1 = "prettierd";
__unkeyed-2 = "prettier";
stop_after_first = true;
};
python = [ "ruff_format" ];
lua = [ "stylua" ];
nix = [ "nixfmt-rfc-style" ];
markdown = {
__unkeyed-1 = "prettierd";
__unkeyed-2 = "prettier";
stop_after_first = true;
};
yaml = {
__unkeyed-1 = "prettierd";
__unkeyed-2 = "prettier";
stop_after_first = true;
};
terraform = [ "terraform_fmt" ];
bash = [
"shellcheck"
"shellharden"
"shfmt"
];
json = [ "jq" ];
go = [
"goimports"
"gofmt"
];
"_" = [ "trim_whitespace" ];
};
formatters = {
terraform_fmt = {
command = "${lib.getExe (
pkgs.terraform.overrideAttrs (oldAttrs: {
meta = lib.recursiveUpdate oldAttrs.meta {
license = lib.licenses.gpl3Only;
};
})
)}";
};
};
};
};
keymaps = [
{
mode = "n";
key = "<leader>uf";
action = "<cmd>FormatToggle<cr>";
options = {
desc = "Toggle Format (Global)";
};
}
{
mode = "n";
key = "<leader>uF";
action = "<cmd>FormatToggle!<cr>";
options = {
desc = "Toggle Format (Buffer)";
};
}
];
};
}

View File

@@ -0,0 +1,5 @@
{
plugins.fzf-lua = {
enable = true;
};
}

View File

@@ -0,0 +1,9 @@
{
plugins.gitsigns = {
enable = true;
settings = {
current_line_blame = true;
current_line_blame_formatter = " <author>, <committer_time:%R> <summary>";
};
};
}

View File

@@ -0,0 +1,3 @@
{
plugins.lazygit.enable = true;
}

View File

@@ -0,0 +1,3 @@
{
lsp.servers.ansiblels.enable = true;
}

View File

@@ -0,0 +1,3 @@
{
lsp.servers.bashls.enable = true;
}

View File

@@ -0,0 +1,24 @@
{ lib, ... }:
{
imports = [
# Default configurations for lsp servers
./lspconfig.nix
./ansiblels.nix
./bashls.nix
./docker_compose_language_server.nix
./dockerls.nix
./gopls.nix
./helm_ls.nix
./jdtls.nix
./jsonls.nix
./jsonnet_ls.nix
./just.nix
./lua_ls.nix
./marksman.nix
./nixd.nix
./pyright.nix
./tflint.nix
./yamlls.nix
];
}

View File

@@ -0,0 +1,3 @@
{
lsp.servers.docker_compose_language_service.enable = true;
}

View File

@@ -0,0 +1,3 @@
{
lsp.servers.dockerls.enable = true;
}

View File

@@ -0,0 +1,3 @@
{
lsp.servers.gopls.enable = true;
}

View File

@@ -0,0 +1,3 @@
{
lsp.servers.helm_ls.enable = true;
}

View File

@@ -0,0 +1,3 @@
{
lsp.servers.jdtls.enable = true;
}

View File

@@ -0,0 +1,3 @@
{
lsp.servers.jsonls.enable = true;
}

View File

@@ -0,0 +1,3 @@
{
lsp.servers.jsonnet_ls.enable = true;
}

View File

@@ -0,0 +1,3 @@
{
lsp.servers.just.enable = true;
}

View File

@@ -0,0 +1,3 @@
{
plugins.lspconfig.enable = true;
}

View File

@@ -0,0 +1,3 @@
{
lsp.servers.lua_ls.enable = true;
}

View File

@@ -0,0 +1,3 @@
{
lsp.servers.marksman.enable = true;
}

View File

@@ -0,0 +1,3 @@
{
lsp.servers.nixd.enable = true;
}

View File

@@ -0,0 +1,3 @@
{
lsp.servers.pyright.enable = true;
}

View File

@@ -0,0 +1,3 @@
{
lsp.servers.tflint.enable = true;
}

View File

@@ -0,0 +1,3 @@
{
lsp.servers.yamlls.enable = true;
}

View File

@@ -0,0 +1,11 @@
{
plugins.mini = {
enable = true;
mockDevIcons = true;
modules = {
icons = { };
comment = { };
diff = { };
};
};
}

View File

@@ -0,0 +1,32 @@
{
plugins.neo-tree = {
enable = true;
enableDiagnostics = true;
enableGitStatus = true;
enableModifiedMarkers = true;
enableRefreshOnWrite = true;
closeIfLastWindow = true;
popupBorderStyle = "rounded"; # Type: null or one of “NC”, “double”, “none”, “rounded”, “shadow”, “single”, “solid” or raw lua code
buffers = {
bindToCwd = false;
followCurrentFile = {
enabled = true;
};
};
window = {
width = 40;
height = 15;
autoExpandWidth = false;
mappings = {
"<space>" = "none";
};
};
};
keymaps = [
{
action = "<cmd>Neotree toggle<CR>";
key = "<leader>e";
}
];
}

View File

@@ -0,0 +1,28 @@
{
plugins.oil = {
enable = true;
settings = {
win_options = {
signcolumn = "yes:2";
};
};
};
plugins.oil-git-status = {
enable = true;
settings = {
show_ignored = true;
};
};
keymaps = [
{
mode = "n";
action = "<cmd>Oil<CR>";
key = "<leader>o";
options = {
desc = "Open [O]il";
};
}
];
}

View File

@@ -0,0 +1,499 @@
{ lib, pkgs, ... }:
{
plugins.snacks = {
enable = true;
settings = {
bigfile.enabled = true;
notifier.enabled = true;
quickfile.enabled = true;
statuscolumn.enabled = true;
words.enabled = true;
lazygit.enabled = true;
picker.enabled = true;
indent.enabled = true;
scope.enabled = true;
};
};
extraPackages = [
pkgs.ripgrep
pkgs.fd
pkgs.lazygit
];
keymaps = [
{
key = "<leader><space>";
action = lib.nixvim.mkRaw "function() Snacks.picker.smart() end";
options = {
desc = "Smart Find Files";
};
}
{
key = "<leader>,";
action = lib.nixvim.mkRaw "function() Snacks.picker.buffers() end";
options = {
desc = "Buffers";
};
}
{
key = "<leader>/";
action = lib.nixvim.mkRaw "function() Snacks.picker.grep() end";
options = {
desc = "Grep";
};
}
{
key = "<leader>:";
action = lib.nixvim.mkRaw "function() Snacks.picker.command_history() end";
options = {
desc = "Command History";
};
}
{
key = "<leader>n";
action = lib.nixvim.mkRaw "function() Snacks.picker.notifications() end";
options = {
desc = "Notification History";
};
}
{
key = "<leader>e";
action = lib.nixvim.mkRaw "function() Snacks.explorer() end";
options = {
desc = "File Explorer";
};
}
{
key = "<leader>fb";
action = lib.nixvim.mkRaw "function() Snacks.picker.buffers() end";
options = {
desc = "Buffers";
};
}
{
key = "<leader>fc";
action = lib.nixvim.mkRaw "function() Snacks.picker.files({ cwd = vim.fn.stdpath(\"config\") }) end";
options = {
desc = "Find Config File";
};
}
{
key = "<leader>ff";
action = lib.nixvim.mkRaw "function() Snacks.picker.files() end";
options = {
desc = "Find Files";
};
}
{
key = "<leader>fg";
action = lib.nixvim.mkRaw "function() Snacks.picker.git_files() end";
options = {
desc = "Find Git Files";
};
}
{
key = "<leader>fp";
action = lib.nixvim.mkRaw "function() Snacks.picker.projects() end";
options = {
desc = "Projects";
};
}
{
key = "<leader>fr";
action = lib.nixvim.mkRaw "function() Snacks.picker.recent() end";
options = {
desc = "Recent";
};
}
{
key = "<leader>gb";
action = lib.nixvim.mkRaw "function() Snacks.picker.git_branches() end";
options = {
desc = "Git Branches";
};
}
{
key = "<leader>gl";
action = lib.nixvim.mkRaw "function() Snacks.picker.git_log() end";
options = {
desc = "Git Log";
};
}
{
key = "<leader>gL";
action = lib.nixvim.mkRaw "function() Snacks.picker.git_log_line() end";
options = {
desc = "Git Log Line";
};
}
{
key = "<leader>gs";
action = lib.nixvim.mkRaw "function() Snacks.picker.git_status() end";
options = {
desc = "Git Status";
};
}
{
key = "<leader>gS";
action = lib.nixvim.mkRaw "function() Snacks.picker.git_stash() end";
options = {
desc = "Git Stash";
};
}
{
key = "<leader>gd";
action = lib.nixvim.mkRaw "function() Snacks.picker.git_diff() end";
options = {
desc = "Git Diff (Hunks)";
};
}
{
key = "<leader>gf";
action = lib.nixvim.mkRaw "function() Snacks.picker.git_log_file() end";
options = {
desc = "Git Log File";
};
}
{
key = "<leader>sb";
action = lib.nixvim.mkRaw "function() Snacks.picker.lines() end";
options = {
desc = "Buffer Lines";
};
}
{
key = "<leader>sB";
action = lib.nixvim.mkRaw "function() Snacks.picker.grep_buffers() end";
options = {
desc = "Grep Open Buffers";
};
}
{
key = "<leader>sg";
action = lib.nixvim.mkRaw "function() Snacks.picker.grep() end";
options = {
desc = "Grep";
};
}
{
key = "<leader>sw";
action = lib.nixvim.mkRaw "function() Snacks.picker.grep_word() end";
options = {
desc = "Visual selection or word";
};
mode = "n";
}
{
key = "<leader>s\"";
action = lib.nixvim.mkRaw "function() Snacks.picker.registers() end";
options = {
desc = "Registers";
};
}
{
key = "<leader>s/";
action = lib.nixvim.mkRaw "function() Snacks.picker.search_history() end";
options = {
desc = "Search History";
};
}
{
key = "<leader>sa";
action = lib.nixvim.mkRaw "function() Snacks.picker.autocmds() end";
options = {
desc = "Autocmds";
};
}
{
key = "<leader>sb";
action = lib.nixvim.mkRaw "function() Snacks.picker.lines() end";
options = {
desc = "Buffer Lines";
};
}
{
key = "<leader>sc";
action = lib.nixvim.mkRaw "function() Snacks.picker.command_history() end";
options = {
desc = "Command History";
};
}
{
key = "<leader>sC";
action = lib.nixvim.mkRaw "function() Snacks.picker.commands() end";
options = {
desc = "Commands";
};
}
{
key = "<leader>sd";
action = lib.nixvim.mkRaw "function() Snacks.picker.diagnostics() end";
options = {
desc = "Diagnostics";
};
}
{
key = "<leader>sD";
action = lib.nixvim.mkRaw "function() Snacks.picker.diagnostics_buffer() end";
options = {
desc = "Buffer Diagnostics";
};
}
{
key = "<leader>sh";
action = lib.nixvim.mkRaw "function() Snacks.picker.help() end";
options = {
desc = "Help Pages";
};
}
{
key = "<leader>sH";
action = lib.nixvim.mkRaw "function() Snacks.picker.highlights() end";
options = {
desc = "Highlights";
};
}
{
key = "<leader>si";
action = lib.nixvim.mkRaw "function() Snacks.picker.icons() end";
options = {
desc = "Icons";
};
}
{
key = "<leader>sj";
action = lib.nixvim.mkRaw "function() Snacks.picker.jumps() end";
options = {
desc = "Jumps";
};
}
{
key = "<leader>sk";
action = lib.nixvim.mkRaw "function() Snacks.picker.keymaps() end";
options = {
desc = "Keymaps";
};
}
{
key = "<leader>sl";
action = lib.nixvim.mkRaw "function() Snacks.picker.loclist() end";
options = {
desc = "Location List";
};
}
{
key = "<leader>sm";
action = lib.nixvim.mkRaw "function() Snacks.picker.marks() end";
options = {
desc = "Marks";
};
}
{
key = "<leader>sM";
action = lib.nixvim.mkRaw "function() Snacks.picker.man() end";
options = {
desc = "Man Pages";
};
}
{
key = "<leader>sp";
action = lib.nixvim.mkRaw "function() Snacks.picker.lazy() end";
options = {
desc = "Search for Plugin Spec";
};
}
{
key = "<leader>sq";
action = lib.nixvim.mkRaw "function() Snacks.picker.qflist() end";
options = {
desc = "Quickfix List";
};
}
{
key = "<leader>sR";
action = lib.nixvim.mkRaw "function() Snacks.picker.resume() end";
options = {
desc = "Resume";
};
}
{
key = "<leader>su";
action = lib.nixvim.mkRaw "function() Snacks.picker.undo() end";
options = {
desc = "Undo History";
};
}
{
key = "<leader>uC";
action = lib.nixvim.mkRaw "function() Snacks.picker.colorschemes() end";
options = {
desc = "Colorschemes";
};
}
{
key = "gd";
action = lib.nixvim.mkRaw "function() Snacks.picker.lsp_definitions() end";
options = {
desc = "Goto Definition";
};
}
{
key = "gD";
action = lib.nixvim.mkRaw "function() Snacks.picker.lsp_declarations() end";
options = {
desc = "Goto Declaration";
};
}
{
key = "gr";
action = lib.nixvim.mkRaw "function() Snacks.picker.lsp_references() end";
options = {
desc = "References";
};
}
{
key = "gI";
action = lib.nixvim.mkRaw "function() Snacks.picker.lsp_implementations() end";
options = {
desc = "Goto Implementation";
};
}
{
key = "gy";
action = lib.nixvim.mkRaw "function() Snacks.picker.lsp_type_definitions() end";
options = {
desc = "Goto T[y]pe Definition";
};
}
{
key = "gai";
action = lib.nixvim.mkRaw "function() Snacks.picker.lsp_incoming_calls() end";
options = {
desc = "C[a]lls Incoming";
};
}
{
key = "gao";
action = lib.nixvim.mkRaw "function() Snacks.picker.lsp_outgoing_calls() end";
options = {
desc = "C[a]lls Outgoing";
};
}
{
key = "<leader>ss";
action = lib.nixvim.mkRaw "function() Snacks.picker.lsp_symbols() end";
options = {
desc = "LSP Symbols";
};
}
{
key = "<leader>sS";
action = lib.nixvim.mkRaw "function() Snacks.picker.lsp_workspace_symbols() end";
options = {
desc = "LSP Workspace Symbols";
};
}
{
key = "<leader>z";
action = lib.nixvim.mkRaw "function() Snacks.zen() end";
options = {
desc = "Toggle Zen Mode";
};
}
{
key = "<leader>Z";
action = lib.nixvim.mkRaw "function() Snacks.zen.zoom() end";
options = {
desc = "Toggle Zoom";
};
}
{
key = "<leader>.";
action = lib.nixvim.mkRaw "function() Snacks.scratch() end";
options = {
desc = "Toggle Scratch Buffer";
};
}
{
key = "<leader>S";
action = lib.nixvim.mkRaw "function() Snacks.scratch.select() end";
options = {
desc = "Select Scratch Buffer";
};
}
{
key = "<leader>n";
action = lib.nixvim.mkRaw "function() Snacks.notifier.show_history() end";
options = {
desc = "Notification History";
};
}
{
key = "<leader>bd";
action = lib.nixvim.mkRaw "function() Snacks.bufdelete() end";
options = {
desc = "Delete Buffer";
};
}
{
key = "<leader>cR";
action = lib.nixvim.mkRaw "function() Snacks.rename.rename_file() end";
options = {
desc = "Rename File";
};
}
{
key = "<leader>gB";
action = lib.nixvim.mkRaw "function() Snacks.gitbrowse() end";
options = {
desc = "Git Browse";
};
mode = "n";
}
{
key = "<leader>gg";
action = lib.nixvim.mkRaw "function() Snacks.lazygit() end";
options = {
desc = "Lazygit";
};
}
{
key = "<leader>un";
action = lib.nixvim.mkRaw "function() Snacks.notifier.hide() end";
options = {
desc = "Dismiss All Notifications";
};
}
{
key = "<c-/>";
action = lib.nixvim.mkRaw "function() Snacks.terminal() end";
options = {
desc = "Toggle Terminal";
};
}
{
key = "<c-_>";
action = lib.nixvim.mkRaw "function() Snacks.terminal() end";
options = {
desc = "which_key_ignore";
};
}
{
key = "]]";
action = lib.nixvim.mkRaw "function() Snacks.words.jump(vim.v.count1) end";
options = {
desc = "Next Reference";
};
mode = "n";
}
{
key = "[[";
action = lib.nixvim.mkRaw "function() Snacks.words.jump(-vim.v.count1) end";
options = {
desc = "Prev Reference";
};
mode = "n";
}
];
}

View File

@@ -0,0 +1,3 @@
{
plugins.tmux-navigator.enable = true;
}

View File

@@ -0,0 +1,37 @@
{ pkgs, ... }:
{
plugins = {
treesitter = {
enable = true;
settings = {
indent = {
enable = true;
};
highlight = {
enable = true;
};
};
nixvimInjections = true;
grammarPackages = pkgs.vimPlugins.nvim-treesitter.allGrammars;
};
treesitter-context = {
enable = false;
};
treesitter-textobjects = {
enable = true;
settings = {
select = {
enable = true;
lookahead = true;
};
};
};
};
extraConfigLua = ''
local parser_config = require("nvim-treesitter.parsers").get_parser_configs()
'';
}

View File

@@ -0,0 +1,14 @@
{
plugins.undotree.enable = true;
keymaps = [
{
mode = "n";
key = "<leader>ut";
action = "<cmd>UndotreeToggle<CR>";
options = {
desc = "Undotree";
};
}
];
}

View File

@@ -0,0 +1,26 @@
{ lib, ... }:
{
plugins.venv-selector = {
enable = true;
settings = {
dap_enabled = true;
name = [
"venv"
".venv"
];
pyenv_path = lib.nixvim.mkRaw "vim.fn.expand('$HOME/.pyenv/versions')";
};
};
keymaps = [
{
mode = "n";
key = "<leader>cv";
action = "<cmd>VenvSelect<CR>";
options = {
desc = "Select Python virtual env";
};
}
];
}

View File

@@ -0,0 +1,5 @@
{
plugins.which-key = {
enable = true;
};
}

115
config/options.nix Normal file
View File

@@ -0,0 +1,115 @@
{ pkgs, ... }:
{
globalOpts = {
# Line numbers
number = true;
relativenumber = true;
# Enable more colors (24-bit)
termguicolors = true;
# Have a better completion experience
completeopt = [
"menuone"
"noselect"
"noinsert"
];
# Always show the signcolumn, otherwise text would be shifted when displaying error icons
signcolumn = "yes:3";
# Enable mouse
mouse = "a";
# Search
ignorecase = true;
smartcase = true;
# Configure how new splits should be opened
splitright = true;
splitbelow = true;
list = true;
# NOTE: .__raw here means that this field is raw lua code
listchars.__raw = "{ tab = '» ', trail = '·', nbsp = '' }";
expandtab = true;
tabstop = 2;
shiftwidth = 2;
softtabstop = 0;
smarttab = true;
# Set encoding
encoding = "utf-8";
fileencoding = "utf-8";
# Save undo history
undofile = true;
swapfile = true;
backup = false;
autoread = true;
# Highlight the current line for cursor
cursorline = true;
# Show line and column when searching
ruler = true;
# Global substitution by default
gdefault = true;
# Start scrolling when the cursor is X lines away from the top/bottom
scrolloff = 5;
};
diagnostic.settings = {
update_in_insert = true;
severity_sort = true;
float = {
border = "rounded";
};
jump = {
severity.__raw = "vim.diagnostic.severity.WARN";
};
};
# userCommands = {
# Q.command = "q";
# Q.bang = true;
# Wq.command = "q";
# Wq.bang = true;
# WQ.command = "q";
# WQ.bang = true;
# W.command = "q";
# W.bang = true;
# };
globals.mapleader = ",";
# autoCmd = [
# {
# event = [ "VimEnter" ];
# callback = {
# __raw = "function() if vim.fn.argv(0) == '' then require('telescope.builtin').find_files() end end";
# };
# }
# {
# event = [ "VimEnter" ];
# command = "set relativenumber";
# }
# ];
#autoCmd = [
# {
# event = [ "BufEnter" "BufWinEnter" ];
# pattern = [ "*.md" "*.mdx" ];
# command = "MarkdownPreviewToggle";
# }
#];
# highlight = {
# Comment.fg = "#ff00ff";
# Comment.bg = "#000000";
# Comment.underline = true;
# Comment.bold = true;
# };
}

View File

@@ -1 +0,0 @@
/tmp/lazyvim-lazygit/config.yml

View File

@@ -1 +0,0 @@
/tmp/lazyvim-lazygit/state.yml

View File

@@ -1,15 +0,0 @@
{
"neodev": {
"library": {
"enabled": true,
"plugins": true
}
},
"neoconf": {
"plugins": {
"lua_ls": {
"enabled": true
}
}
}
}

View File

@@ -1,8 +0,0 @@
-- Configure symlinks needed by LazyVim
vim.fn.system({ "mkdir", "-p", os.getenv("HOME") .. "/.config/lazyvim/nvim" })
vim.fn.system({ "mkdir", "-p", os.getenv("HOME") .. "/.config/lazyvim/lazygit" })
vim.fn.system({ "ln", "-sfT", os.getenv("HOME") .. "/.config/lazyvim/nvim", "/tmp/lazyvim-nvim" })
vim.fn.system({ "ln", "-sfT", os.getenv("HOME") .. "/.config/lazyvim/lazygit", "/tmp/lazyvim-lazygit" })
-- Load lazyvim
require("config.lazy")

View File

@@ -1 +0,0 @@
/tmp/lazyvim-nvim/lazy-lock.json

View File

@@ -1 +0,0 @@
/tmp/lazyvim-nvim/lazyvim.json

View File

@@ -1,3 +0,0 @@
-- Autocmds are automatically loaded on the VeryLazy event
-- Default autocmds that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/autocmds.lua
-- Add any additional autocmds here

View File

@@ -1,3 +0,0 @@
-- Keymaps are automatically loaded on the VeryLazy event
-- Default keymaps that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/keymaps.lua
-- Add any additional keymaps here

View File

@@ -1,71 +0,0 @@
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
if not vim.loop.fs_stat(lazypath) then
-- bootstrap lazy.nvim
-- stylua: ignore
vim.fn.system({ "git", "clone", "--filter=blob:none", "https://github.com/folke/lazy.nvim.git", "--branch=stable",
lazypath })
end
vim.opt.rtp:prepend(vim.env.LAZY or lazypath)
require("lazy").setup({
spec = {
-- add LazyVim and import its plugins
{ "LazyVim/LazyVim", import = "lazyvim.plugins" },
-- { import = "lazyvim.plugins.extras.coding.codeium" },
-- { import = "lazyvim.plugins.extras.editor.harpoon2" },
{ import = "lazyvim.plugins.extras.editor.outline" },
{ import = "lazyvim.plugins.extras.formatting.prettier" },
{ import = "lazyvim.plugins.extras.lang.ansible" },
{ import = "lazyvim.plugins.extras.lang.docker" },
{ import = "lazyvim.plugins.extras.lang.go" },
{ import = "lazyvim.plugins.extras.lang.helm" },
{ import = "lazyvim.plugins.extras.lang.java" },
{ import = "lazyvim.plugins.extras.lang.json" },
{ import = "lazyvim.plugins.extras.lang.markdown" },
{ import = "lazyvim.plugins.extras.lang.python" },
{ import = "lazyvim.plugins.extras.lang.rust" },
{ import = "lazyvim.plugins.extras.lang.scala" },
{ import = "lazyvim.plugins.extras.lang.terraform" },
{ import = "lazyvim.plugins.extras.lang.toml" },
{ import = "lazyvim.plugins.extras.lang.yaml" },
{ import = "lazyvim.plugins.extras.ui.mini-animate" },
{ import = "lazyvim.plugins.extras.ui.treesitter-context" },
{ import = "plugins.tokyonight" },
{ import = "plugins.telescope" },
{ import = "plugins.lang.nix" },
{ import = "plugins.lang.shell" },
{ import = "plugins.misc.tmux-navigator" },
{ import = "plugins.undotree" },
{ import = "plugins.ui.colorizer" },
},
defaults = {
-- By default, only LazyVim plugins will be lazy-loaded. Your custom plugins will load during startup.
-- If you know what you're doing, you can set this to `true` to have all your custom plugins lazy-loaded by default.
lazy = false,
-- It's recommended to leave version=false for now, since a lot the plugin that support versioning,
-- have outdated releases, which may break your Neovim install.
version = false, -- always use the latest git commit
-- version = "*", -- try installing the latest stable version for plugins that support semver
},
news = {
lazyvim = false,
neovim = false,
},
install = { colorscheme = { "tokyonight", "habamax" } },
checker = { enabled = true }, -- automatically check for plugin updates
performance = {
rtp = {
-- disable some rtp plugins
disabled_plugins = {
"gzip",
-- "matchit",
-- "matchparen",
-- "netrwPlugin",
"tarPlugin",
"tohtml",
"tutor",
"zipPlugin",
},
},
},
})

View File

@@ -1,7 +0,0 @@
-- Options are automatically loaded before lazy.nvim startup
-- Default options that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/options.lua
-- Add any additional options here
vim.g.mapleader = ","
vim.opt.number = true
vim.opt.relativenumber = false

View File

@@ -1,41 +0,0 @@
return {
{
"stevearc/conform.nvim",
optional = true,
opts = {
formatters_by_ft = {
["nix"] = { "alejandra" },
},
},
},
{
"neovim/nvim-lspconfig",
opts = {
servers = {
nixd = {},
},
},
},
{
"nvim-treesitter/nvim-treesitter",
opts = function(_, opts)
if type(opts.ensure_installed) == "table" then
vim.list_extend(opts.ensure_installed, {
"nix",
})
end
end,
},
{
"nvimtools/none-ls.nvim",
optional = true,
opts = function(_, opts)
local null_ls = require("null-ls")
opts.sources = vim.list_extend(opts.sources or {}, {
null_ls.builtins.code_actions.statix,
null_ls.builtins.diagnostics.statix,
null_ls.builtins.formatting.alejandra,
})
end,
},
}

View File

@@ -1,47 +0,0 @@
return {
{
"williamboman/mason.nvim",
opts = function(_, opts)
opts.ensure_installed = opts.ensure_installed or {}
vim.list_extend(opts.ensure_installed, {
"shfmt",
"shellcheck",
"bash-language-server",
})
end,
},
{
"stevearc/conform.nvim",
event = { "BufWritePre" },
cmd = { "ConformInfo" },
opts = {
formatters_by_ft = {
["sh"] = { "shfmt" },
["command"] = { "shfmt" },
},
formatters = {
shfmt = {
prepend_args = { "-i", "2", "-ci" },
},
},
},
},
{
"neovim/nvim-lspconfig",
opts = {
servers = {
bashls = {},
},
},
},
{
"nvim-treesitter/nvim-treesitter",
opts = function(_, opts)
if type(opts.ensure_installed) == "table" then
vim.list_extend(opts.ensure_installed, {
"bash",
})
end
end,
},
}

View File

@@ -1,17 +0,0 @@
return {
"christoomey/vim-tmux-navigator",
cmd = {
"TmuxNavigateLeft",
"TmuxNavigateDown",
"TmuxNavigateUp",
"TmuxNavigateRight",
"TmuxNavigatePrevious",
},
keys = {
{ "<c-h>", "<cmd><C-U>TmuxNavigateLeft<cr>" },
{ "<c-j>", "<cmd><C-U>TmuxNavigateDown<cr>" },
{ "<c-k>", "<cmd><C-U>TmuxNavigateUp<cr>" },
{ "<c-l>", "<cmd><C-U>TmuxNavigateRight<cr>" },
{ "<c-\\>", "<cmd><C-U>TmuxNavigatePrevious<cr>" },
},
}

View File

@@ -1,31 +0,0 @@
return {
"nvim-telescope/telescope.nvim",
dependencies = {
"nvim-telescope/telescope-fzf-native.nvim",
build = "make",
config = function()
require("telescope").load_extension("fzf")
end,
},
opts = {
defaults = {
file_ignore_patterns = {
".git/",
"^node_modules/",
".cache",
},
},
pickers = {
live_grep = {
additional_args = { "-L" },
},
grep_string = {
additional_args = { "-L" },
},
find_files = {
hidden = true,
follow = true,
},
},
},
}

View File

@@ -1,10 +0,0 @@
return {
"folke/tokyonight.nvim",
opts = {
transparent = true,
styles = {
sidebars = "transparent",
floats = "transparent",
},
},
}

View File

@@ -1,6 +0,0 @@
return {
"chrisbra/Colorizer",
keys = {
{ "<leader>uR", "<cmd>ColorToggle<cr>", desc = "Toggle Colorizer" },
},
}

View File

@@ -1,6 +0,0 @@
return {
"mbbill/undotree",
keys = {
{ "<leader>u", "<cmd> UndotreeToggle <CR>", desc = "Toggle undotree", mode = { "n" } },
},
}

View File

@@ -1,3 +0,0 @@
indent_type = "Spaces"
indent_width = 2
column_width = 120

209
flake.lock generated
View File

@@ -1,15 +1,54 @@
{ {
"nodes": { "nodes": {
"flake-parts": {
"inputs": {
"nixpkgs-lib": "nixpkgs-lib"
},
"locked": {
"lastModified": 1763759067,
"narHash": "sha256-LlLt2Jo/gMNYAwOgdRQBrsRoOz7BPRkzvNaI/fzXi2Q=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "2cccadc7357c0ba201788ae99c4dfa90728ef5e0",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "flake-parts",
"type": "github"
}
},
"flake-parts_2": {
"inputs": {
"nixpkgs-lib": [
"nixvim",
"nixpkgs"
]
},
"locked": {
"lastModified": 1763759067,
"narHash": "sha256-LlLt2Jo/gMNYAwOgdRQBrsRoOz7BPRkzvNaI/fzXi2Q=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "2cccadc7357c0ba201788ae99c4dfa90728ef5e0",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "flake-parts",
"type": "github"
}
},
"flake-utils": { "flake-utils": {
"inputs": { "inputs": {
"systems": "systems" "systems": "systems"
}, },
"locked": { "locked": {
"lastModified": 1710146030, "lastModified": 1731533236,
"narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=", "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
"owner": "numtide", "owner": "numtide",
"repo": "flake-utils", "repo": "flake-utils",
"rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a", "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -18,66 +57,132 @@
"type": "github" "type": "github"
} }
}, },
"flake-utils_2": { "ixx": {
"locked": {
"lastModified": 1667395993,
"narHash": "sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau+/OdUAjtQ0rA=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "5aed5285a952e0b949eb3ba02c12fa4fcfef535f",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"neovim": {
"inputs": { "inputs": {
"flake-utils": "flake-utils_2", "flake-utils": [
"nixvim",
"nuschtosSearch",
"flake-utils"
],
"nixpkgs": [ "nixpkgs": [
"nixvim",
"nuschtosSearch",
"nixpkgs" "nixpkgs"
] ]
}, },
"locked": { "locked": {
"dir": "contrib", "lastModified": 1754860581,
"lastModified": 1703942320, "narHash": "sha256-EM0IE63OHxXCOpDHXaTyHIOk2cNvMCGPqLt/IdtVxgk=",
"narHash": "sha256-CcaBqA0yFCffNPmXOJTo8c9v1jrEBiqAl8CG5Dj5YxE=", "owner": "NuschtOS",
"owner": "neovim", "repo": "ixx",
"repo": "neovim", "rev": "babfe85a876162c4acc9ab6fb4483df88fa1f281",
"rev": "8744ee8783a8597f9fce4a573ae05aca2f412120",
"type": "github" "type": "github"
}, },
"original": { "original": {
"dir": "contrib", "owner": "NuschtOS",
"owner": "neovim", "ref": "v0.1.1",
"ref": "stable", "repo": "ixx",
"repo": "neovim",
"type": "github" "type": "github"
} }
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1715218190, "lastModified": 1764522689,
"narHash": "sha256-R98WOBHkk8wIi103JUVQF3ei3oui4HvoZcz9tYOAwlk=", "narHash": "sha256-SqUuBFjhl/kpDiVaKLQBoD8TLD+/cTUzzgVFoaHrkqY=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "9a9960b98418f8c385f52de3b09a63f9c561427a", "rev": "8bb5646e0bed5dbd3ab08c7a7cc15b75ab4e1d0f",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "nixos", "owner": "nixos",
"ref": "nixos-23.11", "ref": "nixos-25.11",
"repo": "nixpkgs", "repo": "nixpkgs",
"type": "github" "type": "github"
} }
}, },
"nixpkgs-lib": {
"locked": {
"lastModified": 1761765539,
"narHash": "sha256-b0yj6kfvO8ApcSE+QmA6mUfu8IYG6/uU28OFn4PaC8M=",
"owner": "nix-community",
"repo": "nixpkgs.lib",
"rev": "719359f4562934ae99f5443f20aa06c2ffff91fc",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "nixpkgs.lib",
"type": "github"
}
},
"nixpkgs_2": {
"locked": {
"lastModified": 1764338033,
"narHash": "sha256-1LNGcU+aTbATD3BPCf7U1KsP1CjCH+ZWqM6JH0sZ6Q0=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "ba9b83e5fb4b552a423d24dabe5ccb47a9c89901",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-25.11",
"repo": "nixpkgs",
"type": "github"
}
},
"nixvim": {
"inputs": {
"flake-parts": "flake-parts_2",
"nixpkgs": "nixpkgs_2",
"nuschtosSearch": "nuschtosSearch",
"systems": "systems_2"
},
"locked": {
"lastModified": 1764614282,
"narHash": "sha256-oHT1/E5yf9lvOVHtO5joevADcQLGp5mVab5shVVqxso=",
"owner": "nix-community",
"repo": "nixvim",
"rev": "6bdabc1359d7658e1d9ce065db37df92e904b581",
"type": "github"
},
"original": {
"owner": "nix-community",
"ref": "nixos-25.11",
"repo": "nixvim",
"type": "github"
}
},
"nuschtosSearch": {
"inputs": {
"flake-utils": "flake-utils",
"ixx": "ixx",
"nixpkgs": [
"nixvim",
"nixpkgs"
]
},
"locked": {
"lastModified": 1761730856,
"narHash": "sha256-t1i5p/vSWwueZSC0Z2BImxx3BjoUDNKyC2mk24krcMY=",
"owner": "NuschtOS",
"repo": "search",
"rev": "e29de6db0cb3182e9aee75a3b1fd1919d995d85b",
"type": "github"
},
"original": {
"owner": "NuschtOS",
"repo": "search",
"type": "github"
}
},
"root": { "root": {
"inputs": { "inputs": {
"flake-utils": "flake-utils", "flake-parts": "flake-parts",
"neovim": "neovim", "nixpkgs": "nixpkgs",
"nixpkgs": "nixpkgs" "nixvim": "nixvim",
"systems": "systems_3"
} }
}, },
"systems": { "systems": {
@@ -94,6 +199,36 @@
"repo": "default", "repo": "default",
"type": "github" "type": "github"
} }
},
"systems_2": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"systems_3": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
} }
}, },
"root": "root", "root": "root",

View File

@@ -1,42 +1,54 @@
{ {
description = "NVIM Configuration"; description = "Neovim configuration, declaratively written using nix";
inputs = { inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-23.11"; nixpkgs.url = "github:nixos/nixpkgs/nixos-25.11";
flake-utils.url = "github:numtide/flake-utils";
neovim = { nixvim.url = "github:nix-community/nixvim/nixos-25.11";
url = "github:neovim/neovim/stable?dir=contrib";
inputs.nixpkgs.follows = "nixpkgs"; flake-parts.url = "github:hercules-ci/flake-parts";
};
systems.url = "github:nix-systems/default";
}; };
outputs = inputs @ {
self,
nixpkgs,
flake-utils,
neovim,
...
}:
flake-utils.lib.eachDefaultSystem (system: let
overlayFlakeInputs = prev: final: {
neovim = neovim.packages.${system}.neovim;
};
overlayLazyVim = prev: final: { outputs =
lazyVim = import ./packages/lazyVim.nix { {
pkgs = final; nixvim,
flake-parts,
...
}@inputs:
flake-parts.lib.mkFlake { inherit inputs; } {
systems = import inputs.systems;
perSystem =
{
pkgs,
system,
...
}:
let
nixvimLib = nixvim.lib.${system};
nixvimPkgs = 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 = nixvimPkgs.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;
};
}; };
}; };
pkgs = import nixpkgs {
inherit system;
overlays = [overlayFlakeInputs overlayLazyVim];
};
in rec {
packages.lazyVim = pkgs.lazyVim;
apps.lazyVim = {
type = "app";
program = "${packages.default}/bin/nvim";
};
packages.default = packages.lazyVim;
apps.default = apps.lazyVim;
});
} }

View File

@@ -1,12 +0,0 @@
{pkgs}: let
config = import ../config {inherit pkgs;};
runtimeDeps = import ../runtimeDeps.nix {inherit pkgs;};
in
pkgs.wrapNeovim pkgs.neovim {
viAlias = true;
vimAlias = true;
withNodeJs = true;
withPython3 = true;
withRuby = false;
extraMakeWrapperArgs = ''--prefix PATH : "${pkgs.lib.makeBinPath runtimeDeps.dependencies}" --set XDG_CONFIG_HOME "${config}"'';
}

View File

@@ -1,7 +1,3 @@
{ {
"$schema": "https://docs.renovatebot.com/renovate-schema.json", "$schema": "https://docs.renovatebot.com/renovate-schema.json"
"extends": ["local>local/renovate"],
"nix": {
"enabled": true
}
} }

View File

@@ -1,28 +0,0 @@
{pkgs}: {
dependencies = with pkgs; [
nixd # nix lsp
alejandra # nix formatter
statix # linter for nix
ripgrep
fd
git
curl # needed to fetch titles from urls
wget
cargo
php82
php82Packages.composer
go
ruby
luarocks
zulu #java11
fish
fzf
perl536
perl536Packages.CPAN
unzip
tree-sitter
gcc
gnumake
lazygit
];
}