local status_ok, toggleterm = pcall(require, "toggleterm") if not status_ok then return end toggleterm.setup({ size = function(term) if term.direction == "horizontal" then return 12 elseif term.direction == "vertical" then return vim.o.columns * 0.3 end end, --size = 20, open_mapping = [[to]], hide_numbers = true, shade_filetypes = {}, shade_terminals = false, shading_factor = 1, start_in_insert = true, insert_mappings = true, persist_size = true, direction = "float", --direction = "vertical", --direction = "horizontal", close_on_exit = true, shell = vim.o.shell, highlights = { -- highlights which map to a highlight group name and a table of it's values -- NOTE: this is only a subset of values, any group placed here will be set for the terminal window split Normal = { background = "#000000", }, }, float_opts = { width = 70, height = 15, winblend = 3, border = "curved", --winblend = 0, highlights = { border = "Normal", background = "Normal", }, }, }) function _G.set_terminal_keymaps() local opts = { noremap = true } --local opts = {buffer = 0} vim.api.nvim_buf_set_keymap(0, "t", "", [[]], opts) vim.api.nvim_buf_set_keymap(0, "t", "jj", [[]], opts) vim.api.nvim_buf_set_keymap(0, "t", "", [[h]], opts) vim.api.nvim_buf_set_keymap(0, "t", "", [[j]], opts) vim.api.nvim_buf_set_keymap(0, "t", "", [[k]], opts) vim.api.nvim_buf_set_keymap(0, "t", "", [[l]], opts) end vim.cmd("autocmd! TermOpen term://* lua set_terminal_keymaps()") local Terminal = require("toggleterm.terminal").Terminal local lazygit = Terminal:new({ cmd = "lazygit", hidden = true }) function _LAZYGIT_TOGGLE() lazygit:toggle() end local node = Terminal:new({ cmd = "node", hidden = true }) function _NODE_TOGGLE() node:toggle() end local ncdu = Terminal:new({ cmd = "ncdu", hidden = true }) function _NCDU_TOGGLE() ncdu:toggle() end local htop = Terminal:new({ cmd = "htop", hidden = true }) function _HTOP_TOGGLE() htop:toggle() end local python = Terminal:new({ cmd = "python", hidden = true }) function _PYTHON_TOGGLE() python:toggle() end