diff --git a/configuration.nix b/configuration.nix index fb768c5..573ae47 100644 --- a/configuration.nix +++ b/configuration.nix @@ -28,7 +28,7 @@ ports = [ "4444:4444" ]; }; searxng = { - image = "ghcr.io/searxng/searxng:latest"; + image = "ghcr.io/searxng/searxng:2026.3.28-cf5389afd"; ports = [ "8888:8080" ]; }; }; diff --git a/home.nix b/home.nix index 7be9674..14fdfe8 100644 --- a/home.nix +++ b/home.nix @@ -231,6 +231,7 @@ # neovim folder # nixvim file # other files + /* programs.nixvim = { enable = true; defaultEditor = true; @@ -308,6 +309,7 @@ settings.open_mapping = "[[]]"; }; }; + */ # Compilers, whatever # dev tools? diff --git a/homeManagerModules/internet/browsers/firefox.nix b/homeManagerModules/internet/browsers/firefox.nix index e6fbadd..5abf998 100644 --- a/homeManagerModules/internet/browsers/firefox.nix +++ b/homeManagerModules/internet/browsers/firefox.nix @@ -1,4 +1,4 @@ -{ ... }: +{ lib, ... }: { programs.firefox = { enable = true; diff --git a/homeManagerModules/nvim/nixvim/nixvim.nix b/homeManagerModules/nvim/nixvim/nixvim.nix index e69de29..3528fd1 100644 --- a/homeManagerModules/nvim/nixvim/nixvim.nix +++ b/homeManagerModules/nvim/nixvim/nixvim.nix @@ -0,0 +1,81 @@ +{ ... }: +{ + programs.nixvim = { + enable = true; + defaultEditor = true; + viAlias = true; + vimAlias = true; + colorschemes.catppuccin.enable = true; + colorschemes.catppuccin.autoLoad = true; + plugins.lspconfig.enable = true; + plugins.treesitter = { + enable = true; + settings = { + highlight.enable = true; + }; + }; + lsp = { + servers.ruff.enable = true; # Python + servers.rust_analyzer.enable = true; # Rust + servers.tinymist.enable = true; + servers.html.enable = true; + servers.typos_lsp.enable = true; # Language typos + servers.emmet_language_server.enable = true; # Emmet + }; + plugins.lspsaga.enable = true; + plugins.web-devicons.enable = true; + plugins.dropbar.enable = true; + plugins.guess-indent.enable = true; + plugins.conform-nvim = { + enable = true; + autoInstall.enable = true; + settings.formatters_by_ft = { + nix = [ "nixfmt" ]; + python = [ "ruff_format" ]; + rust = [ "rustfmt" ]; + typst = [ "typstyle" ]; + html = [ "prettier" ]; + typescriptreact = [ "oxfmt" ]; + lua = [ "stylua" ]; + css = [ "prettier" ]; + java = [ "google-java-format" ]; + }; + luaConfig.post = '' + vim.api.nvim_create_user_command("Format", function(args) + local range = nil + if args.count ~= -1 then + local end_line = vim.api.nvim_buf_get_lines(0, args.line2 - 1, args.line2, true)[1] + range = { + start = { args.line1, 0 }, + ["end"] = { args.line2, end_line:len() }, + } + end + require("conform").format({ async = true, lsp_format = "fallback", range = range }) + end, { range = true }) + ''; + }; + plugins.cmp = { + enable = true; + autoEnableSources = true; # Scans the settings.sources array, enabling if available + settings = { + sources = [ + { name = "nvim_lsp"; } + { name = "path"; } + { name = "buffer"; } + { name = "spell"; } + ]; + + mapping = { + "" = "cmp.mapping.confirm({ select = true })"; + "" = "cmp.mapping(cmp.mapping.select_prev_item(), {'i', 's'})"; + "" = "cmp.mapping(cmp.mapping.select_next_item(), {'i', 's'})"; + }; + }; + }; + plugins.toggleterm = { + enable = true; + settings.open_mapping = "[[]]"; + }; + }; + +}