18 Commits

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
67 changed files with 1321 additions and 623 deletions

View File

@@ -9,26 +9,23 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
ref: "main"
uses: actions/checkout@v5
- name: Setup sudo (required for the next step)
run: apt-get update && apt-get install -y sudo
- name: Setup nix
uses: cachix/install-nix-action@v30
uses: cachix/install-nix-action@v31
with:
extra_nix_config: |
experimental-features = nix-command flakes
github_access_token: ${{ secrets.GH_ACCESS_TOKEN }}
nix_path: nixpkgs=channel:nixos-24.05
- uses: cachix/cachix-action@v15
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
run: |
while true; do sleep 1; rm -rf /homeless-shelter; done &
nix build
nix build .
- name: Check nix flake
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

@@ -12,4 +12,4 @@ jobs:
release:
name: Release a new version
needs: build
uses: xaked/actions/.gitea/workflows/release.yml@main
uses: xaked/actions/.gitea/workflows/cog-release.yml@2.0.0

View File

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 {
name = "nvim-config";
src = ./src;
installPhase = ''
mkdir -p $out/
cp -r . $out/
'';
{
imports = [
./options.nix
./modules/colorschemes/catppuccin.nix
./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,75 +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" },
-- Blink currently not supported by all extras 2024-11-19 11:08
-- { import = "lazyvim.plugins.extras.coding.blink" },
{ import = "lazyvim.plugins.extras.editor.illuminate" },
{ import = "lazyvim.plugins.extras.editor.outline" },
{ import = "lazyvim.plugins.extras.editor.telescope" },
{ import = "lazyvim.plugins.extras.formatting.prettier" },
{ import = "lazyvim.plugins.extras.lang.ansible" },
{ import = "lazyvim.plugins.extras.lang.docker" },
{ import = "lazyvim.plugins.extras.lang.git" },
{ 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.nix" },
{ import = "lazyvim.plugins.extras.lang.python" },
{ import = "lazyvim.plugins.extras.lang.rust" },
{ import = "lazyvim.plugins.extras.lang.scala" },
{ import = "lazyvim.plugins.extras.lang.sql" },
{ import = "lazyvim.plugins.extras.lang.terraform" },
{ import = "lazyvim.plugins.extras.lang.toml" },
{ import = "lazyvim.plugins.extras.lang.yaml" },
{ import = "lazyvim.plugins.extras.ui.mini-indentscope" },
{ import = "lazyvim.plugins.extras.ui.treesitter-context" },
{ import = "plugins.catppuccin" },
-- { import = "plugins.tokyonight" },
-- { import = "plugins.lang.nix" },
{ import = "plugins.lang.shell" },
{ import = "plugins.misc.bigfile" },
{ import = "plugins.misc.tmux-navigator" },
},
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 = { "catppuccin-macchiato" } },
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,62 +0,0 @@
return {
"catppuccin/nvim",
lazy = true,
name = "catppuccin",
opts = {
flavour = "macchiato",
transparent_background = false,
integrations = {
aerial = true,
alpha = true,
cmp = true,
dashboard = true,
flash = true,
grug_far = true,
gitsigns = true,
headlines = true,
illuminate = true,
indent_blankline = { enabled = true },
leap = true,
lsp_trouble = true,
mason = true,
markdown = true,
mini = true,
native_lsp = {
enabled = true,
underlines = {
errors = { "undercurl" },
hints = { "undercurl" },
warnings = { "undercurl" },
information = { "undercurl" },
},
},
navic = { enabled = true, custom_bg = "lualine" },
neotest = true,
neotree = true,
noice = true,
notify = true,
semantic_tokens = true,
telescope = true,
treesitter = true,
treesitter_context = true,
which_key = true,
},
},
specs = {
{
"akinsho/bufferline.nvim",
optional = true,
opts = function(_, opts)
if (vim.g.colors_name or ""):find("catppuccin") then
opts.highlights = require("catppuccin.groups.integrations.bufferline").get()
end
end,
},
},
{
"LazyVim/LazyVim",
opts = {
colorscheme = "catppuccin-macchiato",
},
},
}

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,9 +0,0 @@
return {
-- Disable certain features if file is big
{
"LunarVim/bigfile.nvim",
opts = {
filesize = 0.5,
},
},
}

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

290
flake.lock generated
View File

@@ -1,50 +1,15 @@
{
"nodes": {
"flake-compat": {
"flake": false,
"locked": {
"lastModified": 1696426674,
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
"owner": "edolstra",
"repo": "flake-compat",
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
"type": "github"
},
"original": {
"owner": "edolstra",
"repo": "flake-compat",
"type": "github"
}
},
"flake-compat_2": {
"flake": false,
"locked": {
"lastModified": 1696426674,
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
"owner": "edolstra",
"repo": "flake-compat",
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
"type": "github"
},
"original": {
"owner": "edolstra",
"repo": "flake-compat",
"type": "github"
}
},
"flake-parts": {
"inputs": {
"nixpkgs-lib": [
"neovim-nightly-overlay",
"nixpkgs"
]
"nixpkgs-lib": "nixpkgs-lib"
},
"locked": {
"lastModified": 1730504689,
"narHash": "sha256-hgmguH29K2fvs9szpq2r3pz2/8cJd2LPS+b4tfNFCwE=",
"lastModified": 1763759067,
"narHash": "sha256-LlLt2Jo/gMNYAwOgdRQBrsRoOz7BPRkzvNaI/fzXi2Q=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "506278e768c2a08bec68eb62932193e341f55c90",
"rev": "2cccadc7357c0ba201788ae99c4dfa90728ef5e0",
"type": "github"
},
"original": {
@@ -56,22 +21,22 @@
"flake-parts_2": {
"inputs": {
"nixpkgs-lib": [
"neovim-nightly-overlay",
"hercules-ci-effects",
"nixvim",
"nixpkgs"
]
},
"locked": {
"lastModified": 1712014858,
"narHash": "sha256-sB4SWl2lX95bExY2gMFG5HIzvva5AVMJd4Igm+GpZNw=",
"lastModified": 1763759067,
"narHash": "sha256-LlLt2Jo/gMNYAwOgdRQBrsRoOz7BPRkzvNaI/fzXi2Q=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "9126214d0a59633752a136528f5f3b9aa8565b7d",
"rev": "2cccadc7357c0ba201788ae99c4dfa90728ef5e0",
"type": "github"
},
"original": {
"id": "flake-parts",
"type": "indirect"
"owner": "hercules-ci",
"repo": "flake-parts",
"type": "github"
}
},
"flake-utils": {
@@ -92,153 +57,132 @@
"type": "github"
}
},
"git-hooks": {
"ixx": {
"inputs": {
"flake-compat": "flake-compat_2",
"gitignore": "gitignore",
"nixpkgs": [
"neovim-nightly-overlay",
"nixpkgs"
"flake-utils": [
"nixvim",
"nuschtosSearch",
"flake-utils"
],
"nixpkgs-stable": [
"neovim-nightly-overlay",
"nixpkgs"
]
},
"locked": {
"lastModified": 1731363552,
"narHash": "sha256-vFta1uHnD29VUY4HJOO/D6p6rxyObnf+InnSMT4jlMU=",
"owner": "cachix",
"repo": "git-hooks.nix",
"rev": "cd1af27aa85026ac759d5d3fccf650abe7e1bbf0",
"type": "github"
},
"original": {
"owner": "cachix",
"repo": "git-hooks.nix",
"type": "github"
}
},
"gitignore": {
"inputs": {
"nixpkgs": [
"neovim-nightly-overlay",
"git-hooks",
"nixvim",
"nuschtosSearch",
"nixpkgs"
]
},
"locked": {
"lastModified": 1709087332,
"narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=",
"owner": "hercules-ci",
"repo": "gitignore.nix",
"rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
"lastModified": 1754860581,
"narHash": "sha256-EM0IE63OHxXCOpDHXaTyHIOk2cNvMCGPqLt/IdtVxgk=",
"owner": "NuschtOS",
"repo": "ixx",
"rev": "babfe85a876162c4acc9ab6fb4483df88fa1f281",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "gitignore.nix",
"type": "github"
}
},
"hercules-ci-effects": {
"inputs": {
"flake-parts": "flake-parts_2",
"nixpkgs": [
"neovim-nightly-overlay",
"nixpkgs"
]
},
"locked": {
"lastModified": 1730903510,
"narHash": "sha256-mnynlrPeiW0nUQ8KGZHb3WyxAxA3Ye/BH8gMjdoKP6E=",
"owner": "hercules-ci",
"repo": "hercules-ci-effects",
"rev": "b89ac4d66d618b915b1f0a408e2775fe3821d141",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "hercules-ci-effects",
"type": "github"
}
},
"neovim-nightly-overlay": {
"inputs": {
"flake-compat": "flake-compat",
"flake-parts": "flake-parts",
"git-hooks": "git-hooks",
"hercules-ci-effects": "hercules-ci-effects",
"neovim-src": "neovim-src",
"nixpkgs": "nixpkgs"
},
"locked": {
"lastModified": 1732002290,
"narHash": "sha256-v17KxlCf0O7hoD9AjiF94T2nuZuh7ZREyI6Ww/Tr4R0=",
"owner": "nix-community",
"repo": "neovim-nightly-overlay",
"rev": "2a9b9e821c7f91eb6ae540925a453f9ebacd0513",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "neovim-nightly-overlay",
"type": "github"
}
},
"neovim-src": {
"flake": false,
"locked": {
"lastModified": 1731949793,
"narHash": "sha256-ZXZInL8J38JaVpglSPa78ptn1zlqbaRHDtpa73CqpfI=",
"owner": "neovim",
"repo": "neovim",
"rev": "989a37a594649528f28432388c0e7e28e8be2753",
"type": "github"
},
"original": {
"owner": "neovim",
"repo": "neovim",
"owner": "NuschtOS",
"ref": "v0.1.1",
"repo": "ixx",
"type": "github"
}
},
"nixpkgs": {
"locked": {
"lastModified": 1731890469,
"narHash": "sha256-D1FNZ70NmQEwNxpSSdTXCSklBH1z2isPR84J6DQrJGs=",
"owner": "NixOS",
"lastModified": 1764522689,
"narHash": "sha256-SqUuBFjhl/kpDiVaKLQBoD8TLD+/cTUzzgVFoaHrkqY=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "5083ec887760adfe12af64830a66807423a859a7",
"rev": "8bb5646e0bed5dbd3ab08c7a7cc15b75ab4e1d0f",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixpkgs-unstable",
"owner": "nixos",
"ref": "nixos-25.11",
"repo": "nixpkgs",
"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": 1731755305,
"narHash": "sha256-v5P3dk5JdiT+4x69ZaB18B8+Rcu3TIOrcdG4uEX7WZ8=",
"owner": "nixos",
"lastModified": 1764338033,
"narHash": "sha256-1LNGcU+aTbATD3BPCf7U1KsP1CjCH+ZWqM6JH0sZ6Q0=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "057f63b6dc1a2c67301286152eb5af20747a9cb4",
"rev": "ba9b83e5fb4b552a423d24dabe5ccb47a9c89901",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-24.11",
"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": {
"inputs": {
"flake-utils": "flake-utils",
"neovim-nightly-overlay": "neovim-nightly-overlay",
"nixpkgs": "nixpkgs_2"
"flake-parts": "flake-parts",
"nixpkgs": "nixpkgs",
"nixvim": "nixvim",
"systems": "systems_3"
}
},
"systems": {
@@ -255,6 +199,36 @@
"repo": "default",
"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",

View File

@@ -1,59 +1,54 @@
{
description = "NVIM Configuration";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-24.11";
flake-utils.url = "github:numtide/flake-utils";
neovim-nightly-overlay = {
url = "github:nix-community/neovim-nightly-overlay";
# inputs.nixpkgs.follows = "nixpkgs";
};
};
description = "Neovim configuration, declaratively written using nix";
nixConfig = {
trusted-substituters = [
"https://nix-community.cachix.org"
"https://palkx.cachix.org"
];
extra-trusted-public-keys = [
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
"palkx.cachix.org-1:qaQoL5CXpGzUbqsIvxUEL7wUhoIrjV0Q8M4HbJ8/8S4="
];
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-25.11";
nixvim.url = "github:nix-community/nixvim/nixos-25.11";
flake-parts.url = "github:hercules-ci/flake-parts";
systems.url = "github:nix-systems/default";
};
outputs =
inputs@{
nixpkgs,
flake-utils,
neovim-nightly-overlay,
{
nixvim,
flake-parts,
...
}:
flake-utils.lib.eachDefaultSystem (
system:
let
overlayFlakeInputs = prev: final: {
neovim = neovim-nightly-overlay.packages.${system}.default.overrideAttrs (oa: {
nativeBuildInputs = oa.nativeBuildInputs ++ [ final.libtermkey ];
});
};
}@inputs:
flake-parts.lib.mkFlake { inherit inputs; } {
systems = import inputs.systems;
overlayLazyVim = prev: final: { lazyVim = import ./packages/lazyVim.nix { pkgs = final; }; };
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;
};
pkgs = import nixpkgs {
inherit system;
overlays = [
overlayFlakeInputs
overlayLazyVim
];
packages = {
# Lets you run `nix run .` to start nixvim
default = nvim;
};
};
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,13 +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",
"extends": ["local>local/renovate"],
"nix": {
"enabled": true
}
"$schema": "https://docs.renovatebot.com/renovate-schema.json"
}

View File

@@ -1,34 +0,0 @@
{ pkgs }:
{
dependencies =
with pkgs;
[
nixfmt-rfc-style # nix formatter
(terraform.overrideAttrs (oldAttrs: {
meta.license = lib.licenses.mpl20;
})) # terraform fmt
ripgrep
fd
git
curl # needed to fetch titles from urls
wget
cargo
php82
php82Packages.composer
go
ruby
luarocks
zulu # java11
fish
fzf
perl540
perl540Packages.CPAN
unzip
tree-sitter
gnumake
lazygit
python312
python312Packages.pip
]
++ (if pkgs.stdenv.hostPlatform.isDarwin then [ ] else [ gcc ]);
}