return {
	{
		"akinsho/toggleterm.nvim",
		version = "*",
		config = function()
			local copts = require("custom_opts")

			require("toggleterm").setup({
				size = function(term)
					if term.direction == "horizontal" then
						return 15
					elseif term.direction == "vertical" then
						return vim.o.columns * 0.4
					end
				end,
				highlights = {
					Normal = {
						link = "Normal",
					},
					NormalFloat = {
						link = "Normal",
					},
					FloatBorder = {
						link = "FloatBorder",
					},
					SignColumn = {
						link = "EndOfBuffer",
					},
					EndOfBuffer = {
						link = "EndOfBuffer",
					},
				},
				float_opts = {
					border = "rounded",
					-- winblend = copts.window_transparency,
					width = function(term)
						local columns = vim.api.nvim_get_option("columns")
						local w = math.floor(columns * copts.terminal_size)
						return (w < 20) and 20 or w
					end,
					height = function(term)
						local lines = vim.api.nvim_get_option("lines")
						local h = math.floor(lines * (copts.terminal_size + 0.1))
						return (h < 35) and 35 or h
					end,
				},
				persist_size = true,
				persist_mode = true,
				autochdir = true,
			})
		end,
	},
}
