Restructure dotfiles : suppression outils abandonnés, migration sway→hyprland, neomutt→aerc

- Supprimés : fish, qtile, X, vim, sway, neomutt (+ package systemd vide)
- Nouveau package hyprland : waybar, rofi, mako, gammastep, rofi-pass, systemd (mail+kanata+mpd+voxtype), script rofi
- Nouveau package aerc : config aerc + infra mail (msmtp, khard, vdirsyncer) migrée depuis neomutt
- Nettoyage .gitignore : suppression entrées neomutt/vim, ajout patterns moc/mpd/vifm manquants, vdirsyncer/status pour aerc
- Mise à jour des configs trackées modifiées (nvim, zsh, tmux, git, newsboat)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-06-19 06:40:49 +02:00
parent d84f20edf0
commit 0a00251742
86 changed files with 2032 additions and 1717 deletions

View File

@@ -1,5 +1,5 @@
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
if not vim.loop.fs_stat(lazypath) then
if not vim.uv.fs_stat(lazypath) then
vim.fn.system({
"git",
"clone",
@@ -12,6 +12,9 @@ end
vim.opt.rtp:prepend(lazypath)
vim.g.mapleader = ' ' -- Leaderkey
require("lazy").setup("plugins")
require("lazy").setup("plugins", {
concurrency = 5,
git = { filter = false },
})
require('settings')
require('mappings')

View File

@@ -1,36 +1,36 @@
{
"Comment.nvim": { "branch": "master", "commit": "0236521ea582747b58869cb72f70ccfa967d2e89" },
"cmp-buffer": { "branch": "main", "commit": "3022dbc9166796b644a841a02de8dd1cc1d311fa" },
"cmp-cmdline": { "branch": "main", "commit": "8ee981b4a91f536f52add291594e89fb6645e451" },
"cmp-nvim-lsp": { "branch": "main", "commit": "44b16d11215dce86f253ce0c30949813c0a90765" },
"cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" },
"cmp-vsnip": { "branch": "main", "commit": "989a8a73c44e926199bfd05fa7a516d51f2d2752" },
"gitsigns.nvim": { "branch": "main", "commit": "ff01d34daaed72f271a8ffa088a7e839a60c640f" },
"gruvbox": { "branch": "master", "commit": "f1ecde848f0cdba877acb0c740320568252cc482" },
"indent-blankline.nvim": { "branch": "master", "commit": "877c1db2bf957300097dd5348a665666a4d900cb" },
"lazy.nvim": { "branch": "main", "commit": "6b6f0a451200bb6abde85978c577c73ea1577758" },
"lsp-zero.nvim": { "branch": "v3.x", "commit": "22677c535fdc11a73da67a186a30e360d8857497" },
"lualine.nvim": { "branch": "master", "commit": "45e27ca739c7be6c49e5496d14fcf45a303c3a63" },
"mason-lspconfig.nvim": { "branch": "main", "commit": "e2705063f395b44f676cd26596a11007a2cbd3bd" },
"mason.nvim": { "branch": "main", "commit": "d66c60e17dd6fd8165194b1d14d21f7eb2c1697a" },
"noice.nvim": { "branch": "main", "commit": "7cf858c30841c9c41601ce58e5bc2023228037ef" },
"nui.nvim": { "branch": "main", "commit": "c8de23342caf8d50b15d6b28368d36a56a69d76f" },
"nvim-autopairs": { "branch": "master", "commit": "de4f7138a68d5d5063170f2182fd27faf06b0b54" },
"nvim-cmp": { "branch": "main", "commit": "5dce1b778b85c717f6614e3f4da45e9f19f54435" },
"nvim-colorizer.lua": { "branch": "master", "commit": "36c610a9717cc9ec426a07c8e6bf3b3abcb139d6" },
"nvim-lspconfig": { "branch": "master", "commit": "2b361e043810d5587d9af0787f8ce40da92ec5e9" },
"nvim-notify": { "branch": "master", "commit": "e4a2022f4fec2d5ebc79afa612f96d8b11c627b3" },
"nvim-treesitter": { "branch": "master", "commit": "10bfa4826f2235c600c073a82e0d78718aa7240e" },
"nvim-web-devicons": { "branch": "master", "commit": "45d0237c427baba8cd05e0ab26d30e2ee58c2c82" },
"oil.nvim": { "branch": "master", "commit": "ac2928cca85ba3596e92f9f51940d46be2d606f8" },
"plenary.nvim": { "branch": "master", "commit": "9ce85b0f7dcfe5358c0be937ad23e456907d410b" },
"telescope.nvim": { "branch": "0.1.x", "commit": "54930e1abfc94409e1bb9266e752ef8379008592" },
"Comment.nvim": { "branch": "master", "commit": "e30b7f2008e52442154b66f7c519bfd2f1e32acb" },
"LuaSnip": { "branch": "master", "commit": "a62e1083a3cfe8b6b206e7d3d33a51091df25357" },
"blink.cmp": { "branch": "main", "commit": "78336bc89ee5365633bcf754d93df01678b5c08f" },
"conform.nvim": { "branch": "master", "commit": "18aeab3d63d350dcf44d64c462cc489a3412af40" },
"friendly-snippets": { "branch": "main", "commit": "6cd7280adead7f586db6fccbd15d2cac7e2188b9" },
"gitsigns.nvim": { "branch": "main", "commit": "dd3f588bacbeb041be6facf1742e42097f62165d" },
"gruvbox": { "branch": "master", "commit": "697c00291db857ca0af00ec154e5bd514a79191f" },
"harpoon": { "branch": "harpoon2", "commit": "87b1a3506211538f460786c23f98ec63ad9af4e5" },
"lazy.nvim": { "branch": "main", "commit": "306a05526ada86a7b30af95c5cc81ffba93fef97" },
"lualine.nvim": { "branch": "master", "commit": "131a558e13f9f28b15cd235557150ccb23f89286" },
"mason-lspconfig.nvim": { "branch": "main", "commit": "7b01e2974a47d489bb92f47a41e4c0088ea8f86e" },
"mason-tool-installer.nvim": { "branch": "main", "commit": "443f1ef8b5e6bf47045cb2217b6f748a223cf7dc" },
"mason.nvim": { "branch": "main", "commit": "8e921c2b68571e978db5d4d3fef9c9a7f8755473" },
"noice.nvim": { "branch": "main", "commit": "7bfd942445fb63089b59f97ca487d605e715f155" },
"nui.nvim": { "branch": "main", "commit": "de740991c12411b663994b2860f1a4fd0937c130" },
"nvim-autopairs": { "branch": "master", "commit": "7b9923abad60b903ece7c52940e1321d39eccc79" },
"nvim-colorizer.lua": { "branch": "master", "commit": "a065833f35a3a7cc3ef137ac88b5381da2ba302e" },
"nvim-lint": { "branch": "master", "commit": "665525810630701b84181e4d9eefd24b49845b29" },
"nvim-lspconfig": { "branch": "master", "commit": "f9349d4d99e7d66403ae8bf4fbd357b154dca7a7" },
"nvim-treesitter": { "branch": "main", "commit": "4916d6592ede8c07973490d9322f187e07dfefac" },
"nvim-treesitter-textobjects": { "branch": "main", "commit": "851e865342e5a4cb1ae23d31caf6e991e1c99f1e" },
"nvim-web-devicons": { "branch": "master", "commit": "2795c26c916bb3c57dde308b82be51971fa92747" },
"oil.nvim": { "branch": "master", "commit": "0fcc83805ad11cf714a949c98c605ed717e0b83e" },
"plenary.nvim": { "branch": "master", "commit": "74b06c6c75e4eeb3108ec01852001636d85a932b" },
"snacks.nvim": { "branch": "main", "commit": "ad9ede6a9cddf16cedbd31b8932d6dcdee9b716e" },
"telescope-fzf-native.nvim": { "branch": "main", "commit": "b25b749b9db64d375d782094e2b9dce53ad53a40" },
"telescope.nvim": { "branch": "0.1.x", "commit": "a0bbec21143c7bc5f8bb02e0005fa0b982edc026" },
"vim-abolish": { "branch": "master", "commit": "dcbfe065297d31823561ba787f51056c147aa682" },
"vim-fugitive": { "branch": "master", "commit": "99db68d9b3304580bd383da7aaee05c7a954a344" },
"vim-highlightedyank": { "branch": "master", "commit": "fa3f57b097e9521ce41a66b6c7cf5d9adea70ea3" },
"vim-repeat": { "branch": "master", "commit": "24afe922e6a05891756ecf331f39a1f6743d3d5a" },
"vim-fugitive": { "branch": "master", "commit": "3b753cf8c6a4dcde6edee8827d464ba9b8c4a6f0" },
"vim-repeat": { "branch": "master", "commit": "65846025c15494983dafe5e3b46c8f88ab2e9635" },
"vim-surround": { "branch": "master", "commit": "3d188ed2113431cf8dac77be61b842acb64433d9" },
"vim-tmux-navigator": { "branch": "master", "commit": "7db70e08ea03b3e4d91f63713d76134512e28d7e" },
"vim-vsnip": { "branch": "master", "commit": "be277461265f1e5c7db470aa479f30956597ea9e" },
"which-key.nvim": { "branch": "main", "commit": "7ccf476ebe0445a741b64e36c78a682c1c6118b7" }
}
"vim-tmux-navigator": { "branch": "master", "commit": "e41c431a0c7b7388ae7ba341f01a0d217eb3a432" },
"vimtex": { "branch": "master", "commit": "182ad387e3f3107699483606c9a2b6648f8437b2" },
"which-key.nvim": { "branch": "main", "commit": "3aab2147e74890957785941f0c1ad87d0a44c15a" }
}

