Files
neovim-config/lua/plugins/terminal.lua
T

131 lines
4.0 KiB
Lua

---@module "plugins.terminal"
--- This module defines the terminal plugins spec for the Neovim configuration.
-- ╭─────────────────────────────────────────────────────────╮
-- │ Terminals │
-- ╰─────────────────────────────────────────────────────────╯
return {
{ -- Smart-Splits
'mrjones2014/smart-splits.nvim',
lazy = false,
build = require('data.types').smart_splits.build(),
},
{ -- Image Renderer
'3rd/image.nvim',
ft = require('data.types').image,
config = function()
require('image').setup({
backend = 'kitty', -- Kitty will provide the best experience, but you need a compatible terminal
processor = 'magick_cli',
kitty_method = 'normal',
integrations = {
markdown = {
enabled = true,
clear_in_insert_mode = false,
download_remote_images = true,
only_render_image_at_cursor = false,
filetypes = { 'markdown', 'vimwiki' }, -- markdown extensions (ie. quarto) can go here
},
neorg = {
enabled = true,
clear_in_insert_mode = false,
download_remote_images = true,
only_render_image_at_cursor = false,
filetypes = { 'norg' },
},
html = {
enabled = false,
},
css = {
enabled = false,
},
},
max_width = 200, -- tweak to preference
max_height = 40, -- ^
max_height_window_percentage = math.huge, -- this is necessary for a good experience
max_width_window_percentage = math.huge,
window_overlap_clear_enabled = false,
window_overlap_clear_ft_ignore = {
'cmp_menu',
'cmp_docs',
'neotree',
'neominimap',
'minimap',
'',
},
hijack_file_patterns = {
'*.png',
'*.jpg',
'*.jpeg',
'*.gif',
'*.webp',
'*.avif',
}, -- render image files as images when opened
})
end,
cond = function()
-- Disable image rendering in Neovide
-- or when vim.g.useimage = false
if vim.g.useimage == false then
return false
end
return not vim.g.neovide
end,
},
-- { -- ToggleTerm
-- 'akinsho/toggleterm.nvim',
-- event = 'TermOpen',
-- keys = require('data.keys').toggleterm,
-- config = function()
-- require('toggleterm').setup(require('data.types').toggleterm)
-- end,
-- },
{ -- Kitty-Runner
'jghauser/kitty-runner.nvim',
cond = require('data.func').is_kitty(),
},
{ -- Kitty-Scrollback
'mikesmithgh/kitty-scrollback.nvim',
enabled = true,
lazy = true,
cmd = require('data.cmd').kitty_scrollback,
event = { 'User KittyScrollbackLaunch' },
version = '*',
config = function() -- Using Kitty-Scrollback
if require('data.func').is_kitty_scrollback() then
require('kitty-scrollback').setup()
end
end,
cond = require('data.func').is_kitty_scrollback(),
},
{ -- Nekifoch
'NeViRAIDE/nekifoch.nvim',
lazy = true,
cmd = require('data.cmd').nekifoch,
opts = {
kitty_conf_path = vim.env.HOME .. '/.kittyoverrides',
},
keys = require('data.keys').nekifoch,
cond = require('data.func').is_kitty(),
},
{ -- WezTerm
'willothy/wezterm.nvim',
config = true,
cond = require('data.func').is_wezterm(),
},
{ -- Tmux
'aserowy/tmux.nvim',
config = function()
return require('tmux').setup()
end,
cond = require('data.func').is_tmux(),
},
-- { -- Ghostyy
-- 'isak102/ghostty.nvim',
-- cond = require('data.func').is_ghostty(),
-- config = function()
-- require('ghostty').setup()
-- end,
-- },
}