local function toggle_tui(cmd, direction, size) local terminal local dir = direction or "float" local term_size = size return function() if not terminal then local Terminal = require("toggleterm.terminal").Terminal terminal = Terminal:new { cmd = cmd, hidden = true, close_on_exit = true, direction = dir, on_open = function() vim.cmd "startinsert!" end, } end terminal:toggle(term_size, dir) end end local toggle_k9s = toggle_tui "k9s" local toggle_ghdash = toggle_tui "gh-dash" local toggle_ai_opencode = toggle_tui("opencode", "vertical", 80) local toggle_ai_copilot = toggle_tui("copilot", "vertical", 80) return { { "AstroNvim/astrocore", ---@type AstroCoreOpts opts = { mappings = { n = { ["k"] = { desc = "Kubernetes" }, ["ki"] = { toggle_k9s, desc = "K9s", }, ["gD"] = { toggle_ghdash, desc = "GitHub dashboard", }, ["a"] = { desc = "AI" }, ["ao"] = { toggle_ai_opencode, desc = "opencode", }, ["ag"] = { toggle_ai_copilot, desc = "GH Copilot", }, }, }, }, }, }