{ plugins.toggleterm = { enable = true; settings = { size = '' function(term) if term.direction == "horizontal" then return 15 elseif term.direction == "vertical" then return vim.o.columns * 0.4 end end ''; open_mapping = "[[]]"; hide_numbers = true; shade_terminals = true; start_in_insert = true; terminal_mappings = true; persist_mode = true; insert_mappings = true; close_on_exit = true; shell = "zsh"; direction = "float"; # 'vertical' | 'horizontal' | 'window' | 'float' auto_scroll = true; float_opts = let widthP = "0.9"; heightP = "0.9"; in rec { border = "single"; # 'single' | 'double' | 'shadow' | 'curved' | ... other options supported by win open width = '' function() return math.floor(vim.o.columns * ${widthP}) end ''; height = '' function() return math.floor(vim.o.lines * ${heightP}) end ''; row = '' function() local heightFn = ${height} return math.floor((vim.o.lines - heightFn()) / 2) - 1 end ''; winblend = 0; }; winbar = { enabled = true; name_formatter = '' function(term) return term.name end ''; }; }; }; # extraConfigLua = '' # function _G.set_terminal_keymaps() # local opts = { buffer = 0 } # vim.keymap.set("t", "", [[]], opts) # vim.keymap.set("t", "jk", [[]], opts) # vim.keymap.set("t", "", [[wincmd h]], opts) # vim.keymap.set("t", "", [[wincmd j]], opts) # vim.keymap.set("t", "", [[wincmd k]], opts) # vim.keymap.set("t", "", [[wincmd l]], opts) # vim.keymap.set("t", "", [[]], opts) # end # # -- if you only want these mappings for toggle term use term://*toggleterm#* instead # -- vim.cmd("autocmd! TermOpen term://*toggleterm#* lua set_terminal_keymaps()") # ''; }