View File

@@ -1,7 +1,9 @@
return {
'windwp/nvim-autopairs',
event = "InsertEnter",
opts = {
disable_filetype = { "TelescopePrompt" , "vim" },
} -- this is equalent to setup({}) function
config = function()
require("nvim-autopairs").setup({
disable_filetype = { "TelescopePrompt", "vim" },
})
end
}

View File

@@ -22,14 +22,14 @@ return {
python = { "ruff_fix", "ruff_format" },
},
format_on_save = {
lsp_fallback = true,
lsp_format = "fallback",
async = false,
timeout_ms = 500,
},
})
vim.keymap.set({ "n", "v" }, "<leader>mp", function()
conform.format({
lsp_fallback = true,
lsp_format = "fallback",
async = true,
timeout_ms = 500,
})

View File

@@ -1,44 +1,41 @@
return {
"VonHeikemen/lsp-zero.nvim",
branch = "v3.x",
"neovim/nvim-lspconfig",
dependencies = {
{ "neovim/nvim-lspconfig" },
{ "williamboman/mason.nvim" },
{ "williamboman/mason-lspconfig.nvim" },
{ "WhoIsSethDaniel/mason-tool-installer.nvim" },
},
config = function()
local lsp_zero = require("lsp-zero")
lsp_zero.on_attach(function(client, bufnr)
local opts = { buffer = bufnr, silent = true }
vim.keymap.set("n", "gd", vim.lsp.buf.definition, vim.tbl_extend("force", opts, { desc = "Go to definition" }))
vim.keymap.set("n", "gD", vim.lsp.buf.declaration, vim.tbl_extend("force", opts, { desc = "Go to declaration" }))
vim.keymap.set("n", "gi", vim.lsp.buf.implementation, vim.tbl_extend("force", opts, { desc = "Go to implementation" }))
vim.keymap.set("n", "gr", vim.lsp.buf.references, vim.tbl_extend("force", opts, { desc = "Show references" }))
vim.keymap.set("n", "K", vim.lsp.buf.hover, vim.tbl_extend("force", opts, { desc = "Hover documentation" }))
vim.keymap.set("n", "<leader>rn", vim.lsp.buf.rename, vim.tbl_extend("force", opts, { desc = "Rename symbol" }))
vim.keymap.set({ "n", "v" }, "<leader>ca", vim.lsp.buf.code_action, vim.tbl_extend("force", opts, { desc = "Code action" }))
end)
vim.api.nvim_create_autocmd("LspAttach", {
callback = function(args)
local opts = { buffer = args.buf, silent = true }
vim.keymap.set("n", "gd", vim.lsp.buf.definition, vim.tbl_extend("force", opts, { desc = "Go to definition" }))
vim.keymap.set("n", "gD", vim.lsp.buf.declaration, vim.tbl_extend("force", opts, { desc = "Go to declaration" }))
vim.keymap.set("n", "gi", vim.lsp.buf.implementation, vim.tbl_extend("force", opts, { desc = "Go to implementation" }))
vim.keymap.set("n", "gr", vim.lsp.buf.references, vim.tbl_extend("force", opts, { desc = "Show references" }))
vim.keymap.set("n", "K", vim.lsp.buf.hover, vim.tbl_extend("force", opts, { desc = "Hover documentation" }))
vim.keymap.set("n", "<leader>rn", vim.lsp.buf.rename, vim.tbl_extend("force", opts, { desc = "Rename symbol" }))
vim.keymap.set({ "n", "v" }, "<leader>ca", vim.lsp.buf.code_action, vim.tbl_extend("force", opts, { desc = "Code action" }))
end,
})
require("mason").setup({})
require("mason-lspconfig").setup({
ensure_installed = {},
handlers = {
lsp_zero.default_setup,
function(server_name)
vim.lsp.enable(server_name)
end,
},
})
local mason_tool_installer = require("mason-tool-installer")
mason_tool_installer.setup({
require("mason-tool-installer").setup({
ensure_installed = {
"prettier", -- prettier formatter
"stylua", -- lua formatter
-- "isort", -- python formatter
-- "black", -- python formatter
-- "flake8", -- python linter
"prettier",
"stylua",
"ruff",
"eslint_d", -- js linter
"eslint_d",
},
})
end,

View File

@@ -152,7 +152,7 @@ return {
-- Lsp server name .
function()
local msg = "No Active Lsp"
local buf_ft = vim.api.nvim_buf_get_option(0, "filetype")
local buf_ft = vim.bo.filetype
local clients = vim.lsp.get_clients()
if next(clients) == nil then
return msg

View File

@@ -2,5 +2,4 @@ return {
'tpope/vim-surround',
'tpope/vim-repeat',
'tpope/vim-abolish',
'machakann/vim-highlightedyank'
}

View File

@@ -13,7 +13,6 @@ return {
override = {
["vim.lsp.util.convert_input_to_markdown_lines"] = true,
["vim.lsp.util.stylize_markdown"] = true,
["cmp.entry.get_documentation"] = true, -- requires hrsh7th/nvim-cmp
},
},
-- you can enable a preset for easier configuration

View File

@@ -30,18 +30,15 @@ return {
results_title = "",
prompt_title = "",
preview_title = "",
mappings = {
i = {
["<C-d>"] = require("telescope.actions").delete_buffer,
},
n = {
["<C-d>"] = require("telescope.actions").delete_buffer,
},
},
},
},
config = function(_, opts)
local telescope = require("telescope")
local actions = require("telescope.actions")
opts.defaults.mappings = {
i = { ["<C-d>"] = actions.delete_buffer },
n = { ["<C-d>"] = actions.delete_buffer },
}
telescope.setup(opts)
telescope.load_extension("fzf")

View File

@@ -1,32 +1,94 @@
return {
"nvim-treesitter/nvim-treesitter",
build = ":TSUpdate",
dependencies = {
"nvim-treesitter/nvim-treesitter-textobjects",
},
config = function()
local configs = require("nvim-treesitter.configs")
-- Compatibility shim for plugins using the old parsers.ft_to_lang API (e.g. telescope)
local ok, parsers = pcall(require, "nvim-treesitter.parsers")
if ok and not parsers.ft_to_lang then
parsers.ft_to_lang = function(ft)
return vim.treesitter.language.get_lang(ft) or ft
end
end
configs.setup({
ensure_installed = {
"lua",
"vim",
"vimdoc",
"javascript",
"html",
"python",
"dockerfile",
"latex",
"yaml",
"regex",
"bash",
"markdown",
"markdown_inline",
},
sync_install = false,
highlight = {
enable = true,
disable = { "latex" },
},
indent = { enable = true },
})
require("nvim-treesitter").setup({
ensure_installed = {
"lua",
"vim",
"vimdoc",
"javascript",
"html",
"python",
"dockerfile",
"yaml",
"regex",
"bash",
"markdown",
"markdown_inline",
},
sync_install = false,
highlight = {
enable = true,
disable = { "latex" },
},
indent = { enable = true },
-- Configuration des text objects intelligents
textobjects = {
select = {
enable = true,
lookahead = false, -- Ne cherche PAS vers l'avant (résout votre problème!)
keymaps = {
-- Délimiteurs syntaxiques
["i{"] = "@block.inner",
["a{"] = "@block.outer",
["i("] = "@call.inner",
["a("] = "@call.outer",
["i["] = "@call.inner",
["a["] = "@call.outer",
-- Strings/Guillemets
['i"'] = "@string.inner",
['a"'] = "@string.outer",
["i'"] = "@string.inner",
["a'"] = "@string.outer",
["i`"] = "@string.inner",
["a`"] = "@string.outer",
-- Délimiteurs sémantiques
["if"] = "@function.inner",
["af"] = "@function.outer",
["iC"] = "@class.inner", -- Majuscule pour éviter conflit avec VimTeX
["aC"] = "@class.outer",
["ib"] = "@block.inner",
["ab"] = "@block.outer",
["ii"] = "@conditional.inner",
["ai"] = "@conditional.outer",
["il"] = "@loop.inner",
["al"] = "@loop.outer",
["ia"] = "@parameter.inner",
["aa"] = "@parameter.outer",
["i/"] = "@comment.inner",
["a/"] = "@comment.outer",
["ir"] = "@return.inner",
["ar"] = "@return.outer",
},
-- Mode de sélection (v = charwise)
selection_modes = {
['@parameter.outer'] = 'v',
['@function.outer'] = 'V', -- linewise pour fonctions
['@class.outer'] = 'V', -- linewise pour classes
},
-- Ne pas inclure les espaces (comportement précis)
include_surrounding_whitespace = false,
},
},
})
end,
-- opts = function(_, opts)
-- vim.treesitter.language.register("markdown", "mdx")
@@ -34,14 +96,11 @@ return {
-- if type(opts.ensure_installed) == "table" then
-- vim.list_extend(opts.ensure_installed, {
-- "bibtex",
-- "latex",
-- -- you can add more here
-- })
-- end
-- if type(opts.highlight.disable) == "table" then
-- vim.list_extend(opts.highlight.disable, { "latex", "bibtex" })
-- else
-- opts.highlight.disable = { "latex", "bibtex" }
-- end
-- end,
}

View File

@@ -1,10 +1,6 @@
return {
"folke/which-key.nvim",
event = "VeryLazy",
init = function()
vim.o.timeout = true
vim.o.timeoutlen = 300
end,
opts = {
-- your configuration comes here
-- or leave it empty to use the default settings

View File

@@ -1,10 +1,9 @@
local cmd = vim.cmd
local exec = vim.api.nvim_exec
local g = vim.g
local opt = vim.opt
opt.mouse = 'a'
opt.clipboard = 'unnamedplus'
opt.mouse = "a"
opt.clipboard = "unnamedplus"
opt.swapfile = false
opt.wrap = true
@@ -13,7 +12,7 @@ opt.tabstop = 4
opt.shiftwidth = 4
opt.smarttab = true
opt.autoindent = true
opt.foldmethod = 'indent'
opt.foldmethod = "indent"
opt.number = true
opt.relativenumber = true
@@ -23,7 +22,7 @@ opt.scrolloff = 8
opt.ignorecase = true
opt.smartcase = true
opt.completeopt = 'menuone,noselect,noinsert'
opt.completeopt = "menuone,noselect,popup"
vim.api.nvim_create_autocmd("FileType", {
pattern = { "markdown", "text", "tex", "gitcommit" },
@@ -33,16 +32,21 @@ vim.api.nvim_create_autocmd("FileType", {
end,
})
opt.nrformats = opt.nrformats + 'alpha'
opt.nrformats = opt.nrformats + "alpha"
opt.showmatch = true
cmd[[au BufEnter * set fo-=c fo-=r fo-=o]]
cmd([[au BufEnter * set fo-=c fo-=r fo-=o]])
exec([[
augroup YankHighlight
autocmd!
autocmd TextYankPost * silent! lua vim.highlight.on_yank{higroup="IncSearch", timeout=700}
augroup end
]], false)
vim.api.nvim_create_autocmd("TextYankPost", {
callback = function()
vim.highlight.on_yank({ higroup = "IncSearch", timeout = 700 })
end,
})
g.python3_host_prog = vim.fn.expand("~/.venv/nvim/bin/python")
vim.filetype.add({
extension = {
tf = "terraform",
},
})