Files
dotfiles/dot_config/nvim/init.lua
s0wlz (Matthias Puchstein) ca2b441bb7 nvim,tmux,kitty: full config overhaul (AstroNvim → native 0.12)
Replaces AstroNvim v5 with from-scratch Neovim 0.12 config using
vim.lsp.config()/vim.lsp.enable() natively, lazy.nvim, blink.cmp,
and smart-splits tmux integration.

tmux: new C-Space prefix, hjkl pane nav, resize key table, tpm plugins.
kitty: add allow_remote_control for smart-splits.
2026-04-09 23:30:34 +02:00

55 lines
1.5 KiB
Lua

-- Bootstrap lazy.nvim
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
if not vim.loop.fs_stat(lazypath) then
vim.fn.system({
"git", "clone", "--filter=blob:none",
"https://github.com/folke/lazy.nvim.git",
"--branch=stable", lazypath,
})
end
vim.opt.rtp:prepend(lazypath)
-- Leader must be set before lazy loads plugins
vim.g.mapleader = " "
vim.g.maplocalleader = " "
-- Load core config (order matters)
require("options")
require("autocmds")
-- Load LSP server configurations (vim.lsp.config calls)
-- These must run before vim.lsp.enable() in plugins/lsp.lua
do
local lsp_dir = vim.fn.stdpath("config") .. "/lua/lsp"
for _, name in ipairs(vim.fn.readdir(lsp_dir)) do
if name:match("%.lua$") then
require("lsp." .. name:gsub("%.lua$", ""))
end
end
end
-- Load colorscheme before plugins (prevents flash of wrong colors)
-- colors/apex-neon.lua is managed by refresh-apex-themes, not via lazy
vim.cmd.colorscheme("apex-neon")
-- Setup lazy.nvim
require("lazy").setup({
spec = { { import = "plugins" } },
lockfile = vim.fn.stdpath("config") .. "/lazy-lock.json",
defaults = { lazy = false },
install = { colorscheme = { "apex-neon", "habamax" } },
checker = { enabled = false },
change_detection = { enabled = false },
performance = {
rtp = {
disabled_plugins = {
"gzip", "matchit", "matchparen", "netrwPlugin",
"tarPlugin", "tohtml", "tutor", "zipPlugin",
},
},
},
})
-- Keymaps loaded after lazy so plugin keymaps can be set in their own files
require("keymaps")