133 lines
4.1 KiB
Lua
133 lines
4.1 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(),
|
|
-- cond = not require('data.func').is_ghostty(),
|
|
},
|
|
{ -- Image Renderer
|
|
'3rd/image.nvim',
|
|
lazy = true,
|
|
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,
|
|
-- },
|
|
}
|