return { {"nvim-neo-tree/neo-tree.nvim", branch = "v3.x", dependencies = { "nvim-lua/plenary.nvim", "nvim-tree/nvim-web-devicons", -- not strictly required, but recommended "MunifTanjim/nui.nvim", {"3rd/image.nvim", opts={ backend = "kitty", processor = "magick_rock", -- or "magick_cli" integrations = { markdown = { enabled = true, clear_in_insert_mode = false, download_remote_images = true, only_render_image_at_cursor = false, floating_windows = false, -- if true, images will be rendered in floating markdown windows filetypes = { "markdown", "vimwiki" }, -- markdown extensions (ie. quarto) can go here }, neorg = { enabled = true, filetypes = { "norg" }, }, typst = { enabled = true, filetypes = { "typst" }, }, html = { enabled = false, }, css = { enabled = false, }, }, max_width = nil, max_height = nil, max_width_window_percentage = nil, max_height_window_percentage = 50, window_overlap_clear_enabled = false, -- toggles images when windows are overlapped window_overlap_clear_ft_ignore = { "cmp_menu", "cmp_docs", "snacks_notif", "scrollview", "scrollview_sign" }, editor_only_render_when_focused = false, -- auto show/hide images when the editor gains/looses focus tmux_show_only_in_active_window = false, -- auto show/hide images in the correct Tmux window (needs visual-activity off) hijack_file_patterns = { "*.png", "*.jpg", "*.jpeg", "*.gif", "*.webp", "*.avif" }, -- render image files as images when opened } }, -- Optional image support in preview window: See `# Preview Mode` for more information }, opts={ window = { mappings = { ["P"] = { "toggle_preview", config = { use_float = false, use_image_nvim = true } }, ["l"] = "focus_preview", [""] = { "scroll_preview", config = {direction = 10} }, [""] = { "scroll_preview", config = {direction = -10} }, } } } }, {"catppuccin/nvim", lazy=true, name="catppuccin"}, { "folke/twilight.nvim", opts = { dimming = { alpha = 0.25, -- amount of dimming -- we try to get the foreground from the highlight groups or fallback color color = { "Normal", "#ffffff" }, term_bg = "#000000", -- if guibg=NONE, this will be used to calculate text color inactive = false, -- when true, other windows will be fully dimmed (unless they contain the same buffer) }, context = 10, -- amount of lines we will try to show around the current line treesitter = true, -- use treesitter when available for the filetype -- treesitter is used to automatically expand the visible text, -- but you can further control the types of nodes that should always be fully expanded expand = { -- for treesitter, we we always try to expand to the top-most ancestor with these types "function", "method", "table", "if_statement", }, exclude = {}, -- exclude these filetypes } }, {"folke/zen-mode.nvim", opts={ window = { backdrop = 0.95, -- shade the backdrop of the Zen window. Set to 1 to keep the same as Normal -- height and width can be: -- * an absolute number of cells when > 1 -- * a percentage of the width / height of the editor when <= 1 -- * a function that returns the width or the height width = 120, -- width of the Zen window height = 1, -- height of the Zen window -- by default, no options are changed for the Zen window -- uncomment any of the options below, or add other vim.wo options you want to apply options = { -- signcolumn = "no", -- disable signcolumn -- number = false, -- disable number column -- relativenumber = false, -- disable relative numbers -- cursorline = false, -- disable cursorline -- cursorcolumn = false, -- disable cursor column -- foldcolumn = "0", -- disable fold column -- list = false, -- disable whitespace characters }, }, plugins = { -- disable some global vim options (vim.o...) -- comment the lines to not apply the options options = { enabled = true, ruler = false, -- disables the ruler text in the cmd line area showcmd = false, -- disables the command in the last line of the screen -- you may turn on/off statusline in zen mode by setting 'laststatus' -- statusline will be shown only if 'laststatus' == 3 laststatus = 0, -- turn off the statusline in zen mode }, twilight = { enabled = true }, -- enable to start Twilight when zen mode opens gitsigns = { enabled = false }, -- disables git signs tmux = { enabled = false }, -- disables the tmux statusline -- this will change the font size on kitty when in zen mode -- to make this work, you need to set the following kitty options: -- - allow_remote_control socket-only -- - listen_on unix:/tmp/kitty kitty = { enabled = true, font = "+4", -- font size increment }, -- this will change the font size on alacritty when in zen mode -- requires Alacritty Version 0.10.0 or higher -- uses `alacritty msg` subcommand to change font size alacritty = { enabled = false, font = "14", -- font size }, -- this will change the font size on wezterm when in zen mode -- See alse also the Plugins/Wezterm section in this projects README wezterm = { enabled = true, -- can be either an absolute font size or the number of incremental steps font = "+4", -- (10% increase per step) }, }, }}, { "akinsho/bufferline.nvim", event = "VeryLazy", keys = { { "bp", "BufferLineTogglePin", desc = "Toggle Pin" }, { "bP", "BufferLineGroupClose ungrouped", desc = "Delete Non-Pinned Buffers" }, { "br", "BufferLineCloseRight", desc = "Delete Buffers to the Right" }, { "bl", "BufferLineCloseLeft", desc = "Delete Buffers to the Left" }, { "", "BufferLineCyclePrev", desc = "Prev Buffer" }, { "", "BufferLineCycleNext", desc = "Next Buffer" }, { "[b", "BufferLineCyclePrev", desc = "Prev Buffer" }, { "]b", "BufferLineCycleNext", desc = "Next Buffer" }, { "[B", "BufferLineMovePrev", desc = "Move buffer prev" }, { "]B", "BufferLineMoveNext", desc = "Move buffer next" }, }, opts = { options = { -- stylua: ignore -- close_command = function(n) Snacks.bufdelete(n) end, -- stylua: ignore -- right_mouse_command = function(n) Snacks.bufdelete(n) end, diagnostics = "nvim_lsp", always_show_bufferline = false, -- diagnostics_indicator = function(_, _, diag) -- local icons = LazyVim.config.icons.diagnostics -- local ret = (diag.error and icons.Error .. diag.error .. " " or "") -- .. (diag.warning and icons.Warn .. diag.warning or "") -- return vim.trim(ret) -- end, offsets = { { filetype = "neo-tree", text = "Neo-tree", highlight = "Directory", text_align = "left", }, }, -- ---@param opts bufferline.IconFetcherOpts -- get_element_icon = function(opts) -- return LazyVim.config.icons.ft[opts.filetype] -- end, }, }, config = function(_, opts) require("bufferline").setup(opts) -- Fix bufferline when restoring a session vim.api.nvim_create_autocmd({ "BufAdd", "BufDelete" }, { callback = function() vim.schedule(function() pcall(nvim_bufferline) end) end, }) end, }, {"rhysd/committia.vim"}, { 's1n7ax/nvim-window-picker', name = 'window-picker', event = 'VeryLazy', version = '2.*', config = function() require'window-picker'.setup() end, }, }