{ programs.nixvim = { globals.mapleader = " "; keymaps = [ { mode = "n"; key = "w"; action = "w"; } { mode = "n"; key = "q"; action = "q"; } { mode = "n"; key = "e"; action = "NvimTreeToggle"; } { mode = "n"; key = "d"; action = "lua vim.diagnostic.open_float()"; } { mode = "n"; key = "?"; action = "WhichKey"; options.desc = "Show WhichKey popup"; } { mode = "n"; key = ""; action = "bnext"; options.desc = "Next buffer"; } { mode = "n"; key = ""; action = "bprevious"; options.desc = "Prev buffer"; } { mode = "n"; key = "bd"; action = "bdelete"; options.desc = "Delete buffer"; } { mode = "n"; key = "bb"; action = "Telescope buffers"; options.desc = "Buffer list"; } { mode = "n"; key = "bp"; action = "BufferLinePick"; options.desc = "Pick buffer"; } { mode = "n"; key = "bc"; action = "BufferLinePickClose"; options.desc = "Pick buffer to close"; } { mode = "n"; key = "f"; action = "Telescope find_files"; options.desc = "Telescope: Find Files"; } { mode = "n"; key = "g"; action = "Telescope live_grep"; options.desc = "Telescope: Live Grep"; } { mode = "n"; key = "b"; action = "Telescope buffers"; options.desc = "Telescope: List Buffers"; } { mode = ["n" "v"]; key = "ca"; action = "lua vim.lsp.buf.code_action()"; options.desc = "LSP Code Action"; } { mode = "n"; key = "rn"; action = "lua vim.lsp.buf.rename()"; options.desc = "LSP Rename"; } { mode = ["n" "x"]; key = "oa"; action.__raw = ''function() require("opencode").ask("@selection: ", { submit = true }) end''; options.desc = "Ask opencode"; } { mode = ["n" "x"]; key = "ox"; action.__raw = ''function() require("opencode").select() end''; options.desc = "Execute opencode action..."; } { mode = ["n" "x"]; key = "og"; action.__raw = ''function() require("opencode").prompt("@selection") end''; options.desc = "Add to opencode"; } ]; }; }