nix-dots/pkgs/nvim/config/utils/toggleterm.nix

75 lines
2.2 KiB
Nix

{
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 = "[[<C-_>]]";
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", "<esc>", [[<C-\><C-n>]], opts)
# vim.keymap.set("t", "jk", [[<C-\><C-n>]], opts)
# vim.keymap.set("t", "<C-h>", [[<Cmd>wincmd h<CR>]], opts)
# vim.keymap.set("t", "<C-j>", [[<Cmd>wincmd j<CR>]], opts)
# vim.keymap.set("t", "<C-k>", [[<Cmd>wincmd k<CR>]], opts)
# vim.keymap.set("t", "<C-l>", [[<Cmd>wincmd l<CR>]], opts)
# vim.keymap.set("t", "<C-w>", [[<C-\><C-n><C-w>]], 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()")
# '';
}