From ac6ae897f4fd76901b251706a376a96430bb1327 Mon Sep 17 00:00:00 2001 From: Pierre MARTIN Date: Tue, 13 Oct 2026 01:31:59 +0200 Subject: [PATCH] feat(neovim): ajout de Neovim avec LazyVim (comme Omarchy) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Starter LazyVim versionné dans files/nvim, thème Catppuccin Mocha (identique à Ghostty). Alias n = nvim ; vim reste l'$EDITOR. Co-Authored-By: Claude Opus 5.5 --- files/nvim/init.lua | 1 + files/nvim/lua/config/autocmds.lua | 1 + files/nvim/lua/config/keymaps.lua | 1 + files/nvim/lua/config/lazy.lua | 31 ++++++++++++++++++++++++++ files/nvim/lua/config/options.lua | 1 + files/nvim/lua/plugins/colorscheme.lua | 5 +++++ home.nix | 1 + programs/neovim.nix | 22 ++++++++++++++++++ programs/zsh.nix | 1 + 9 files changed, 64 insertions(+) create mode 100644 files/nvim/init.lua create mode 100644 files/nvim/lua/config/autocmds.lua create mode 100644 files/nvim/lua/config/keymaps.lua create mode 100644 files/nvim/lua/config/lazy.lua create mode 100644 files/nvim/lua/config/options.lua create mode 100644 files/nvim/lua/plugins/colorscheme.lua create mode 100644 programs/neovim.nix diff --git a/files/nvim/init.lua b/files/nvim/init.lua new file mode 100644 index 0000000..55b8979 --- /dev/null +++ b/files/nvim/init.lua @@ -0,0 +1 @@ +require("config.lazy") diff --git a/files/nvim/lua/config/autocmds.lua b/files/nvim/lua/config/autocmds.lua new file mode 100644 index 0000000..c5c0f5a --- /dev/null +++ b/files/nvim/lua/config/autocmds.lua @@ -0,0 +1 @@ +-- Voir https://www.lazyvim.org/configuration/general diff --git a/files/nvim/lua/config/keymaps.lua b/files/nvim/lua/config/keymaps.lua new file mode 100644 index 0000000..c5c0f5a --- /dev/null +++ b/files/nvim/lua/config/keymaps.lua @@ -0,0 +1 @@ +-- Voir https://www.lazyvim.org/configuration/general diff --git a/files/nvim/lua/config/lazy.lua b/files/nvim/lua/config/lazy.lua new file mode 100644 index 0000000..0ede79f --- /dev/null +++ b/files/nvim/lua/config/lazy.lua @@ -0,0 +1,31 @@ +-- Starter LazyVim - https://github.com/LazyVim/starter +-- Les plugins sont téléchargés par lazy.nvim au premier lancement (hors Nix) : +-- lazy-lock.json est donc écrit dans ~/.config/nvim et n'est pas versionné. +local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim" +if not (vim.uv or vim.loop).fs_stat(lazypath) then + local lazyrepo = "https://github.com/folke/lazy.nvim.git" + local out = vim.fn.system({ "git", "clone", "--filter=blob:none", "--branch=stable", lazyrepo, lazypath }) + if vim.v.shell_error ~= 0 then + vim.api.nvim_echo({ + { "Failed to clone lazy.nvim:\n", "ErrorMsg" }, + { out, "WarningMsg" }, + { "\nPress any key to exit..." }, + }, true, {}) + vim.fn.getchar() + os.exit(1) + end +end +vim.opt.rtp:prepend(lazypath) + +require("lazy").setup({ + spec = { + { "LazyVim/LazyVim", import = "lazyvim.plugins" }, + { import = "plugins" }, + }, + defaults = { + lazy = false, + version = false, + }, + install = { colorscheme = { "catppuccin", "habamax" } }, + checker = { enabled = true, notify = false }, +}) diff --git a/files/nvim/lua/config/options.lua b/files/nvim/lua/config/options.lua new file mode 100644 index 0000000..c5c0f5a --- /dev/null +++ b/files/nvim/lua/config/options.lua @@ -0,0 +1 @@ +-- Voir https://www.lazyvim.org/configuration/general diff --git a/files/nvim/lua/plugins/colorscheme.lua b/files/nvim/lua/plugins/colorscheme.lua new file mode 100644 index 0000000..f67b926 --- /dev/null +++ b/files/nvim/lua/plugins/colorscheme.lua @@ -0,0 +1,5 @@ +-- Même thème que Ghostty +return { + { "catppuccin/nvim", name = "catppuccin", opts = { flavour = "mocha" } }, + { "LazyVim/LazyVim", opts = { colorscheme = "catppuccin" } }, +} diff --git a/home.nix b/home.nix index b2f68f3..a5d381d 100644 --- a/home.nix +++ b/home.nix @@ -55,6 +55,7 @@ ./programs/ghostty.nix ./programs/git.nix ./programs/i3.nix + ./programs/neovim.nix ./programs/pi.nix ./programs/zsh.nix ]; diff --git a/programs/neovim.nix b/programs/neovim.nix new file mode 100644 index 0000000..2f00d34 --- /dev/null +++ b/programs/neovim.nix @@ -0,0 +1,22 @@ +{ pkgs, ... }: + +# LazyVim, comme Omarchy. vim reste l'$EDITOR le temps de l'essai. +{ + programs.neovim = { + enable = true; + # Compilation des parsers nvim-treesitter. Les LSP installés par Mason + # tournent grâce à programs.nix-ld (nixos/configuration.nix). + extraPackages = with pkgs; [ + tree-sitter + gcc + unzip + ]; + }; + + # recursive : ~/.config/nvim reste un vrai dossier, où LazyVim écrit + # lazy-lock.json et lazyvim.json. + xdg.configFile."nvim" = { + source = ../files/nvim; + recursive = true; + }; +} diff --git a/programs/zsh.nix b/programs/zsh.nix index 250565e..7b4048c 100644 --- a/programs/zsh.nix +++ b/programs/zsh.nix @@ -135,6 +135,7 @@ kp = "kubectl --context prod-eu7"; kp9 = "k9s --context prod-eu7"; g = "git"; + n = "nvim"; gui = "gitui"; htop = "btop"; c = "claude";