From 76cf8e414f8a2850a8798a2ddbba64df9b9b7b8f Mon Sep 17 00:00:00 2001
From: Thiago Sposito
Date: Sun, 7 Sep 2025 12:08:16 -0300
Subject: [PATCH] feat: add agentic plugin to nvim
---
README.md | 1 -
home-manager/home.nix | 18 ++++++++-
home-manager/{vim.nix => nvim/default.nix} | 38 +++--------------
home-manager/nvim/extraconfig.lua | 47 ++++++++++++++++++++++
4 files changed, 68 insertions(+), 36 deletions(-)
rename home-manager/{vim.nix => nvim/default.nix} (50%)
create mode 100644 home-manager/nvim/extraconfig.lua
diff --git a/README.md b/README.md
index 1482828..28e6415 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,3 @@
-[](https://builds.sr.ht/~sposito?search)
# My personal machines config files
This repository contains declarative configurations for personal machines managed with NixOS flakes and Home Manager.
diff --git a/home-manager/home.nix b/home-manager/home.nix
index 589af5c..b00325b 100644
--- a/home-manager/home.nix
+++ b/home-manager/home.nix
@@ -5,7 +5,7 @@
{
imports = [
./gnome
- ./vim.nix
+ ./nvim
./zsh.nix
];
@@ -20,6 +20,7 @@
"steam-original"
"steam-run"
"steamtinkerlaunch"
+ "ollama-cuda"
];
};
};
@@ -43,6 +44,7 @@
nixfmt-rfc-style
nordic
obsidian
+ ollama-cuda
pinentry-curses
python3
ripgrep
@@ -52,6 +54,7 @@
unzip
waydroid
wl-clipboard
+ zed-editor
];
username = "thiago";
};
@@ -80,11 +83,16 @@
lfs.enable = true;
signing = {
key = "EC7C84664FF515B63AD510B63065EA73A976D430";
- signByDefault = true;
+ signByDefault = false;
};
userEmail = "th.spo@pm.me";
userName = "Thiago Sposito";
};
+
+ gpg = {
+ enable = true;
+ package = pkgs.gnupg;
+ };
home-manager.enable = true;
@@ -116,6 +124,12 @@
};
};
+ services.gpg-agent = {
+ enable = true;
+ enableZshIntegration = true;
+ pinentry.package = pkgs.pinentry-curses;
+ };
+
systemd.user.startServices = "sd-switch";
home.stateVersion = "25.11";
}
diff --git a/home-manager/vim.nix b/home-manager/nvim/default.nix
similarity index 50%
rename from home-manager/vim.nix
rename to home-manager/nvim/default.nix
index a4cc953..438e593 100644
--- a/home-manager/vim.nix
+++ b/home-manager/nvim/default.nix
@@ -21,6 +21,10 @@
};
plugins = {
+ avante = {
+ enable = true;
+ };
+ dressing.enable = true;
lsp.enable = true;
lsp.servers = {
lua_ls.enable = true;
@@ -61,38 +65,6 @@
conform-nvim.enable = true;
};
- extraConfigLua = ''
- local cmp = require'cmp'
-
- cmp.setup({
- mapping = {
- [''] = cmp.mapping.complete(), -- trigger manually
- [''] = cmp.mapping.confirm({ select = true }), -- confirm with Enter
- [''] = cmp.mapping.select_next_item(),
- [''] = cmp.mapping.select_prev_item(),
- },
- sources = {
- { name = 'nvim_lsp' },
- { name = 'buffer' },
- { name = 'path' },
- },
- vim.api.nvim_create_autocmd("LspAttach", {
- callback = function(args)
- local buf = args.buf
- local opts = { buffer = buf }
-
- vim.keymap.set("n", "gd", vim.lsp.buf.definition, opts)
- vim.keymap.set("n", "gr", vim.lsp.buf.references, opts)
- vim.keymap.set("n", "K", vim.lsp.buf.hover, opts)
- vim.keymap.set("n", "rn", vim.lsp.buf.rename, opts)
- vim.keymap.set("n", "ca", vim.lsp.buf.code_action, opts)
- vim.keymap.set("n", "f", function() vim.lsp.buf.format({ async = true }) end, opts)
-
- vim.keymap.set("n", "", ":m .+1==")
- vim.keymap.set("n", "", ":m .-2==")
- end
- })
- })
- '';
+ extraConfigLua = builtins.readFile ./extraconfig.lua;
};
}
diff --git a/home-manager/nvim/extraconfig.lua b/home-manager/nvim/extraconfig.lua
new file mode 100644
index 0000000..c4025f4
--- /dev/null
+++ b/home-manager/nvim/extraconfig.lua
@@ -0,0 +1,47 @@
+local cmp = require'cmp'
+local avante = require("avante")
+
+cmp.setup({
+ mapping = {
+ [''] = cmp.mapping.complete(), -- trigger manually
+ [''] = cmp.mapping.confirm({ select = true }), -- confirm with Enter
+ [''] = cmp.mapping.select_next_item(),
+ [''] = cmp.mapping.select_prev_item(),
+ },
+ sources = {
+ { name = 'nvim_lsp' },
+ { name = 'buffer' },
+ { name = 'path' },
+ },
+ vim.api.nvim_create_autocmd("LspAttach", {
+ callback = function(args)
+ local buf = args.buf
+ local opts = { buffer = buf }
+
+ vim.keymap.set("n", "gd", vim.lsp.buf.definition, opts)
+ vim.keymap.set("n", "gr", vim.lsp.buf.references, opts)
+ vim.keymap.set("n", "K", vim.lsp.buf.hover, opts)
+ vim.keymap.set("n", "rn", vim.lsp.buf.rename, opts)
+ vim.keymap.set("n", "ca", vim.lsp.buf.code_action, opts)
+ vim.keymap.set("n", "f", function() vim.lsp.buf.format({ async = true }) end, opts)
+
+ vim.keymap.set("n", "", ":m .+1==")
+ vim.keymap.set("n", "", ":m .-2==")
+ end
+ })
+})
+
+
+avante.setup({
+ provider = "ollama",
+ providers = {
+ ollama = {
+ endpoint = "http://127.0.0.1:11434",
+ model = "gpt-oss:20b",
+ extra_request_body = {
+ temperature = 0,
+ num_ctx = 8192,
+ },
+ },
+ },
+})
\ No newline at end of file