only smart-nav on gentoo, and not on other systems, same with tmux navigation

This commit is contained in:
2026-06-19 00:37:46 +02:00
parent 9d0e106178
commit 04d720f6c8
8 changed files with 96 additions and 80 deletions

View File

@@ -38,6 +38,8 @@ vim.keymap.set("n", "<leader>-", function()
vim.cmd.new() vim.cmd.new()
end, { desc = "Pane split down" }) end, { desc = "Pane split down" })
-- Movement
{{ if eq .chezmoi.hostname "gentoo" }}
local function smart_move(direction, vim_cmd) local function smart_move(direction, vim_cmd)
return function() return function()
local before = vim.api.nvim_get_current_win() local before = vim.api.nvim_get_current_win()
@@ -62,26 +64,30 @@ vim.keymap.set('n', '<D-l>', smart_move("right", "l"), { noremap = true, silent
vim.keymap.set('n', '<D-j>', smart_move("down", "j"), { noremap = true, silent = false, desc = "Move to down window" }); vim.keymap.set('n', '<D-j>', smart_move("down", "j"), { noremap = true, silent = false, desc = "Move to down window" });
vim.keymap.set('n', '<D-k>', smart_move("up", "k"), { noremap = true, silent = false, desc = "Move to up window" }); vim.keymap.set('n', '<D-k>', smart_move("up", "k"), { noremap = true, silent = false, desc = "Move to up window" });
{{ end }}
vim.api.nvim_set_keymap('n', 'gb', ':bnext<CR>', { noremap = true, silent = true, desc = "Go back last buffer" }); vim.api.nvim_set_keymap('n', 'gb', ':bnext<CR>', { noremap = true, silent = true, desc = "Go back last buffer" });
vim.api.nvim_set_keymap('t', '<c-[><c-[>', '<C-\\><C-n>', { noremap = true, silent = true, desc = "Escape Terminal" }); vim.api.nvim_set_keymap('t', '<c-[><c-[>', '<C-\\><C-n>', { noremap = true, silent = true, desc = "Escape Terminal" });
vim.api.nvim_create_autocmd('TermOpen', { vim.api.nvim_create_autocmd('TermOpen', {
group = vim.api.nvim_create_augroup('custom-term-open', { clear = true }), group = vim.api.nvim_create_augroup('custom-term-open', { clear = true }),
callback = function() callback = function()
vim.opt.number = false vim.opt_local.number = false
vim.opt.relativenumber = false vim.opt_local.relativenumber = false
end, end,
}); });
-- Telescope -- Telescope
local builtin = require("telescope.builtin") vim.keymap.set('n', '<leader>fg', function() require("telescope.builtin").live_grep({ glob_pattern = "!*_templ.go" }) end,
vim.keymap.set('n', '<leader>fg', function() builtin.live_grep({ glob_pattern = "!*_templ.go" }) end,
{ desc = "Telescope live grep" }) { desc = "Telescope live grep" })
vim.keymap.set('n', 'gl', builtin.lsp_references, { desc = "Telescope show references" }) vim.keymap.set('n', 'gl', function() require("telescope.builtin").lsp_references() end,
vim.keymap.set('n', '<leader>fx', builtin.diagnostics, { desc = "Telescope open diagnostics" }) { desc = "Telescope show references" })
vim.keymap.set('n', '<leader>ff', builtin.find_files, { desc = "Telescope find files" }) vim.keymap.set('n', '<leader>fx', function() require("telescope.builtin").diagnostics() end,
vim.keymap.set('n', '<leader>fb', builtin.buffers, { desc = "Telescope open buffers" }) { desc = "Telescope open diagnostics" })
vim.keymap.set('n', '<leader>ff', function() require("telescope.builtin").find_files() end,
{ desc = "Telescope find files" })
vim.keymap.set('n', '<leader>fb', function() require("telescope.builtin").buffers() end, { desc = "Telescope open buffers" })
-- Formating -- Formating
vim.keymap.set("n", "<leader>gf", function() vim.keymap.set("n", "<leader>gf", function()
@@ -92,30 +98,34 @@ end, { desc = "Format buffer" })
vim.keymap.set("n", "<leader>e", ":Oil<CR>", { desc = "Open file explorer: OIL" }) vim.keymap.set("n", "<leader>e", ":Oil<CR>", { desc = "Open file explorer: OIL" })
-- Neotest -- Neotest
local neotest = require("neotest")
vim.keymap.set("n", "<leader>ts", function() vim.keymap.set("n", "<leader>ts", function()
neotest.summary.toggle() require("neotest").summary.toggle()
end, { desc = "Neotest open summary" }) end, { desc = "Neotest open summary" })
vim.keymap.set("n", "<leader>to", neotest.output.open, { desc = "Neotest open output" }) vim.keymap.set("n", "<leader>to", function() require("neotest").output.open() end, { desc = "Neotest open output" })
vim.keymap.set("n", "<leader>td", function() neotest.run.run({ suite = false, strategy = "dap" }) end, vim.keymap.set("n", "<leader>td", function() require("neotest").run.run({ suite = false, strategy = "dap" }) end,
{ desc = "Neotest debug closest test" }) { desc = "Neotest debug closest test" })
vim.keymap.set("n", "<leader>tr", function() neotest.run.run({ suite = false }) end, vim.keymap.set("n", "<leader>tr", function() require("neotest").run.run({ suite = false }) end,
{ desc = "Neotest run closest test" }) { desc = "Neotest run closest test" })
-- Debugging -- Debugging
local dap = require("dap") vim.keymap.set("n", "<leader>db", function() require("dap").toggle_breakpoint() end,
vim.keymap.set("n", "<leader>db", dap.toggle_breakpoint,
{ nowait = true, remap = false, desc = "Debug toggle breakpoint" }) { nowait = true, remap = false, desc = "Debug toggle breakpoint" })
vim.keymap.set("n", "<leader>dc", dap.continue, { nowait = true, remap = false, desc = "Debug continue" }) vim.keymap.set("n", "<leader>dc", function() require("dap").continue() end,
vim.keymap.set("n", "<leader>di", dap.step_into, { nowait = true, remap = false, desc = "Debug step into" }) { nowait = true, remap = false, desc = "Debug continue" })
vim.keymap.set("n", "<leader>do", dap.step_over, { nowait = true, remap = false, desc = "Debug step over" }) vim.keymap.set("n", "<leader>di", function() require("dap").step_into() end,
vim.keymap.set("n", "<leader>dr", dap.repl.open, { nowait = true, remap = false, desc = "Debug open repl" }) { nowait = true, remap = false, desc = "Debug step into" })
vim.keymap.set("n", "<leader>do", function() require("dap").step_over() end,
{ nowait = true, remap = false, desc = "Debug step over" })
vim.keymap.set("n", "<leader>dr", function() require("dap").repl.open() end,
{ nowait = true, remap = false, desc = "Debug open repl" })
vim.keymap.set("n", "<leader>dq", function() vim.keymap.set("n", "<leader>dq", function()
local dap = require("dap")
dap.terminate() dap.terminate()
require("dapui").close() require("dapui").close()
require("nvim-dap-virtual-text").toggle() require("nvim-dap-virtual-text").toggle()
end, { nowait = true, remap = false, desc = "Debug close" }) end, { nowait = true, remap = false, desc = "Debug close" })
vim.keymap.set("n", "<leader>dl", dap.list_breakpoints, { nowait = true, remap = false, desc = "Debug list breakpoints" }) vim.keymap.set("n", "<leader>dl", function() require("dap").list_breakpoints() end,
{ nowait = true, remap = false, desc = "Debug list breakpoints" })
local function read_pyproject() local function read_pyproject()
local results = vim.fs.find("pyproject.toml", { upward = true, stop = vim.loop.os_homedir() }) local results = vim.fs.find("pyproject.toml", { upward = true, stop = vim.loop.os_homedir() })
@@ -201,20 +211,16 @@ vim.keymap.set("n", "<leader>dps", function()
vim.log.levels.INFO vim.log.levels.INFO
) )
local dap = require("dap") require("dap").run({
dap.configurations.python = { type = "python",
{ request = "launch",
type = "python", name = "Debug: " .. script_name,
request = "launch", module = package,
name = "Debug: " .. script_name, args = args,
module = package, pythonPath = get_python_path(),
args = args, justMyCode = false,
pythonPath = get_python_path(), console = "integratedTerminal",
justMyCode = false, })
console = "integratedTerminal",
},
}
dap.continue()
end end
local function show_param_input(script_name, module) local function show_param_input(script_name, module)
@@ -258,3 +264,24 @@ vim.keymap.set("n", "<leader>cr", vim.lsp.buf.rename, { desc = "LSP rename" })
-- Motions -- Motions
vim.keymap.set("n", "<C-d>", "<C-d>zz", {}) vim.keymap.set("n", "<C-d>", "<C-d>zz", {})
vim.keymap.set("n", "<C-u>", "<C-u>zz", {}) vim.keymap.set("n", "<C-u>", "<C-u>zz", {})
-- Disable unused
for _, key in ipairs({
"Q",
"q:",
"q/",
"q?",
"ZZ",
"ZQ",
"<C-z>",
"U",
"gQ",
"<Up>",
"<Down>",
"<Left>",
"<Right>",
"<S-Down>",
"<S-Up>"
}) do
vim.keymap.set("n", key, "<Nop>")
end

View File

@@ -5,9 +5,9 @@ return
priority = 1000, priority = 1000,
lazy = false, lazy = false,
config = function() config = function()
-- require("catppuccin").setup({ require("catppuccin").setup({
-- transparent_background = true, transparent_background = true,
-- }) })
vim.cmd.colorscheme "catppuccin" vim.cmd.colorscheme "catppuccin"
end end

View File

@@ -27,31 +27,29 @@ return {
}) })
-- Configurations -- Configurations
dap.configurations = { dap.configurations.python = {
python = { {
{ -- The first three options are required by nvim-dap
-- The first three options are required by nvim-dap type = "python", -- the type here established the link to the adapter definition: `dap.adapters.python`
type = "python", -- the type here established the link to the adapter definition: `dap.adapters.python` request = "launch",
request = "launch", name = "Launch file",
name = "Launch file",
-- Options below are for debugpy, see https://github.com/microsoft/debugpy/wiki/Debug-configuration-settings for supported options -- Options below are for debugpy, see https://github.com/microsoft/debugpy/wiki/Debug-configuration-settings for supported options
program = "${file}", -- This configuration will launch the current file if used. program = "${file}", -- This configuration will launch the current file if used.
pythonPath = function() pythonPath = function()
-- debugpy supports launching an application with a different interpreter then the one used to launch debugpy itself. -- debugpy supports launching an application with a different interpreter then the one used to launch debugpy itself.
-- The code below looks for a `venv` or `.venv` folder in the current directly and uses the python within. -- The code below looks for a `venv` or `.venv` folder in the current directly and uses the python within.
-- You could adapt this - to for example use the `VIRTUAL_ENV` environment variable. -- You could adapt this - to for example use the `VIRTUAL_ENV` environment variable.
local cwd = vim.fn.getcwd() local cwd = vim.fn.getcwd()
if vim.fn.executable(cwd .. "/venv/bin/python") == 1 then if vim.fn.executable(cwd .. "/venv/bin/python") == 1 then
return cwd .. "/venv/bin/python" return cwd .. "/venv/bin/python"
elseif vim.fn.executable(cwd .. "/.venv/bin/python") == 1 then elseif vim.fn.executable(cwd .. "/.venv/bin/python") == 1 then
return cwd .. "/.venv/bin/python" return cwd .. "/.venv/bin/python"
else else
return "/usr/bin/python" return vim.fn.exepath("python")
end end
end, end,
},
}, },
} }

