diff --git a/README.md b/README.md index 1482828..28e6415 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,3 @@ -[![builds.sr.ht status](https://builds.sr.ht/~sposito.svg)](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