local api = vim.api local status_ok, toggleterm = pcall(require, 'toggleterm') if not status_ok then return end toggleterm.setup({ size = 20, open_mapping = [[]], hide_numbers = true, shade_filetypes = {}, shade_terminals = true, shading_factor = 2, start_in_insert = true, insert_mappings = true, persist_size = true, direction = 'float', close_on_exit = true, shell = vim.o.shell, float_opts = { border = 'curved', winblend = 0, highlights = { border = 'Normal', background = 'Normal', }, }, }) function _G.set_terminal_keymaps() local opts = {noremap = true} api.nvim_buf_set_keymap(0, 't', '', [[]], opts) api.nvim_buf_set_keymap(0, 't', 'jk', [[]], opts) api.nvim_buf_set_keymap(0, 't', '', [[h]], opts) api.nvim_buf_set_keymap(0, 't', '', [[j]], opts) api.nvim_buf_set_keymap(0, 't', '', [[k]], opts) 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 btop = Terminal:new({ cmd = 'btop', hidden = true }) function _BTOP_TOGGLE() btop:toggle() end local python = Terminal:new({ cmd = 'python', hidden = true }) function _PYTHON_TOGGLE() python:toggle() end