View File

@@ -7,7 +7,7 @@ return {
"gopls", "gopls",
"html", "html",
"yamlls", "yamlls",
"svelte-language-server", "svelte",
"clangd", "clangd",
"ansiblels", "ansiblels",
"vtsls", "vtsls",

View File

@@ -6,16 +6,6 @@ return {
-- options = { -- options = {
-- theme = 'catppuccin' -- theme = 'catppuccin'
-- }, -- },
sections = {
lualine_x = {
function()
return require('direnv').statusline()
end,
'encoding',
'fileformat',
'filetype',
}
}
}) })
end end
} }

View File

@@ -6,9 +6,6 @@ return {
'BurntSushi/ripgrep', 'BurntSushi/ripgrep',
{ 'nvim-telescope/telescope-fzf-native.nvim', build = 'make' } { 'nvim-telescope/telescope-fzf-native.nvim', build = 'make' }
}, },
},
{
'nvim-telescope/telescope-ui-select.nvim',
config = function() config = function()
local telescope = require("telescope") local telescope = require("telescope")
telescope.setup({ telescope.setup({
@@ -28,5 +25,8 @@ return {
telescope.load_extension("ui-select") telescope.load_extension("ui-select")
telescope.load_extension("fzf") telescope.load_extension("fzf")
end end
},
{
'nvim-telescope/telescope-ui-select.nvim',
} }
} }

View File

@@ -1,3 +1,4 @@
{{ if ne .chezmoi.hostname "gentoo" }}
return { return {
'alexghergh/nvim-tmux-navigation', 'alexghergh/nvim-tmux-navigation',
config = function() config = function()
@@ -13,3 +14,6 @@ return {
} }
end end
} }
{{ else }}
return {}
{{ end }}

View File

@@ -1,11 +1,7 @@
return { return {
"folke/which-key.nvim", "folke/which-key.nvim",
event = "VeryLazy", event = "VeryLazy",
opts = { opts = {},
-- your configuration comes here
-- or leave it empty to use the default settings
-- refer to the configuration section below
},
keys = { keys = {
{ {
"<leader>?", "<leader>?",
@@ -15,8 +11,9 @@ return {
desc = "Buffer Local Keymaps (which-key)", desc = "Buffer Local Keymaps (which-key)",
}, },
}, },
config = function() config = function(_, opts)
local wk = require("which-key") local wk = require("which-key")
wk.setup(opts)
wk.add({ wk.add({
{ "<leader>d", group = "Debug" }, { "<leader>d", group = "Debug" },
{ "<leader>f", group = "Telescope" }, { "<leader>f", group = "Telescope" },